summary refs log tree commit diff
path: root/pkgs/os-specific/linux/zfs/default.nix
diff options
context:
space:
mode:
authorRicardo M. Correia <rcorreia@wizy.org>2014-10-22 18:48:57 +0200
committerRicardo M. Correia <rcorreia@wizy.org>2014-11-12 22:31:49 +0100
commit3b0fa60a9865ca4887266fcfb7e467d8b8966d38 (patch)
treee5dd7679a27be89dcca5358e15dab9bdb45355fb /pkgs/os-specific/linux/zfs/default.nix
parentace49e400c484ac3fbcdf24835f8a7cfa338f508 (diff)
downloadnixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.tar
nixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.tar.gz
nixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.tar.bz2
nixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.tar.lz
nixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.tar.xz
nixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.tar.zst
nixlib-3b0fa60a9865ca4887266fcfb7e467d8b8966d38.zip
zfs: Enable systemd
Also remove custom zfs services from NixOS.  This makes NixOS more aligned with
upstream.

More importantly, it prepares the way for NixOS to use ZED (the ZFS event
daemon). This service will automatically be enabled but it is not possible to
configure it via configuration.nix yet.
Diffstat (limited to 'pkgs/os-specific/linux/zfs/default.nix')
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix26
1 files changed, 17 insertions, 9 deletions
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index f0f260746d54..fc980286b9b7 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -20,24 +20,32 @@ stdenv.mkDerivation {
   NIX_CFLAGS_LINK = "-lgcc_s";
 
   preConfigure = ''
-    ./autogen.sh
+    substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "umount -t zfs"           "${utillinux}/bin/umount -t zfs"
+    substituteInPlace ./module/zfs/zfs_ctldir.c   --replace "mount -t zfs"            "${utillinux}/bin/mount -t zfs"
+    substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount"
+    substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/mount"              "${utillinux}/bin/mount"
+    substituteInPlace ./udev/rules.d/*            --replace "/lib/udev/vdev_id"       "$out/lib/udev/vdev_id"
+    substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/ztest"         "$out/sbin/ztest"
+    substituteInPlace ./cmd/ztest/ztest.c         --replace "/usr/sbin/zdb"           "$out/sbin/zdb"
+    substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
+    substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
+    substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
+    substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
 
-    substituteInPlace ./module/zfs/zfs_ctldir.c    --replace "umount -t zfs"     "${utillinux}/bin/umount -t zfs"
-    substituteInPlace ./module/zfs/zfs_ctldir.c    --replace "mount -t zfs"      "${utillinux}/bin/mount -t zfs"
-    substituteInPlace ./lib/libzfs/libzfs_mount.c  --replace "/bin/umount"       "${utillinux}/bin/umount"
-    substituteInPlace ./lib/libzfs/libzfs_mount.c  --replace "/bin/mount"        "${utillinux}/bin/mount"
-    substituteInPlace ./udev/rules.d/*             --replace "/lib/udev/vdev_id" "$out/lib/udev/vdev_id"
-    substituteInPlace ./cmd/ztest/ztest.c          --replace "/usr/sbin/ztest"   "$out/sbin/ztest"
-    substituteInPlace ./cmd/ztest/ztest.c          --replace "/usr/sbin/zdb"     "$out/sbin/zdb"
+    ./autogen.sh
   '';
 
   configureFlags = [
-    "--disable-systemd"
+    "--enable-systemd"
     "--with-linux=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
     "--with-linux-obj=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
     "--with-spl=${spl}/libexec/spl"
     "--with-dracutdir=$(out)/lib/dracut"
     "--with-udevdir=$(out)/lib/udev"
+    "--with-systemdunitdir=$(out)/etc/systemd/system"
+    "--with-systemdpresetdir=$(out)/etc/systemd/system-preset"
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
   ];
 
   enableParallelBuilding = true;