diff --git a/pkgs/by-name/uu/uutils-coreutils/package.nix b/pkgs/by-name/uu/uutils-coreutils/package.nix index 1a43ed4ae5309..3e04d42b8724c 100644 --- a/pkgs/by-name/uu/uutils-coreutils/package.nix +++ b/pkgs/by-name/uu/uutils-coreutils/package.nix @@ -7,7 +7,7 @@ python3Packages, versionCheckHook, nix-update-script, - + withDocs ? true, prefix ? "uutils-", buildMulticallBinary ? true, }: @@ -23,16 +23,19 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-OZ9AsCJmQmn271OzEmqSZtt1OPn7zHTScQiiqvPhqB0="; }; + postPatch = '' + # don't enforce the building of the man page + substituteInPlace GNUmakefile \ + --replace 'install: build' 'install:' + ''; + cargoDeps = rustPlatform.fetchCargoVendor { inherit (finalAttrs) src; name = "uutils-coreutils-${finalAttrs.version}"; hash = "sha256-DsVLp2Y15k+KQI7S6A4hylOhJN016MEdEWx9VQIQEgQ="; }; - nativeBuildInputs = [ - rustPlatform.cargoSetupHook - python3Packages.sphinx - ]; + nativeBuildInputs = [ rustPlatform.cargoSetupHook ] ++ lib.optional withDocs python3Packages.sphinx; makeFlags = [ @@ -42,7 +45,11 @@ stdenv.mkDerivation (finalAttrs: { "INSTALLDIR_MAN=${placeholder "out"}/share/man/man1" ] ++ lib.optionals (prefix != null) [ "PROG_PREFIX=${prefix}" ] - ++ lib.optionals buildMulticallBinary [ "MULTICALL=y" ]; + ++ lib.optionals buildMulticallBinary [ "MULTICALL=y" ] + ++ lib.optionals (!withDocs) [ + "build-coreutils" + "build-pkgs" + ]; # too many impure/platform-dependent tests doCheck = false; @@ -69,7 +76,6 @@ stdenv.mkDerivation (finalAttrs: { CLI utils in Rust. This repo is to aggregate the GNU coreutils rewrites. ''; homepage = "https://github.com/uutils/coreutils"; - changelog = "https://github.com/uutils/coreutils/releases/tag/${finalAttrs.version}"; maintainers = with lib.maintainers; [ siraben ]; license = lib.licenses.mit; platforms = lib.platforms.unix; diff --git a/pkgs/development/tools/misc/autoconf/default.nix b/pkgs/development/tools/misc/autoconf/default.nix index 6eac0fd183933..ecee7caf8c6f8 100644 --- a/pkgs/development/tools/misc/autoconf/default.nix +++ b/pkgs/development/tools/misc/autoconf/default.nix @@ -25,6 +25,10 @@ stdenv.mkDerivation rec { hash = "sha256-uohcExlXjWyU1G6bDc60AUyq/iSQ5Deg28o/JwoiP1o="; }; + patches = [ + ./uutils-mkdirp.patch + ]; + strictDeps = true; nativeBuildInputs = [ m4 diff --git a/pkgs/development/tools/misc/autoconf/uutils-mkdirp.patch b/pkgs/development/tools/misc/autoconf/uutils-mkdirp.patch new file mode 100644 index 0000000000000..caecc81d6cb13 --- /dev/null +++ b/pkgs/development/tools/misc/autoconf/uutils-mkdirp.patch @@ -0,0 +1,14 @@ +diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4 +index 8226a7c..3b231b9 100644 +--- a/lib/autoconf/programs.m4 ++++ b/lib/autoconf/programs.m4 +@@ -701,7 +701,8 @@ if test -z "$MKDIR_P"; then + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + *'BusyBox '* | \ +- 'mkdir (fileutils) '4.1*) ++ 'mkdir (fileutils) '4.1* | \ ++ 'mkdir 0.0.'*) + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext + break 3;; + esac diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index a4d72af0de67e..5923c556ec710 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -91,6 +91,36 @@ with pkgs; gccStdenvNoLibs = mkStdenvNoLibs gccStdenv; clangStdenvNoLibs = mkStdenvNoLibs clangStdenv; + stdenvUutilsCoreutils = + let + uutils-coreutils = pkgs.uutils-coreutils-minimal; + bintools = wrapBintoolsWith { + bintools = stdenv.cc.bintools.bintools; + coreutils = uutils-coreutils; + }; + in + stdenv.override { + cc = stdenv.cc.override { + coreutils = uutils-coreutils; + inherit bintools; + }; + + initialPath = (lib.remove coreutils stdenv.initialPath) ++ [ uutils-coreutils ]; + allowedRequisites = lib.mapNullable ( + rs: + (lib.remove [ + bintools + expand-response-params + coreutils + ] rs) + ++ [ + bintools + expand-response-params + uutils-coreutils + ] + ) (stdenv.allowedRequisites or null); + }; + # For convenience, allow callers to get the path to Nixpkgs. path = ../..; @@ -2722,13 +2752,15 @@ with pkgs; llvmPackages = llvmPackages_13; }; - coreutils = callPackage ../tools/misc/coreutils { }; + coreutils = + if stdenv.hostPlatform.useUutilsCoreutils or false then uutils-coreutils else gnu-coreutils; + gnu-coreutils = callPackage ../tools/misc/coreutils { }; # The coreutils above are built with dependencies from # bootstrapping. We cannot override it here, because that pulls in # openssl from the previous stage as well. - coreutils-full = callPackage ../tools/misc/coreutils { minimal = false; }; - coreutils-prefixed = coreutils.override { + coreutils-full = gnu-coreutils.override { minimal = false; }; + coreutils-prefixed = gnu-coreutils.override { withPrefix = true; singleBinary = false; }; @@ -2890,6 +2922,11 @@ with pkgs; uutils-coreutils-noprefix = uutils-coreutils.override { prefix = null; }; + uutils-coreutils-minimal = pkgs.uutils-coreutils.override { + prefix = null; + withDocs = false; + }; + vorta = qt6Packages.callPackage ../applications/backup/vorta { }; xkcdpass = with python3Packages; toPythonApplication xkcdpass; @@ -2990,7 +3027,10 @@ with pkgs; inherit (windows) libgnurx; }; - findutils = callPackage ../tools/misc/findutils { }; + findutils = callPackage ../tools/misc/findutils { + coreutils = + if stdenv.hostPlatform.useUutilsCoreutils or false then uutils-coreutils-minimal else gnu-coreutils; + }; bsd-fingerd = bsd-finger.override { buildProduct = "daemon"; diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix index 7bca60a4caa56..caf1dd68668f8 100644 --- a/pkgs/top-level/stage.nix +++ b/pkgs/top-level/stage.nix @@ -285,6 +285,21 @@ let else throw "Musl libc only supports 64-bit Linux systems."; + pkgsUutils = + if stdenv.hostPlatform.isLinux && stdenv.buildPlatform.is64bit then + nixpkgsFun { + overlays = [ + (self': super': { + pkgsUutils = super'; + }) + ] ++ overlays; + ${if stdenv.hostPlatform == stdenv.buildPlatform then "localSystem" else "crossSystem"} = { + config = lib.systems.parse.tripleFromSystem (makeMuslParsedPlatform stdenv.hostPlatform.parsed); + }; + } + else + throw "uutils only supports 64-bit Linux systems."; + # All packages built for i686 Linux. # Used by wine, firefox with debugging version of Flash, ... pkgsi686Linux =