[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix
From: |
Fis Trivial |
Subject: |
bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix |
Date: |
Tue, 5 Jun 2018 16:47:20 +0000 |
Hi, first of all, thanks for the improvement. It's really exciting know
progress in guix.
But I have a few questions around this change. Just curiosity. :)
> Hello Guix!
>
> Here is the “new” ‘guix pull’ that we discussed notably in this thread:
>
> https://bugs.gnu.org/22629
>
> The major difference is that instead of just building a bunch of modules
> and putting them under ~/.config/guix/latest, it now produces a
> standalone package (with bin/guix, share/info/guix.info, etc.) and puts
> it in a profile under ~/.config/guix/current. Quoth the manual:
>
> The result of running ‘guix pull’ is a “profile” available under
> ‘~/.config/guix/current’ containing the latest Guix. Thus, make sure to
> add it to the beginning of your search path so that you use the latest
> version, and similarly for the Info manual (*note Documentation::):
>
> export PATH="$HOME/.config/guix/current/bin:$PATH"
> export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
>
This sounds like something could be done by guix itself, choosing the
right profile path by $HOME. Since guix has absolute control about this
piece of information?
> This ‘~/.config/guix/current’ profile works like any other profile
> created by ‘guix package’ (*note Invoking guix package::). That is, you
> can list generations, roll back to the previous generation—i.e., the
> previous Guix—and so on:
>
> $ guix package -p ~/.config/guix/current -l
> Generation 1 May 25 2018 10:06:41
> guix 221951a out
> /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4
>
> Generation 2 May 27 2018 19:07:47
> + guix 2fbae00 out
> /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f
> - guix 221951a out
> /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4
>
> Generation 3 May 30 2018 16:11:39 (current)
> + guix a076f19 out
> /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990
> - guix 2fbae00 out
> /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f
> $ guix package -p ~/.config/guix/current --roll-back
> switched from generation 3 to 2
>
>> There are two requirements it fulfills in terms of compatibility:
>
> 1. The modified ‘build-aux/build-self.scm’ still does the right thing
> when evaluated by an “old” Guix—that is, it produces a bunch of
> modules for use in ~/.config/guix/latest as before.
>
> 2. The modified ‘guix pull’ produces ~/.config/guix/current even when
> invoked on a commit of a past Guix. That is, it automatically
> produces a ‘guix’ command using the modules returned by the old
> ‘build-self.scm’.
>
>
> We could add ‘guix pull’ options for convenient: ‘--roll-back’,
> ‘--profile’, etc.
>
Nice~
> Going forward, additional “channels” could be presented as entries in
> the ~/.config/guix/current manifest.
>
> Caveats:
>
> 1. The ~/.config/guix/current profile really lives there. That is,
> unlike ~/.guix-profile, it’s not in /var/guix/profiles/per-user.
> That could be an issue for cluster setups where home directories
> are not scanned by the Guix GC. Cluster folks, please tell me!
What does that mean? We have a guix directory under $HOME/.config,
inside there's a symlink to /gnu/store/...-guix-<commit>. Does "really
lives there" mean the new profile is not a symlink but a concrete
directory or hard link?
>
> 2. The translated Info manual is not built. Julien: could you turn
> the big ‘xref_command’ in a script or something that we can more
> easily reuse in (guix self)?
>
> 3. C++ code is not built. I wonder which will come first: getting rid
> of the C++ code, or building it? :-)
>
In the future world, how do we update guix daemon? Is't still running
guix pull && guix package -u under root user?
bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix,
Fis Trivial <=
bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix, Ludovic Courtès, 2018/06/09