Demi Marie Obenour <demiobenour@gmail.com> writes:
Due to a systemd bug [1], building systemd-sysupdate does not require that systemd-pull is built as well. However, systemd-sysupdate has a run-time dependency on systemd-pull. Therefore, override the systemd derivation so that systemd-pull is built. Confusingly, this requires enabling systemd-importd.
If systemd-pull or systemd-sysupdate is not built, the resulting image will be broken and users will not be able to recover without either a reinstall or reverting to the previous version. Therefore, add a check to ensure that both are in fact built. Use 'cat' rather than just 'stat' to catch broken symlinks and the like.
The override can be removed once https://github.com/NixOS/nixpkgs/pull/461277 is merged, which builds systemd-importd by default on musl. The tests will be preserved to catch any regressions.
[1]: https://github.com/systemd/systemd/issues/39635
Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> --- Changes since v2:
- Add link to upstream Nixpkgs issue. --- host/rootfs/default.nix | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-)
We now have the Nixpkgs fix. Given that there's also an upstream fix in systemd, I don't think this is likely to regress, so my plan is to just skip this patch. (Hopefully we end up with an integration test for updates, which would catch this anyway.)