From 1a63aea94340f6a24ac09e1c348401e9dfd05395 Mon Sep 17 00:00:00 2001
From: Ricardo Wurmus <rekado@elephly.net>
Date: Thu, 1 Dec 2022 19:50:36 +0100
Subject: linux-container: Do not replace nscd-service-type.

* gnu/system/linux-container.scm (containerized-operating-system): Respect
customizations to the nscd-service-type and only modify the caches field.
---
 gnu/system/linux-container.scm | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

(limited to 'gnu/system')

diff --git a/gnu/system/linux-container.scm b/gnu/system/linux-container.scm
index 69080bcacb..c2fd55d48e 100644
--- a/gnu/system/linux-container.scm
+++ b/gnu/system/linux-container.scm
@@ -121,9 +121,7 @@ (define services-to-drop
     ;; different configs that are better suited to containers.
     (append (list console-font-service-type
                   mingetty-service-type
-                  agetty-service-type
-                  ;; Reinstantiated below with smaller caches.
-                  nscd-service-type)
+                  agetty-service-type)
             (if shared-network?
                 ;; Replace these with dummy-networking-service-type below.
                 (list
@@ -134,17 +132,13 @@ (define services-to-drop
                 (list))))
 
   (define services-to-add
-    (append
-     ;; Many Guix services depend on a 'networking' shepherd
-     ;; service, so make sure to provide a dummy 'networking'
-     ;; service when we are sure that networking is already set up
-     ;; in the host and can be used.  That prevents double setup.
-     (if shared-network?
-         (list (service dummy-networking-service-type))
-         '())
-     (list
-      (nscd-service (nscd-configuration
-                     (caches %nscd-container-caches))))))
+    ;; Many Guix services depend on a 'networking' shepherd
+    ;; service, so make sure to provide a dummy 'networking'
+    ;; service when we are sure that networking is already set up
+    ;; in the host and can be used.  That prevents double setup.
+    (if shared-network?
+        (list (service dummy-networking-service-type))
+        '()))
 
   (operating-system
     (inherit os)
@@ -155,7 +149,11 @@ (define services-to-add
     (services (append (remove (lambda (service)
                                 (memq (service-kind service)
                                       services-to-drop))
-                              (operating-system-user-services os))
+                              (modify-services (operating-system-user-services os)
+                                (nscd-service-type
+                                 config => (nscd-configuration
+                                            (inherit config)
+                                            (caches %nscd-container-caches)))))
                       services-to-add))
     (file-systems (append (map mapping->fs
                                (if shared-network?
-- 
cgit v1.2.3