lib: add fetchb4

This commit is contained in:
xenia 2024-07-03 23:53:56 -04:00
parent 517e0fe22d
commit 481871e5af
4 changed files with 50 additions and 0 deletions

View File

@ -182,6 +182,25 @@ pkgs.fetchFromSteam {
}
```
### [`fetchb4`](./lib/fetchb4)
A fetcher that uses `b4` to download patchsets from <https://lore.kernel.org> so that they can be applied in `boot.kernelPatches`
Usage:
```nix
pkgs.fetchb4 {
msgid = "2024042069.1337-example@example";
hash = pkgs.lib.fakeHash;
# optional args
version = "3"; # default: latest
single_message = true; # default: false
}
```
note that not specifying a version may make cause future invocations to return different output if a newer version is sent to the thread
### [`mkNginxServer`](./lib/dev-nginx)
creates a shell script that launches nginx in the foreground as the current user. the nginx is

View File

@ -8,6 +8,7 @@
nixpkgs.overlays = [
(final: prev: {
fetchFromSteam = prev.callPackage ./lib/fetchsteam {};
fetchb4 = prev.callPackage ./lib/fetchb4 {};
gitSource = prev.callPackage ./lib/git-source {};

6
lib/fetchb4/builder.sh Normal file
View File

@ -0,0 +1,6 @@
if [ -e "$NIX_ATTRS_SH_FILE" ]; then . "$NIX_ATTRS_SH_FILE"; elif [ -f .attrs.sh ]; then . .attrs.sh; fi
source $stdenv/setup
echo "Downloading kernel patch $msgid into $out"
export HOME="/tmp"
PYTHONHASHSEED=0 b4 am -C -T $b4_flags -o- "$msgid" > "$out"

24
lib/fetchb4/default.nix Normal file
View File

@ -0,0 +1,24 @@
{ lib, stdenvNoCC, b4, git, cacert }:
{
msgid,
hash,
single_message ? false,
version ? null
}: stdenvNoCC.mkDerivation {
name = "patch-${msgid}";
builder = ./builder.sh;
inherit msgid;
b4_flags = with lib.strings; concatStringsSep " " [
(optionalString single_message "--single-message")
(optionalString (version != null) "--use-version ${version}")
];
nativeBuildInputs = [ b4 git cacert ];
SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
outputHashMode = "recursive";
outputHash = hash;
preferLocalBuild = true;
}