summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <[email protected]>2025-02-22 22:59:07 +0100
committerLudovic Courtès <[email protected]>2025-02-23 22:53:06 +0100
commitbd7b9e6a601721258e937ccc87eb7c4d75d84ac4 (patch)
treeec54a5873a25d7e9bb110e088190066e62046811
parent9c0c881c7d0a914d44b9e44814894ceaba36999d (diff)
services: Add missing Shepherd dependency on ‘user-processes’.
Fixes <https://issues.guix.gnu.org/76368>. * gnu/services/auditd.scm (auditd-shepherd-service): * gnu/services/base.scm (rngd-service-type): (gpm-shepherd-service): * gnu/services/ci.scm (laminar-shepherd-service): * gnu/services/containers.scm (rootless-podman-cgroups-fs-owner-service): (rootless-podman-cgroups-limits-service): * gnu/services/cups.scm (cups-shepherd-service): * gnu/services/databases.scm (postgresql-role-shepherd-service): * gnu/services/desktop.scm (upower-shepherd-service): (bluetooth-shepherd-service): (elogind-shepherd-service): (inputattach-shepherd-service): (seatd-shepherd-service): * gnu/services/dns.scm (knot-resolver-shepherd-services): (dnsmasq-shepherd-service): * gnu/services/docker.scm (containerd-shepherd-service): (docker-shepherd-service): * gnu/services/file-sharing.scm (transmission-daemon-shepherd-service): * gnu/services/games.scm (joycond-shepherd-service): (wesnothd-shepherd-service): * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): (guix-data-service-shepherd-services): (nar-herder-shepherd-services): (bffe-shepherd-services): * gnu/services/ldap.scm (directory-server-shepherd-service): * gnu/services/linux.scm (cachefilesd-shepherd-service): (rasdaemon-shepherd-service): * gnu/services/mail.scm (dovecot-shepherd-service): (imap4d-shepherd-service): (radicale-shepherd-service): (rspamd-configuration): * gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service): (vnstat-shepherd-service): * gnu/services/networking.scm (opendht-shepherd-service): (openvswitch-shepherd-service): (pagekite-shepherd-service): (ipfs-shepherd-service): * gnu/services/nfs.scm (rpcbind-service-type): (gss-service-type): (idmap-service-type): * gnu/services/pm.scm (thermald-shepherd-service): * gnu/services/rsync.scm (rsync-shepherd-service): * gnu/services/samba.scm (samba-samba-shepherd-service): (samba-nmbd-shepherd-service): (samba-smbd-shepherd-service): (samba-winbindd-shepherd-service): (wsdd-shepherd-service): * gnu/services/security-token.scm (pcscd-shepherd-service): * gnu/services/sound.scm (speakersafetyd-shepherd-service): * gnu/services/spice.scm (spice-vdagent-shepherd-service): * gnu/services/ssh.scm (lsh-shepherd-service): (openssh-shepherd-service): (dropbear-shepherd-service): (autossh-shepherd-service): * gnu/services/telephony.scm (jami-shepherd-services): (mumble-server-shepherd-service): * gnu/services/version-control.scm (git-daemon-shepherd-service): * gnu/services/virtualization.scm (virtlogd-shepherd-service): * gnu/services/vnc.scm (xvnc-shepherd-service): * gnu/services/vpn.scm (openvpn-shepherd-service): (strongswan-shepherd-service): * gnu/services/web.scm (httpd-shepherd-services): (fcgiwrap-shepherd-service): (php-fpm-shepherd-service): (hpcguix-web-shepherd-service): (tailon-shepherd-service): (varnish-shepherd-service): (whoogle-shepherd-service): (mumi-shepherd-services): (gmnisrv-shepherd-service): (agate-shepherd-service): Add ‘user-processes’ requirement. * doc/guix.texi (Mail Services): Update accordingly. Reported-by: Dariqq <[email protected]> Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
-rw-r--r--doc/guix.texi2
-rw-r--r--gnu/services/auditd.scm1
-rw-r--r--gnu/services/base.scm4
-rw-r--r--gnu/services/ci.scm2
-rw-r--r--gnu/services/containers.scm6
-rw-r--r--gnu/services/cups.scm2
-rw-r--r--gnu/services/databases.scm2
-rw-r--r--gnu/services/desktop.scm10
-rw-r--r--gnu/services/dns.scm4
-rw-r--r--gnu/services/docker.scm4
-rw-r--r--gnu/services/file-sharing.scm2
-rw-r--r--gnu/services/games.scm4
-rw-r--r--gnu/services/guix.scm12
-rw-r--r--gnu/services/ldap.scm2
-rw-r--r--gnu/services/linux.scm4
-rw-r--r--gnu/services/mail.scm8
-rw-r--r--gnu/services/monitoring.scm4
-rw-r--r--gnu/services/networking.scm8
-rw-r--r--gnu/services/nfs.scm6
-rw-r--r--gnu/services/pm.scm1
-rw-r--r--gnu/services/rsync.scm1
-rw-r--r--gnu/services/samba.scm10
-rw-r--r--gnu/services/security-token.scm2
-rw-r--r--gnu/services/sound.scm2
-rw-r--r--gnu/services/spice.scm2
-rw-r--r--gnu/services/ssh.scm11
-rw-r--r--gnu/services/telephony.scm6
-rw-r--r--gnu/services/version-control.scm2
-rw-r--r--gnu/services/virtualization.scm1
-rw-r--r--gnu/services/vnc.scm2
-rw-r--r--gnu/services/vpn.scm4
-rw-r--r--gnu/services/web.scm22
32 files changed, 83 insertions, 70 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 83ba0f3292..1bfe76f016 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -29519,7 +29519,7 @@ Ignore running workers as privileged users.
@item @code{skip-template?} (default: @code{#f}) (type: boolean)
Do not apply Jinja templates.
-@item @code{shepherd-requirements} (default: @code{(loopback)}) (type: list-of-symbols)
+@item @code{shepherd-requirements} (default: @code{(user-processes loopback)}) (type: list-of-symbols)
This is a list of symbols naming Shepherd services that this service
will depend on.
diff --git a/gnu/services/auditd.scm b/gnu/services/auditd.scm
index abde811f51..7c6c87a060 100644
--- a/gnu/services/auditd.scm
+++ b/gnu/services/auditd.scm
@@ -56,6 +56,7 @@ ignore\ndisk_error_action = syslog\n"))
(list (shepherd-service
(documentation "Auditd allows you to audit file system accesses and process execution.")
(provision '(auditd))
+ (requirement '(user-processes))
(start #~(make-forkexec-constructor
(list (string-append #$audit "/sbin/auditd") "-c" #$configuration-directory)
#:pid-file "/var/run/auditd.pid"))
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 0cd4d3e9cd..2ff9bee4a7 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -721,7 +721,7 @@ down.")))
(shepherd-service
(documentation "Add TRNG to entropy pool.")
- (requirement '(udev))
+ (requirement '(user-processes udev))
(provision '(trng))
(start #~(make-forkexec-constructor '#$rngd-command))
(stop #~(make-kill-destructor))))
@@ -2791,7 +2791,7 @@ NAME-udev-hardware."
(match-record config <gpm-configuration>
(gpm options)
(list (shepherd-service
- (requirement '(udev))
+ (requirement '(user-processes udev))
(provision '(gpm))
;; 'gpm' runs in the background and sets a PID file.
;; Note that it requires running as "root".
diff --git a/gnu/services/ci.scm b/gnu/services/ci.scm
index 01cc7c7d86..d0363595a2 100644
--- a/gnu/services/ci.scm
+++ b/gnu/services/ci.scm
@@ -79,7 +79,7 @@
(list (shepherd-service
(documentation "Run Laminar.")
(provision '(laminar))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append laminar "/sbin/laminard"))
#:environment-variables
diff --git a/gnu/services/containers.scm b/gnu/services/containers.scm
index 19d35ccbcb..b3cd109ce6 100644
--- a/gnu/services/containers.scm
+++ b/gnu/services/containers.scm
@@ -153,7 +153,8 @@ available for each configured user."))
(define (rootless-podman-cgroups-fs-owner-service config)
(shepherd-service (provision '(cgroups2-fs-owner))
(requirement
- '(dbus-system
+ '(user-processes
+ dbus-system
elogind
file-system-/sys/fs/cgroup
networking
@@ -180,7 +181,8 @@ available for each configured user."))
(define (rootless-podman-cgroups-limits-service config)
(shepherd-service (provision '(cgroups2-limits))
(requirement
- '(dbus-system
+ '(user-processes
+ dbus-system
elogind
networking
udev
diff --git a/gnu/services/cups.scm b/gnu/services/cups.scm
index d95c38b4d9..738bb7f5cc 100644
--- a/gnu/services/cups.scm
+++ b/gnu/services/cups.scm
@@ -1008,7 +1008,7 @@ extensions that it uses."
(list (shepherd-service
(documentation "Run the CUPS print server.")
(provision '(cups))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list (string-append #$cups "/sbin/cupsd")
"-f" "-c" #$cupsd.conf "-s" #$cups-files.conf)))
diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm
index 6530c6f0a1..6d80376d90 100644
--- a/gnu/services/databases.scm
+++ b/gnu/services/databases.scm
@@ -443,7 +443,7 @@ rolname = '" ,name "')) as not_exists;\n"
(match-record config <postgresql-role-configuration>
(log)
(list (shepherd-service
- (requirement '(postgres))
+ (requirement '(user-processes postgres))
(provision '(postgres-roles))
(one-shot? #t)
(start
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 708034f89c..ee05bd98db 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -304,7 +304,7 @@ is a list, it recursively searches it until it locates the last item of TREE."
(list (shepherd-service
(documentation "Run the UPower power and battery monitor.")
(provision '(upower-daemon))
- (requirement '(dbus-system udev))
+ (requirement '(user-processes dbus-system udev))
(start #~(make-forkexec-constructor
(list (string-append #$upower "/libexec/upowerd"))
@@ -859,7 +859,7 @@ site} for more information."
"Return a shepherd service for @command{bluetoothd}."
(shepherd-service
(provision '(bluetooth))
- (requirement '(dbus-system udev))
+ (requirement '(user-processes dbus-system udev))
(documentation "Run the bluetoothd daemon.")
(start #~(make-forkexec-constructor
(list #$(file-append (bluetooth-configuration-bluez config)
@@ -1303,7 +1303,7 @@ seats.)"
(elogind-configuration-file config))
(list (shepherd-service
- (requirement '(dbus-system))
+ (requirement '(user-processes dbus-system))
(provision '(elogind))
(start #~(make-forkexec-constructor
(list #$(file-append (elogind-package config)
@@ -1953,7 +1953,7 @@ rules."
device))))
(list (shepherd-service
(provision '(inputattach))
- (requirement '(udev))
+ (requirement '(user-processes udev))
(documentation "inputattach daemon")
(start #~(make-forkexec-constructor
(cons (string-append #$inputattach
@@ -2067,7 +2067,7 @@ or setting its password with passwd.")))
(define (seatd-shepherd-service config)
(list (shepherd-service
(documentation "Minimal seat management daemon")
- (requirement '())
+ (requirement '(user-processes))
;; TODO: once cgroups is separate dependency
;; here we should depend on it rather than elogind
(provision '(seatd elogind))
diff --git a/gnu/services/dns.scm b/gnu/services/dns.scm
index dcfb90235c..05291eb65d 100644
--- a/gnu/services/dns.scm
+++ b/gnu/services/dns.scm
@@ -700,7 +700,7 @@ cache.size = 100 * MB
(list
(shepherd-service
(provision '(kresd))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(documentation "Run the Knot Resolver daemon.")
(start #~(make-forkexec-constructor
'(#$(file-append package "/sbin/kresd")
@@ -816,7 +816,7 @@ cache.size = 100 * MB
tftp-root tftp-unique-root extra-options)
(shepherd-service
(provision (dnsmasq-provision config))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(documentation "Run the dnsmasq DNS server.")
(start #~(make-forkexec-constructor
(list
diff --git a/gnu/services/docker.scm b/gnu/services/docker.scm
index 5837784c7f..9ab3e58334 100644
--- a/gnu/services/docker.scm
+++ b/gnu/services/docker.scm
@@ -157,6 +157,7 @@ loop-back communications.")
(shepherd-service
(documentation "containerd daemon.")
(provision '(containerd))
+ (requirement '(user-processes))
(start #~(make-forkexec-constructor
(list (string-append #$containerd "/bin/containerd")
#$@(if debug?
@@ -195,7 +196,8 @@ loop-back communications.")
(shepherd-service
(documentation "Docker daemon.")
(provision '(dockerd))
- (requirement '(containerd
+ (requirement '(user-processes
+ containerd
dbus-system
elogind
file-system-/sys/fs/cgroup
diff --git a/gnu/services/file-sharing.scm b/gnu/services/file-sharing.scm
index 4b6867bc07..d0e9a8ca90 100644
--- a/gnu/services/file-sharing.scm
+++ b/gnu/services/file-sharing.scm
@@ -635,7 +635,7 @@ satisfy requests from peers."))
(list
(shepherd-service
(provision '(transmission-daemon transmission bittorrent))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(documentation "Share files using the BitTorrent protocol.")
(start #~(make-forkexec-constructor
'(#$(file-append transmission "/bin/transmission-daemon")
diff --git a/gnu/services/games.scm b/gnu/services/games.scm
index 2557b82bec..cea442fd3a 100644
--- a/gnu/services/games.scm
+++ b/gnu/services/games.scm
@@ -53,7 +53,7 @@
(list (shepherd-service
(documentation "Run joycond.")
(provision '(joycond))
- (requirement '(bluetooth))
+ (requirement '(user-processes bluetooth))
(start #~(make-forkexec-constructor
(list #$(file-append joycond "/bin/joycond"))))
(stop #~(make-kill-destructor))))))
@@ -109,7 +109,7 @@ install udev rules required to use the controller as an unprivileged user.")
(shepherd-service
(documentation "The Battle for Wesnoth server")
(provision '(wesnoth-daemon))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$wesnothd "-p" #$(number->string port))
#:user "wesnothd" #:group "wesnothd"))
diff --git a/gnu/services/guix.scm b/gnu/services/guix.scm
index 86a1e1bf52..24d22a7a3d 100644
--- a/gnu/services/guix.scm
+++ b/gnu/services/guix.scm
@@ -334,7 +334,7 @@
(shepherd-service
(documentation "Guix Build Coordinator")
(provision '(guix-build-coordinator))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(lambda args
(parameterize ((%current-logfile-date-format ""))
(apply
@@ -585,7 +585,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service
(documentation "Guix Data Service web server")
(provision '(guix-data-service))
- (requirement '(postgres networking))
+ (requirement '(user-processes postgres networking))
(start #~(make-forkexec-constructor
(list #$(file-append package
"/bin/guix-data-service")
@@ -612,7 +612,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service
(documentation "Guix Data Service setup database")
(provision '(guix-data-service-setup-database))
- (requirement '(postgres))
+ (requirement '(user-processes postgres))
(one-shot? #t)
(start
(with-extensions (cons package
@@ -647,7 +647,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service
(documentation "Guix Data Service process jobs")
(provision '(guix-data-service-process-jobs))
- (requirement '(postgres networking))
+ (requirement '(user-processes postgres networking))
(start #~(make-forkexec-constructor
(list
#$(file-append package
@@ -923,7 +923,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service
(documentation "Nar Herder")
(provision '(nar-herder))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package
"/bin/nar-herder")
@@ -1097,7 +1097,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service
(documentation "Build Farm Front-end")
(provision '(bffe))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$start-script)
#:user #$user
diff --git a/gnu/services/ldap.scm b/gnu/services/ldap.scm
index 49a33fac08..76f9b14a41 100644
--- a/gnu/services/ldap.scm
+++ b/gnu/services/ldap.scm
@@ -229,7 +229,7 @@ whether systemd is installed.")
(documentation "Run an 389 directory server instance.")
(provision (list (symbol-append 'directory-server-
(string->symbol instance-name))))
- (requirement '())
+ (requirement '(user-processes))
(start #~(make-forkexec-constructor
(list #$(file-append 389-ds-base "/sbin/dsctl")
#$instance-name "start")
diff --git a/gnu/services/linux.scm b/gnu/services/linux.scm
index fb089b965f..b22dbeefa0 100644
--- a/gnu/services/linux.scm
+++ b/gnu/services/linux.scm
@@ -469,7 +469,7 @@ more information)."
(shepherd-service
(documentation "Run the cachefilesd daemon for FS-Cache.")
(provision '(cachefilesd))
- (requirement (append '(file-systems)
+ (requirement (append '(user-processes file-systems)
(if use-syslog? '(syslogd) '())))
(start #~(begin
(and=> #$(maybe-value cache-directory) mkdir-p)
@@ -523,7 +523,7 @@ the Linux @code{cachefiles} module.")
(shepherd-service
(documentation "Run rasdaemon")
(provision '(rasdaemon))
- (requirement '(syslogd))
+ (requirement '(user-processes syslogd))
(start #~(make-forkexec-constructor
'#$(rasdaemon-configuration->command-line-args config)))
(stop #~(make-kill-destructor))))
diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm
index 18b482272c..4ab0d68134 100644
--- a/gnu/services/mail.scm
+++ b/gnu/services/mail.scm
@@ -1600,7 +1600,7 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(list (shepherd-service
(documentation "Run the Dovecot POP3/IMAP mail server.")
(provision '(dovecot))
- (requirement '(pam networking))
+ (requirement '(user-processes pam networking))
(start #~(make-forkexec-constructor
(list (string-append #$dovecot "/sbin/dovecot")
"-F")))
@@ -1903,7 +1903,7 @@ exim_group = exim
(($ <imap4d-configuration> package config-file)
(list (shepherd-service
(provision '(imap4d))
- (requirement '(networking syslogd))
+ (requirement '(user-processes networking syslogd))
(documentation "Run the imap4d daemon.")
(start (let ((imap4d (file-append package "/sbin/imap4d")))
#~(make-forkexec-constructor
@@ -2195,7 +2195,7 @@ authentication plugin that extracts the username from the certificate.")
(list (shepherd-service
(provision '(radicale))
(documentation "Run the radicale daemon.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append (radicale-configuration-package cfg)
"/bin/radicale")
@@ -2317,7 +2317,7 @@ in these files will override the defaults.")
(boolean #f)
"Do not apply Jinja templates.")
(shepherd-requirements
- (list-of-symbols '(loopback))
+ (list-of-symbols '(user-processes loopback))
"This is a list of symbols naming Shepherd services that this service
will depend on."))
diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm
index 59cf4710ea..f504c61afd 100644
--- a/gnu/services/monitoring.scm
+++ b/gnu/services/monitoring.scm
@@ -196,7 +196,7 @@ HTTP.")
(shepherd-service
(documentation "Prometheus node exporter.")
(provision '(prometheus-node-exporter))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/bin/node_exporter")
"--web.listen-address" #$web-listen-address
@@ -630,7 +630,7 @@ resolution.")
(match-record config <vnstat-configuration> (package pid-file)
(shepherd-service
(documentation "Run vnstatd.")
- (requirement `(networking file-systems))
+ (requirement `(user-processes networking file-systems))
(provision '(vnstatd))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/vnstatd")
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index f7c2471535..53840c2764 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -936,7 +936,7 @@ CONFIG, an <opendht-configuration> object."
(shepherd-service
(documentation "Run an OpenDHT node.")
(provision '(opendht dhtnode dhtproxy))
- (requirement '(networking syslogd))
+ (requirement '(user-processes networking syslogd))
(start #~(make-forkexec-constructor
(list #$@(opendht-configuration->command-line-arguments config))
#:user "opendht"
@@ -2036,7 +2036,7 @@ simulation."
(stop #~(make-kill-destructor)))
(shepherd-service
(provision '(vswitchd))
- (requirement '(ovsdb))
+ (requirement '(user-processes ovsdb))
(documentation "Run the Open vSwitch daemon.")
(start #~(make-forkexec-constructor
(list #$ovs-vswitchd "--pidfile")
@@ -2248,7 +2248,7 @@ table inet filter {
(shepherd-service
(documentation "Run the PageKite service.")
(provision '(pagekite))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor
(list #$pagekite
@@ -2446,7 +2446,7 @@ See @command{yggdrasil -genconf} for config options.")
;; While IPFS is most useful when the machine is connected
;; to the network, only loopback is required for starting
;; the service.
- (requirement '(loopback))
+ (requirement '(user-processes loopback))
(documentation "Connect to the IPFS network")
(start #~(make-forkexec-constructor
#$ipfs-daemon-command
diff --git a/gnu/services/nfs.scm b/gnu/services/nfs.scm
index 209cde24b3..f5a1c6a44e 100644
--- a/gnu/services/nfs.scm
+++ b/gnu/services/nfs.scm
@@ -74,7 +74,7 @@
(shepherd-service
(documentation "Start the RPC bind daemon.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(provision '(rpcbind-daemon))
(start #~(make-forkexec-constructor #$rpcbind-command))
@@ -164,7 +164,7 @@ NFS-related data between the kernel and user-space programs."))))
(shepherd-service
(documentation "Start the RPC GSS daemon.")
- (requirement '(rpcbind-daemon rpc-pipefs))
+ (requirement '(user-processes rpcbind-daemon rpc-pipefs))
(provision '(gss-daemon))
(start #~(make-forkexec-constructor #$gss-command))
@@ -236,7 +236,7 @@ RPC)."))))
(shepherd-service
(documentation "Start the RPC IDMAP daemon.")
- (requirement '(rpcbind-daemon rpc-pipefs))
+ (requirement '(user-processes rpcbind-daemon rpc-pipefs))
(provision '(idmap-daemon))
(start #~(make-forkexec-constructor #$idmap-command))
(stop #~(make-kill-destructor))))))
diff --git a/gnu/services/pm.scm b/gnu/services/pm.scm
index 1978de55d4..64b64e01fb 100644
--- a/gnu/services/pm.scm
+++ b/gnu/services/pm.scm
@@ -511,6 +511,7 @@ shutdown on system startup."))
(list
(shepherd-service
(provision '(thermald))
+ (requirement '(user-processes))
(documentation "Run thermald cpu frequency scaling.")
(start #~(make-forkexec-constructor
'(#$(file-append (thermald-thermald config) "/sbin/thermald")
diff --git a/gnu/services/rsync.scm b/gnu/services/rsync.scm
index e85dd50934..4bbf2c4eff 100644
--- a/gnu/services/rsync.scm
+++ b/gnu/services/rsync.scm
@@ -277,6 +277,7 @@ please use 'modules' instead~%")))
"--config" #$config-file "--daemon")))
(list (shepherd-service
(provision '(rsync))
+ (requirement '(user-processes))
(documentation "Run rsync daemon.")
(actions (list (shepherd-configuration-action config-file)))
(start #~(if #$inetd-style?
diff --git a/gnu/services/samba.scm b/gnu/services/samba.scm
index dfc7778570..23d5cc45a0 100644
--- a/gnu/services/samba.scm
+++ b/gnu/services/samba.scm
@@ -91,7 +91,7 @@
(list (shepherd-service
(documentation "Run Samba")
(provision '(samba-samba))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/samba")
(string-append "--configfile=" #$config-file)
@@ -105,7 +105,7 @@
(list (shepherd-service
(documentation "Run NMBD")
(provision '(samba-nmbd))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/nmbd")
(string-append "--configfile=" #$config-file)
@@ -119,7 +119,7 @@
(list (shepherd-service
(documentation "Run SMBD")
(provision '(samba-smbd))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/smbd")
(string-append "--configfile=" #$config-file)
@@ -133,7 +133,7 @@
(list (shepherd-service
(documentation "Run Winnbindd for Name Service Switch")
(provision '(samba-winbindd))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/winbindd")
(string-append "--configfile=" #$config-file)
@@ -222,7 +222,7 @@ controller or as a regular domain member.")
like your local NAS device, to be found by Web Service Discovery Clients
like Windows.")
(provision '(wsdd))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/bin/wsdd")
#$@(if ipv4only?
diff --git a/gnu/services/security-token.scm b/gnu/services/security-token.scm
index d971091e73..7d6c0e0f8d 100644
--- a/gnu/services/security-token.scm
+++ b/gnu/services/security-token.scm
@@ -53,7 +53,7 @@
(shepherd-service
(documentation "PC/SC Smart Card Daemon")
(provision '(pcscd))
- (requirement '(syslogd))
+ (requirement '(user-processes syslogd))
(start #~(lambda _
(let ((socket "/run/pcscd/pcscd.comm"))
(when (file-exists? socket)
diff --git a/gnu/services/sound.scm b/gnu/services/sound.scm
index 20f78bb500..fbaa55c553 100644
--- a/gnu/services/sound.scm
+++ b/gnu/services/sound.scm
@@ -301,7 +301,7 @@ the configuration files of the speaker models.")
(shepherd-service
(documentation "Run the speaker safety daemon")
(provision '(speakersafetyd))
- (requirement '(udev))
+ (requirement '(user-processes udev))
(start #~(make-forkexec-constructor
(list #$(file-append speakersafetyd "/bin/speakersafetyd")
"--config-path" #$configuration-directory
diff --git a/gnu/services/spice.scm b/gnu/services/spice.scm
index b8d2f8486e..59c5c18627 100644
--- a/gnu/services/spice.scm
+++ b/gnu/services/spice.scm
@@ -47,7 +47,7 @@
(list
(shepherd-service
(documentation "Spice vdagentd service")
- (requirement '(dbus-system))
+ (requirement '(user-processes dbus-system))
(provision '(spice-vdagentd))
(start #~(lambda args
;; spice-vdagentd supports being activated upon the client
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index f759c5cf6e..12547b3c7b 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2019, 2022-2024 Ludovic Courtès <[email protected]>
+;;; Copyright © 2014-2019, 2022-2025 Ludovic Courtès <[email protected]>
;;; Copyright © 2016 David Craven <[email protected]>
;;; Copyright © 2016 Julien Lepiller <[email protected]>
;;; Copyright © 2017 Clément Lassieur <[email protected]>
@@ -218,7 +218,8 @@
interfaces)))))
(define requires
- `(networking
+ `(user-processes
+ networking
pam
,@(if (and daemonic? (lsh-configuration-syslog-output? config))
'(syslogd)
@@ -595,7 +596,7 @@ of user-name/file-like tuples."
;; On the Hurd, this can only be started after pfinet is up, hence
;; the dependency on 'networking'.
- (requirement '(pam syslogd loopback networking))
+ (requirement '(user-processes pam syslogd loopback networking))
(provision '(ssh-daemon ssh sshd))
(start #~(if #$inetd-style?
@@ -726,7 +727,8 @@ of user-name/file-like tuples."
(define requires
(if (dropbear-configuration-syslog-output? config)
- '(networking syslogd) '(networking)))
+ '(user-processes networking syslogd)
+ '(user-processes networking)))
(list (shepherd-service
(documentation "Dropbear SSH server.")
@@ -794,6 +796,7 @@ object."
(shepherd-service
(documentation "Automatically set up ssh connections (and keep them alive).")
(provision '(autossh))
+ (requirement '(user-processes))
(start #~(make-forkexec-constructor
(list #$(file-append autossh "/bin/autossh")
#$@(autossh-configuration-ssh-options config))
diff --git a/gnu/services/telephony.scm b/gnu/services/telephony.scm
index 16d109b8b1..9926f4107d 100644
--- a/gnu/services/telephony.scm
+++ b/gnu/services/telephony.scm
@@ -547,7 +547,7 @@ argument, either a registered username or the fingerprint of the account.")
,@%default-modules))
;; The requirement on dbus-system is to ensure other required
;; activation for D-Bus, such as a /etc/machine-id file.
- (requirement '(dbus-system syslogd))
+ (requirement '(user-processes dbus-system syslogd))
(start
#~(lambda ()
(define pid
@@ -580,7 +580,7 @@ argument, either a registered username or the fingerprint of the account.")
list-banned-contacts-action
enable-account-action
disable-account-action))
- (requirement '(jami-dbus-session))
+ (requirement '(user-processes jami-dbus-session))
(modules `((ice-9 format)
(ice-9 ftw)
(ice-9 match)
@@ -944,7 +944,7 @@ Or set public-registration to #f"))))))))
(list (shepherd-service
(provision '(mumble-server))
(documentation "Run the Mumble server.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
'(#$(file-append (mumble-server-configuration-package config)
"/bin/mumble-server")
diff --git a/gnu/services/version-control.scm b/gnu/services/version-control.scm
index 14ff0a59a6..06b6ff224d 100644
--- a/gnu/services/version-control.scm
+++ b/gnu/services/version-control.scm
@@ -136,7 +136,7 @@
,@whitelist)))
(list (shepherd-service
(documentation "Run the git-daemon.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(provision '(git-daemon))
(start #~(make-forkexec-constructor '#$command
#:user "git-daemon"
diff --git a/gnu/services/virtualization.scm b/gnu/services/virtualization.scm
index b697ae9526..88cc91bb49 100644
--- a/gnu/services/virtualization.scm
+++ b/gnu/services/virtualization.scm
@@ -573,6 +573,7 @@ performs required management tasks for virtualized guests.")))
(list (shepherd-service
(documentation "Run the virtlog daemon.")
(provision '(virtlogd))
+ (requirement '(user-processes))
(start #~(make-forkexec-constructor
(list (string-append #$libvirt "/sbin/virtlogd")
"-f" #$config-file)))
diff --git a/gnu/services/vnc.scm b/gnu/services/vnc.scm
index 8b9ad0b179..0b18830d2b 100644
--- a/gnu/services/vnc.scm
+++ b/gnu/services/vnc.scm
@@ -206,7 +206,7 @@ CONFIG, a <xvnc-configuration> object."
(shepherd-service
(provision '(xvnc vncserver))
(documentation "Run the Xvnc server.")
- (requirement '(networking syslogd))
+ (requirement '(user-processes networking syslogd))
(start (if (xvnc-configuration-inetd? config)
#~(let* ((inaddr (if #$(xvnc-configuration-localhost? config)
INADDR_LOOPBACK
diff --git a/gnu/services/vpn.scm b/gnu/services/vpn.scm
index 8e90032c93..c66622ad6c 100644
--- a/gnu/services/vpn.scm
+++ b/gnu/services/vpn.scm
@@ -506,7 +506,7 @@ is truncated and rewritten every minute.")
(provision (match role
('server '(vpn-server))
('client '(vpn-client))))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list (string-append #$openvpn "/sbin/openvpn")
"--writepid" #$pid-file "--config" #$config-file
@@ -693,7 +693,7 @@ include ~a/*.conf"
(let* ((ipsec (file-append strongswan "/sbin/ipsec"))
(strongswan-conf-path (strongswan-configuration-file config)))
(list (shepherd-service
- (requirement '(networking))
+ (requirement '(user-processes networking))
(provision '(ipsec))
(start #~(make-forkexec-constructor
(list #$ipsec "start" "--nofork")
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index d42ef09c3c..7593cd2eaa 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -471,7 +471,7 @@
(list (shepherd-service
(provision '(httpd))
(documentation "The Apache HTTP Server")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
`(#$(file-append package "/bin/httpd")
#$@(if config
@@ -960,7 +960,7 @@ renewed TLS certificates, or @code{include}d files.")
(list (shepherd-service
(provision '(fcgiwrap))
(documentation "Run the fcgiwrap daemon.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
'(#$(file-append package "/sbin/fcgiwrap")
"-s" #$socket)
@@ -1144,7 +1144,7 @@ and the back-end of a Web service.")))
(list (shepherd-service
(provision '(php-fpm))
(documentation "Run the php-fpm daemon.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
'(#$(file-append php "/sbin/php-fpm")
"--fpm-config"
@@ -1289,7 +1289,7 @@ a webserver.")
(shepherd-service
(documentation "hpcguix-web daemon")
(provision '(hpcguix-web))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append hpcguix-web "/bin/hpcguix-web")
(string-append "--listen="
@@ -1426,6 +1426,7 @@ a webserver.")
(($ <tailon-configuration> config-file package)
(list (shepherd-service
(provision '(tailon))
+ (requirement '(user-processes))
(documentation "Run the tailon daemon.")
(start #~(make-forkexec-constructor
`(,(string-append #$package "/bin/tailon")
@@ -1618,7 +1619,7 @@ files.")
(provision (list (symbol-append 'varnish- (string->symbol name))))
(documentation (string-append "The Varnish Web Accelerator"
" (" name ")"))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/varnishd")
"-n" #$name
@@ -1678,6 +1679,7 @@ Whoogle."))
(list
(shepherd-service
(provision '(whoogle-search))
+ (requirement '(user-processes))
(start #~(make-forkexec-constructor
(list (string-append #$package "/bin/whoogle-search")
"--host" #$host "--port" #$(number->string port))
@@ -2066,7 +2068,7 @@ WSGIPassAuthorization On
(list (shepherd-service
(provision '(mumi))
(documentation "Mumi bug-tracking web interface.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
`(#$(file-append mumi "/bin/mumi") "web"
,@(if #$mailer? '() '("--disable-mailer")))
@@ -2077,7 +2079,7 @@ WSGIPassAuthorization On
(shepherd-service
(provision '(mumi-worker))
(documentation "Mumi bug-tracking web interface database worker.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
'(#$(file-append mumi "/bin/mumi") "worker")
#:environment-variables #$environment
@@ -2087,7 +2089,7 @@ WSGIPassAuthorization On
(shepherd-service
(provision '(mumi-mailer))
(documentation "Mumi bug-tracking web interface mailer.")
- (requirement '(networking))
+ (requirement '(user-processes networking))
(start #~(make-forkexec-constructor
`(#$(file-append mumi "/bin/mumi") "mailer"
,@(if #$sender
@@ -2142,7 +2144,7 @@ root=/srv/gemini
(($ <gmnisrv-configuration> package config-file)
(list (shepherd-service
(provision '(gmnisrv))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(documentation "Run the gmnisrv Gemini server.")
(start (let ((gmnisrv (file-append package "/bin/gmnisrv")))
#~(make-forkexec-constructor
@@ -2231,7 +2233,7 @@ root=/srv/gemini
log-ip? user group log-file)
(list (shepherd-service
(provision '(agate))
- (requirement '(networking))
+ (requirement '(user-processes networking))
(documentation "Run the agate Gemini server.")
(start (let ((agate (file-append package "/bin/agate")))
#~(make-forkexec-constructor