civodul pushed a commit to branch master
in repository guix.

commit bd7b9e6a601721258e937ccc87eb7c4d75d84ac4
Author: Ludovic Courtès <l...@gnu.org>
AuthorDate: Sat Feb 22 22:59:07 2025 +0100

    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 <dar...@posteo.net>
    Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
---
 doc/guix.texi                    |  2 +-
 gnu/services/auditd.scm          |  1 +
 gnu/services/base.scm            |  4 ++--
 gnu/services/ci.scm              |  2 +-
 gnu/services/containers.scm      |  6 ++++--
 gnu/services/cups.scm            |  2 +-
 gnu/services/databases.scm       |  2 +-
 gnu/services/desktop.scm         | 10 +++++-----
 gnu/services/dns.scm             |  4 ++--
 gnu/services/docker.scm          |  4 +++-
 gnu/services/file-sharing.scm    |  2 +-
 gnu/services/games.scm           |  4 ++--
 gnu/services/guix.scm            | 12 ++++++------
 gnu/services/ldap.scm            |  2 +-
 gnu/services/linux.scm           |  4 ++--
 gnu/services/mail.scm            |  8 ++++----
 gnu/services/monitoring.scm      |  4 ++--
 gnu/services/networking.scm      |  8 ++++----
 gnu/services/nfs.scm             |  6 +++---
 gnu/services/pm.scm              |  1 +
 gnu/services/rsync.scm           |  1 +
 gnu/services/samba.scm           | 10 +++++-----
 gnu/services/security-token.scm  |  2 +-
 gnu/services/sound.scm           |  2 +-
 gnu/services/spice.scm           |  2 +-
 gnu/services/ssh.scm             | 11 +++++++----
 gnu/services/telephony.scm       |  6 +++---
 gnu/services/version-control.scm |  2 +-
 gnu/services/virtualization.scm  |  1 +
 gnu/services/vnc.scm             |  2 +-
 gnu/services/vpn.scm             |  4 ++--
 gnu/services/web.scm             | 22 ++++++++++++----------
 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 <l...@gnu.org>
+;;; Copyright © 2014-2019, 2022-2025 Ludovic Courtès <l...@gnu.org>
 ;;; Copyright © 2016 David Craven <da...@craven.ch>
 ;;; Copyright © 2016 Julien Lepiller <jul...@lepiller.eu>
 ;;; Copyright © 2017 Clément Lassieur <clem...@lassieur.org>
@@ -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


Reply via email to