This is needed as part of being able to boot with just /boot, /guix and
/var/guix, per https://issues.guix.gnu.org/51547.
Without this patch, activation-on-boot fails due to the inability to
open /var/run/utmpx and symlink /run/current-system.
This is similar to what activation-script does with /var/log/.
* gnu/services.scm (activation-script): Create /run/ and /var/run/.
gnu/services.scm | 2 ++
1 file changed, 2 insertions(+)
Toggle diff (26 lines)
diff --git a/gnu/services.scm b/gnu/services.scm
index 1655218f2d..f60d7dc4c3 100644
@@ -620,6 +620,7 @@ (define actions
;; Make sure the user accounting database
exists. If it
;; does not exist, 'setutxent' does not create
;; thus there is no accounting at all.
+ (mkdir-p "/var/run")
(close-port (open-file "/var/run/utmpx" "a0"))
;; Same for 'wtmp', which is populated by
@@ -630,6 +631,7 @@ (define actions
;; Set up /run/current-system. Among other
;; sets up locales, which the activation snippets
;; executed below may expect.
+ (mkdir-p "/run")
;; Run the services' activation snippets.