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