From e2b65c023983cd579e1f9eb050504fd5959ecb41 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 3 Dec 2024 09:30:45 +0100 Subject: [PATCH] nixos/tzupdate: make enabled module actually be enabled Without this fix, when setting `services.tzupdate.enable = true`, the service would never run automatically. Now, it's actually enabled in systemd and it actually gets executed. Still, it could be improved with a timer as explained in https://github.com/NixOS/nixpkgs/issues/127984#issuecomment-2512059143, but this makes it at least work out of the box when rebooting the system. --- nixos/modules/services/misc/tzupdate.nix | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/misc/tzupdate.nix b/nixos/modules/services/misc/tzupdate.nix index 18fee37ddd1b..65a6f7d72098 100644 --- a/nixos/modules/services/misc/tzupdate.nix +++ b/nixos/modules/services/misc/tzupdate.nix @@ -26,11 +26,12 @@ in # zone, which is better than silently overriding it. time.timeZone = null; - # We provide a one-shot service which can be manually run. We could - # provide a service that runs on startup, but it's tricky to get - # a service to run after you have *internet* access. + # We provide a one-shot service that runs at startup once network + # interfaces are up, but we can’t ensure we actually have Internet access + # at that point. It can also be run manually with `systemctl start tzupdate`. systemd.services.tzupdate = { description = "tzupdate timezone update service"; + wantedBy = [ "multi-user.target" ]; wants = [ "network-online.target" ]; after = [ "network-online.target" ]; script = ''