Package: guix-patches;
Reported by: Ludovic Courtès <ludo <at> gnu.org>
Date: Sun, 21 Oct 2018 20:46:01 UTC
Severity: normal
Tags: patch
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 33111 in the body.
You can then email your comments to 33111 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Sun, 21 Oct 2018 20:46:01 GMT) Full text and rfc822 format available.Ludovic Courtès <ludo <at> gnu.org>
:guix-patches <at> gnu.org
.
(Sun, 21 Oct 2018 20:46:01 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: guix-patches <at> gnu.org Cc: Ludovic Courtès <ludo <at> gnu.org> Subject: [PATCH 0/3] Have the binary tarball populate ~root/.config/guix/current Date: Sun, 21 Oct 2018 22:45:06 +0200
Hello Guix! Currently the binary tarball populates ~root/.guix-profile. This creates confusion when people realize that ‘guix pull’, instead, updates ~root/.config/guix; it’s also inconvenient because it forces root to do “guix pull && guix package -u guix” or similar if they want to update the default Guix revision on the distro. These patches address this by having the binary tarball populate ~root/.config/guix/current like ‘guix pull’ does. There’s one downside though: with the last patch, the ‘glibc-utf8-locales’ is no longer included because ~root/.config/guix/current would be the wrong place for it. Consequently, users have to explicitly install it in ~root/.guix-profile and set GUIX_LOCPATH accordingly. A possible fix would be to modify ‘guix pack’ so that it can create not just two profiles, where ~root/.guix-profile would contain ‘glibc-utf8-locales’. That’d be a non-trivial change, though. Thoughts? Thanks, Ludo’. Ludovic Courtès (3): install: Parameterize the profile name for 'populate-single-profile-directory'. pack: Add '--profile-name'. build: Binary tarball now populates the "current-guix" profile. Makefile.am | 6 ++---- doc/guix.texi | 37 +++++++++++++++++++++++-------------- 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 ++-- gnu/build/install.scm | 24 ++++++++++++++++++------ guix/scripts/pack.scm | 20 +++++++++++++++++++- tests/guix-pack.sh | 17 +++++++++++++++-- 10 files changed, 94 insertions(+), 43 deletions(-) -- 2.19.1
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Sun, 21 Oct 2018 20:51:01 GMT) Full text and rfc822 format available.Message #8 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 33111 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludo <at> gnu.org> Subject: [PATCH 1/3] install: Parameterize the profile name for 'populate-single-profile-directory'. Date: Sun, 21 Oct 2018 22:49:41 +0200
* 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 -- 2.19.1
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Sun, 21 Oct 2018 20:51:02 GMT) Full text and rfc822 format available.Message #11 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 33111 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludo <at> gnu.org> Subject: [PATCH 2/3] pack: Add '--profile-name'. Date: Sun, 21 Oct 2018 22:49:42 +0200
* 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." ;; <http://lists.gnu.org/archive/html/bug-tar/2017-11/msg00009.html>. (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: -- 2.19.1
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Sun, 21 Oct 2018 20:51:02 GMT) Full text and rfc822 format available.Message #14 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: Ludovic Courtès <ludo <at> gnu.org> To: 33111 <at> debbugs.gnu.org Cc: Ludovic Courtès <ludo <at> gnu.org> Subject: [PATCH 3/3] build: Binary tarball now populates the "current-guix" profile. Date: Sun, 21 Oct 2018 22:49:43 +0200
* 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 -- 2.19.1
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Thu, 25 Oct 2018 20:26:02 GMT) Full text and rfc822 format available.Message #17 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: 33111 <at> debbugs.gnu.org, Ricardo Wurmus <rekado <at> elephly.net> Subject: Re: [bug#33111] [PATCH 0/3] Have the binary tarball populate ~root/.config/guix/current Date: Thu, 25 Oct 2018 22:24:38 +0200
Hello Guix! Ludovic Courtès <ludo <at> gnu.org> skribis: > These patches address this by having the binary tarball populate > ~root/.config/guix/current like ‘guix pull’ does. > > There’s one downside though: with the last patch, the ‘glibc-utf8-locales’ > is no longer included because ~root/.config/guix/current would be the > wrong place for it. Consequently, users have to explicitly install it > in ~root/.guix-profile and set GUIX_LOCPATH accordingly. Any comments? Ricardo? Ludo’.
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Fri, 26 Oct 2018 05:35:01 GMT) Full text and rfc822 format available.Message #20 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: Ricardo Wurmus <rekado <at> elephly.net> To: Ludovic Courtès <ludo <at> gnu.org> Cc: 33111 <at> debbugs.gnu.org Subject: Re: [bug#33111] [PATCH 0/3] Have the binary tarball populate ~root/.config/guix/current Date: Fri, 26 Oct 2018 07:33:47 +0200
Hi Ludo, >> These patches address this by having the binary tarball populate >> ~root/.config/guix/current like ‘guix pull’ does. >> >> There’s one downside though: with the last patch, the ‘glibc-utf8-locales’ >> is no longer included because ~root/.config/guix/current would be the >> wrong place for it. Consequently, users have to explicitly install it >> in ~root/.guix-profile and set GUIX_LOCPATH accordingly. > > Any comments? Ricardo? Thank you for fixing this very confusing situation! It is very good to start out with a I’m not sure I understand why ~root/.config/guix/current would be the wrong place for the locales package. It is true that this directory is for Guix only, but users don’t need to know about the locales package. Is it a problem to install the locales package alongside Guix in the “guix pull” profile, or is it just inelegant? I think it would be unfortunate if older versions of Guix would stop working or report warnings when they are used in combination with a separately managed profile containing the locales. The locales need to match the glibc version that the program is linked with, so I would prefer if we could keep Guix and the locales together. You know that I find the separation of glibc-locales to be an unfortunate tradeoff, which makes using Guix on foreign distros a little less convenient. While I think that this patch set is a definite improvement over the current situation, I would be sad to see the locales separated and become a source of frustration or confusion. Is there something we can do about this? Would it be acceptable to add glibc-locales as an explicit input to the result of “guix pull”? I understand that we don’t usually add glibc-*locales as an input, but I think in the special case of “guix pull” it could be a reasonable compromise / an acceptable exception. What do you think? -- Ricardo
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Fri, 26 Oct 2018 09:58:01 GMT) Full text and rfc822 format available.Message #23 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Ricardo Wurmus <rekado <at> elephly.net> Cc: 33111 <at> debbugs.gnu.org Subject: Re: [bug#33111] [PATCH 0/3] Have the binary tarball populate ~root/.config/guix/current Date: Fri, 26 Oct 2018 11:57:02 +0200
Hello! Ricardo Wurmus <rekado <at> elephly.net> skribis: >>> These patches address this by having the binary tarball populate >>> ~root/.config/guix/current like ‘guix pull’ does. >>> >>> There’s one downside though: with the last patch, the ‘glibc-utf8-locales’ >>> is no longer included because ~root/.config/guix/current would be the >>> wrong place for it. Consequently, users have to explicitly install it >>> in ~root/.guix-profile and set GUIX_LOCPATH accordingly. >> >> Any comments? Ricardo? > > Thank you for fixing this very confusing situation! It is very good to > start out with a With a what? :-) > I’m not sure I understand why ~root/.config/guix/current would be the > wrong place for the locales package. It is true that this directory is > for Guix only, but users don’t need to know about the locales package. > > Is it a problem to install the locales package alongside Guix in the > “guix pull” profile, or is it just inelegant? It’s inelegant and just a partial solution because ‘guix pull’ won’t upgrade it. It would also show up in ‘guix pull -l’, which isn’t great. > I think it would be unfortunate if older versions of Guix would stop > working or report warnings when they are used in combination with a > separately managed profile containing the locales. The locales need to > match the glibc version that the program is linked with, so I would > prefer if we could keep Guix and the locales together. > > You know that I find the separation of glibc-locales to be an > unfortunate tradeoff, which makes using Guix on foreign distros a little > less convenient. While I think that this patch set is a definite > improvement over the current situation, I would be sad to see the > locales separated and become a source of frustration or confusion. > > Is there something we can do about this? Would it be acceptable to add > glibc-locales as an explicit input to the result of “guix pull”? I > understand that we don’t usually add glibc-*locales as an input, but I > think in the special case of “guix pull” it could be a reasonable > compromise / an acceptable exception. What do you think? I share your concern but I can’t think of a good solution. Since ‘glibc-locales’ is big (520M on disk!) and more than what people need, we certainly don’t want to pull it. So we’d be pulling ‘glibc-utf8-locales’ as we currently do, knowing that it’s an arbitrary choice of locales that favors Western countries. Let’s say we arrange so ‘guix’ is wrapped such that GUIX_LOCPATH points to a bundled ‘glibc-utf8-locales’. That solves the problem for the ‘guix’ command, but it doesn’t solve it for other packages installed with ‘guix’: users would still need to install ‘glibc-utf8-locales’. A “proper fix” might be to add ‘glibc-utf8-locales’ to ~root/.guix-profile in the binary tarball. However, as I wrote, it would require us to improve ‘guix pack’ so it can populate several profiles, which is not trivial and probably not very useful in other situations. On the bright side, ‘guix’ gives users the command to copy/paste to install locales (commit 26db747a863b08ebcfd630cce635be86c23d829d), so it’s not that bad. :-) Also, we could have the install script run ‘guix package -i glibc-utf8-locales’ automatically. Thoughts? Thanks for your feedback! Ludo’.
guix-patches <at> gnu.org
:bug#33111
; Package guix-patches
.
(Fri, 16 Nov 2018 22:00:02 GMT) Full text and rfc822 format available.Message #26 received at 33111 <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Ricardo Wurmus <rekado <at> elephly.net> Cc: 33111 <at> debbugs.gnu.org Subject: Re: [bug#33111] [PATCH 0/3] Have the binary tarball populate ~root/.config/guix/current Date: Fri, 16 Nov 2018 22:59:29 +0100
Hi! ludo <at> gnu.org (Ludovic Courtès) skribis: > I share your concern but I can’t think of a good solution. [...] > Also, we could have the install script run ‘guix package -i > glibc-utf8-locales’ automatically. Since I don’t have a better idea, I’d like to go with this patch set, and then possibly augment the install script as noted above. How does that sound? Thanks, Ludo’.
ludo <at> gnu.org (Ludovic Courtès)
:Ludovic Courtès <ludo <at> gnu.org>
:Message #31 received at 33111-done <at> debbugs.gnu.org (full text, mbox):
From: ludo <at> gnu.org (Ludovic Courtès) To: Ricardo Wurmus <rekado <at> elephly.net> Cc: 33111-done <at> debbugs.gnu.org Subject: Re: [bug#33111] [PATCH 0/3] Have the binary tarball populate ~root/.config/guix/current Date: Fri, 23 Nov 2018 15:43:31 +0100
ludo <at> gnu.org (Ludovic Courtès) skribis: > ludo <at> gnu.org (Ludovic Courtès) skribis: > >> I share your concern but I can’t think of a good solution. > > [...] > >> Also, we could have the install script run ‘guix package -i >> glibc-utf8-locales’ automatically. > > Since I don’t have a better idea, I’d like to go with this patch set, > and then possibly augment the install script as noted above. I went ahead and pushed it as e9926f80c6553fde50ce1fcfd38d6370f841efd2. Thanks, Ludo’.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 22 Dec 2018 12:24:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.