From 33a1044c32d72756facd0af8455f05c46223dcc1 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 21 Aug 2018 00:22:46 +0200 Subject: [PATCH 1/4] linuxPackages*.openafs*: use modDirVersion `version` doesn't include .0 patch versions, or suffixes (eg -gnu). For .0 patch versions, this isn't a problem, since the glob takes care of everything after a `.`. It does, however, prevent openafs installing for suffixed kernels. --- pkgs/servers/openafs/1.6/module.nix | 2 +- pkgs/servers/openafs/1.8/module.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/openafs/1.6/module.nix b/pkgs/servers/openafs/1.6/module.nix index bf4f36bb250b..809c8af36d91 100644 --- a/pkgs/servers/openafs/1.6/module.nix +++ b/pkgs/servers/openafs/1.6/module.nix @@ -41,7 +41,7 @@ in stdenv.mkDerivation rec { installPhase = '' mkdir -p ${modDestDir} - cp src/libafs/MODLOAD-*/libafs-${kernel.version}.* ${modDestDir}/libafs.ko + cp src/libafs/MODLOAD-*/libafs-${kernel.modDirVersion}.* ${modDestDir}/libafs.ko xz -f ${modDestDir}/libafs.ko ''; diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix index 356d3cf37c3b..57a4ea02ee8f 100644 --- a/pkgs/servers/openafs/1.8/module.nix +++ b/pkgs/servers/openafs/1.8/module.nix @@ -44,7 +44,7 @@ in stdenv.mkDerivation rec { installPhase = '' mkdir -p ${modDestDir} - cp src/libafs/MODLOAD-*/libafs-${kernel.version}.* ${modDestDir}/libafs.ko + cp src/libafs/MODLOAD-*/libafs-${kernel.modDirVersion}.* ${modDestDir}/libafs.ko xz -f ${modDestDir}/libafs.ko ''; From 34a7e678b2f036f9fe65ce6c1b5bab39cccda928 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 21 Aug 2018 00:32:29 +0200 Subject: [PATCH 2/4] linux-libre: init --- pkgs/os-specific/linux/kernel/linux-libre.nix | 34 +++++++++++++++++++ pkgs/top-level/all-packages.nix | 6 ++++ 2 files changed, 40 insertions(+) create mode 100644 pkgs/os-specific/linux/kernel/linux-libre.nix diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix new file mode 100644 index 000000000000..6c9fa6a4c7ad --- /dev/null +++ b/pkgs/os-specific/linux/kernel/linux-libre.nix @@ -0,0 +1,34 @@ +{ stdenv, lib, fetchsvn, linux +, scripts ? fetchsvn { + url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/tags/"; + rev = "r15295"; + sha256 = "03kqbjy7w9zg6ry86h9sxa33z0rblznhba109lwmjwy0wx7yk1cs"; + } +}: + +let + majorMinor = lib.versions.majorMinor linux.modDirVersion; + + major = lib.versions.major linux.modDirVersion; + minor = lib.versions.minor linux.modDirVersion; + patch = lib.versions.patch linux.modDirVersion; + +in linux.override { + argsOverride = { + modDirVersion = "${linux.modDirVersion}-gnu"; + src = stdenv.mkDerivation { + name = "${linux.name}-libre-src"; + src = linux.src; + buildPhase = '' + ${scripts}/${majorMinor}-gnu/deblob-${majorMinor} \ + ${major} ${minor} ${patch} + ''; + checkPhase = '' + ${scripts}/deblob-check + ''; + installPhase = '' + cp -r . "$out" + ''; + }; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a7491632fb5b..a21b141b7b17 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14210,6 +14210,12 @@ with pkgs; linuxPackages_hardkernel_latest = linuxPackages_hardkernel_4_14; linux_hardkernel_latest = linuxPackages_hardkernel_latest.kernel; + # GNU Linux-libre kernels + linuxPackages-libre = recurseIntoAttrs (linuxPackagesFor linux-libre); + linux-libre = callPackage ../os-specific/linux/kernel/linux-libre.nix {}; + linuxPackages_latest-libre = recurseIntoAttrs (linuxPackagesFor linux_latest-libre); + linux_latest-libre = linux-libre.override { linux = linux_latest; }; + # A function to build a manually-configured kernel linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {}); From a202c25ff792077abf76e31e7a5b192ee9ae4a26 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Tue, 21 Aug 2018 11:13:21 +0100 Subject: [PATCH 3/4] linux-libre: add myself as a maintainer --- pkgs/os-specific/linux/kernel/linux-libre.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix index 6c9fa6a4c7ad..10f8cdd6c24b 100644 --- a/pkgs/os-specific/linux/kernel/linux-libre.nix +++ b/pkgs/os-specific/linux/kernel/linux-libre.nix @@ -16,6 +16,7 @@ let in linux.override { argsOverride = { modDirVersion = "${linux.modDirVersion}-gnu"; + src = stdenv.mkDerivation { name = "${linux.name}-libre-src"; src = linux.src; @@ -30,5 +31,7 @@ in linux.override { cp -r . "$out" ''; }; + + maintainers = [ lib.maintainers.qyliss ]; }; } From be356b3d4a2b54b00d34cfcaa91ffda58b6547b0 Mon Sep 17 00:00:00 2001 From: Uli Baum Date: Wed, 29 Aug 2018 22:57:37 +0200 Subject: [PATCH 4/4] linux-libre: fix argument list Building a system with boot.kernelPackages = pkgs.linuxPackages-libre failed because the expression is called with extra arguments, See linux-4.14.nix. --- pkgs/os-specific/linux/kernel/linux-libre.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix index 10f8cdd6c24b..2195bb7a29ce 100644 --- a/pkgs/os-specific/linux/kernel/linux-libre.nix +++ b/pkgs/os-specific/linux/kernel/linux-libre.nix @@ -4,6 +4,7 @@ rev = "r15295"; sha256 = "03kqbjy7w9zg6ry86h9sxa33z0rblznhba109lwmjwy0wx7yk1cs"; } +, ... }: let