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 <dariqq@posteo.net>
Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
This commit is contained in:
Ludovic Courtès 2025-02-22 22:59:07 +01:00
parent 9c0c881c7d
commit bd7b9e6a60
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
32 changed files with 83 additions and 70 deletions

View file

@ -29519,7 +29519,7 @@ Ignore running workers as privileged users.
@item @code{skip-template?} (default: @code{#f}) (type: boolean) @item @code{skip-template?} (default: @code{#f}) (type: boolean)
Do not apply Jinja templates. 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 This is a list of symbols naming Shepherd services that this service
will depend on. will depend on.

View file

@ -56,6 +56,7 @@ ignore\ndisk_error_action = syslog\n"))
(list (shepherd-service (list (shepherd-service
(documentation "Auditd allows you to audit file system accesses and process execution.") (documentation "Auditd allows you to audit file system accesses and process execution.")
(provision '(auditd)) (provision '(auditd))
(requirement '(user-processes))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$audit "/sbin/auditd") "-c" #$configuration-directory) (list (string-append #$audit "/sbin/auditd") "-c" #$configuration-directory)
#:pid-file "/var/run/auditd.pid")) #:pid-file "/var/run/auditd.pid"))

View file

@ -721,7 +721,7 @@ down.")))
(shepherd-service (shepherd-service
(documentation "Add TRNG to entropy pool.") (documentation "Add TRNG to entropy pool.")
(requirement '(udev)) (requirement '(user-processes udev))
(provision '(trng)) (provision '(trng))
(start #~(make-forkexec-constructor '#$rngd-command)) (start #~(make-forkexec-constructor '#$rngd-command))
(stop #~(make-kill-destructor)))) (stop #~(make-kill-destructor))))
@ -2791,7 +2791,7 @@ NAME-udev-hardware."
(match-record config <gpm-configuration> (match-record config <gpm-configuration>
(gpm options) (gpm options)
(list (shepherd-service (list (shepherd-service
(requirement '(udev)) (requirement '(user-processes udev))
(provision '(gpm)) (provision '(gpm))
;; 'gpm' runs in the background and sets a PID file. ;; 'gpm' runs in the background and sets a PID file.
;; Note that it requires running as "root". ;; Note that it requires running as "root".

View file

@ -79,7 +79,7 @@
(list (shepherd-service (list (shepherd-service
(documentation "Run Laminar.") (documentation "Run Laminar.")
(provision '(laminar)) (provision '(laminar))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append laminar "/sbin/laminard")) (list #$(file-append laminar "/sbin/laminard"))
#:environment-variables #:environment-variables

View file

@ -153,7 +153,8 @@ available for each configured user."))
(define (rootless-podman-cgroups-fs-owner-service config) (define (rootless-podman-cgroups-fs-owner-service config)
(shepherd-service (provision '(cgroups2-fs-owner)) (shepherd-service (provision '(cgroups2-fs-owner))
(requirement (requirement
'(dbus-system '(user-processes
dbus-system
elogind elogind
file-system-/sys/fs/cgroup file-system-/sys/fs/cgroup
networking networking
@ -180,7 +181,8 @@ available for each configured user."))
(define (rootless-podman-cgroups-limits-service config) (define (rootless-podman-cgroups-limits-service config)
(shepherd-service (provision '(cgroups2-limits)) (shepherd-service (provision '(cgroups2-limits))
(requirement (requirement
'(dbus-system '(user-processes
dbus-system
elogind elogind
networking networking
udev udev

View file

@ -1008,7 +1008,7 @@ extensions that it uses."
(list (shepherd-service (list (shepherd-service
(documentation "Run the CUPS print server.") (documentation "Run the CUPS print server.")
(provision '(cups)) (provision '(cups))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$cups "/sbin/cupsd") (list (string-append #$cups "/sbin/cupsd")
"-f" "-c" #$cupsd.conf "-s" #$cups-files.conf))) "-f" "-c" #$cupsd.conf "-s" #$cups-files.conf)))

View file

@ -443,7 +443,7 @@ rolname = '" ,name "')) as not_exists;\n"
(match-record config <postgresql-role-configuration> (match-record config <postgresql-role-configuration>
(log) (log)
(list (shepherd-service (list (shepherd-service
(requirement '(postgres)) (requirement '(user-processes postgres))
(provision '(postgres-roles)) (provision '(postgres-roles))
(one-shot? #t) (one-shot? #t)
(start (start

View file

@ -304,7 +304,7 @@ is a list, it recursively searches it until it locates the last item of TREE."
(list (shepherd-service (list (shepherd-service
(documentation "Run the UPower power and battery monitor.") (documentation "Run the UPower power and battery monitor.")
(provision '(upower-daemon)) (provision '(upower-daemon))
(requirement '(dbus-system udev)) (requirement '(user-processes dbus-system udev))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$upower "/libexec/upowerd")) (list (string-append #$upower "/libexec/upowerd"))
@ -859,7 +859,7 @@ site} for more information."
"Return a shepherd service for @command{bluetoothd}." "Return a shepherd service for @command{bluetoothd}."
(shepherd-service (shepherd-service
(provision '(bluetooth)) (provision '(bluetooth))
(requirement '(dbus-system udev)) (requirement '(user-processes dbus-system udev))
(documentation "Run the bluetoothd daemon.") (documentation "Run the bluetoothd daemon.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append (bluetooth-configuration-bluez config) (list #$(file-append (bluetooth-configuration-bluez config)
@ -1303,7 +1303,7 @@ seats.)"
(elogind-configuration-file config)) (elogind-configuration-file config))
(list (shepherd-service (list (shepherd-service
(requirement '(dbus-system)) (requirement '(user-processes dbus-system))
(provision '(elogind)) (provision '(elogind))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append (elogind-package config) (list #$(file-append (elogind-package config)
@ -1953,7 +1953,7 @@ rules."
device)))) device))))
(list (shepherd-service (list (shepherd-service
(provision '(inputattach)) (provision '(inputattach))
(requirement '(udev)) (requirement '(user-processes udev))
(documentation "inputattach daemon") (documentation "inputattach daemon")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(cons (string-append #$inputattach (cons (string-append #$inputattach
@ -2067,7 +2067,7 @@ or setting its password with passwd.")))
(define (seatd-shepherd-service config) (define (seatd-shepherd-service config)
(list (shepherd-service (list (shepherd-service
(documentation "Minimal seat management daemon") (documentation "Minimal seat management daemon")
(requirement '()) (requirement '(user-processes))
;; TODO: once cgroups is separate dependency ;; TODO: once cgroups is separate dependency
;; here we should depend on it rather than elogind ;; here we should depend on it rather than elogind
(provision '(seatd elogind)) (provision '(seatd elogind))

View file

@ -700,7 +700,7 @@ cache.size = 100 * MB
(list (list
(shepherd-service (shepherd-service
(provision '(kresd)) (provision '(kresd))
(requirement '(networking)) (requirement '(user-processes networking))
(documentation "Run the Knot Resolver daemon.") (documentation "Run the Knot Resolver daemon.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append package "/sbin/kresd") '(#$(file-append package "/sbin/kresd")
@ -816,7 +816,7 @@ cache.size = 100 * MB
tftp-root tftp-unique-root extra-options) tftp-root tftp-unique-root extra-options)
(shepherd-service (shepherd-service
(provision (dnsmasq-provision config)) (provision (dnsmasq-provision config))
(requirement '(networking)) (requirement '(user-processes networking))
(documentation "Run the dnsmasq DNS server.") (documentation "Run the dnsmasq DNS server.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (list

View file

@ -157,6 +157,7 @@ loop-back communications.")
(shepherd-service (shepherd-service
(documentation "containerd daemon.") (documentation "containerd daemon.")
(provision '(containerd)) (provision '(containerd))
(requirement '(user-processes))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$containerd "/bin/containerd") (list (string-append #$containerd "/bin/containerd")
#$@(if debug? #$@(if debug?
@ -195,7 +196,8 @@ loop-back communications.")
(shepherd-service (shepherd-service
(documentation "Docker daemon.") (documentation "Docker daemon.")
(provision '(dockerd)) (provision '(dockerd))
(requirement '(containerd (requirement '(user-processes
containerd
dbus-system dbus-system
elogind elogind
file-system-/sys/fs/cgroup file-system-/sys/fs/cgroup

View file

@ -635,7 +635,7 @@ satisfy requests from peers."))
(list (list
(shepherd-service (shepherd-service
(provision '(transmission-daemon transmission bittorrent)) (provision '(transmission-daemon transmission bittorrent))
(requirement '(networking)) (requirement '(user-processes networking))
(documentation "Share files using the BitTorrent protocol.") (documentation "Share files using the BitTorrent protocol.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append transmission "/bin/transmission-daemon") '(#$(file-append transmission "/bin/transmission-daemon")

View file

@ -53,7 +53,7 @@
(list (shepherd-service (list (shepherd-service
(documentation "Run joycond.") (documentation "Run joycond.")
(provision '(joycond)) (provision '(joycond))
(requirement '(bluetooth)) (requirement '(user-processes bluetooth))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append joycond "/bin/joycond")))) (list #$(file-append joycond "/bin/joycond"))))
(stop #~(make-kill-destructor)))))) (stop #~(make-kill-destructor))))))
@ -109,7 +109,7 @@ install udev rules required to use the controller as an unprivileged user.")
(shepherd-service (shepherd-service
(documentation "The Battle for Wesnoth server") (documentation "The Battle for Wesnoth server")
(provision '(wesnoth-daemon)) (provision '(wesnoth-daemon))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$wesnothd "-p" #$(number->string port)) (list #$wesnothd "-p" #$(number->string port))
#:user "wesnothd" #:group "wesnothd")) #:user "wesnothd" #:group "wesnothd"))

View file

@ -334,7 +334,7 @@
(shepherd-service (shepherd-service
(documentation "Guix Build Coordinator") (documentation "Guix Build Coordinator")
(provision '(guix-build-coordinator)) (provision '(guix-build-coordinator))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(lambda args (start #~(lambda args
(parameterize ((%current-logfile-date-format "")) (parameterize ((%current-logfile-date-format ""))
(apply (apply
@ -585,7 +585,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service (shepherd-service
(documentation "Guix Data Service web server") (documentation "Guix Data Service web server")
(provision '(guix-data-service)) (provision '(guix-data-service))
(requirement '(postgres networking)) (requirement '(user-processes postgres networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package (list #$(file-append package
"/bin/guix-data-service") "/bin/guix-data-service")
@ -612,7 +612,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service (shepherd-service
(documentation "Guix Data Service setup database") (documentation "Guix Data Service setup database")
(provision '(guix-data-service-setup-database)) (provision '(guix-data-service-setup-database))
(requirement '(postgres)) (requirement '(user-processes postgres))
(one-shot? #t) (one-shot? #t)
(start (start
(with-extensions (cons package (with-extensions (cons package
@ -647,7 +647,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service (shepherd-service
(documentation "Guix Data Service process jobs") (documentation "Guix Data Service process jobs")
(provision '(guix-data-service-process-jobs)) (provision '(guix-data-service-process-jobs))
(requirement '(postgres networking)) (requirement '(user-processes postgres networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (list
#$(file-append package #$(file-append package
@ -923,7 +923,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service (shepherd-service
(documentation "Nar Herder") (documentation "Nar Herder")
(provision '(nar-herder)) (provision '(nar-herder))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package (list #$(file-append package
"/bin/nar-herder") "/bin/nar-herder")
@ -1097,7 +1097,7 @@ ca-certificates.crt file in the system profile."
(shepherd-service (shepherd-service
(documentation "Build Farm Front-end") (documentation "Build Farm Front-end")
(provision '(bffe)) (provision '(bffe))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$start-script) (list #$start-script)
#:user #$user #:user #$user

View file

@ -229,7 +229,7 @@ whether systemd is installed.")
(documentation "Run an 389 directory server instance.") (documentation "Run an 389 directory server instance.")
(provision (list (symbol-append 'directory-server- (provision (list (symbol-append 'directory-server-
(string->symbol instance-name)))) (string->symbol instance-name))))
(requirement '()) (requirement '(user-processes))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append 389-ds-base "/sbin/dsctl") (list #$(file-append 389-ds-base "/sbin/dsctl")
#$instance-name "start") #$instance-name "start")

View file

@ -469,7 +469,7 @@ more information)."
(shepherd-service (shepherd-service
(documentation "Run the cachefilesd daemon for FS-Cache.") (documentation "Run the cachefilesd daemon for FS-Cache.")
(provision '(cachefilesd)) (provision '(cachefilesd))
(requirement (append '(file-systems) (requirement (append '(user-processes file-systems)
(if use-syslog? '(syslogd) '()))) (if use-syslog? '(syslogd) '())))
(start #~(begin (start #~(begin
(and=> #$(maybe-value cache-directory) mkdir-p) (and=> #$(maybe-value cache-directory) mkdir-p)
@ -523,7 +523,7 @@ the Linux @code{cachefiles} module.")
(shepherd-service (shepherd-service
(documentation "Run rasdaemon") (documentation "Run rasdaemon")
(provision '(rasdaemon)) (provision '(rasdaemon))
(requirement '(syslogd)) (requirement '(user-processes syslogd))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'#$(rasdaemon-configuration->command-line-args config))) '#$(rasdaemon-configuration->command-line-args config)))
(stop #~(make-kill-destructor)))) (stop #~(make-kill-destructor))))

View file

@ -1600,7 +1600,7 @@ greyed out, instead of only later giving \"not selectable\" popup error.
(list (shepherd-service (list (shepherd-service
(documentation "Run the Dovecot POP3/IMAP mail server.") (documentation "Run the Dovecot POP3/IMAP mail server.")
(provision '(dovecot)) (provision '(dovecot))
(requirement '(pam networking)) (requirement '(user-processes pam networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$dovecot "/sbin/dovecot") (list (string-append #$dovecot "/sbin/dovecot")
"-F"))) "-F")))
@ -1903,7 +1903,7 @@ exim_group = exim
(($ <imap4d-configuration> package config-file) (($ <imap4d-configuration> package config-file)
(list (shepherd-service (list (shepherd-service
(provision '(imap4d)) (provision '(imap4d))
(requirement '(networking syslogd)) (requirement '(user-processes networking syslogd))
(documentation "Run the imap4d daemon.") (documentation "Run the imap4d daemon.")
(start (let ((imap4d (file-append package "/sbin/imap4d"))) (start (let ((imap4d (file-append package "/sbin/imap4d")))
#~(make-forkexec-constructor #~(make-forkexec-constructor
@ -2195,7 +2195,7 @@ authentication plugin that extracts the username from the certificate.")
(list (shepherd-service (list (shepherd-service
(provision '(radicale)) (provision '(radicale))
(documentation "Run the radicale daemon.") (documentation "Run the radicale daemon.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append (radicale-configuration-package cfg) (list #$(file-append (radicale-configuration-package cfg)
"/bin/radicale") "/bin/radicale")
@ -2317,7 +2317,7 @@ in these files will override the defaults.")
(boolean #f) (boolean #f)
"Do not apply Jinja templates.") "Do not apply Jinja templates.")
(shepherd-requirements (shepherd-requirements
(list-of-symbols '(loopback)) (list-of-symbols '(user-processes loopback))
"This is a list of symbols naming Shepherd services that this service "This is a list of symbols naming Shepherd services that this service
will depend on.")) will depend on."))

View file

@ -196,7 +196,7 @@ HTTP.")
(shepherd-service (shepherd-service
(documentation "Prometheus node exporter.") (documentation "Prometheus node exporter.")
(provision '(prometheus-node-exporter)) (provision '(prometheus-node-exporter))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/bin/node_exporter") (list #$(file-append package "/bin/node_exporter")
"--web.listen-address" #$web-listen-address "--web.listen-address" #$web-listen-address
@ -630,7 +630,7 @@ resolution.")
(match-record config <vnstat-configuration> (package pid-file) (match-record config <vnstat-configuration> (package pid-file)
(shepherd-service (shepherd-service
(documentation "Run vnstatd.") (documentation "Run vnstatd.")
(requirement `(networking file-systems)) (requirement `(user-processes networking file-systems))
(provision '(vnstatd)) (provision '(vnstatd))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/vnstatd") (list #$(file-append package "/sbin/vnstatd")

View file

@ -936,7 +936,7 @@ CONFIG, an <opendht-configuration> object."
(shepherd-service (shepherd-service
(documentation "Run an OpenDHT node.") (documentation "Run an OpenDHT node.")
(provision '(opendht dhtnode dhtproxy)) (provision '(opendht dhtnode dhtproxy))
(requirement '(networking syslogd)) (requirement '(user-processes networking syslogd))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$@(opendht-configuration->command-line-arguments config)) (list #$@(opendht-configuration->command-line-arguments config))
#:user "opendht" #:user "opendht"
@ -2036,7 +2036,7 @@ simulation."
(stop #~(make-kill-destructor))) (stop #~(make-kill-destructor)))
(shepherd-service (shepherd-service
(provision '(vswitchd)) (provision '(vswitchd))
(requirement '(ovsdb)) (requirement '(user-processes ovsdb))
(documentation "Run the Open vSwitch daemon.") (documentation "Run the Open vSwitch daemon.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$ovs-vswitchd "--pidfile") (list #$ovs-vswitchd "--pidfile")
@ -2248,7 +2248,7 @@ table inet filter {
(shepherd-service (shepherd-service
(documentation "Run the PageKite service.") (documentation "Run the PageKite service.")
(provision '(pagekite)) (provision '(pagekite))
(requirement '(networking)) (requirement '(user-processes networking))
(actions (list (shepherd-configuration-action config-file))) (actions (list (shepherd-configuration-action config-file)))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$pagekite (list #$pagekite
@ -2446,7 +2446,7 @@ See @command{yggdrasil -genconf} for config options.")
;; While IPFS is most useful when the machine is connected ;; While IPFS is most useful when the machine is connected
;; to the network, only loopback is required for starting ;; to the network, only loopback is required for starting
;; the service. ;; the service.
(requirement '(loopback)) (requirement '(user-processes loopback))
(documentation "Connect to the IPFS network") (documentation "Connect to the IPFS network")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
#$ipfs-daemon-command #$ipfs-daemon-command

View file

@ -74,7 +74,7 @@
(shepherd-service (shepherd-service
(documentation "Start the RPC bind daemon.") (documentation "Start the RPC bind daemon.")
(requirement '(networking)) (requirement '(user-processes networking))
(provision '(rpcbind-daemon)) (provision '(rpcbind-daemon))
(start #~(make-forkexec-constructor #$rpcbind-command)) (start #~(make-forkexec-constructor #$rpcbind-command))
@ -164,7 +164,7 @@ NFS-related data between the kernel and user-space programs."))))
(shepherd-service (shepherd-service
(documentation "Start the RPC GSS daemon.") (documentation "Start the RPC GSS daemon.")
(requirement '(rpcbind-daemon rpc-pipefs)) (requirement '(user-processes rpcbind-daemon rpc-pipefs))
(provision '(gss-daemon)) (provision '(gss-daemon))
(start #~(make-forkexec-constructor #$gss-command)) (start #~(make-forkexec-constructor #$gss-command))
@ -236,7 +236,7 @@ RPC)."))))
(shepherd-service (shepherd-service
(documentation "Start the RPC IDMAP daemon.") (documentation "Start the RPC IDMAP daemon.")
(requirement '(rpcbind-daemon rpc-pipefs)) (requirement '(user-processes rpcbind-daemon rpc-pipefs))
(provision '(idmap-daemon)) (provision '(idmap-daemon))
(start #~(make-forkexec-constructor #$idmap-command)) (start #~(make-forkexec-constructor #$idmap-command))
(stop #~(make-kill-destructor)))))) (stop #~(make-kill-destructor))))))

View file

@ -511,6 +511,7 @@ shutdown on system startup."))
(list (list
(shepherd-service (shepherd-service
(provision '(thermald)) (provision '(thermald))
(requirement '(user-processes))
(documentation "Run thermald cpu frequency scaling.") (documentation "Run thermald cpu frequency scaling.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append (thermald-thermald config) "/sbin/thermald") '(#$(file-append (thermald-thermald config) "/sbin/thermald")

View file

@ -277,6 +277,7 @@ please use 'modules' instead~%")))
"--config" #$config-file "--daemon"))) "--config" #$config-file "--daemon")))
(list (shepherd-service (list (shepherd-service
(provision '(rsync)) (provision '(rsync))
(requirement '(user-processes))
(documentation "Run rsync daemon.") (documentation "Run rsync daemon.")
(actions (list (shepherd-configuration-action config-file))) (actions (list (shepherd-configuration-action config-file)))
(start #~(if #$inetd-style? (start #~(if #$inetd-style?

View file

@ -91,7 +91,7 @@
(list (shepherd-service (list (shepherd-service
(documentation "Run Samba") (documentation "Run Samba")
(provision '(samba-samba)) (provision '(samba-samba))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/samba") (list #$(file-append package "/sbin/samba")
(string-append "--configfile=" #$config-file) (string-append "--configfile=" #$config-file)
@ -105,7 +105,7 @@
(list (shepherd-service (list (shepherd-service
(documentation "Run NMBD") (documentation "Run NMBD")
(provision '(samba-nmbd)) (provision '(samba-nmbd))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/nmbd") (list #$(file-append package "/sbin/nmbd")
(string-append "--configfile=" #$config-file) (string-append "--configfile=" #$config-file)
@ -119,7 +119,7 @@
(list (shepherd-service (list (shepherd-service
(documentation "Run SMBD") (documentation "Run SMBD")
(provision '(samba-smbd)) (provision '(samba-smbd))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/smbd") (list #$(file-append package "/sbin/smbd")
(string-append "--configfile=" #$config-file) (string-append "--configfile=" #$config-file)
@ -133,7 +133,7 @@
(list (shepherd-service (list (shepherd-service
(documentation "Run Winnbindd for Name Service Switch") (documentation "Run Winnbindd for Name Service Switch")
(provision '(samba-winbindd)) (provision '(samba-winbindd))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/winbindd") (list #$(file-append package "/sbin/winbindd")
(string-append "--configfile=" #$config-file) (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 your local NAS device, to be found by Web Service Discovery Clients
like Windows.") like Windows.")
(provision '(wsdd)) (provision '(wsdd))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/bin/wsdd") (list #$(file-append package "/bin/wsdd")
#$@(if ipv4only? #$@(if ipv4only?

View file

@ -53,7 +53,7 @@
(shepherd-service (shepherd-service
(documentation "PC/SC Smart Card Daemon") (documentation "PC/SC Smart Card Daemon")
(provision '(pcscd)) (provision '(pcscd))
(requirement '(syslogd)) (requirement '(user-processes syslogd))
(start #~(lambda _ (start #~(lambda _
(let ((socket "/run/pcscd/pcscd.comm")) (let ((socket "/run/pcscd/pcscd.comm"))
(when (file-exists? socket) (when (file-exists? socket)

View file

@ -301,7 +301,7 @@ the configuration files of the speaker models.")
(shepherd-service (shepherd-service
(documentation "Run the speaker safety daemon") (documentation "Run the speaker safety daemon")
(provision '(speakersafetyd)) (provision '(speakersafetyd))
(requirement '(udev)) (requirement '(user-processes udev))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append speakersafetyd "/bin/speakersafetyd") (list #$(file-append speakersafetyd "/bin/speakersafetyd")
"--config-path" #$configuration-directory "--config-path" #$configuration-directory

View file

@ -47,7 +47,7 @@
(list (list
(shepherd-service (shepherd-service
(documentation "Spice vdagentd service") (documentation "Spice vdagentd service")
(requirement '(dbus-system)) (requirement '(user-processes dbus-system))
(provision '(spice-vdagentd)) (provision '(spice-vdagentd))
(start #~(lambda args (start #~(lambda args
;; spice-vdagentd supports being activated upon the client ;; spice-vdagentd supports being activated upon the client

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014-2019, 2022-2024 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014-2019, 2022-2025 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2016 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
@ -218,7 +218,8 @@
interfaces))))) interfaces)))))
(define requires (define requires
`(networking `(user-processes
networking
pam pam
,@(if (and daemonic? (lsh-configuration-syslog-output? config)) ,@(if (and daemonic? (lsh-configuration-syslog-output? config))
'(syslogd) '(syslogd)
@ -595,7 +596,7 @@ of user-name/file-like tuples."
;; On the Hurd, this can only be started after pfinet is up, hence ;; On the Hurd, this can only be started after pfinet is up, hence
;; the dependency on 'networking'. ;; the dependency on 'networking'.
(requirement '(pam syslogd loopback networking)) (requirement '(user-processes pam syslogd loopback networking))
(provision '(ssh-daemon ssh sshd)) (provision '(ssh-daemon ssh sshd))
(start #~(if #$inetd-style? (start #~(if #$inetd-style?
@ -726,7 +727,8 @@ of user-name/file-like tuples."
(define requires (define requires
(if (dropbear-configuration-syslog-output? config) (if (dropbear-configuration-syslog-output? config)
'(networking syslogd) '(networking))) '(user-processes networking syslogd)
'(user-processes networking)))
(list (shepherd-service (list (shepherd-service
(documentation "Dropbear SSH server.") (documentation "Dropbear SSH server.")
@ -794,6 +796,7 @@ object."
(shepherd-service (shepherd-service
(documentation "Automatically set up ssh connections (and keep them alive).") (documentation "Automatically set up ssh connections (and keep them alive).")
(provision '(autossh)) (provision '(autossh))
(requirement '(user-processes))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append autossh "/bin/autossh") (list #$(file-append autossh "/bin/autossh")
#$@(autossh-configuration-ssh-options config)) #$@(autossh-configuration-ssh-options config))

View file

@ -547,7 +547,7 @@ argument, either a registered username or the fingerprint of the account.")
,@%default-modules)) ,@%default-modules))
;; The requirement on dbus-system is to ensure other required ;; The requirement on dbus-system is to ensure other required
;; activation for D-Bus, such as a /etc/machine-id file. ;; activation for D-Bus, such as a /etc/machine-id file.
(requirement '(dbus-system syslogd)) (requirement '(user-processes dbus-system syslogd))
(start (start
#~(lambda () #~(lambda ()
(define pid (define pid
@ -580,7 +580,7 @@ argument, either a registered username or the fingerprint of the account.")
list-banned-contacts-action list-banned-contacts-action
enable-account-action enable-account-action
disable-account-action)) disable-account-action))
(requirement '(jami-dbus-session)) (requirement '(user-processes jami-dbus-session))
(modules `((ice-9 format) (modules `((ice-9 format)
(ice-9 ftw) (ice-9 ftw)
(ice-9 match) (ice-9 match)
@ -944,7 +944,7 @@ Or set public-registration to #f"))))))))
(list (shepherd-service (list (shepherd-service
(provision '(mumble-server)) (provision '(mumble-server))
(documentation "Run the Mumble server.") (documentation "Run the Mumble server.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append (mumble-server-configuration-package config) '(#$(file-append (mumble-server-configuration-package config)
"/bin/mumble-server") "/bin/mumble-server")

View file

@ -136,7 +136,7 @@
,@whitelist))) ,@whitelist)))
(list (shepherd-service (list (shepherd-service
(documentation "Run the git-daemon.") (documentation "Run the git-daemon.")
(requirement '(networking)) (requirement '(user-processes networking))
(provision '(git-daemon)) (provision '(git-daemon))
(start #~(make-forkexec-constructor '#$command (start #~(make-forkexec-constructor '#$command
#:user "git-daemon" #:user "git-daemon"

View file

@ -573,6 +573,7 @@ performs required management tasks for virtualized guests.")))
(list (shepherd-service (list (shepherd-service
(documentation "Run the virtlog daemon.") (documentation "Run the virtlog daemon.")
(provision '(virtlogd)) (provision '(virtlogd))
(requirement '(user-processes))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$libvirt "/sbin/virtlogd") (list (string-append #$libvirt "/sbin/virtlogd")
"-f" #$config-file))) "-f" #$config-file)))

View file

@ -206,7 +206,7 @@ CONFIG, a <xvnc-configuration> object."
(shepherd-service (shepherd-service
(provision '(xvnc vncserver)) (provision '(xvnc vncserver))
(documentation "Run the Xvnc server.") (documentation "Run the Xvnc server.")
(requirement '(networking syslogd)) (requirement '(user-processes networking syslogd))
(start (if (xvnc-configuration-inetd? config) (start (if (xvnc-configuration-inetd? config)
#~(let* ((inaddr (if #$(xvnc-configuration-localhost? config) #~(let* ((inaddr (if #$(xvnc-configuration-localhost? config)
INADDR_LOOPBACK INADDR_LOOPBACK

View file

@ -506,7 +506,7 @@ is truncated and rewritten every minute.")
(provision (match role (provision (match role
('server '(vpn-server)) ('server '(vpn-server))
('client '(vpn-client)))) ('client '(vpn-client))))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$openvpn "/sbin/openvpn") (list (string-append #$openvpn "/sbin/openvpn")
"--writepid" #$pid-file "--config" #$config-file "--writepid" #$pid-file "--config" #$config-file
@ -693,7 +693,7 @@ include ~a/*.conf"
(let* ((ipsec (file-append strongswan "/sbin/ipsec")) (let* ((ipsec (file-append strongswan "/sbin/ipsec"))
(strongswan-conf-path (strongswan-configuration-file config))) (strongswan-conf-path (strongswan-configuration-file config)))
(list (shepherd-service (list (shepherd-service
(requirement '(networking)) (requirement '(user-processes networking))
(provision '(ipsec)) (provision '(ipsec))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$ipsec "start" "--nofork") (list #$ipsec "start" "--nofork")

View file

@ -471,7 +471,7 @@
(list (shepherd-service (list (shepherd-service
(provision '(httpd)) (provision '(httpd))
(documentation "The Apache HTTP Server") (documentation "The Apache HTTP Server")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
`(#$(file-append package "/bin/httpd") `(#$(file-append package "/bin/httpd")
#$@(if config #$@(if config
@ -960,7 +960,7 @@ renewed TLS certificates, or @code{include}d files.")
(list (shepherd-service (list (shepherd-service
(provision '(fcgiwrap)) (provision '(fcgiwrap))
(documentation "Run the fcgiwrap daemon.") (documentation "Run the fcgiwrap daemon.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append package "/sbin/fcgiwrap") '(#$(file-append package "/sbin/fcgiwrap")
"-s" #$socket) "-s" #$socket)
@ -1144,7 +1144,7 @@ and the back-end of a Web service.")))
(list (shepherd-service (list (shepherd-service
(provision '(php-fpm)) (provision '(php-fpm))
(documentation "Run the php-fpm daemon.") (documentation "Run the php-fpm daemon.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append php "/sbin/php-fpm") '(#$(file-append php "/sbin/php-fpm")
"--fpm-config" "--fpm-config"
@ -1289,7 +1289,7 @@ a webserver.")
(shepherd-service (shepherd-service
(documentation "hpcguix-web daemon") (documentation "hpcguix-web daemon")
(provision '(hpcguix-web)) (provision '(hpcguix-web))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append hpcguix-web "/bin/hpcguix-web") (list #$(file-append hpcguix-web "/bin/hpcguix-web")
(string-append "--listen=" (string-append "--listen="
@ -1426,6 +1426,7 @@ a webserver.")
(($ <tailon-configuration> config-file package) (($ <tailon-configuration> config-file package)
(list (shepherd-service (list (shepherd-service
(provision '(tailon)) (provision '(tailon))
(requirement '(user-processes))
(documentation "Run the tailon daemon.") (documentation "Run the tailon daemon.")
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
`(,(string-append #$package "/bin/tailon") `(,(string-append #$package "/bin/tailon")
@ -1618,7 +1619,7 @@ files.")
(provision (list (symbol-append 'varnish- (string->symbol name)))) (provision (list (symbol-append 'varnish- (string->symbol name))))
(documentation (string-append "The Varnish Web Accelerator" (documentation (string-append "The Varnish Web Accelerator"
" (" name ")")) " (" name ")"))
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list #$(file-append package "/sbin/varnishd") (list #$(file-append package "/sbin/varnishd")
"-n" #$name "-n" #$name
@ -1678,6 +1679,7 @@ Whoogle."))
(list (list
(shepherd-service (shepherd-service
(provision '(whoogle-search)) (provision '(whoogle-search))
(requirement '(user-processes))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
(list (string-append #$package "/bin/whoogle-search") (list (string-append #$package "/bin/whoogle-search")
"--host" #$host "--port" #$(number->string port)) "--host" #$host "--port" #$(number->string port))
@ -2066,7 +2068,7 @@ WSGIPassAuthorization On
(list (shepherd-service (list (shepherd-service
(provision '(mumi)) (provision '(mumi))
(documentation "Mumi bug-tracking web interface.") (documentation "Mumi bug-tracking web interface.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
`(#$(file-append mumi "/bin/mumi") "web" `(#$(file-append mumi "/bin/mumi") "web"
,@(if #$mailer? '() '("--disable-mailer"))) ,@(if #$mailer? '() '("--disable-mailer")))
@ -2077,7 +2079,7 @@ WSGIPassAuthorization On
(shepherd-service (shepherd-service
(provision '(mumi-worker)) (provision '(mumi-worker))
(documentation "Mumi bug-tracking web interface database worker.") (documentation "Mumi bug-tracking web interface database worker.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
'(#$(file-append mumi "/bin/mumi") "worker") '(#$(file-append mumi "/bin/mumi") "worker")
#:environment-variables #$environment #:environment-variables #$environment
@ -2087,7 +2089,7 @@ WSGIPassAuthorization On
(shepherd-service (shepherd-service
(provision '(mumi-mailer)) (provision '(mumi-mailer))
(documentation "Mumi bug-tracking web interface mailer.") (documentation "Mumi bug-tracking web interface mailer.")
(requirement '(networking)) (requirement '(user-processes networking))
(start #~(make-forkexec-constructor (start #~(make-forkexec-constructor
`(#$(file-append mumi "/bin/mumi") "mailer" `(#$(file-append mumi "/bin/mumi") "mailer"
,@(if #$sender ,@(if #$sender
@ -2142,7 +2144,7 @@ root=/srv/gemini
(($ <gmnisrv-configuration> package config-file) (($ <gmnisrv-configuration> package config-file)
(list (shepherd-service (list (shepherd-service
(provision '(gmnisrv)) (provision '(gmnisrv))
(requirement '(networking)) (requirement '(user-processes networking))
(documentation "Run the gmnisrv Gemini server.") (documentation "Run the gmnisrv Gemini server.")
(start (let ((gmnisrv (file-append package "/bin/gmnisrv"))) (start (let ((gmnisrv (file-append package "/bin/gmnisrv")))
#~(make-forkexec-constructor #~(make-forkexec-constructor
@ -2231,7 +2233,7 @@ root=/srv/gemini
log-ip? user group log-file) log-ip? user group log-file)
(list (shepherd-service (list (shepherd-service
(provision '(agate)) (provision '(agate))
(requirement '(networking)) (requirement '(user-processes networking))
(documentation "Run the agate Gemini server.") (documentation "Run the agate Gemini server.")
(start (let ((agate (file-append package "/bin/agate"))) (start (let ((agate (file-append package "/bin/agate")))
#~(make-forkexec-constructor #~(make-forkexec-constructor