Merge pull request #84129 from Infinisil/removing-python-from-grub
Support removing python from zfs/grub closure
This commit is contained in:
commit
b293421a69
|
@ -1,6 +1,7 @@
|
||||||
{ stdenv, fetchurl, fetchpatch, lib, pkgconfig, utillinux, libcap, libtirpc, libevent
|
{ stdenv, fetchurl, fetchpatch, lib, pkgconfig, utillinux, libcap, libtirpc, libevent
|
||||||
, sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
|
, sqlite, kerberos, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
|
||||||
, python3, buildPackages, nixosTests
|
, python3, buildPackages, nixosTests
|
||||||
|
, enablePython ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
|
@ -25,8 +26,7 @@ stdenv.mkDerivation rec {
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
libtirpc libcap libevent sqlite lvm2
|
libtirpc libcap libevent sqlite lvm2
|
||||||
libuuid keyutils kerberos tcp_wrappers
|
libuuid keyutils kerberos tcp_wrappers
|
||||||
python3
|
] ++ lib.optional enablePython python3;
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
@ -96,6 +96,9 @@ stdenv.mkDerivation rec {
|
||||||
-e "s,/sbin/modprobe,${kmod}/bin/modprobe,g" \
|
-e "s,/sbin/modprobe,${kmod}/bin/modprobe,g" \
|
||||||
-e "s,/usr/sbin,$out/bin,g" \
|
-e "s,/usr/sbin,$out/bin,g" \
|
||||||
$out/etc/systemd/system/*
|
$out/etc/systemd/system/*
|
||||||
|
'' + lib.optionalString (!enablePython) ''
|
||||||
|
# Remove all scripts that require python (currently mountstats and nfsiostat)
|
||||||
|
grep -l /usr/bin/python $out/bin/* | xargs -I {} rm -v {}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# One test fails on mips.
|
# One test fails on mips.
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
# Kernel dependencies
|
# Kernel dependencies
|
||||||
, kernel ? null
|
, kernel ? null
|
||||||
|
, enablePython ? true
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with stdenv.lib;
|
with stdenv.lib;
|
||||||
|
@ -57,7 +58,12 @@ let
|
||||||
'' + optionalString buildUser ''
|
'' + optionalString buildUser ''
|
||||||
substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount" "${utillinux}/bin/umount" \
|
substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount" "${utillinux}/bin/umount" \
|
||||||
--replace "/bin/mount" "${utillinux}/bin/mount"
|
--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/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 ./config/zfs-build.m4 --replace "\$sysconfdir/init.d" "$out/etc/init.d"
|
||||||
substituteInPlace ./etc/zfs/Makefile.am --replace "\$(sysconfdir)" "$out/etc"
|
substituteInPlace ./etc/zfs/Makefile.am --replace "\$(sysconfdir)" "$out/etc"
|
||||||
|
@ -92,7 +98,8 @@ let
|
||||||
nativeBuildInputs = [ autoreconfHook nukeReferences ]
|
nativeBuildInputs = [ autoreconfHook nukeReferences ]
|
||||||
++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ]);
|
++ optionals buildKernel (kernel.moduleBuildDependencies ++ [ perl ]);
|
||||||
buildInputs = optionals buildUser [ zlib libuuid attr ]
|
buildInputs = optionals buildUser [ zlib libuuid attr ]
|
||||||
++ optionals (buildUser) [ openssl python3 ]
|
++ optional buildUser openssl
|
||||||
|
++ optional (buildUser && enablePython) python3
|
||||||
++ optional stdenv.hostPlatform.isMusl libtirpc;
|
++ optional stdenv.hostPlatform.isMusl libtirpc;
|
||||||
|
|
||||||
# for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
|
# for zdb to get the rpath to libgcc_s, needed for pthread_cancel to work
|
||||||
|
@ -102,7 +109,7 @@ let
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--with-config=${configFile}"
|
"--with-config=${configFile}"
|
||||||
(withFeatureAs buildUser "python" python3.interpreter)
|
(withFeatureAs (buildUser && enablePython) "python" python3.interpreter)
|
||||||
] ++ optionals buildUser [
|
] ++ optionals buildUser [
|
||||||
"--with-dracutdir=$(out)/lib/dracut"
|
"--with-dracutdir=$(out)/lib/dracut"
|
||||||
"--with-udevdir=$(out)/lib/udev"
|
"--with-udevdir=$(out)/lib/udev"
|
||||||
|
|
|
@ -16864,7 +16864,7 @@ in
|
||||||
|
|
||||||
zenpower = callPackage ../os-specific/linux/zenpower { };
|
zenpower = callPackage ../os-specific/linux/zenpower { };
|
||||||
|
|
||||||
inherit (callPackage ../os-specific/linux/zfs {
|
inherit (callPackages ../os-specific/linux/zfs {
|
||||||
configFile = "kernel";
|
configFile = "kernel";
|
||||||
inherit kernel;
|
inherit kernel;
|
||||||
}) zfsStable zfsUnstable;
|
}) zfsStable zfsUnstable;
|
||||||
|
@ -17503,7 +17503,7 @@ in
|
||||||
|
|
||||||
zenmonitor = callPackage ../os-specific/linux/zenmonitor { };
|
zenmonitor = callPackage ../os-specific/linux/zenmonitor { };
|
||||||
|
|
||||||
inherit (callPackage ../os-specific/linux/zfs {
|
inherit (callPackages ../os-specific/linux/zfs {
|
||||||
configFile = "user";
|
configFile = "user";
|
||||||
}) zfsStable zfsUnstable;
|
}) zfsStable zfsUnstable;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user