1{
2 stdenv,
3 lib,
4 fetchsvn,
5 linux,
6 scripts ? fetchsvn {
7 url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
8 rev = "19769";
9 sha256 = "0mfn2pa587laj45zlah424g953yjxmlh49x36byjylmzj079a42n";
10 },
11 ...
12}@args:
13
14let
15 majorMinor = lib.versions.majorMinor linux.modDirVersion;
16
17 major = lib.versions.major linux.modDirVersion;
18 minor = lib.versions.minor linux.modDirVersion;
19 patch = lib.versions.patch linux.modDirVersion;
20
21 # See http://linux-libre.fsfla.org/pub/linux-libre/releases
22 versionPrefix = if linux.kernelOlder "5.14" then "gnu1" else "gnu";
23in
24linux.override {
25 argsOverride = {
26 modDirVersion = "${linux.modDirVersion}-${versionPrefix}";
27 isLibre = true;
28 pname = "linux-libre";
29
30 src = stdenv.mkDerivation {
31 name = "${linux.name}-libre-src";
32 src = linux.src;
33 buildPhase = ''
34 # --force flag to skip empty files after deblobbing
35 ${scripts}/${majorMinor}/deblob-${majorMinor} --force \
36 ${major} ${minor} ${patch}
37 '';
38 checkPhase = ''
39 ${scripts}/deblob-check
40 '';
41 installPhase = ''
42 cp -r . "$out"
43 '';
44 };
45
46 passthru.updateScript = ./update-libre.sh;
47
48 maintainers = with lib.maintainers; [ qyliss ];
49 };
50}
51// (args.argsOverride or { })