nixpkgs/pkgs/os-specific/linux/spl/default.nix
Shea Levy 4fa4ab3a6e Partially revert my recent kernelPackages changes
First, pass in `self' again so that overriding works properly (thanks
for pointing that out, @edolstra)

Second, instead of having linuxPackages*.kernel mean something different
inside the set and out, add a new attribute linuxPackages*.kernelDev,
which for the generic kernel is simply linuxPackages*.kernel but for the
manual-config kernel is the `dev' output (which has the build tree,
source tree, etc.)

The second change required trivial modifications in a bunch of
expressions, I verified that all of the linuxPackages* sets defined in
all-packages.nix have the same drv paths before and after the change.

Signed-off-by: Shea Levy <shea@shealevy.com>
2013-03-24 07:45:00 -04:00

46 lines
1.8 KiB
Nix

{ stdenv, fetchurl, kernelDev, perl, autoconf, automake, libtool, coreutils, gawk }:
stdenv.mkDerivation {
name = "spl-0.6.0-rc14-${kernelDev.version}";
src = fetchurl {
url = http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.0-rc14.tar.gz;
sha256 = "00wyamf13z8ins4s14xf0b3hfjfz4w084mr17hs3k5xifb5jxa8g";
};
patches = [ ./install_prefix.patch ./install_prefix_2.patch ./module_prefix.patch ];
buildInputs = [ perl kernelDev autoconf automake libtool ];
NIX_CFLAGS_COMPILE = "-I${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build/include/generated";
preConfigure = ''
./autogen.sh
substituteInPlace ./module/spl/spl-generic.c --replace /usr/bin/hostid hostid
substituteInPlace ./module/spl/spl-module.c --replace /bin/mknod mknod
substituteInPlace ./module/spl/spl-generic.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:${gawk}:/bin"
substituteInPlace ./module/spl/spl-module.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin"
substituteInPlace ./module/splat/splat-vnode.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin"
'';
configureFlags = ''
--with-linux=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build
--with-linux-obj=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build
'';
meta = {
description = "Kernel module driver for solaris porting layer (needed by in-kernel zfs)";
longDescription = ''
This kernel module is a porting layer for ZFS to work inside the linux
kernel.
'';
homepage = http://zfsonlinux.org/;
platforms = stdenv.lib.platforms.linux;
license = stdenv.lib.licenses.gpl2Plus;
maintainers = with stdenv.lib.maintainers; [ jcumming ];
};
}