summary refs log tree commit diff
diff options
context:
space:
mode:
authorxeji <36407913+xeji@users.noreply.github.com>2018-08-30 09:01:00 +0200
committerGitHub <noreply@github.com>2018-08-30 09:01:00 +0200
commitf629d365605618b414f702fe478fa38c927339ce (patch)
tree91466509c319aa1cea66b497fedaf13731d015d6
parent29b48e00bc4c7510c3c9043165c8fca15d36100b (diff)
parentbe356b3d4a2b54b00d34cfcaa91ffda58b6547b0 (diff)
downloadnixlib-f629d365605618b414f702fe478fa38c927339ce.tar
nixlib-f629d365605618b414f702fe478fa38c927339ce.tar.gz
nixlib-f629d365605618b414f702fe478fa38c927339ce.tar.bz2
nixlib-f629d365605618b414f702fe478fa38c927339ce.tar.lz
nixlib-f629d365605618b414f702fe478fa38c927339ce.tar.xz
nixlib-f629d365605618b414f702fe478fa38c927339ce.tar.zst
nixlib-f629d365605618b414f702fe478fa38c927339ce.zip
Merge pull request #45411 from alyssais/linux-libre
linux-libre: init
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix38
-rw-r--r--pkgs/servers/openafs/1.6/module.nix2
-rw-r--r--pkgs/servers/openafs/1.8/module.nix2
-rw-r--r--pkgs/top-level/all-packages.nix6
4 files changed, 46 insertions, 2 deletions
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..2195bb7a29ce
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -0,0 +1,38 @@
+{ 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"
+      '';
+    };
+
+    maintainers = [ lib.maintainers.qyliss ];
+  };
+}
diff --git a/pkgs/servers/openafs/1.6/module.nix b/pkgs/servers/openafs/1.6/module.nix
index 2818996e5d4b..7ad9199b7ace 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 8eeac8696c02..cfd9f0561e99 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
   '';
 
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index ebf6f4f36e8d..b4a5a9084136 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14257,6 +14257,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 {});