-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
stdenv: add uutils-coreutils stdenv #116274
base: master
Are you sure you want to change the base?
stdenv: add uutils-coreutils stdenv #116274
Conversation
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/rust-coreutils-replacement/11867/4 |
Is it ...practical? |
The single binary is much smaller and when rust supports lining to shared find it will be reduced even further. uutils/coreutils#747 |
3fea5fc
to
0570034
Compare
8f1b0e3
to
a898f81
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing the hash (temporary workaround) GNU Hello compiles and runs:
$ nix-build --show-trace -E 'with import ./. { }; hello.override { stdenv = stdenvUutilsCoreutils; }' && ./result/bin/hello
[nix-shell:~/nixpkgs]$ nix-build --show-trace -E 'with import ./. { }; hello.override { stdenv = stdenvUutilsCoreutils; }' && ./result/bin/hello
/nix/store/jxklig35p42bxhp9yzk0gkgz2d5i8vml-hello-2.10
Hello, world!
Checked as of 2021-06-16
shrinking RPATHs of ELF executables and libraries in /nix/store/19n3pm10rr79445054shvid8m49mab43-ed-1.17
shrinking /nix/store/19n3pm10rr79445054shvid8m49mab43-ed-1.17/bin/ed
gzipping man pages under /nix/store/19n3pm10rr79445054shvid8m49mab43-ed-1.17/share/man/
strip is /nix/store/b8y61srrw1m2n87dr5snfaxy0rqgk6qy-binutils-2.35.1/bin/strip
stripping (with command strip and flags -S) in /nix/store/19n3pm10rr79445054shvid8m49mab43-ed-1.17/bin
patching script interpreter paths in /nix/store/19n3pm10rr79445054shvid8m49mab43-ed-1.17
/nix/store/19n3pm10rr79445054shvid8m49mab43-ed-1.17/bin/red: interpreter directive changed from "#! /bin/sh" to "/nix/store/3xqkrab9zqpv91bw1xp8551sjk7qrc34-bash-4.4-p23/bin/sh"
thread 'main' panicked at 'Unable to parse date
Invalid day.', src/uu/touch/src/touch.rs:248:19
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
builder for '/nix/store/yh6a7878qfg3qqi24mk61jaax47y2jpa-ed-1.17.drv' failed with exit code 101
error: build of '/nix/store/yh6a7878qfg3qqi24mk61jaax47y2jpa-ed-1.17.drv' failed
these derivations will be built:
/nix/store/7wna7whwryrrmsm6fpf02sqpsaw4jpv9-vim-8.2.2567.drv
building '/nix/store/7wna7whwryrrmsm6fpf02sqpsaw4jpv9-vim-8.2.2567.drv'...
unpacking sources
unpacking source archive /nix/store/dvh1x2m7gvp1iv5jjlvrf5ry5g3ay23k-source
cp: error: '/nix/store/dvh1x2m7gvp1iv5jjlvrf5ry5g3ay23k-source/src/normal.c' -> 'source/src/normal.c': Too many open files (os error 24)
do not know how to unpack source archive /nix/store/dvh1x2m7gvp1iv5jjlvrf5ry5g3ay23k-source
builder for '/nix/store/7wna7whwryrrmsm6fpf02sqpsaw4jpv9-vim-8.2.2567.drv' failed with exit code 1
error: build of '/nix/store/7wna7whwryrrmsm6fpf02sqpsaw4jpv9-vim-8.2.2567.drv' failed Compiling other packages with the uutils-based stdenv:
|
Unfortunately it will take some digging to figure out exactly what went wrong in the builds that failed, so that upstream has a clear view on what incompatibilities they need to address. |
45ff179
to
92f205b
Compare
useUutilsCoreutils = true; | ||
config = "${stdenv.hostPlatform.linuxArch}-pc-linux-gnu"; | ||
}; | ||
} else throw "Musl libc only supports Linux systems."; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: copy&paste "Musl".
Any chance this pr gets merged? Thanks |
No, because it is not practical and uutils is not fully compatible with gnu coreutils. |
Closing this as sadly abandoned. |
Could draft it until uutils is more matute |
Please re-open. I have no mechanic to not delete this branch from my fork. |
I think it is now mature enough to replace gnu. |
0.0.22 released |
Reverts commit d16d129. This did not work since many depend on stdenv. References: - NixOS/nixpkgs#132617 - NixOS/nixpkgs#116274
Can we rebase again? |
If this is still being worked on - what about using uutils findutils and uutils diffutils as well? I'm not sure how stable they are compared to uutils coreutils though... |
No, it isn't. eg autoconf relies on many very exact behaviors and breaks without them.
Currently not and I haven't thought about this. |
Do you have example of this? I haven't seen such issues for the last year |
See the PR title with many examples. I did not try this recently as it is quite home intensive. |
To try this use the pkgsUutils overlay and replace python3 with any package:
ToDo:
Issues preventing us from using it in a stdenv:
No such file or directory
uutils/coreutils#2335[
make with MULTICALL is missing symlink from test to [ uutils/coreutils#2420Motivation for this change
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)