diff options
author | Michael Raitza <spacefrogg-github@meterriblecrew.net> | 2018-01-23 19:48:53 +0100 |
---|---|---|
committer | Michael Raitza <spacefrogg-github@meterriblecrew.net> | 2018-02-01 16:21:38 +0100 |
commit | 44a4844744d899ce74b57bca1f25e5a4ee19e63d (patch) | |
tree | 329141198a801f29a7d6f7bb4e7276ab99ce0847 /pkgs/servers/openafs/module.nix | |
parent | 8a77ae81ad4b5d7e398414676fe2d4111c29fc32 (diff) |
openafs: Break into multiple packages with multiple outputs
Two packages: - pkgs.linuxPackages.openafs (only kernel module) - pkgs.openafs (client/server programs, manpages, docs) Disable `ncurses` by default - Only needed for debugging tools Introduce but disable `tsmbac` by default - IBM's on-site backup service called Tivoli Storage Manager Backup Client - Make openafs ready to use tsmbac when supplied via local overlay (needs special patching) - TSM is not in nixpkgs due to unclear/unfree licensing. (Binaries need to be modified to work with nixos)
Diffstat (limited to 'pkgs/servers/openafs/module.nix')
-rw-r--r-- | pkgs/servers/openafs/module.nix | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/servers/openafs/module.nix b/pkgs/servers/openafs/module.nix new file mode 100644 index 0000000000000..8cd9287a7772d --- /dev/null +++ b/pkgs/servers/openafs/module.nix @@ -0,0 +1,57 @@ +{ stdenv, fetchurl, which, autoconf, automake, flex, yacc +, kernel, glibc, perl }: + +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 perl yacc which ] ++ kernel.moduleBuildDependencies; + + hardeningDisable = [ "pic" ]; + + configureFlags = [ + "--with-linux-kernel-build=${kernelBuildDir}" + "--sysconfdir=/etc" + "--localstatedir=/var" + "--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"; + }; + +} |