2019-05-15 09:05:37 +00:00
|
|
|
# Regression test for systemd-timesync having moved the state directory without
|
|
|
|
# upstream providing a migration path. https://github.com/systemd/systemd/issues/12131
|
|
|
|
|
2019-12-15 17:16:00 +00:00
|
|
|
import ./make-test-python.nix (
|
|
|
|
let
|
2019-05-15 09:05:37 +00:00
|
|
|
common =
|
|
|
|
{ lib, ... }:
|
2023-04-30 14:26:19 +00:00
|
|
|
{
|
2019-05-15 09:05:37 +00:00
|
|
|
# override the `false` value from the qemu-vm base profile
|
2023-11-18 21:13:49 +00:00
|
|
|
services.timesyncd.enable = lib.mkForce true;
|
|
|
|
};
|
2019-05-15 09:05:37 +00:00
|
|
|
mkVM = conf: {
|
|
|
|
imports = [
|
2024-12-10 19:26:33 +00:00
|
|
|
conf
|
|
|
|
common
|
|
|
|
];
|
2019-05-15 09:05:37 +00:00
|
|
|
};
|
2024-12-10 19:26:33 +00:00
|
|
|
in
|
|
|
|
{
|
2019-05-15 09:05:37 +00:00
|
|
|
name = "systemd-timesyncd";
|
|
|
|
nodes = {
|
|
|
|
current = mkVM { };
|
2023-04-30 14:26:19 +00:00
|
|
|
pre1909 = mkVM (
|
|
|
|
{ lib, ... }:
|
2024-12-10 19:26:33 +00:00
|
|
|
{
|
2019-05-15 09:05:37 +00:00
|
|
|
# create the path that should be migrated by our activation script when
|
|
|
|
# upgrading to a newer nixos version
|
|
|
|
system.stateVersion = "19.03";
|
2023-11-18 21:13:49 +00:00
|
|
|
systemd.tmpfiles.settings.systemd-timesyncd-test = {
|
2019-05-15 09:05:37 +00:00
|
|
|
"/var/lib/systemd/timesync".R = { };
|
2023-11-18 21:13:49 +00:00
|
|
|
"/var/lib/systemd/timesync".L.argument = "/var/lib/private/systemd/timesync";
|
|
|
|
"/var/lib/private/systemd/timesync".d = {
|
|
|
|
user = "systemd-timesync";
|
|
|
|
group = "systemd-timesync";
|
2024-12-10 19:26:33 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|
|
|
|
);
|
|
|
|
};
|
2019-05-15 09:05:37 +00:00
|
|
|
|
|
|
|
testScript = ''
|
2019-12-15 17:16:00 +00:00
|
|
|
start_all()
|
|
|
|
current.succeed("systemctl status systemd-timesyncd.service")
|
2019-05-15 09:05:37 +00:00
|
|
|
# on a new install with a recent systemd there should not be any
|
|
|
|
# leftovers from the dynamic user mess
|
2019-12-15 17:16:00 +00:00
|
|
|
current.succeed("test -e /var/lib/systemd/timesync")
|
|
|
|
current.succeed("test ! -L /var/lib/systemd/timesync")
|
2019-05-15 09:05:37 +00:00
|
|
|
|
|
|
|
# timesyncd should be running on the upgrading system since we fixed the
|
|
|
|
# file bits in the activation script
|
2019-12-15 17:16:00 +00:00
|
|
|
pre1909.succeed("systemctl status systemd-timesyncd.service")
|
2019-05-15 09:05:37 +00:00
|
|
|
|
|
|
|
# the path should be gone after the migration
|
2019-12-15 17:16:00 +00:00
|
|
|
pre1909.succeed("test ! -e /var/lib/private/systemd/timesync")
|
2019-05-15 09:05:37 +00:00
|
|
|
|
|
|
|
# and the new path should no longer be a symlink
|
2019-12-15 17:16:00 +00:00
|
|
|
pre1909.succeed("test -e /var/lib/systemd/timesync")
|
|
|
|
pre1909.succeed("test ! -L /var/lib/systemd/timesync")
|
2019-05-15 09:05:37 +00:00
|
|
|
|
|
|
|
# after a restart things should still work and not fail in the activation
|
|
|
|
# scripts and cause the boot to fail..
|
2019-12-15 17:16:00 +00:00
|
|
|
pre1909.shutdown()
|
|
|
|
pre1909.start()
|
|
|
|
pre1909.succeed("systemctl status systemd-timesyncd.service")
|
2019-05-15 09:05:37 +00:00
|
|
|
'';
|
|
|
|
}
|
|
|
|
)
|