From patchwork Sun Oct 21 20:49:41 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 1595 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id D2B7A1672F; Sun, 21 Oct 2018 21:51:08 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 8E5A41672E for ; Sun, 21 Oct 2018 21:51:08 +0100 (BST) Received: from localhost ([::1]:60179 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKgl-0001SG-V1 for patchwork@mira.cbaines.net; Sun, 21 Oct 2018 16:51:07 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKgh-0001Rz-0R for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEKgg-0005oG-01 for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:02 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:58645) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gEKgf-0005oA-Rq for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gEKgf-0008V4-OP for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33111] [PATCH 1/3] install: Parameterize the profile name for 'populate-single-profile-directory'. References: <20181021204506.1978-1-ludo@gnu.org> In-Reply-To: <20181021204506.1978-1-ludo@gnu.org> Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 21 Oct 2018 20:51:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33111 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33111@debbugs.gnu.org Received: via spool by 33111-submit@debbugs.gnu.org id=B33111.154015501232590 (code B ref 33111); Sun, 21 Oct 2018 20:51:01 +0000 Received: (at 33111) by debbugs.gnu.org; 21 Oct 2018 20:50:12 +0000 Received: from localhost ([127.0.0.1]:34664 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gEKfs-0008TZ-8g for submit@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:12 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35529) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gEKfq-0008T9-45 for 33111@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEKfj-0005CE-Ro for 33111@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:04 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35989) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKfb-000589-JI; Sun, 21 Oct 2018 16:49:57 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33222 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gEKfa-0003ed-Fh; Sun, 21 Oct 2018 16:49:55 -0400 From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 21 Oct 2018 22:49:41 +0200 Message-Id: <20181021204943.2142-1-ludo@gnu.org> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/build/install.scm (populate-single-profile-directory): Add #:profile-name. Replace hard-coded occurrences of "guix-profile" with PROFILE-NAME. Make the symlink part under /root a function of PROFILE-NAME. --- gnu/build/install.scm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/gnu/build/install.scm b/gnu/build/install.scm index c602d6948..98c547f2e 100644 --- a/gnu/build/install.scm +++ b/gnu/build/install.scm @@ -160,6 +160,7 @@ deduplicates files common to CLOSURE and the rest of PREFIX." (define* (populate-single-profile-directory directory #:key profile closure + (profile-name "guix-profile") deduplicate? register? schema) "Populate DIRECTORY with a store containing PROFILE, whose closure is given @@ -169,6 +170,9 @@ When REGISTER? is true, initialize DIRECTORY/var/guix/db to reflect the contents of the store; DEDUPLICATE? determines whether to deduplicate files in the store. +PROFILE-NAME is the name of the profile being created under +/var/guix/profiles, typically either \"guix-profile\" or \"current-guix\". + This is used to create the self-contained tarballs with 'guix pack'." (define (scope file) (string-append directory "/" file)) @@ -198,12 +202,20 @@ This is used to create the self-contained tarballs with 'guix pack'." ;; Make root's profile, which makes it a GC root. (mkdir-p* %root-profile) (symlink* profile - (string-append %root-profile "/guix-profile-1-link")) - (symlink* "guix-profile-1-link" - (string-append %root-profile "/guix-profile")) + (string-append %root-profile "/" profile-name "-1-link")) + (symlink* (string-append profile-name "-1-link") + (string-append %root-profile "/" profile-name)) - (mkdir-p* "/root") - (symlink* (string-append %root-profile "/guix-profile") - "/root/.guix-profile")) + (match profile-name + ("guix-profile" + (mkdir-p* "/root") + (symlink* (string-append %root-profile "/guix-profile") + "/root/.guix-profile")) + ("current-guix" + (mkdir-p* "/root/.config/guix") + (symlink* (string-append %root-profile "/current-guix") + "/root/.config/guix/current")) + (_ + #t))) ;;; install.scm ends here From patchwork Sun Oct 21 20:49:42 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 1596 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id B14561672F; Sun, 21 Oct 2018 21:51:13 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 4351116724 for ; Sun, 21 Oct 2018 21:51:13 +0100 (BST) Received: from localhost ([::1]:60182 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKgq-0001VH-LX for patchwork@mira.cbaines.net; Sun, 21 Oct 2018 16:51:12 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45401) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKgi-0001S4-K6 for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEKgg-0005qS-Fp for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:04 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:58646) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gEKgg-0005ph-AP for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gEKgg-0008VB-7s for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33111] [PATCH 2/3] pack: Add '--profile-name'. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 21 Oct 2018 20:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33111 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33111@debbugs.gnu.org Received: via spool by 33111-submit@debbugs.gnu.org id=B33111.154015501432603 (code B ref 33111); Sun, 21 Oct 2018 20:51:02 +0000 Received: (at 33111) by debbugs.gnu.org; 21 Oct 2018 20:50:14 +0000 Received: from localhost ([127.0.0.1]:34668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gEKft-0008Tm-Mq for submit@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:14 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35549) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gEKfs-0008TL-9f for 33111@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEKfk-0005CZ-Na for 33111@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:07 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35990) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKfd-00058m-HH; Sun, 21 Oct 2018 16:49:59 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33222 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gEKfb-0003ed-SC; Sun, 21 Oct 2018 16:49:57 -0400 From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 21 Oct 2018 22:49:42 +0200 Message-Id: <20181021204943.2142-2-ludo@gnu.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181021204943.2142-1-ludo@gnu.org> References: <20181021204943.2142-1-ludo@gnu.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * guix/scripts/pack.scm (self-contained-tarball): Add #:profile-name and honor it. (squashfs-image, docker-image): Add #:profile-name. (%default-options): Add 'profile-name'. (%options, show-help): Add "--profile-name". (guix-pack): Honor it. * tests/guix-pack.sh: Add test for '--localstatedir --profile-name=current-guix'. * doc/guix.texi (Invoking guix pack): Document "--profile-name". --- doc/guix.texi | 7 +++++-- guix/scripts/pack.scm | 20 +++++++++++++++++++- tests/guix-pack.sh | 17 +++++++++++++++-- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 12346c4b8..7265eed91 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -3459,8 +3459,11 @@ For instance, @code{-S /opt/gnu/bin=bin} creates a @file{/opt/gnu/bin} symlink pointing to the @file{bin} sub-directory of the profile. @item --localstatedir -Include the ``local state directory'', @file{/var/guix}, in the -resulting pack. +@itemx --profile-name=@var{name} +Include the ``local state directory'', @file{/var/guix}, in the resulting +pack, and notably the @file{/var/guix/profiles/per-user/root/@var{name}} +profile---by default @var{name} is @code{guix-profile}, which corresponds to +@file{~root/.guix-profile}. @file{/var/guix} contains the store database (@pxref{The Store}) as well as garbage-collector roots (@pxref{Invoking guix gc}). Providing it in diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index b7b4e22bb..a87a96115 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -105,6 +105,7 @@ found." (define* (self-contained-tarball name profile #:key target + (profile-name "guix-profile") deduplicate? (compressor (first %compressors)) localstatedir? @@ -184,6 +185,7 @@ added to the pack." ;; . (populate-single-profile-directory %root #:profile #$profile + #:profile-name #$profile-name #:closure "profile" #:deduplicate? #f #:register? #$localstatedir? @@ -244,6 +246,7 @@ added to the pack." (define* (squashfs-image name profile #:key target + (profile-name "guix-profile") deduplicate? (compressor (first %compressors)) localstatedir? @@ -333,6 +336,7 @@ added to the pack." (define* (docker-image name profile #:key target + (profile-name "guix-profile") deduplicate? (compressor (first %compressors)) localstatedir? @@ -538,6 +542,7 @@ please email '~a'~%") (define %default-options ;; Alist of default option values. `((format . tarball) + (profile-name . "guix-profile") (system . ,(%current-system)) (substitutes? . #t) (build-hook? . #t) @@ -609,6 +614,13 @@ please email '~a'~%") (option '("localstatedir") #f #f (lambda (opt name arg result) (alist-cons 'localstatedir? #t result))) + (option '("profile-name") #t #f + (lambda (opt name arg result) + (match arg + ((or "guix-profile" "current-guix") + (alist-cons 'profile-name arg result)) + (_ + (leave (G_ "~a: unsupported profile name~%") arg))))) (option '("bootstrap") #f #f (lambda (opt name arg result) (alist-cons 'bootstrap? #t result))) @@ -641,6 +653,9 @@ Create a bundle of PACKAGE.\n")) -m, --manifest=FILE create a pack with the manifest from FILE")) (display (G_ " --localstatedir include /var/guix in the resulting pack")) + (display (G_ " + --profile-name=NAME + populate /var/guix/profiles/.../NAME")) (display (G_ " --bootstrap use the bootstrap binaries to build the pack")) (newline) @@ -730,7 +745,8 @@ Create a bundle of PACKAGE.\n")) (#f (leave (G_ "~a: unknown pack format~%") pack-format)))) - (localstatedir? (assoc-ref opts 'localstatedir?))) + (localstatedir? (assoc-ref opts 'localstatedir?)) + (profile-name (assoc-ref opts 'profile-name))) (run-with-store store (mlet* %store-monad ((profile (profile-derivation manifest @@ -749,6 +765,8 @@ Create a bundle of PACKAGE.\n")) symlinks #:localstatedir? localstatedir? + #:profile-name + profile-name #:archiver archiver))) (mbegin %store-monad diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index cd721a60e..c55fe6c9a 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -61,7 +61,7 @@ the_pack="`guix pack -S /opt/gnu/bin=bin guile-bootstrap`" # exists because /opt/gnu/bin may be an absolute symlink to a store item that # has been GC'd. test_directory="`mktemp -d`" -trap 'rm -rf "$test_directory"' EXIT +trap 'find "$test_directory" -type d -exec chmod +w {} \; ;rm -rf "$test_directory"' EXIT cd "$test_directory" tar -xf "$the_pack" test -L opt/gnu/bin @@ -74,10 +74,23 @@ is_available () { if is_available chroot && is_available unshare; then # Verify we can use what we built. unshare -r chroot . /opt/gnu/bin/guile --version - cd - else echo "warning: skipped some verification because chroot or unshare is unavailable" >&2 fi +cd - +rm -rf "$test_directory" + +# Build a tarball with '--localstatedir' +the_pack="`guix pack -C none --localstatedir --profile-name=current-guix \ + guile-bootstrap`" +test_directory="`mktemp -d`" +cd "$test_directory" +tar -xf "$the_pack" + +profile="`find -name current-guix`" +test "`readlink $profile`" = "current-guix-1-link" +test -s "`dirname $profile`/../../../db/db.sqlite" +test -x ".`guix build guile-bootstrap`/bin/guile" # For the tests that build Docker images below, we currently have to use # --dry-run because if we don't, there are only two possible cases: From patchwork Sun Oct 21 20:49:43 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Ludovic_Court=C3=A8s?= X-Patchwork-Id: 1597 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4CAFD1672F; Sun, 21 Oct 2018 21:51:18 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) by mira.cbaines.net (Postfix) with ESMTPS id 9F33F1672E for ; Sun, 21 Oct 2018 21:51:17 +0100 (BST) Received: from localhost ([::1]:60183 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKgv-0001Xi-1Y for patchwork@mira.cbaines.net; Sun, 21 Oct 2018 16:51:17 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45415) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKgk-0001Sr-E3 for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEKgg-0005qx-U0 for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:58647) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gEKgg-0005qn-Od for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gEKgg-0008VI-MS for guix-patches@gnu.org; Sun, 21 Oct 2018 16:51:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#33111] [PATCH 3/3] build: Binary tarball now populates the "current-guix" profile. Resent-From: Ludovic =?utf-8?q?Court=C3=A8s?= Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 21 Oct 2018 20:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 33111 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 33111@debbugs.gnu.org Received: via spool by 33111-submit@debbugs.gnu.org id=B33111.154015502332624 (code B ref 33111); Sun, 21 Oct 2018 20:51:02 +0000 Received: (at 33111) by debbugs.gnu.org; 21 Oct 2018 20:50:23 +0000 Received: from localhost ([127.0.0.1]:34670 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gEKfz-0008U3-4I for submit@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:23 -0400 Received: from eggs.gnu.org ([208.118.235.92]:35561) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gEKft-0008TP-G7 for 33111@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gEKfk-0005Ce-OW for 33111@debbugs.gnu.org; Sun, 21 Oct 2018 16:50:08 -0400 Received: from fencepost.gnu.org ([2001:4830:134:3::e]:35991) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gEKff-00059D-Dr; Sun, 21 Oct 2018 16:50:00 -0400 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=33222 helo=gnu.org) by fencepost.gnu.org with esmtpsa (TLS1.2:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1gEKfd-0003ed-QF; Sun, 21 Oct 2018 16:49:59 -0400 From: Ludovic =?utf-8?q?Court=C3=A8s?= Date: Sun, 21 Oct 2018 22:49:43 +0200 Message-Id: <20181021204943.2142-3-ludo@gnu.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181021204943.2142-1-ludo@gnu.org> References: <20181021204943.2142-1-ludo@gnu.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * Makefile.am (guix-binary.%.tar.xz): Pass '--profile-name=current-guix'. Remove glibc and glibc-utf8-locales. * doc/guix.texi (Binary Installation): Update accordingly. * etc/guix-install.sh * etc/guix-install.sh (sys_create_store, sys_enable_guix_daemon) (sys_authorize_build_farms): Likewise. * etc/guix-publish.conf.in, etc/guix-publish.service.in, etc/guix-daemon.conf.in, etc/guix-daemon.service.in: Update file names accordingly. --- Makefile.am | 6 ++---- doc/guix.texi | 30 ++++++++++++++++++------------ etc/guix-daemon.conf.in | 2 +- etc/guix-daemon.service.in | 4 ++-- etc/guix-install.sh | 21 +++++++++++---------- etc/guix-publish.conf.in | 2 +- etc/guix-publish.service.in | 4 ++-- 7 files changed, 37 insertions(+), 32 deletions(-) diff --git a/Makefile.am b/Makefile.am index 7fd29b90a..8b4c431b2 100644 --- a/Makefile.am +++ b/Makefile.am @@ -593,13 +593,11 @@ AM_DISTCHECK_CONFIGURE_FLAGS = \ --enable-daemon \ ac_cv_guix_test_root="$(GUIX_TEST_ROOT)" -# The self-contained tarball. Add 'glibc-utf8-locales' along with glibc just -# so 'etc/profile' defines 'GUIX_LOCPATH' pointing to a valid set of locales. +# The self-contained tarball. guix-binary.%.tar.xz: $(AM_V_GEN)GUIX_PACKAGE_PATH= \ tarball=`$(top_builddir)/pre-inst-env guix pack -K -C xz \ - -s "$*" --localstatedir guix glibc-utf8-locales \ - -e '(@@ (gnu packages commencement) glibc-final)'` ; \ + -s "$*" --localstatedir --profile-name=current-guix guix` ; \ cp "$$tarball" "$@.tmp" ; mv "$@.tmp" "$@" diff --git a/doc/guix.texi b/doc/guix.texi index 7265eed91..de9f6ec25 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -487,18 +487,20 @@ archive content is independent of its creation time, thus making it reproducible. @item -Make @code{root}'s profile available under @file{~root/.guix-profile}: +Make the profile available under @file{~root/.config/guix/current}, which is +where @command{guix pull} will install updates (@pxref{Invoking guix pull}): @example -# ln -sf /var/guix/profiles/per-user/root/guix-profile \ - ~root/.guix-profile +# mkdir -p ~root/.config/guix +# ln -sf /var/guix/profiles/per-user/root/current-guix \ + ~root/.config/guix/current @end example Source @file{etc/profile} to augment @code{PATH} and other relevant environment variables: @example -# GUIX_PROFILE="`echo ~root`/.guix-profile" ; \ +# GUIX_PROFILE="`echo ~root`/.config/guix/current" ; \ source $GUIX_PROFILE/etc/profile @end example @@ -520,8 +522,8 @@ with these commands: @c http://lists.gnu.org/archive/html/guix-devel/2017-01/msg01199.html @example -# cp ~root/.guix-profile/lib/systemd/system/guix-daemon.service \ - /etc/systemd/system/ +# cp ~root/.config/guix/current/lib/systemd/system/guix-daemon.service \ + /etc/systemd/system/ # systemctl start guix-daemon && systemctl enable guix-daemon @end example @@ -529,14 +531,16 @@ If your host distro uses the Upstart init system: @example # initctl reload-configuration -# cp ~root/.guix-profile/lib/upstart/system/guix-daemon.conf /etc/init/ +# cp ~root/.config/guix/current/lib/upstart/system/guix-daemon.conf \ + /etc/init/ # start guix-daemon @end example Otherwise, you can still start the daemon manually with: @example -# ~root/.guix-profile/bin/guix-daemon --build-users-group=guixbuild +# ~root/.config/guix/current/bin/guix-daemon \ + --build-users-group=guixbuild @end example @item @@ -546,7 +550,7 @@ for instance with: @example # mkdir -p /usr/local/bin # cd /usr/local/bin -# ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix +# ln -s /var/guix/profiles/per-user/root/current-guix/bin/guix @end example It is also a good idea to make the Info version of this manual available @@ -555,7 +559,7 @@ there: @example # mkdir -p /usr/local/share/info # cd /usr/local/share/info -# for i in /var/guix/profiles/per-user/root/guix-profile/share/info/* ; +# for i in /var/guix/profiles/per-user/root/current-guix/share/info/* ; do ln -s $i ; done @end example @@ -570,7 +574,8 @@ To use substitutes from @code{hydra.gnu.org} or one of its mirrors (@pxref{Substitutes}), authorize them: @example -# guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub +# guix archive --authorize < \ + ~root/.config/guix/current/share/guix/hydra.gnu.org.pub @end example @item @@ -604,7 +609,8 @@ make guix-binary.@var{system}.tar.xz ... which, in turn, runs: @example -guix pack -s @var{system} --localstatedir guix +guix pack -s @var{system} --localstatedir \ + --profile-name=current-guix guix @end example @xref{Invoking guix pack}, for more info on this handy tool. diff --git a/etc/guix-daemon.conf.in b/etc/guix-daemon.conf.in index 74706055f..755192d55 100644 --- a/etc/guix-daemon.conf.in +++ b/etc/guix-daemon.conf.in @@ -7,4 +7,4 @@ start on runlevel [2345] stop on runlevel [016] -exec @localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild +exec @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild diff --git a/etc/guix-daemon.service.in b/etc/guix-daemon.service.in index 988cf90c0..99ec7c48f 100644 --- a/etc/guix-daemon.service.in +++ b/etc/guix-daemon.service.in @@ -6,8 +6,8 @@ Description=Build daemon for GNU Guix [Service] -ExecStart=@localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix-daemon --build-users-group=guixbuild -Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale +ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix-daemon --build-users-group=guixbuild +Environment=GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale RemainAfterExit=yes StandardOutput=syslog StandardError=syslog diff --git a/etc/guix-install.sh b/etc/guix-install.sh index ca6874ba0..6a01e5972 100755 --- a/etc/guix-install.sh +++ b/etc/guix-install.sh @@ -269,12 +269,13 @@ sys_create_store() fi _msg "${INF}Linking the root user's profile" - ln -sf /var/guix/profiles/per-user/root/guix-profile \ - "${ROOT_HOME}/.guix-profile" + mkdir -p "${ROOT_HOME}/.config/guix" + ln -sf /var/guix/profiles/per-user/root/current-guix \ + "${ROOT_HOME}/.config/guix/current" - GUIX_PROFILE="${ROOT_HOME}/.guix-profile" + GUIX_PROFILE="${ROOT_HOME}/.config/guix/current" source "${GUIX_PROFILE}/etc/profile" - _msg "${PAS}activated root profile at /root/.guix-profile" + _msg "${PAS}activated root profile at ${ROOT_HOME}/.config/guix/current" } sys_create_build_user() @@ -317,18 +318,18 @@ sys_enable_guix_daemon() info_path="/usr/local/share/info" local_bin="/usr/local/bin" - var_guix="/var/guix/profiles/per-user/root/guix-profile" + var_guix="/var/guix/profiles/per-user/root/current-guix" case "$INIT_SYS" in upstart) { initctl reload-configuration; - cp "${ROOT_HOME}/.guix-profile/lib/upstart/system/guix-daemon.conf" \ + cp "${ROOT_HOME}/.config/guix/current/lib/upstart/system/guix-daemon.conf" \ /etc/init/ && start guix-daemon; } && _msg "${PAS}enabled Guix daemon via upstart" ;; systemd) - { cp "${ROOT_HOME}/.guix-profile/lib/systemd/system/guix-daemon.service" \ + { cp "${ROOT_HOME}/.config/guix/current/lib/systemd/system/guix-daemon.service" \ /etc/systemd/system/; chmod 664 /etc/systemd/system/guix-daemon.service; systemctl daemon-reload && @@ -338,7 +339,7 @@ sys_enable_guix_daemon() ;; NA|*) _msg "${ERR}unsupported init system; run the daemon manually:" - echo " ${ROOT_HOME}/.guix-profile/bin/guix-daemon --build-users-group=guixbuild" + echo " ${ROOT_HOME}/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild" ;; esac @@ -358,9 +359,9 @@ sys_authorize_build_farms() while true; do read -p "Permit downloading pre-built package binaries from the project's build farms? (yes/no) " yn case $yn in - [Yy]*) guix archive --authorize < "${ROOT_HOME}/.guix-profile/share/guix/hydra.gnu.org.pub" && + [Yy]*) guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/hydra.gnu.org.pub" && _msg "${PAS}Authorized public key for hydra.gnu.org"; - guix archive --authorize < "${ROOT_HOME}/.guix-profile/share/guix/berlin.guixsd.org.pub" && + guix archive --authorize < "${ROOT_HOME}/.config/guix/current/share/guix/berlin.guixsd.org.pub" && _msg "${PAS}Authorized public key for berlin.guixsd.org"; break;; [Nn]*) _msg "${INF}Skipped authorizing build farm public keys" diff --git a/etc/guix-publish.conf.in b/etc/guix-publish.conf.in index 241c59455..7b319f66a 100644 --- a/etc/guix-publish.conf.in +++ b/etc/guix-publish.conf.in @@ -9,4 +9,4 @@ stop on runlevel [016] task -exec @localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix publish --user=nobody --port=8181 +exec @localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181 diff --git a/etc/guix-publish.service.in b/etc/guix-publish.service.in index 8aaf09e3c..0526f9799 100644 --- a/etc/guix-publish.service.in +++ b/etc/guix-publish.service.in @@ -6,8 +6,8 @@ Description=Publish the GNU Guix store [Service] -ExecStart=@localstatedir@/guix/profiles/per-user/root/guix-profile/bin/guix publish --user=nobody --port=8181 -Environment=GUIX_LOCPATH=/root/.guix-profile/lib/locale +ExecStart=@localstatedir@/guix/profiles/per-user/root/current-guix/bin/guix publish --user=nobody --port=8181 +Environment=GUIX_LOCPATH=@localstatedir@/guix/profiles/per-user/root/guix-profile/lib/locale RemainAfterExit=yes StandardOutput=syslog StandardError=syslog