diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 86e952ae70c8..1a6b09df2633 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -1642,6 +1642,14 @@
+
+
+ The auto-upgrade service now accepts persistent (default:
+ true) parameter. By default auto-upgrade will now run
+ immediately if it would have been triggered at least once
+ during the time when the timer was inactive.
+
+
If you are using Wayland you can choose to use the Ozone
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index 68ca9a6c3c84..de1251104188 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -597,6 +597,10 @@ In addition to numerous new and upgraded packages, this release has the followin
- Support for older versions of hadoop have been added to the module
- Overriding and extending site XML files has been made easier
+- The auto-upgrade service now accepts persistent (default: true) parameter.
+ By default auto-upgrade will now run immediately if it would have been triggered at least
+ once during the time when the timer was inactive.
+
- If you are using Wayland you can choose to use the Ozone Wayland support
in Chrome and several Electron apps by setting the environment variable
`NIXOS_OZONE_WL=1` (for example via
diff --git a/nixos/modules/tasks/auto-upgrade.nix b/nixos/modules/tasks/auto-upgrade.nix
index a5755d08d7de..d00dc761d6e3 100644
--- a/nixos/modules/tasks/auto-upgrade.nix
+++ b/nixos/modules/tasks/auto-upgrade.nix
@@ -63,13 +63,16 @@ in {
};
dates = mkOption {
- default = "04:40";
type = types.str;
+ default = "04:40";
+ example = "daily";
description = ''
- Specification (in the format described by
+ How often or when upgrade occurs. For most desktop and server systems
+ a sufficient upgrade frequency is once a day.
+
+ The format is described in
systemd.time
- 7) of the time at
- which the update will occur.
+ 7.
'';
};
@@ -123,6 +126,22 @@ in {
});
};
+ persistent = mkOption {
+ default = true;
+ type = types.bool;
+ example = false;
+ description = ''
+ Takes a boolean argument. If true, the time when the service
+ unit was last triggered is stored on disk. When the timer is
+ activated, the service unit is triggered immediately if it
+ would have been triggered at least once during the time when
+ the timer was inactive. Such triggering is nonetheless
+ subject to the delay imposed by RandomizedDelaySec=. This is
+ useful to catch up on missed runs of the service when the
+ system was powered down.
+ '';
+ };
+
};
};
@@ -217,11 +236,17 @@ in {
'';
startAt = cfg.dates;
+
+ after = [ "network-online.target" ];
+ wants = [ "network-online.target" ];
};
- systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec =
- cfg.randomizedDelaySec;
-
+ systemd.timers.nixos-upgrade = {
+ timerConfig = {
+ RandomizedDelaySec = cfg.randomizedDelaySec;
+ Persistent = cfg.persistent;
+ };
+ };
};
}