services: file-systems: Make user-file-systems depend on file-systems.

Previously 'user-file-systems depended only on 'file-systems without any requirements.
This inverts the logic to have
file-systems <- user-file-systems <- user-processes

to ensure that all user mounts are already unmounted when shepherd managed
file systems get unmounted.

Fixes: guix/guix#4445
Fixes: guix/guix#1703

* gnu/services/base.scm (file-system-shepherd-services): Remove requirement
of 'file-systems on 'user-file-systems.
Add dependency of 'user-file-systems on 'file-systems.
(file-system-service-type): Add 'user-file-systems to user-processes extension.

Change-Id: I9d89f682fb4b4673fa135d17b2b188788b9f8db1
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
This commit is contained in:
Dariqq 2025-11-25 09:02:26 +00:00 committed by Rutherther
parent f1f27c6838
commit 9aa7f05639
No known key found for this signature in database
GPG key ID: 0322798269E471C3

View file

@ -489,7 +489,7 @@ upon boot."
(define sink
(shepherd-service
(provision '(file-systems))
(requirement (cons* 'root-file-system 'user-file-systems
(requirement (cons* 'root-file-system
(map file-system->shepherd-service-name
;; Do not require file systems with Shepherd
;; requirements to provision
@ -510,6 +510,9 @@ upon boot."
(shepherd-service
(documentation "Unmount manually-mounted file systems.")
(provision '(user-file-systems))
;; Unmount manually-mounted file systems before shepherd-managed
;; ones, e.g /run/user/$UID and /run/user.
(requirement '(file-systems))
(start #~(const #t))
(stop #~(lambda args
(define (known? mount-point)
@ -591,7 +594,8 @@ FILE-SYSTEMS."
;; Have 'user-processes' depend on 'file-systems'.
(service-extension user-processes-service-type
(const '(file-systems)))))
(const '(file-systems
user-file-systems)))))
(compose concatenate)
(extend append)
(description