mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 19:55:41 +03:00
nixos/automatic-timezoned: set time.timeZone to null to avoid silent overriding
Currently if a timezone was selected explicitly, the service will silently override the value, essentially ignoring what is meant to be a a deliberate choice of option. This may cause confusion as to why the option is not doing anything when this service is enabled, particularly in more complex set-ups after some time. This will simply make the choice deliberate from the user's part, either by having to remove the option or lowering its priority as a recognition that it may be ignored. This change was inspired by the `services.tzupdate` module, which does the same. [1]: <https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/misc/tzupdate.nix#L24>
This commit is contained in:
parent
46ef0f39dd
commit
8a277a6abf
2 changed files with 12 additions and 0 deletions
|
@ -678,6 +678,9 @@
|
|||
|
||||
- ZFS now imports its pools in `postResumeCommands` rather than `postDeviceCommands`. If you had `postDeviceCommands` scripts that depended on ZFS pools being imported, those now need to be in `postResumeCommands`.
|
||||
|
||||
- `services.automatic-timezoned.enable = true` will now set `time.timeZone = null`.
|
||||
This is to avoid silently shadowing a user's explicitly defined timezone without recognition on the user's part.
|
||||
|
||||
- `services.localtimed.enable = true` will now set `time.timeZone = null`.
|
||||
This is to avoid silently shadowing a user's explicitly defined timezone without recognition on the user's part.
|
||||
|
||||
|
|
|
@ -16,6 +16,11 @@ in
|
|||
timezone up-to-date based on the current location. It uses geoclue2 to
|
||||
determine the current location and systemd-timedated to actually set
|
||||
the timezone.
|
||||
|
||||
To avoid silent overriding by the service, if you have explicitly set a
|
||||
timezone, either remove it or ensure that it is set with a lower priority
|
||||
than the default value using `lib.mkDefault` or `lib.mkOverride`. This is
|
||||
to make the choice deliberate. An error will be presented otherwise.
|
||||
'';
|
||||
};
|
||||
package = mkPackageOption pkgs "automatic-timezoned" { };
|
||||
|
@ -23,6 +28,10 @@ in
|
|||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
# This will give users an error if they have set an explicit time
|
||||
# zone, rather than having the service silently override it.
|
||||
time.timeZone = null;
|
||||
|
||||
security.polkit.extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (action.id == "org.freedesktop.timedate1.set-timezone"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue