unofficial mirror of gwl-devel@gnu.org
 help / color / mirror / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: zimoun <zimon.toutoune@gmail.com>
Cc: "Kyle Meyer" <kyle@kyleam.com>,
	gwl-devel@gnu.org, "Ludovic Courtès" <ludo@gnu.org>
Subject: Re: How to install GWL?
Date: Wed, 05 Feb 2020 20:36:27 +0100	[thread overview]
Message-ID: <877e10rflw.fsf@elephly.net> (raw)
In-Reply-To: <CAJ3okZ0cJgmSZ8QjJjYoX8=VsGLieFQZHbm4FhgpdhwrqstD4A@mail.gmail.com>


zimoun <zimon.toutoune@gmail.com> writes:

>> This also includes Guile JSON, guile-sqlite, Guile Gcrypt,
>> Bytestructures, etc in versions that match the variant of Guix — and
>> that might conflict with versions used in the GWL.
>
> Oh!
> This is annoying... and hard to fix because it is the classical
> dependency hell we know.

I suppose we could work around this potential problem with an extra
step.  We provide the (guix scripts workflow) module, which Guix tries
to find, but it doesn’t mean that we have to keep the environment
untouched from then on.  That module could do all sorts of things
including the execution of a new Guile process with a suitable
environment.

But how would that affect the package versions that Guix provides if we
override the environment and essentially end up using an older Guix…?
We would then have to spawn an inferior Guix, which would really just be
the Guix that originally gave us control and not the one we’ve built
with…  But we can’t just use some Guix directory as an inferior —
there’s no support for that in (guix inferior), we need to go through a
derivation…

This sounds messy.

>> The first takeaway is: we don’t actually need to use an inferior Guix
>> when all we want is for the GWL to use the current version of Guix.
>
> Not all Guix, only the current version of the packages, right?

Right, but we do end up using modules from the current Guix, even though
these are not the modules we built with.

>> I still think that the channels feature is the wrong deployment
>> mechanism for the GWL; I also still think that the GWL is too big to be
>> a part of Guix proper.  Perhaps the GWL needs to add more runtime checks
>> to ensure that the Guix modules it uses are available at runtime; any
>> references to individual packages (such as the Guile variant to use to
>> run scripts, or the Bash package used for shell wrappers) should also be
>> replaced with more future-proof lookups by package name.
>
> I thought you proposed that GWL should run in an inferior (say 1)
> fixing the correct Guix version that it needs to work and another
> inferior (say 2) should populate the store with any other Guix
> version. And because the store is stable, then GWL using inferior 1
> does the expected job. Is it not what you have in mind when speaking
> about inferiors? (plural at inferior ;-))

Oh, I didn’t think of inferior number 1 at all, but that’s a good
point.  We could arrange for the build-time modules of Guix to be made
available at runtime, independent of the version of Guix used to run
“guix workflow”.  Then we need to build packages with an inferior Guix,
which is identical to the Guix used to run “guix workflow”.

(guix inferior) does not allow us to do this yet.  The
gexp->derivation-in-inferior procedure requires a derivation that
returns some variant of Guix — we can’t just give it the directory name
of the invoking command.  I think this might be a good addition to (guix
inferior).

--
Ricardo

  reply	other threads:[~2020-02-05 19:36 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-22 21:55 How to install GWL? Ricardo Wurmus
2020-01-23  1:15 ` Kyle Meyer
2020-01-23 10:06   ` Ricardo Wurmus
2020-02-01  9:26     ` Ricardo Wurmus
2020-02-05 14:34       ` zimoun
2020-02-05 19:36         ` Ricardo Wurmus [this message]
2020-02-10  0:22           ` zimoun
2020-01-23  1:17 ` zimoun
2020-01-23 11:14 ` Roel Janssen
2020-01-23 11:24   ` zimoun
2020-01-23 13:02     ` Ricardo Wurmus
2020-01-23 14:18       ` zimoun
2020-01-23 13:12   ` Ricardo Wurmus
2020-01-31  9:16 ` zimoun
2020-01-31 11:07   ` Ricardo Wurmus
2020-02-01 11:49     ` Ludovic Courtès
2020-02-05 13:50       ` zimoun
2020-02-05 13:46     ` zimoun

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://www.guixwl.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877e10rflw.fsf@elephly.net \
    --to=rekado@elephly.net \
    --cc=gwl-devel@gnu.org \
    --cc=kyle@kyleam.com \
    --cc=ludo@gnu.org \
    --cc=zimon.toutoune@gmail.com \
    /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.
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).