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 = "19872";
9 hash = "sha256-zbs5iWCaDtwovJLHnBlHfDBZ2DbggToRj3YZ5Nbx/RM=";
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
34 buildPhase = ''
35 runHook preBuild
36
37 # --force flag to skip empty files after deblobbing
38 ${scripts}/${majorMinor}/deblob-${majorMinor} --force ${major} ${minor} ${patch}
39
40 runHook postBuild
41 '';
42
43 checkPhase = ''
44 runHook preCheck
45
46 ${scripts}/deblob-check
47
48 runHook postCheck
49 '';
50
51 installPhase = ''
52 runHook preInstall
53
54 cp -r . "$out"
55
56 runHook postInstall
57 '';
58 };
59
60 extraPassthru.updateScript = ./update-libre.sh;
61
62 maintainers = with lib.maintainers; [ qyliss ];
63 };
64}
65// (args.argsOverride or { })