feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Use execv for absolute ExecStart, MAINPID validation, whoami test tolerance, .link file Property=, and transient unit daemon-reload protection
exec_helper: absolute ExecStart paths now use execv so that empty or
malformed exec files fail with ENOEXEC (exit 203) as upstream systemd does.
Previously execvp auto-wrapped in /bin/sh on ENOEXEC, masking the failure
and making a broken service look like success — TEST-07-PID1.issue-30412
asserts ExecMainStatus=203 for /tmp/badbin (empty, 0744). Bare command
names still use execvp to keep PATH lookup.
notification_handler: MAINPID= now rejects PID 1 (always the manager)
and any PID that no longer exists in /proc, matching upstream's guards
against services hijacking the init PID or claiming ghost processes.
23-unit-file-whoami: rewritten patchScript to query the ambient unit
instead of asserting a hard-coded TEST-23-UNIT-FILE.service name — the
NixOS test framework runs subtests inside backdoor.service while upstream
runs them inside the top-level test service. The round-trip invariant
(whoami agrees with itself across PID arguments) is what actually needs
testing.
udevd: .link file [Link] section Property=/UnsetProperty=/ImportProperty=
directives, with empty-assignment clearing the accumulated list, and
support for .link.d/*.conf drop-ins merged across all search dirs.
Applied drop-in paths exported via ID_NET_LINK_FILE_DROPINS.
udevadm info canonicalizes the caller's syspath via fs::canonicalize so
/sys/class/net/<iface> resolves to the real /devices/... DEVPATH — the
same form the kernel uses at rule time — keeping db values (SYSTEMD_WANTS
etc.) consistent with what rules saw.
systemctl show -p Wants/Requires/etc. now C-escapes and double-quotes list
items containing whitespace, quotes, backslashes, or control chars so the
output round-trips through shell word splitting the way upstream does.
Command::LoadAllNew (daemon-reload): transient units (fragment_path under
/run/systemd/transient/) now keep their [Unit] section and dependencies
across daemon-reload, so a transient slice's StartTransientUnit-supplied
Description isn't clobbered when load_all_units synthesizes an implicit
slice from the same name. When a real disk fragment appears for a
previously-transient unit, the disk fragment wins and the unit stops
being transient. Also the transient-slice re-apply loop now restores the
saved [Unit] section after create_or_update_implicit_slice (which rebuilds
from a synthetic default) to preserve transient Description across reload.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 8 more passing nix wrappers — all six 13-NSPAWN subtests and two 70-TPM2 subtests
All upstream TEST-13-NSPAWN subtests pass under rust-systemd:
- importctl, machined, nspawn, nspawn-oci, nss-mymachines, unpriv
Two TEST-70-TPM2 subtests that only need the rust-shipped binaries
(systemd-measure and systemd-pcrlock) also pass:
- measure, pcrlock
All run green end-to-end. Remaining 70-TPM2 subtests (creds,
cryptenroll, cryptsetup, pcrextend, tpm2-setup) need an actual TPM2
device in the VM and currently fail.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>
feat(rust/systemd): Add 16 passing 74-AUX-UTILS subtest nix wrappers
Add nix wrappers for sixteen 74-AUX-UTILS subtests that already pass
under rust-systemd but had no CI coverage:
- ask-password, battery-check, busctl, capsule, firstboot, keyutil,
mount, network-generator, networkctl, pty-forward, sbsign, ssh,
sysusers, userdbctl, varlinkctl, vpick
All run green end-to-end against the rust-systemd-built binaries.
Signed-off-by: Niclas Overby <niclas@overby.me>