~ruther/guix-local

44bbfc24e4bcc48d0e3343cd3d83452721af8c36 — Ludovic Courtès 3 years ago 74443c3
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'.
1 files changed, 12 insertions(+), 9 deletions(-)

M gnu/system/linux-container.scm
M gnu/system/linux-container.scm => gnu/system/linux-container.scm +12 -9
@@ 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)