From: "Ludovic Courtès" <ludo@gnu.org>
To: 22629@debbugs.gnu.org
Subject: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix
Date: Thu, 31 May 2018 16:43:33 +0200 [thread overview]
Message-ID: <20180531144337.16298-1-ludo@gnu.org> (raw)
In-Reply-To: <87fu45ve2z.fsf@gnu.org>
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 ‘~/.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’.
There are various improvements we can make from there. For example,
using “manifest entry properties” as proposed in
<https://bugs.gnu.org/31442>, we can attach meta-data (commit ID, repo
URL, etc.) in each manifest entry that ‘guix pull’ populates; then we
can arrange for ‘guix pull --list-generations’ (say) to display that
information.
We could add ‘guix pull’ options for convenient: ‘--roll-back’,
‘--profile’, etc.
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!
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? :-)
Feedback welcome!
Ludo’.
Ludovic Courtès (4):
self: Produce a complete package with the 'guix' command.
pull: Install the new Guix in a profile.
self: Compute and use locale data.
self: Build the Info manual.
build-aux/build-self.scm | 19 +-
build-aux/compile-as-derivation.scm | 2 +-
doc/guix.texi | 38 +++-
guix/scripts/pull.scm | 79 +++++---
guix/self.scm | 283 ++++++++++++++++++++++++----
scripts/guix.in | 14 +-
6 files changed, 351 insertions(+), 84 deletions(-)
--
2.17.0
next prev parent reply other threads:[~2018-05-31 14:45 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-11 10:35 bug#22629: Towards a new 'guix pull' Ludovic Courtès
2017-02-22 7:57 ` Pjotr Prins
2017-02-24 18:21 ` Leo Famulari
2018-04-08 16:48 ` Ludovic Courtès
2018-04-08 17:45 ` Nils Gillmann
2018-05-31 14:43 ` Ludovic Courtès [this message]
2018-05-31 14:43 ` bug#22629: [PATCH 1/4] self: Produce a complete package with the 'guix' command Ludovic Courtès
2018-05-31 14:43 ` bug#22629: [PATCH 2/4] pull: Install the new Guix in a profile Ludovic Courtès
2018-05-31 14:43 ` bug#22629: [PATCH 3/4] self: Compute and use locale data Ludovic Courtès
2018-05-31 14:43 ` bug#22629: [PATCH 4/4] self: Build the Info manual Ludovic Courtès
2018-05-31 14:53 ` bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Thompson, David
2018-06-01 12:13 ` Ludovic Courtès
2018-06-03 13:08 ` Pjotr Prins
2018-06-03 20:29 ` Ludovic Courtès
2018-06-04 19:12 ` Pjotr Prins
2018-05-31 18:00 ` Konrad Hinsen
2018-06-04 11:20 ` Ludovic Courtès
2018-06-05 11:45 ` Konrad Hinsen
2018-06-06 13:24 ` Ludovic Courtès
2018-06-06 15:54 ` Konrad Hinsen
2018-06-06 20:49 ` Ludovic Courtès
2018-05-31 18:58 ` Ricardo Wurmus
2018-06-01 12:11 ` Ludovic Courtès
2018-06-05 16:47 ` Fis Trivial
2018-06-06 13:27 ` Ludovic Courtès
2018-06-06 20:58 ` Fis Trivial
2018-06-09 10:07 ` Ludovic Courtès
2017-09-15 20:39 ` bug#28471: guix pull doesn't update the user manual Maxim Cournoyer
[not found] ` <handler.28471.D22629.152853885816765.notifdone@debbugs.gnu.org>
2018-06-13 21:46 ` bug#22629: bug#28471: closed (Re: bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix) Ludovic Courtès
2018-07-19 4:45 ` bug#22629: [PATCH 0/4] 'guix pull' produces a self-contained Guix Chris Marusich
2018-07-19 12:15 ` Ludovic Courtès
2018-08-28 15:16 ` bug#22629: Channels! Ludovic Courtès
2018-08-28 15:17 ` bug#22629: [PATCH 1/3] discovery: Add 'scheme-modules*' Ludovic Courtès
2018-08-28 15:17 ` bug#22629: [PATCH 2/3] Add (guix describe) and use it to initialize '%package-search-path' Ludovic Courtès
2018-08-28 15:17 ` bug#22629: [PATCH 3/3] DRAFT Add (guix channels) and use it in (guix scripts pull) Ludovic Courtès
2018-08-28 17:24 ` bug#22629: Channels! Pjotr Prins
2018-08-28 19:52 ` Mark H Weaver
2018-08-28 21:52 ` Ludovic Courtès
2018-08-29 4:09 ` Konrad Hinsen
2018-08-29 14:25 ` Ludovic Courtès
2018-08-29 15:30 ` Konrad Hinsen
2018-08-29 20:50 ` Ludovic Courtès
2018-08-29 9:29 ` Alex Sassmannshausen
2018-08-29 17:14 ` bug#22629: Channels not needed for a stable branch (was: Channels!) Mark H Weaver
2018-08-29 18:26 ` Ricardo Wurmus
2018-08-30 5:57 ` Konrad Hinsen
2018-08-30 6:42 ` bug#22629: Channels not needed for a stable branch Mark H Weaver
2018-08-30 10:10 ` Konrad Hinsen
2018-08-30 12:18 ` bug#22629: “Stable” branch Ludovic Courtès
2018-08-30 14:10 ` Alex Sassmannshausen
2018-08-30 22:02 ` Ludovic Courtès
2018-08-31 9:39 ` Konrad Hinsen
2018-08-31 9:58 ` bug#26608: " Ludovic Courtès
2018-08-31 10:33 ` bug#32022: " Konrad Hinsen
2018-08-31 13:01 ` Ludovic Courtès
2018-08-31 11:24 ` bug#26608: " Jan Nieuwenhuizen
2018-08-31 11:45 ` bug#32022: " Ricardo Wurmus
2018-09-03 14:10 ` Alex Sassmannshausen
2018-09-03 19:52 ` Ludovic Courtès
2018-09-04 8:02 ` bug#26608: " Alex Sassmannshausen
2018-09-04 12:22 ` Ludovic Courtès
2018-09-03 20:27 ` Ludovic Courtès
2021-08-20 11:09 ` bug#26608: " zimoun
2018-08-30 14:46 ` Konrad Hinsen
2018-08-29 21:02 ` bug#22629: Channels not needed for a stable branch Ludovic Courtès
2018-08-30 21:29 ` bug#22629: Channels! Ludovic Courtès
2018-08-30 21:31 ` bug#22629: [PATCH v2 1/3] discovery: Add 'scheme-modules*' Ludovic Courtès
2018-08-30 21:31 ` bug#22629: [PATCH v2 2/3] Add (guix describe) and use it to initialize '%package-search-path' Ludovic Courtès
2018-08-31 12:21 ` Ricardo Wurmus
2018-08-31 13:56 ` Ludovic Courtès
2018-08-31 14:32 ` Ricardo Wurmus
2018-08-30 21:31 ` bug#22629: [PATCH v2 3/3] Add (guix channels) and use it in (guix scripts pull) Ludovic Courtès
2018-09-02 15:11 ` bug#22629: Channels! Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180531144337.16298-1-ludo@gnu.org \
--to=ludo@gnu.org \
--cc=22629@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).