summary refs log tree commit diff
path: root/pkgs/os-specific/linux
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.0.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.8.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-3.9.nix6
-rw-r--r--pkgs/os-specific/linux/plymouth/default.nix56
-rw-r--r--pkgs/os-specific/linux/spl/default.nix16
-rw-r--r--pkgs/os-specific/linux/spl/install_prefix.patch285
-rw-r--r--pkgs/os-specific/linux/spl/install_prefix_2.patch32
-rw-r--r--pkgs/os-specific/linux/spl/module_prefix.patch33
-rw-r--r--pkgs/os-specific/linux/udisks/1-default.nix (renamed from pkgs/os-specific/linux/udisks/default.nix)0
-rw-r--r--pkgs/os-specific/linux/udisks/2-default.nix42
-rw-r--r--pkgs/os-specific/linux/udisks/force-path.patch13
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix12
-rw-r--r--pkgs/os-specific/linux/zfs/kerneldir_path.patch85
-rw-r--r--pkgs/os-specific/linux/zfs/module_perm_prefix.patch70
-rw-r--r--pkgs/os-specific/linux/zfs/nix-build.patch214
-rw-r--r--pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch25
17 files changed, 616 insertions, 285 deletions
diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix
index 87427e141ac3..fc681e03ebd8 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.0.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix
@@ -231,7 +231,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.0.73";
+    version = "3.0.74";
 
     preConfigure = ''
       substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' ""
@@ -239,7 +239,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.xz";
-      sha256 = "1advdnl37jypiv1vyq5b3qapw2vbncm5d7wfc8far9vgvj8hwsqz";
+      sha256 = "016a16sfvdkjgzwndr985mgqny7cl3rbyz8mrnsh9l55czckiq5x";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.4.nix b/pkgs/os-specific/linux/kernel/linux-3.4.nix
index 55b39a306df8..ed13c282639a 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.4.nix
@@ -245,7 +245,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.4.40";
+    version = "3.4.41";
     testing = false;
 
     preConfigure = ''
@@ -254,7 +254,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "16gsqkzhb362lq51wp1j5k9z9mzwhzfnvfc0h2c6wqnk6rwzms9b";
+      sha256 = "18zj4biji3vmy7d1gg6lwfpc77856nsfalfpc00vk3pis6yd2k22";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.8.nix b/pkgs/os-specific/linux/kernel/linux-3.8.nix
index 5edbe34f4abb..3ec9ab181553 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.8.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.8.nix
@@ -252,7 +252,7 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.8.7";
+    version = "3.8.8";
     testing = false;
 
     preConfigure = ''
@@ -261,7 +261,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "1d6k2dlh0zh64i92jnhx60353jhkiynfy6hnrby34sajfshl01jl";
+      sha256 = "0idybkn574hkb8xp2zs3ahkvmy98qwx4599lanskzq2nfrd065kc";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/kernel/linux-3.9.nix b/pkgs/os-specific/linux/kernel/linux-3.9.nix
index b6da87f4578d..0b621dec6c5d 100644
--- a/pkgs/os-specific/linux/kernel/linux-3.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-3.9.nix
@@ -252,8 +252,8 @@ in
 import ./generic.nix (
 
   rec {
-    version = "3.9-rc4";
-    modDirVersion = "3.9.0-rc4";
+    version = "3.9-rc7";
+    modDirVersion = "3.9.0-rc7";
     testing = true;
 
     preConfigure = ''
@@ -262,7 +262,7 @@ import ./generic.nix (
 
     src = fetchurl {
       url = "mirror://kernel/linux/kernel/v3.x/${if testing then "testing/" else ""}linux-${version}.tar.xz";
-      sha256 = "15mjsxa8xl233k004a2myg24l1x5rp22icdpy5r165rhbknbb1as";
+      sha256 = "0bl58byszb3pg5dplzc19kgx7gif5cnbfykqqp1jmskpxzf1splx";
     };
 
     config = configWithPlatform stdenv.platform;
diff --git a/pkgs/os-specific/linux/plymouth/default.nix b/pkgs/os-specific/linux/plymouth/default.nix
new file mode 100644
index 000000000000..bf3da1954676
--- /dev/null
+++ b/pkgs/os-specific/linux/plymouth/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, fetchurl, cairo, gtk, libdrm, libpng, makeWrapper, pango, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  name = "plymouth-${version}";
+  version = "0.8.8";
+
+  src = fetchurl {
+    url = "http://www.freedesktop.org/software/plymouth/releases/${name}.tar.bz2";
+    sha256 = "16vm3llgci7h63jaclfskj1ii61d8psq7ny2mncml6m3sghs9b8v";
+  };
+
+  buildInputs = [ cairo gtk libdrm libpng makeWrapper pango pkgconfig ];
+
+  configurePhase = ''
+    export DESTDIR=$out
+    ./configure \
+      -bindir=$out/bin \
+      -sbindir=$out/sbin \
+      --prefix=$out \
+      --exec-prefix=$out \
+      --libdir=$out/lib \
+      --libexecdir=$out/lib \
+      --enable-tracing \
+      --sysconfdir=/etc \
+      --localstatedir=/var \
+      --without-system-root-install \
+      --enable-gtk
+  '';
+#      --enable-systemd-integration
+#      -datadir=/share \
+#      --with-rhgb-compat-link \
+
+  preInstall = "mkdir -p $out/bin $out/sbin";
+
+  postInstall = ''
+    cd $out/$out
+    mv bin/* $out/bin
+    mv sbin/* $out/sbin
+
+    rmdir bin
+    rmdir sbin
+    mv * $out/
+    sed -e "s#> $output##" \
+      -e "s#> /dev/stderr##" \
+      -i $out/lib/plymouth/plymouth-populate-initrd
+    wrapProgram $out/lib/plymouth/plymouth-populate-initrd \
+      --set PATH $PATH:$out/bin:$out/sbin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://www.freedesktop.org/wiki/Software/Plymouth;
+    description = "A graphical boot animation";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix
index 3d949511af0a..75ff28939722 100644
--- a/pkgs/os-specific/linux/spl/default.nix
+++ b/pkgs/os-specific/linux/spl/default.nix
@@ -1,27 +1,25 @@
 { stdenv, fetchurl, kernelDev, perl, autoconf, automake, libtool, coreutils, gawk }:
 
 stdenv.mkDerivation {
-  name = "spl-0.6.0-rc14-${kernelDev.version}";
+  name = "spl-0.6.1-${kernelDev.version}";
   src = fetchurl {
-    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.0-rc14.tar.gz;
-    sha256 = "00wyamf13z8ins4s14xf0b3hfjfz4w084mr17hs3k5xifb5jxa8g";
+    url = "http://archive.zfsonlinux.org/downloads/zfsonlinux/spl/spl-0.6.1.tar.gz";
+    sha256 = "1bnianc00bkpdbcmignzqfv9yr8h6vj56wfl7lkhi9a5m5b3xakb";
   };
 
-  patches = [ ./install_prefix.patch ./install_prefix_2.patch ./module_prefix.patch ];
+  patches = [ ./install_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 /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"
+    substituteInPlace ./module/splat/splat-linux.c --replace "PATH=/sbin:/usr/sbin:/bin:/usr/bin" "PATH=${coreutils}:/bin"
   '';
 
   configureFlags = ''
diff --git a/pkgs/os-specific/linux/spl/install_prefix.patch b/pkgs/os-specific/linux/spl/install_prefix.patch
index 9a7393b7170c..6b3bd515bd05 100644
--- a/pkgs/os-specific/linux/spl/install_prefix.patch
+++ b/pkgs/os-specific/linux/spl/install_prefix.patch
@@ -1,19 +1,274 @@
-*** spl-0.6.0-rc10/Makefile.am.old	Fri Aug 17 14:49:16 2012
---- spl-0.6.0-rc10/Makefile.am	Fri Aug 17 14:51:06 2012
+diff -rc spl-0.6.1.orig/include/fs/Makefile.am spl-0.6.1/include/fs/Makefile.am
+*** spl-0.6.1.orig/include/fs/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/fs/Makefile.am	2013-04-05 22:10:41.436764000 -0700
 ***************
-*** 32,38 ****
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
   if CONFIG_KERNEL
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/usr/src/spl-$$release/$(LINUX_VERSION); \
-  	for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
-  	done
---- 32,38 ----
+! kerneldir = /usr/src/spl-$(VERSION)/include/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/linux/Makefile.am spl-0.6.1/include/linux/Makefile.am
+*** spl-0.6.1.orig/include/linux/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/linux/Makefile.am	2013-04-05 22:10:27.789139000 -0700
+***************
+*** 23,28 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/linux
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 23,28 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/linux
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/Makefile.am spl-0.6.1/include/Makefile.am
+*** spl-0.6.1.orig/include/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/Makefile.am	2013-04-05 22:10:45.108623000 -0700
+***************
+*** 16,21 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 16,21 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/rpc/Makefile.am spl-0.6.1/include/rpc/Makefile.am
+*** spl-0.6.1.orig/include/rpc/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/rpc/Makefile.am	2013-04-05 22:11:08.724410000 -0700
+***************
+*** 9,14 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/rpc
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 9,14 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/rpc
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sharefs/Makefile.am spl-0.6.1/include/sharefs/Makefile.am
+*** spl-0.6.1.orig/include/sharefs/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sharefs/Makefile.am	2013-04-05 22:10:38.852722000 -0700
+***************
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sharefs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sharefs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sys/fm/Makefile.am spl-0.6.1/include/sys/fm/Makefile.am
+*** spl-0.6.1.orig/include/sys/fm/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/fm/Makefile.am	2013-04-05 22:10:59.964334000 -0700
+***************
+*** 9,14 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys/fm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 9,14 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys/fm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sys/fs/Makefile.am spl-0.6.1/include/sys/fs/Makefile.am
+*** spl-0.6.1.orig/include/sys/fs/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/fs/Makefile.am	2013-04-05 22:10:57.860366000 -0700
+***************
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
   if CONFIG_KERNEL
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/@libexecdir@/spl/$(LINUX_VERSION); \
-  	for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys/fs
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/sys/Makefile.am spl-0.6.1/include/sys/Makefile.am
+*** spl-0.6.1.orig/include/sys/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/Makefile.am	2013-04-05 22:11:05.788303000 -0700
+***************
+*** 104,110 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+  
+--- 104,110 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+  
+diff -rc spl-0.6.1.orig/include/sys/sysevent/Makefile.am spl-0.6.1/include/sys/sysevent/Makefile.am
+*** spl-0.6.1.orig/include/sys/sysevent/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/sys/sysevent/Makefile.am	2013-04-05 22:10:54.364458000 -0700
+***************
+*** 8,13 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/sys/sysevent
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 8,13 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/sys/sysevent
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/util/Makefile.am spl-0.6.1/include/util/Makefile.am
+*** spl-0.6.1.orig/include/util/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/util/Makefile.am	2013-04-05 22:10:49.452569000 -0700
+***************
+*** 9,14 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/util
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 9,14 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/util
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/include/vm/Makefile.am spl-0.6.1/include/vm/Makefile.am
+*** spl-0.6.1.orig/include/vm/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/include/vm/Makefile.am	2013-04-05 22:10:47.444535000 -0700
+***************
+*** 10,15 ****
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/spl-$(VERSION)/include/vm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+--- 10,15 ----
+  EXTRA_DIST = $(COMMON_H) $(KERNEL_H) $(USER_H)
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/libexec/spl/include/vm
+  kernel_HEADERS = $(KERNEL_H)
+  endif
+diff -rc spl-0.6.1.orig/Makefile.am spl-0.6.1/Makefile.am
+*** spl-0.6.1.orig/Makefile.am	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/Makefile.am	2013-04-05 22:09:52.429676000 -0700
+***************
+*** 9,18 ****
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = /usr/src/spl-$(VERSION)
+  extra_HEADERS = spl.release.in spl_config.h.in
+  
+! kerneldir = /usr/src/spl-$(VERSION)/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = spl.release spl_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+--- 9,18 ----
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = @prefix@/libexec/spl
+  extra_HEADERS = spl.release.in spl_config.h.in
+  
+! kerneldir = @prefix@/libexec/spl/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = spl.release spl_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+diff -rc spl-0.6.1.orig/module/Makefile.in spl-0.6.1/module/Makefile.in
+*** spl-0.6.1.orig/module/Makefile.in	2013-03-26 09:37:39.000000000 -0700
+--- spl-0.6.1/module/Makefile.in	2013-03-28 10:21:59.093481000 -0700
+***************
+*** 21,41 ****
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=$(DESTDIR)$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=$(DESTDIR)$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
+  	done
+--- 21,41 ----
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=@prefix@/$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=@prefix@/$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
   	done
diff --git a/pkgs/os-specific/linux/spl/install_prefix_2.patch b/pkgs/os-specific/linux/spl/install_prefix_2.patch
deleted file mode 100644
index 6068ad1d69c2..000000000000
--- a/pkgs/os-specific/linux/spl/install_prefix_2.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-*** git-export/include/Makefile.am	Tue Mar  6 00:05:28 2012
---- git-export/include/Makefile.am.new	Tue Mar  6 00:04:46 2012
-***************
-*** 16,22 ****
-  
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/usr/src/spl-$$release/$(LINUX_VERSION); \
-  	instfiles=`find . -name '*.h'`; \
-          for instfile in $$instfiles; do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
---- 16,22 ----
-  
-  install-data-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/@libexecdir@/spl/$(LINUX_VERSION); \
-  	instfiles=`find . -name '*.h'`; \
-          for instfile in $$instfiles; do \
-  		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
-***************
-*** 24,28 ****
-  
-  uninstall-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/usr/src/spl-$$release/$(LINUX_VERSION); \
-  	$(RM) -R $$instdest
---- 24,28 ----
-  
-  uninstall-local:
-  	release=$(SPL_META_VERSION)-$(SPL_META_RELEASE); \
-! 	instdest=$(DESTDIR)/@libexecdir@/spl/$(LINUX_VERSION); \
-  	$(RM) -R $$instdest
diff --git a/pkgs/os-specific/linux/spl/module_prefix.patch b/pkgs/os-specific/linux/spl/module_prefix.patch
deleted file mode 100644
index dd40711ccdb8..000000000000
--- a/pkgs/os-specific/linux/spl/module_prefix.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-*** git-export/module/Makefile.in	Wed Dec 31 16:00:01 1969
---- git-export/module/Makefile.in.new	Sat Jan 28 21:42:06 2012
-***************
-*** 17,30 ****
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=$(DESTDIR) \
-  		INSTALL_MOD_DIR=addon/spl $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "$(DESTDIR)" ]; then \
-! 		find $(DESTDIR)/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
---- 17,30 ----
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=@prefix@ \
-  		INSTALL_MOD_DIR=addon/spl $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "@prefix@" ]; then \
-! 		find @prefix@/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=@prefix@/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
diff --git a/pkgs/os-specific/linux/udisks/default.nix b/pkgs/os-specific/linux/udisks/1-default.nix
index b53af52755fa..b53af52755fa 100644
--- a/pkgs/os-specific/linux/udisks/default.nix
+++ b/pkgs/os-specific/linux/udisks/1-default.nix
diff --git a/pkgs/os-specific/linux/udisks/2-default.nix b/pkgs/os-specific/linux/udisks/2-default.nix
new file mode 100644
index 000000000000..28cdbe189783
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/2-default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchurl, pkgconfig, intltool
+, expat, acl, udev, glib, libatasmart, polkit
+, libxslt, docbook_xsl, utillinux, mdadm
+}:
+
+stdenv.mkDerivation rec {
+  name = "udisks-2.1.0";
+
+  src = fetchurl {
+    url = "http://udisks.freedesktop.org/releases/${name}.tar.bz2";
+    sha256 = "1a0mipihilscv9jwy59xrqn2kkri9p12a09anpjdld83l7jhh0ii";
+  };
+
+  patches = [ ./force-path.patch ];
+
+  # FIXME remove /var/run/current-system/sw/* references
+  # FIXME add references to parted, cryptsetup, etc (see the sources)
+  postPatch =
+    ''
+      substituteInPlace src/main.c --replace \
+        "@path@" \
+        "${utillinux}/bin:${mdadm}/sbin:/var/run/current-system/sw/bin:/var/run/current-system/sw/sbin"
+    '';
+
+  nativeBuildInputs = [ pkgconfig intltool ];
+
+  propagatedBuildInputs = [ expat acl udev glib libatasmart polkit ]; # in closure anyway
+
+  buildInputs = [ libxslt docbook_xsl ];
+
+  configureFlags = [
+    "--localstatedir=/var"
+    "--with-systemdsystemunitdir=$(out)/etc/systemd/systemd"
+    "--with-udevdir=$(out)/lib/udev"
+  ];
+
+  meta = {
+    homepage = http://www.freedesktop.org/wiki/Software/udisks;
+    description = "A daemon and command-line utility for querying and manipulating storage devices";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/udisks/force-path.patch b/pkgs/os-specific/linux/udisks/force-path.patch
new file mode 100644
index 000000000000..16c7ea5322fa
--- /dev/null
+++ b/pkgs/os-specific/linux/udisks/force-path.patch
@@ -0,0 +1,13 @@
+diff -ruN udisks-2.1.0.orig/src/main.c udisks-2.1.0/src/main.c
+--- udisks-2.1.0.orig/src/main.c	2013-04-02 10:43:41.629332135 +0000
++++ udisks-2.1.0/src/main.c	2013-04-02 11:04:55.635342823 +0000
+@@ -140,8 +140,7 @@
+         }
+     }
+ 
+-  if (g_getenv ("PATH") == NULL)
+-    g_setenv ("PATH", "/usr/bin:/bin:/usr/sbin:/sbin", TRUE);
++  g_setenv ("PATH", "@path@", TRUE);
+ 
+   udisks_notice ("udisks daemon version %s starting", PACKAGE_VERSION);
+ 
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 8da4906f8fe1..ac07474d3f4b 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -1,20 +1,19 @@
 { stdenv, fetchurl, kernelDev, spl, perl, autoconf, automake, libtool, zlib, libuuid, coreutils, utillinux }:
 
 stdenv.mkDerivation {
-  name = "zfs-0.6.0-rc14-${kernelDev.version}";
+  name = "zfs-0.6.1-${kernelDev.version}";
 
   src = fetchurl {
-    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.0-rc14.tar.gz;
-    sha256 = "0ny2lbhyfsfwfcasa1iv2hz12hzcskx9mv641955d844dh32z9fg";
+    url = http://archive.zfsonlinux.org/downloads/zfsonlinux/zfs/zfs-0.6.1.tar.gz;
+    sha256 = "1ykph9d4p70mam6lvcx0zld6d34gch15dsilds5ncbxh0m52knl0";
   };
 
-  patches = [ ./module_perm_prefix.patch ./mount_zfs_prefix.patch ./kerneldir_path.patch ./no_absolute_paths_to_coreutils.patch ];
+  patches = [ ./mount_zfs_prefix.patch ./nix-build.patch ];
 
   buildInputs = [ kernelDev spl perl autoconf automake libtool zlib libuuid coreutils ];
 
   # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
   NIX_CFLAGS_LINK = "-lgcc_s";
-  NIX_CFLAGS_COMPILE = "-I${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build/include/generated";
 
   preConfigure = ''
     ./autogen.sh
@@ -31,8 +30,7 @@ stdenv.mkDerivation {
   configureFlags = ''
     --with-linux=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build 
     --with-linux-obj=${kernelDev}/lib/modules/${kernelDev.modDirVersion}/build 
-    --with-spl=${spl}/libexec/spl/${kernelDev.modDirVersion}
-    ${if stdenv.system == "i686-linux"  then "--enable-atomic-spinlocks" else ""}
+    --with-spl=${spl}/libexec/spl
   '';
 
   meta = {
diff --git a/pkgs/os-specific/linux/zfs/kerneldir_path.patch b/pkgs/os-specific/linux/zfs/kerneldir_path.patch
deleted file mode 100644
index 4503ac4ca48b..000000000000
--- a/pkgs/os-specific/linux/zfs/kerneldir_path.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 9ffd6be..8e51412 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -34,7 +34,7 @@ distclean-local::
- if CONFIG_KERNEL
- install-data-local:
- 	release=$(ZFS_META_VERSION)-$(ZFS_META_RELEASE); \
--	instdest=$(DESTDIR)/usr/src/zfs-$$release/$(LINUX_VERSION); \
-+	instdest=$(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION); \
- 	for instfile in $(noinst_HEADERS) module/$(LINUX_SYMBOLS); do \
- 		$(INSTALL) -D $$instfile $$instdest/$$instfile; \
- 	done
-diff --git a/include/Makefile.am b/include/Makefile.am
-index 8f9c8d7..5fc44d5 100644
---- a/include/Makefile.am
-+++ b/include/Makefile.am
-@@ -27,6 +27,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/linux/Makefile.am b/include/linux/Makefile.am
-index 6e481a1..1107809 100644
---- a/include/linux/Makefile.am
-+++ b/include/linux/Makefile.am
-@@ -16,6 +16,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/linux
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/Makefile.am b/include/sys/Makefile.am
-index 651e68b..b80bb55 100644
---- a/include/sys/Makefile.am
-+++ b/include/sys/Makefile.am
-@@ -89,6 +89,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/fm/Makefile.am b/include/sys/fm/Makefile.am
-index 900ed93..8d9bed2 100644
---- a/include/sys/fm/Makefile.am
-+++ b/include/sys/fm/Makefile.am
-@@ -16,6 +16,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys/fm
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/fm/fs/Makefile.am b/include/sys/fm/fs/Makefile.am
-index d82d076..b4ae3ee 100644
---- a/include/sys/fm/fs/Makefile.am
-+++ b/include/sys/fm/fs/Makefile.am
-@@ -13,6 +13,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys/fm/fs
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
-diff --git a/include/sys/fs/Makefile.am b/include/sys/fs/Makefile.am
-index b702679..3c747f4 100644
---- a/include/sys/fs/Makefile.am
-+++ b/include/sys/fs/Makefile.am
-@@ -13,6 +13,6 @@ libzfs_HEADERS = $(COMMON_H) $(USER_H)
- endif
- 
- if CONFIG_KERNEL
--kerneldir = /usr/src/zfs-$(ZFS_META_VERSION)-$(ZFS_META_RELEASE)/$(LINUX_VERSION)/sys/fs
-+kerneldir = $(DESTDIR)/$(libexecdir)/zfs/$(LINUX_VERSION)
- kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
- endif
diff --git a/pkgs/os-specific/linux/zfs/module_perm_prefix.patch b/pkgs/os-specific/linux/zfs/module_perm_prefix.patch
deleted file mode 100644
index 07cd04d1dded..000000000000
--- a/pkgs/os-specific/linux/zfs/module_perm_prefix.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-*** git-export/module/Makefile.in.orig	Wed Dec 31 16:00:01 1969
---- git-export/module/Makefile.in	Tue Mar  6 00:23:07 2012
-***************
-*** 11,19 ****
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
-  		"*** Missing spl symbols ensure you have built the spl:\n" \
---- 11,21 ----
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-! 		chmod +w @SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-! 		chmod +w @SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
-  		"*** Missing spl symbols ensure you have built the spl:\n" \
-***************
-*** 35,55 ****
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=$(DESTDIR) \
-  		INSTALL_MOD_DIR=addon/zfs $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "$(DESTDIR)" ]; then \
-! 		find $(DESTDIR)/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=$(DESTDIR)/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
-  
-  modules_uninstall:
-  	@# Uninstall the kernel modules
-! 	$(RM) -R $(DESTDIR)/lib/modules/@LINUX_VERSION@/addon/zfs
-  
-  distdir:
-  
---- 37,57 ----
-  modules_install:
-  	@# Install the kernel modules
-  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` \
-! 		INSTALL_MOD_PATH=@prefix@ \
-  		INSTALL_MOD_DIR=addon/zfs $@
-  	@# Remove extraneous build products when packaging
-! 	if [ -n "@prefix@" ]; then \
-! 		find @prefix@/lib/modules/@LINUX_VERSION@ \
-  			-name 'modules.*' | xargs $(RM); \
-  	fi
-! 	sysmap=@prefix@/boot/System.map-@LINUX_VERSION@; \
-  	if [ -f $$sysmap ]; then \
-  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
-  	fi
-  
-  modules_uninstall:
-  	@# Uninstall the kernel modules
-! 	$(RM) -R @prefix@/lib/modules/@LINUX_VERSION@/addon/zfs
-  
-  distdir:
-  
diff --git a/pkgs/os-specific/linux/zfs/nix-build.patch b/pkgs/os-specific/linux/zfs/nix-build.patch
new file mode 100644
index 000000000000..af4b94e355d7
--- /dev/null
+++ b/pkgs/os-specific/linux/zfs/nix-build.patch
@@ -0,0 +1,214 @@
+diff -rc zfs-0.6.1.orig/include/linux/Makefile.am zfs-0.6.1/include/linux/Makefile.am
+*** zfs-0.6.1.orig/include/linux/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/linux/Makefile.am	2013-03-28 11:07:10.099129000 -0700
+***************
+*** 16,21 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/linux
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 16,21 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/linux
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/Makefile.am zfs-0.6.1/include/Makefile.am
+*** zfs-0.6.1.orig/include/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/Makefile.am	2013-03-28 11:07:38.810870000 -0700
+***************
+*** 28,33 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 28,33 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/fm/fs/Makefile.am zfs-0.6.1/include/sys/fm/fs/Makefile.am
+*** zfs-0.6.1.orig/include/sys/fm/fs/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/fm/fs/Makefile.am	2013-03-28 11:07:36.074756000 -0700
+***************
+*** 13,18 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys/fm/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 13,18 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys/fm/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/fm/Makefile.am zfs-0.6.1/include/sys/fm/Makefile.am
+*** zfs-0.6.1.orig/include/sys/fm/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/fm/Makefile.am	2013-03-28 11:07:32.265896000 -0700
+***************
+*** 16,21 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys/fm
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 16,21 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys/fm
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/fs/Makefile.am zfs-0.6.1/include/sys/fs/Makefile.am
+*** zfs-0.6.1.orig/include/sys/fs/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/fs/Makefile.am	2013-03-28 11:07:27.592339000 -0700
+***************
+*** 13,18 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 13,18 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys/fs
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/include/sys/Makefile.am zfs-0.6.1/include/sys/Makefile.am
+*** zfs-0.6.1.orig/include/sys/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/include/sys/Makefile.am	2013-03-28 11:07:19.045717000 -0700
+***************
+*** 91,96 ****
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = /usr/src/zfs-$(VERSION)/include/sys
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+--- 91,96 ----
+  endif
+  
+  if CONFIG_KERNEL
+! kerneldir = @prefix@/include/sys
+  kernel_HEADERS = $(COMMON_H) $(KERNEL_H)
+  endif
+diff -rc zfs-0.6.1.orig/Makefile.am zfs-0.6.1/Makefile.am
+*** zfs-0.6.1.orig/Makefile.am	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/Makefile.am	2013-04-05 23:49:39.763623000 -0700
+***************
+*** 9,18 ****
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = /usr/src/zfs-$(VERSION)
+  extra_HEADERS = zfs.release.in zfs_config.h.in
+  
+! kerneldir = /usr/src/zfs-$(VERSION)/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+--- 9,18 ----
+  if CONFIG_KERNEL
+  SUBDIRS += module
+  
+! extradir = @prefix@/libexec/zfs-$(VERSION)
+  extra_HEADERS = zfs.release.in zfs_config.h.in
+  
+! kerneldir = @prefix@/zfs-$(VERSION)/$(LINUX_VERSION)
+  nodist_kernel_HEADERS = zfs.release zfs_config.h module/$(LINUX_SYMBOLS)
+  endif
+  
+diff -rc zfs-0.6.1.orig/module/Makefile.in zfs-0.6.1/module/Makefile.in
+*** zfs-0.6.1.orig/module/Makefile.in	2013-03-26 09:37:47.000000000 -0700
+--- zfs-0.6.1/module/Makefile.in	2013-04-05 23:50:41.497876000 -0700
+***************
+*** 18,26 ****
+  	@# installed devel headers, or they may be in the module
+  	@# subdirectory when building against the spl source tree.
+  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
+! 		/bin/cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
+  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
+! 		/bin/cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
+  	else \
+  		echo -e "\n" \
+  		"*** Missing spl symbols ensure you have built the spl:\n" \
+--- 18,26 ----
+  	@# installed devel headers, or they may be in the module
+  	@# subdirectory when building against the spl source tree.
+  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
+! 		cp @SPL_OBJ@/@SPL_SYMBOLS@ .; \
+  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
+! 		cp @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
+  	else \
+  		echo -e "\n" \
+  		"*** Missing spl symbols ensure you have built the spl:\n" \
+***************
+*** 28,33 ****
+--- 28,35 ----
+  		"*** - @SPL_OBJ@/module/@SPL_SYMBOLS@\n"; \
+  		exit 1; \
+  	fi
++ 	@# when copying a file out of the nix store, we need to make it writable again. 
++ 	chmod +w @SPL_SYMBOLS@
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` @KERNELMAKE_PARAMS@ CONFIG_ZFS=m $@
+  
+  clean:
+***************
+*** 42,62 ****
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=$(DESTDIR)$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=$(DESTDIR)$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=$(DESTDIR)$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
+  	done
+--- 44,64 ----
+  modules_install:
+  	@# Install the kernel modules
+  	$(MAKE) -C @LINUX_OBJ@ SUBDIRS=`pwd` $@ \
+! 		INSTALL_MOD_PATH=@prefix@/$(INSTALL_MOD_PATH) \
+  		INSTALL_MOD_DIR=$(INSTALL_MOD_DIR)
+  	@# Remove extraneous build products when packaging
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@; \
+  	if [ -n $$kmoddir ]; then \
+  		find $$kmoddir -name 'modules.*' | xargs $(RM); \
+  	fi
+! 	sysmap=@prefix@/$(INSTALL_MOD_PATH)/boot/System.map-@LINUX_VERSION@; \
+  	if [ -f $$sysmap ]; then \
+  		depmod -ae -F $$sysmap @LINUX_VERSION@; \
+  	fi
+  
+  modules_uninstall:
+  	@# Uninstall the kernel modules
+! 	kmoddir=@prefix@/$(INSTALL_MOD_PATH)/lib/modules/@LINUX_VERSION@
+  	list='$(subdir-m)'; for subdir in $$list; do \
+  		$(RM) -R $$kmoddir/$(INSTALL_MOD_DIR)/$$subdir; \
+  	done
diff --git a/pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch b/pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch
deleted file mode 100644
index e223e34c3a43..000000000000
--- a/pkgs/os-specific/linux/zfs/no_absolute_paths_to_coreutils.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-*** git-export/module/Makefile.in.old	Tue Mar  6 01:04:48 2012
---- git-export/module/Makefile.in	Tue Mar  6 01:04:59 2012
-***************
-*** 11,20 ****
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		/bin/cp -f @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \
---- 11,20 ----
-  	@# installed devel headers, or they may be in the module
-  	@# subdirectory when building against the spl source tree.
-  	@if [ -f @SPL_OBJ@/@SPL_SYMBOLS@ ]; then \
-! 		cp -f @SPL_OBJ@/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	elif [ -f @SPL_OBJ@/module/@SPL_SYMBOLS@ ]; then \
-! 		cp -f @SPL_OBJ@/module/@SPL_SYMBOLS@ .; \
-  		chmod +w @SPL_SYMBOLS@ .; \
-  	else \
-  		echo -e "\n" \