summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-05-18 00:12:39 +0200
committerLudovic Courtès <ludo@gnu.org>2015-05-18 00:12:39 +0200
commit175ced413cb1c31ec58e06a4c2de8a0ae53fdaeb (patch)
treeca6b0b14cd7119f45e446bd22acff25882fdf1d5
parentcfc149dc07a8577199d93fd967b9023c1badc2a0 (diff)
downloadguix-175ced413cb1c31ec58e06a4c2de8a0ae53fdaeb.tar.gz
install: Use the right user and group name for files in the binary tarball.
Suggested by Andreas Enge <andreas@enge.fr>
at <http://lists.gnu.org/archive/html/guix-devel/2015-05/msg00220.html>.

* gnu/system/install.scm (self-contained-tarball): Pass --owner and
  --group to 'tar'.
* doc/guix.texi (Binary Installation): Move group and account creation
  before extraction.  Make "run the daemon" a separate step.
-rw-r--r--doc/guix.texi9
-rw-r--r--gnu/system/install.scm7
2 files changed, 13 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 7c4aa10ac6..bb0d39cb8f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -265,6 +265,12 @@ is @code{x86_64-linux} for an @code{x86_64} machine already running the
 kernel Linux, and so on.
 
 @item
+Create the group and user accounts for build users as explained below
+(@pxref{Build Environment Setup}).  Use the exact same names as given in
+the example so that files extracted from the archive will have the right
+ownership.
+
+@item
 As @code{root}, run:
 
 @example
@@ -286,8 +292,7 @@ Do @emph{not} unpack the tarball on a working Guix system since that
 would overwrite its own essential files.
 
 @item
-Create the group and user accounts for build users as explained below
-(@pxref{Build Environment Setup}), and run the daemon:
+Run the daemon:
 
 @example
 # /root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 82793a6648..2ae7f27690 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -67,9 +67,14 @@ under /root/.guix-profile where GUIX is installed."
                                              #:closure "profile")
 
           ;; Create the tarball.  Use GNU format so there's no file name
-          ;; length limitation.
+          ;; length limitation.  Use the owner and group names given in the
+          ;; manual.
+          ;; XXX: /var and /root should rather be root-owned, but it doesn't
+          ;; make any difference in practice.
           (with-directory-excursion %root
             (zero? (system* "tar" "--xz" "--format=gnu"
+                            "--owner=guixbuilder01"
+                            "--group=guixbuild"
                             "-cvf" #$output ".")))))
 
     (gexp->derivation "guix-tarball.tar.xz" build