summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-03-20 15:02:38 +0100
committerLudovic Courtès <ludo@gnu.org>2016-03-20 15:02:38 +0100
commit4e8b7502e392bd44316f0f4ec5eed6c626655ad8 (patch)
tree34f3e0d5b69824a3200b1e3a7513ff5c29253b07
parent71be99b8b673ecf86a104d847a15fa4b1427a266 (diff)
downloadguix-4e8b7502e392bd44316f0f4ec5eed6c626655ad8.tar.gz
system: Allow account skeletons to be directories.
* gnu/system/shadow.scm (skeleton-directory): Use 'copy-recursively'
instead of 'copy-file'.
* gnu/build/activation.scm (copy-account-skeletons): Likewise.
-rw-r--r--gnu/build/activation.scm5
-rw-r--r--gnu/system/shadow.scm10
2 files changed, 9 insertions, 6 deletions
diff --git a/gnu/build/activation.scm b/gnu/build/activation.scm
index 352e736050..ae614994d6 100644
--- a/gnu/build/activation.scm
+++ b/gnu/build/activation.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -91,7 +91,8 @@
     (mkdir-p home)
     (for-each (lambda (file)
                 (let ((target (string-append home "/" file)))
-                  (copy-file (string-append directory "/" file) target)
+                  (copy-recursively (string-append directory "/" file)
+                                    target)
                   (make-file-writable target)))
               files)))
 
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index 7f3a1dfac2..6e62aeee57 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -188,7 +188,8 @@ set debug-file-directory ~/.guix-profile/lib/debug\n")))
   "Return a directory containing SKELETONS, a list of name/derivation tuples."
   (computed-file "skel"
                  #~(begin
-                     (use-modules (ice-9 match))
+                     (use-modules (ice-9 match)
+                                  (guix build utils))
 
                      (mkdir #$output)
                      (chdir #$output)
@@ -198,9 +199,10 @@ set debug-file-directory ~/.guix-profile/lib/debug\n")))
                      ;; would just copy the symlinks as is.
                      (for-each (match-lambda
                                  ((target source)
-                                  (copy-file source target)))
+                                  (copy-recursively source target)))
                                '#$skeletons)
-                     #t)))
+                     #t)
+                 #:modules '((guix build utils))))
 
 (define (assert-valid-users/groups users groups)
   "Raise an error if USERS refer to groups not listed in GROUPS."