summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2023-06-09 18:12:42 +0200
committerLudovic Courtès <ludo@gnu.org>2023-06-09 18:15:07 +0200
commit44bbfc24e4bcc48d0e3343cd3d83452721af8c36 (patch)
tree29cbadf06ead137e58bbf193e953dd6e82013da3
parent74443c30f3e20655a046c0d3ea236822ef130968 (diff)
linux-container: Adjust to 'modify-services' semantic change.
This is a followup to dbbc7e946131ba257728f1d05b96c4339b7ee88b: 'nscd-service-type' isn't necessarily present in OS, so we cannot use the 'modify-services' as it would now error out. This was happening with the "guix system docker-image" test in 'tests/guix-system.sh'. * gnu/system/linux-container.scm (containerized-operating-system): Use 'filter-map' instead of 'remove' + 'modify-services'.
-rw-r--r--gnu/system/linux-container.scm21
1 files changed, 12 insertions, 9 deletions
diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 409386a84f..7c45dbccaf 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -150,15 +150,18 @@ containerized OS. EXTRA-FILE-SYSTEMS is a list of file systems to add to OS."
(essential-services (container-essential-services
this-operating-system
#:shared-network? shared-network?))
- (services (append (remove (lambda (service)
- (memq (service-kind service)
- services-to-drop))
- (modify-services (operating-system-user-services os)
- (nscd-service-type
- config => (nscd-configuration
- (inherit config)
- (caches %nscd-container-caches)))))
- services-to-add))
+ (services
+ (append services-to-add
+ (filter-map (lambda (s)
+ (cond ((memq (service-kind s) services-to-drop)
+ #f)
+ ((eq? nscd-service-type (service-kind s))
+ (service nscd-service-type
+ (nscd-configuration
+ (inherit (service-value s))
+ (caches %nscd-container-caches))))
+ (else s)))
+ (operating-system-user-services os))))
(file-systems (append (map mapping->fs
(if shared-network?
(append %network-file-mappings mappings)