diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index 361151665018..19c7b7cabfcc 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -13,7 +13,7 @@ let pkgs.attr pkgs.bashInteractive # bash with ncurses support pkgs.bzip2 - pkgs.coreutils + pkgs.coreutils-full pkgs.cpio pkgs.curl pkgs.diffutils diff --git a/pkgs/tools/misc/coreutils/default.nix b/pkgs/tools/misc/coreutils/default.nix index c9af34425719..99a3b922901e 100644 --- a/pkgs/tools/misc/coreutils/default.nix +++ b/pkgs/tools/misc/coreutils/default.nix @@ -1,9 +1,12 @@ { stdenv, lib, buildPackages , autoreconfHook, texinfo, fetchurl, perl, xz, libiconv, gmp ? null , hostPlatform, buildPlatform -, aclSupport ? false, acl ? null -, attrSupport ? false, attr ? null +, aclSupport ? stdenv.isLinux, acl ? null +, attrSupport ? stdenv.isLinux, attr ? null , selinuxSupport? false, libselinux ? null, libsepol ? null +# No openssl in default version, so openssl-induced rebuilds aren't too big. +# It makes *sum functions significantly faster. +, minimal ? true, withOpenssl ? !minimal, openssl ? null , withPrefix ? false , singleBinary ? "symlinks" # you can also pass "shebangs" or false }: @@ -38,9 +41,10 @@ stdenv.mkDerivation rec { outputs = [ "out" "info" ]; nativeBuildInputs = [ perl xz.bin ]; - configureFlags = - optional (singleBinary != false) + configureFlags = [ "--with-packager=https://NixOS.org" ] + ++ optional (singleBinary != false) ("--enable-single-binary" + optionalString (isString singleBinary) "=${singleBinary}") + ++ optional withOpenssl "--with-openssl" ++ optional hostPlatform.isSunOS "ac_cv_func_inotify_init=no" ++ optional withPrefix "--program-prefix=g" ++ optionals (hostPlatform != buildPlatform && hostPlatform.libc == "glibc") [ @@ -53,6 +57,7 @@ stdenv.mkDerivation rec { buildInputs = [ gmp ] ++ optional aclSupport acl ++ optional attrSupport attr + ++ optional withOpenssl openssl ++ optionals hostPlatform.isCygwin [ autoreconfHook texinfo ] # due to patch ++ optionals selinuxSupport [ libselinux libsepol ] # TODO(@Ericson2314): Investigate whether Darwin could benefit too @@ -83,9 +88,13 @@ stdenv.mkDerivation rec { sed -i Makefile -e 's|^INSTALL =.*|INSTALL = ${buildPackages.coreutils}/bin/install -c|' ''; - postInstall = optionalString (hostPlatform != buildPlatform) '' + postInstall = optionalString (hostPlatform != buildPlatform && !minimal) '' rm $out/share/man/man1/* cp ${buildPackages.coreutils}/share/man/man1/* $out/share/man/man1 + '' + # du: 8.7 M locale + 0.4 M man pages + + optionalString minimal '' + rm -r "$out/share" ''; meta = { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6e566727f399..0056ed186956 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1957,11 +1957,8 @@ with pkgs; cool-retro-term = libsForQt5.callPackage ../applications/misc/cool-retro-term { }; - coreutils = callPackage ../tools/misc/coreutils { - aclSupport = stdenv.isLinux; - attrSupport = stdenv.isLinux; - }; - + coreutils = callPackage ../tools/misc/coreutils { }; + coreutils-full = coreutils.override { minimal = false; }; coreutils-prefixed = coreutils.override { withPrefix = true; singleBinary = false; }; corkscrew = callPackage ../tools/networking/corkscrew { };