Without the change the eval fails as:
$ nix build --no-link -f. defaultPkgConfigPackages.libsystemd.tests
error:
… while evaluating the attribute 'systemd-timesyncd'
… in the condition of the assert statement
at pkgs/os-specific/linux/systemd/default.nix:1023:11:
1022| name: value:
1023| assert lib.assertMsg (lib.isDerivation value) "${name} is not a derivation";
| ^
1024| value
… in the left operand of the OR (||) operator
at /home/slyfox/dev/git/nixpkgs-master/lib/asserts.nix:50:31:
49| # TODO(Profpatsch): add tests that check stderr
50| assertMsg = pred: msg: pred || throw msg;
| ^
51|
error: attribute 'systemd-timesyncd' missing
at pkgs/os-specific/linux/systemd/default.nix:1010:13:
1009| systemd-sysusers-password-option-override-ordering
1010| systemd-timesyncd
| ^
1011| systemd-timesyncd-nscd-dnssec
This removes a dependency cycle from systemd, removing a rebuild. At the
same time it is just as convenience for users. They need to include the
`kbdVlock` package now instead of the `vlock` output.
I recently deployed systemd 257.9 to a bunch of machines as mitigation
for #440073. This caused some confusion in the aftermath since we had
257.9 deployed (via an override for `systemd.package` to not rebuild the
world), but `systemctl --version` still reported 257.8.
This patch fixes that problem by using the final version everywhere
instead of the version from the let-binding.
I decided to remove the let-binding entirely to avoid re-introducing the
wrong usage again.
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.
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.
Since https://github.com/systemd/systemd/pull/17026 (v248 in 2020),
systemd can use nftables without any new dependency!
In 259, systemd plans to remove iptables suport altogether.
Remove broken patches. The nspawn conditional can be omitted,
as it will not be installed on `systemdLibs` anyways.
Testing done:
```
nix why-depends --precise .#systemdMinimal.out .#getent.out
/nix/store/x2dhq7nb43xv2c3hh8y7g4bkdzndy7av-systemd-minimal-257.7
└───bin/systemd-nspawn: …valid, ignoring....../nix/store/h5f0zw8gp3fsrzldsi9x2j29gqz6dv4h-getent-glibc-2.40-66/bin/getent…
→ /nix/store/h5f0zw8gp3fsrzldsi9x2j29gqz6dv4h-getent-glibc-2.40-66
```
```
'git+file:///home/grimmauld/coding/nixpkgs#systemdLibs.out' does not depend on 'git+file:///home/grimmauld/coding/nixpkgs#getent.out'
```
`systemdMinimal`, `systemdLibs`, `pam` all builds.
`pkgsMusl.pam` evals successfully.
I made a mistake and apparently I incorrectly tested
the commit 40df6d5813
Now with swapping these layers it evaluates again; easiest to try by
nix-build pkgs/top-level/release-cross.nix -A rpi.mpg123.aarch64-darwin --dry-run
hydra-queue-runner complains like this:
loading build 302783324 (nixpkgs:cross-trunk:rpi-musl.mpg123.x86_64-linux)
queue monitor: error:
… while loading build 302783324:
… while parsing derivation '/nix/store/8r46dmzzchv9jhb09y8dlih4h5k6smkm-systemd-minimal-armv6l-unknown-linux-musleabihf-257.6.drv'
error: attribute 'disallowedReferences' must be a list of strings
checking the queue for builds...
loading build 302783295 (nixpkgs:cross-trunk:rpi-musl.mpg123.aarch64-darwin)