diff --git a/nixos/modules/system/boot/timesyncd.nix b/nixos/modules/system/boot/timesyncd.nix index 71f49a675b12..b3913efc5cc1 100644 --- a/nixos/modules/system/boot/timesyncd.nix +++ b/nixos/modules/system/boot/timesyncd.nix @@ -74,17 +74,6 @@ in # This means that systemd-timesyncd needs to have NSS modules path in LD_LIBRARY_PATH. When systemd-resolved is disabled we still need to set # NSS module path so that systemd-timesyncd keeps using other NSS modules that are configured in the system. environment.LD_LIBRARY_PATH = config.system.nssModules.path; - - preStart = - # workaround an issue of systemd-timesyncd not starting due to upstream systemd reverting their dynamic users changes - # - https://github.com/NixOS/nixpkgs/pull/61321#issuecomment-492423742 - # - https://github.com/systemd/systemd/issues/12131 - lib.optionalString (versionOlder config.system.stateVersion "19.09") '' - if [ -L /var/lib/systemd/timesync ]; then - rm /var/lib/systemd/timesync - mv /var/lib/private/systemd/timesync /var/lib/systemd/timesync - fi - ''; }; environment.etc."systemd/timesyncd.conf".text = '' diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index a6c3ff57d737..de6cf5c0416c 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -1482,7 +1482,6 @@ in systemd-sysusers-immutable = runTest ./systemd-sysusers-immutable.nix; systemd-sysusers-mutable = runTest ./systemd-sysusers-mutable.nix; systemd-sysusers-password-option-override-ordering = runTest ./systemd-sysusers-password-option-override-ordering.nix; - systemd-timesyncd = runTest ./systemd-timesyncd.nix; systemd-timesyncd-nscd-dnssec = runTest ./systemd-timesyncd-nscd-dnssec.nix; systemd-user-linger = runTest ./systemd-user-linger.nix; systemd-user-tmpfiles-rules = runTest ./systemd-user-tmpfiles-rules.nix; diff --git a/nixos/tests/systemd-timesyncd.nix b/nixos/tests/systemd-timesyncd.nix deleted file mode 100644 index 83a3d820c50b..000000000000 --- a/nixos/tests/systemd-timesyncd.nix +++ /dev/null @@ -1,70 +0,0 @@ -# Regression test for systemd-timesync having moved the state directory without -# upstream providing a migration path. https://github.com/systemd/systemd/issues/12131 - -let - common = - { lib, ... }: - { - # override the `false` value from the qemu-vm base profile - services.timesyncd.enable = lib.mkForce true; - }; - mkVM = conf: { - imports = [ - conf - common - ]; - }; -in -{ - name = "systemd-timesyncd"; - nodes = { - current = mkVM { }; - pre1909 = mkVM ( - { lib, ... }: - { - # create the path that should be migrated by our activation script when - # upgrading to a newer nixos version - system.stateVersion = "19.03"; - systemd.services.old-timesync-state-dir = { - requiredBy = [ "sysinit.target" ]; - before = [ "systemd-timesyncd.service" ]; - after = [ "local-fs.target" ]; - unitConfig.DefaultDependencies = false; - serviceConfig.Type = "oneshot"; - script = '' - rm -rf /var/lib/systemd/timesync - mkdir -p /var/lib/systemd /var/lib/private/systemd/timesync - ln -s /var/lib/private/systemd/timesync /var/lib/systemd/timesync - chown systemd-timesync: /var/lib/private/systemd/timesync - ''; - }; - } - ); - }; - - testScript = '' - start_all() - current.succeed("systemctl status systemd-timesyncd.service") - # on a new install with a recent systemd there should not be any - # leftovers from the dynamic user mess - current.succeed("test -e /var/lib/systemd/timesync") - current.succeed("test ! -L /var/lib/systemd/timesync") - - # timesyncd should be running on the upgrading system since we fixed the - # file bits in the activation script - pre1909.succeed("systemctl status systemd-timesyncd.service") - - # the path should be gone after the migration - pre1909.succeed("test ! -e /var/lib/private/systemd/timesync") - - # and the new path should no longer be a symlink - pre1909.succeed("test -e /var/lib/systemd/timesync") - pre1909.succeed("test ! -L /var/lib/systemd/timesync") - - # after a restart things should still work and not fail in the activation - # scripts and cause the boot to fail.. - pre1909.shutdown() - pre1909.start() - pre1909.succeed("systemctl status systemd-timesyncd.service") - ''; -}