summary refs log tree commit diff
path: root/pkgs/os-specific/linux/zfs
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2020-04-02 21:10:16 +0200
committerSilvan Mosberger <contact@infinisil.com>2020-04-08 02:29:03 +0200
commit0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6 (patch)
tree013307d0154197aadb3aad968d5e1696d54e5ad9 /pkgs/os-specific/linux/zfs
parent12c1fdda091a405fd8cc8257d131c99a019cce39 (diff)
downloadnixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.tar
nixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.tar.gz
nixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.tar.bz2
nixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.tar.lz
nixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.tar.xz
nixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.tar.zst
nixpkgs-0a43c6e0f9bc13b00df67e74a0182f48d98ec2f6.zip
zfs: Add enablePython argument
Reduces closure size with it disabled from 236.0M to 176.7M
Diffstat (limited to 'pkgs/os-specific/linux/zfs')
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix13
1 files changed, 10 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 738171bb5ec..a75b22abc2c 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -11,6 +11,7 @@
 
 # Kernel dependencies
 , kernel ? null
+, enablePython ? true
 }:
 
 with stdenv.lib;
@@ -51,7 +52,12 @@ let
       '' + optionalString buildUser ''
         substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount" \
                                                       --replace "/bin/mount"              "${utillinux}/bin/mount"
-        substituteInPlace ./lib/libshare/nfs.c        --replace "/usr/sbin/exportfs"      "${nfs-utils}/bin/exportfs"
+        substituteInPlace ./lib/libshare/nfs.c        --replace "/usr/sbin/exportfs"      "${
+          # We don't *need* python support, but we set it like this to minimize closure size:
+          # If it's disabled by default, no need to enable it, even if we have python enabled
+          # And if it's enabled by default, only change that if we explicitly disable python to remove python from the closure
+          nfs-utils.override (old: { enablePython = old.enablePython or true && enablePython; })
+        }/bin/exportfs"
         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"
@@ -86,7 +92,8 @@ let
       nativeBuildInputs = [ autoreconfHook nukeReferences ]
         ++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ]);
       buildInputs = optionals buildUser [ zlib libuuid attr ]
-        ++ optionals (buildUser) [ openssl python3 ]
+        ++ optional buildUser openssl
+        ++ optional (buildUser && enablePython) python3
         ++ optional stdenv.hostPlatform.isMusl libtirpc;
 
       # for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
@@ -96,7 +103,7 @@ let
 
       configureFlags = [
         "--with-config=${configFile}"
-        (withFeatureAs buildUser "python" python3.interpreter)
+        (withFeatureAs (buildUser && enablePython) "python" python3.interpreter)
       ] ++ optionals buildUser [
         "--with-dracutdir=$(out)/lib/dracut"
         "--with-udevdir=$(out)/lib/udev"