diff options
Diffstat (limited to 'pkgs/servers/openafs/1.8/module.nix')
-rw-r--r-- | pkgs/servers/openafs/1.8/module.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix new file mode 100644 index 0000000000000..356d3cf37c3b5 --- /dev/null +++ b/pkgs/servers/openafs/1.8/module.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchurl, which, autoconf, automake, flex, yacc +, kernel, glibc, perl, libtool_2, kerberos }: + +with (import ./srcs.nix { inherit fetchurl; }); + +let + modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs"; + kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + +in stdenv.mkDerivation rec { + name = "openafs-${version}-${kernel.version}"; + inherit version src; + + nativeBuildInputs = [ autoconf automake flex libtool_2 perl which yacc ] + ++ kernel.moduleBuildDependencies; + + buildInputs = [ kerberos ]; + + hardeningDisable = [ "pic" ]; + + configureFlags = [ + "--with-linux-kernel-build=${kernelBuildDir}" + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-gssapi" + "--disable-linux-d_splice-alias-extra-iput" + ]; + + preConfigure = '' + patchShebangs . + for i in `grep -l -R '/usr/\(include\|src\)' .`; do + echo "Patch /usr/include and /usr/src in $i" + substituteInPlace $i \ + --replace "/usr/include" "${glibc.dev}/include" \ + --replace "/usr/src" "${kernelBuildDir}" + done + + ./regen.sh -q + ''; + + buildPhase = '' + make V=1 only_libafs + ''; + + installPhase = '' + mkdir -p ${modDestDir} + cp src/libafs/MODLOAD-*/libafs-${kernel.version}.* ${modDestDir}/libafs.ko + xz -f ${modDestDir}/libafs.ko + ''; + + meta = with stdenv.lib; { + description = "Open AFS client kernel module"; + homepage = https://www.openafs.org; + license = licenses.ipl10; + platforms = platforms.linux; + maintainers = [ maintainers.z77z maintainers.spacefrogg ]; + broken = (versionOlder kernel.version "3.18") || stdenv.targetPlatform.isAarch64; + }; + +} |