summary refs log tree commit diff
path: root/pkgs/servers
diff options
context:
space:
mode:
authorArtemis Tosini <me@artem.ist>2019-03-06 12:42:37 -0500
committerDmitry Kalinkin <dmitry.kalinkin@gmail.com>2019-03-06 12:42:37 -0500
commit8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9 (patch)
tree55ef2a9dfcea8351cf1498a5d0b67e4073f53924 /pkgs/servers
parentf2a1d5b0c6c13d1d3f8244b01fb7554ddbe1cc3c (diff)
downloadnixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.tar
nixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.tar.gz
nixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.tar.bz2
nixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.tar.lz
nixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.tar.xz
nixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.tar.zst
nixpkgs-8a8628f4dc001c8e3f7fdbc5ecd864ff4f2c36c9.zip
openafs: fix OpenAFS 1.6 on Linux 4.20 (#56862)
openafs: fix OpenAFS 1.6 on Linux 4.20

This patch cherry-picks commits from the OpenAFS git repository to
add support for Linux 4.20 to OpenAFS 1.6.

There do not seem to be patches in the Git repository for full Linux 5.0
support, although I have added the ones which exist so far.

This patch has been tested on Linux 4.4, 4.14, 4.20, and is confirmed to
fail on Linux 5.0. It does not change the drv of the openafs package,
only linuxPackages_*.openafs.
Diffstat (limited to 'pkgs/servers')
-rw-r--r--pkgs/servers/openafs/1.6/module.nix23
1 files changed, 21 insertions, 2 deletions
diff --git a/pkgs/servers/openafs/1.6/module.nix b/pkgs/servers/openafs/1.6/module.nix
index c133161cf57..6f771e2bf33 100644
--- a/pkgs/servers/openafs/1.6/module.nix
+++ b/pkgs/servers/openafs/1.6/module.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, which, autoconf, automake, flex, bison
+{ stdenv, fetchurl, fetchpatch, which, autoconf, automake, flex, bison
 , kernel, glibc, perl }:
 
 with (import ./srcs.nix { inherit fetchurl; });
@@ -11,6 +11,25 @@ in stdenv.mkDerivation rec {
   name = "openafs-${version}-${kernel.modDirVersion}";
   inherit version src;
 
+  patches = [
+    # Linux 4.20
+    (fetchpatch {
+      name = "openafs_1_6-current_kernel_time.patch";
+      url = "http://git.openafs.org/?p=openafs.git;a=patch;h=b9936e944a2b4f5773d66864cbb297993b050e65";
+      sha256 = "16fl9kp0l95dqm166jx3x4ijbzhf2bc9ilnipn3k1j00mfy4lnia";
+    })
+    (fetchpatch {
+      name = "openafs_1_6-do_settimeofday.patch";
+      url = "http://git.openafs.org/?p=openafs.git;a=patch;h=fe6fb38b3d4095351955b9872d0fd6cba64f8784";
+      sha256 = "0k6kgk1ybhm9xx2l0wbcyv7jimkr9mfs2ywvxy8hpyhcm7rbwjkp";
+    })
+    # Linux 5.0
+    (fetchpatch {
+      name = "openafs_1_6-super_block.patch";
+      url = "http://git.openafs.org/?p=openafs.git;a=patch;h=61db15f1badabd83e289efd622e274c47f0aefda";
+      sha256 = "0cdd76s1h1bhxj0hl7r6mcha1jcy5vhlvc5dc8m2i83a6281yjsa";
+    })
+  ];
   nativeBuildInputs = [ autoconf automake flex perl bison which ] ++ kernel.moduleBuildDependencies;
 
   hardeningDisable = [ "pic" ];
@@ -51,7 +70,7 @@ in stdenv.mkDerivation rec {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.z77z maintainers.spacefrogg ];
-    broken = versionOlder kernel.version "3.18"
+    broken = versionOlder kernel.version "3.18" || builtins.compareVersions kernel.version "5.0" >= 0
              || stdenv.targetPlatform.isAarch64;
   };