unofficial mirror of gwl-devel@gnu.org
 help / color / mirror / Atom feed
From: Ricardo Wurmus <rekado@elephly.net>
To: Ontje.Luensdorf@dlr.de
Cc: gwl-devel@gnu.org
Subject: Re: Problem with texlive-default-updmap.cfg
Date: Wed, 30 Mar 2022 14:32:53 +0200	[thread overview]
Message-ID: <87bkxn7gsf.fsf@elephly.net> (raw)
In-Reply-To: <8735k9hqj4.fsf@dlr.de>

Hi again Ontje,

my apologies for taking so long to get back to you.

> if I try to run this hello world workflow, I get the following error:
>
> process hi
>   # { echo "hi" }
>
> workflow do-the-thing
>   processes hi
>
> $ guix workflow run workflow.w
> info: .19 Loading workflow file `workflow.w'...
> info: .21 Computing workflow `do-the-thing'...
> error: 3.33 No variable named texlive-default-updmap.cfg in #<interface (gnu packages tex) 7f3ed7185d20>
>
> Is something borked in my setup?

Commit 2afadeea66e01f6d78e01eee910d2868f27531b8 works around this
problem by not sharing the same Guile process that was used to launch
“guix workflow”.

The first thing we do when the GWL extension is launched is to replace
the Guile load path.  We do this to ensure that the GWL uses the very
same Guix at runtime as the Guix we used to develop it.  This avoids a
lot of potential problems on users’ machines, where arbitrary versions
of Guix would be installed.  To avoid subtle breakage we just use a
well-known version of Guix as a library — and we use the “invoking Guix”
in an inferior to look up packages, so that users get the packages that
they expect.

Unfortunately, this doesn’t actually work as intended.  By the time
“guix workflow” is evaluated the Guile process will have already loaded
some of the Guile modules of the invoking Guix.  Replacing the load path
at that point does not have the intended effect because only those
modules we load *then* will belong to the well-known version of Guix —
whatever may have been loaded between “guix” starting and the moment
the “workflow” sub-command is invoked remains.

So to avoid “contamination” we now launch a new Guile process with a
well-known load path.  It’s not the prettiest solution, but it works
around the problem effectively.  It is a matter of philosophical debate
whether the GWL can still be called an “extension” to Guix when we
aren’t even using the same process and launch an independent Guile
process, but I’m okay with that because the exploration of this space is
one of the goals of the GWL :)

-- 
Ricardo


  parent reply	other threads:[~2022-03-30 12:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-23  9:37 Problem with texlive-default-updmap.cfg Ontje.Luensdorf
2022-02-23 15:08 ` Ricardo Wurmus
2022-02-23 22:15   ` Ricardo Wurmus
2022-02-27 17:32     ` Ludovic Courtès
2022-02-27 17:48       ` Ricardo Wurmus
2022-02-28 11:01         ` zimoun
2022-02-28 11:42         ` Ludovic Courtès
2022-02-28 13:17           ` Ricardo Wurmus
2022-02-28 13:15       ` Ricardo Wurmus
2022-03-30 12:32 ` Ricardo Wurmus [this message]
2022-03-31  6:31   ` Ontje.Luensdorf
2022-03-31  7:31     ` Ricardo Wurmus

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=87bkxn7gsf.fsf@elephly.net \
    --to=rekado@elephly.net \
    --cc=Ontje.Luensdorf@dlr.de \
    --cc=gwl-devel@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.
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).