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.
This commit is contained in:
Ludovic Courtès 2015-05-18 00:12:39 +02:00
parent cfc149dc07
commit 175ced413c
2 changed files with 13 additions and 3 deletions

View File

@ -264,6 +264,12 @@ verify the authenticity of the tarball against it!}, where @var{system}
is @code{x86_64-linux} for an @code{x86_64} machine already running the is @code{x86_64-linux} for an @code{x86_64} machine already running the
kernel Linux, and so on. 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 @item
As @code{root}, run: As @code{root}, run:
@ -286,8 +292,7 @@ Do @emph{not} unpack the tarball on a working Guix system since that
would overwrite its own essential files. would overwrite its own essential files.
@item @item
Create the group and user accounts for build users as explained below Run the daemon:
(@pxref{Build Environment Setup}), and run the daemon:
@example @example
# /root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild # /root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild

View File

@ -67,9 +67,14 @@ under /root/.guix-profile where GUIX is installed."
#:closure "profile") #:closure "profile")
;; Create the tarball. Use GNU format so there's no file name ;; 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 (with-directory-excursion %root
(zero? (system* "tar" "--xz" "--format=gnu" (zero? (system* "tar" "--xz" "--format=gnu"
"--owner=guixbuilder01"
"--group=guixbuild"
"-cvf" #$output "."))))) "-cvf" #$output ".")))))
(gexp->derivation "guix-tarball.tar.xz" build (gexp->derivation "guix-tarball.tar.xz" build