Conversation
|
With #429797 merged, can you rebase this? |
d780ca1 to
7e52ac3
Compare
|
Rebased to include the cracklib changes. Bashless kbd depends on legionus/kbd#138 and that's why I removed the disallowedRequisites commit. An alternative would be to not directly depend on kbd in systemd. However I wouldn't know which path to use. |
7e52ac3 to
6de672f
Compare
|
Disabled compression in kbd now to get rid of bash. Fonts and keymaps are now stored uncompressed by default. From the 899eb19700d40c124e5f30475323de0091f20755:
|
6de672f to
277c9bb
Compare
|
I'm really excited for this. Anything you need testing-wise, @nikstur? |
Awesome! Any of the normal systemd testing would be appreciated. I ran the lvm2-vdo tests already. Probably makes sense to cherry-pick the changes onto master to not have to rebuild everything. |
This enables us to use the lib output without pulling in bash. - Enable structuredAttrs - Enable strictDeps - Add bash to disallowedRequisites
This enables us to use the lib and out output without pulling in bash. - Enable structuredAttrs - Enable strictDeps - Add bash to disallowedRequisites
This enables us to use the lib and bin output without pulling in bash. - Enable structuredAttrs - Enable strictDeps - Add bash to disallowedRequisites
This enables us to use the lib output without pulling in bash. - Enable structuredAttrs - Enable strictDeps - Add bash to disallowedRequisites
Removes the dependency on bash. Increases the binary size by 2.3MiB. However, with the 9MiB saved by removing the excessive dictionary from cracklib (NixOS#429797), this still results in a net reduction of the mandatory closure size. Once kbd allows using the compression libraries instead of shelling out to the binaries (github.com/legionus/kbd/issues/138) we can compress by default again. Add the package `kbdCompressed` for users that want to load custom compressed fonts and keymaps. Alternatively, they can still uncompress custom fonts and keymaps themselves and then call loadkeys/setfont on it.
This enables us to use the lib output without pulling in bash. - Enable structuredAttrs - Enable strictDeps - Add bash to disallowedRequisites
Since systemd/systemd#17026 (v248 in 2020), systemd can use nftables without any new dependency! In 259, systemd plans to remove iptables suport altogether.
Using the ambient /bin/sh makes sense to use as the debug shell because it's inherently something from the environment. Some years ago this was changed to an explicit Nix Store path. However, this doesn't really make sense and makes many things (like optionally removing bash from the system) hard while not making anything easier or better.
The only thing that needed bashInteractive were bash scripts for RPM. Remove the RPM scripts (we definitely do not need) to get rid of bashInteractive.
17003fe to
294b2f5
Compare
|
pkgsStatic.lvm2 now fails to build due to the disallowed requisite |
Don't ask me why, but somehow bash leaks into propagated-build-inputs on static. |
|
Every build input becomes a propagated build input on static — is that helpful? |
So this whole idea of moving scripts to a separate output doesn't work on static because bash will always be propagated because its in the buildInputs? Is there a way to fix this (i.e. to ensure that bash isn't propagated)? |
|
Hmm. There are other packages that just In the long term we can probably revisit this behaviour of pkgsStatic. We've talked before about encoding absolute paths to libraries in .pc files to create references. If we ever end up doing that I think we can drop this propagation hack once and for all, but that's a way off for now. |
|
Right… |
|
Fix is here: #435567 |
|
systemdUkify is another casualty, because Python depends on bash. |
This is basically a revert of a tiny part of PR #429972.
Enforce that the closure of systemd remains bashless.
See the individual commits for more reasoning.
Review commit-by-commit.
Depended on (already merged):
Part of #428908
Things done
passthru.tests.nixpkgs-reviewon this PR. See nixpkgs-review usage../result/bin/.Add a 👍 reaction to pull requests you find important.