From: David Thompson <dthompson2@worcester.edu>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: guix-devel <guix-devel@gnu.org>
Subject: Re: guix-shell?
Date: Sun, 21 Sep 2014 13:25:46 -0400 [thread overview]
Message-ID: <87iokgans5.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me> (raw)
In-Reply-To: <87k3511hq7.fsf@gnu.org>
Ludovic Courtès <ludo@gnu.org> writes:
> David Thompson <dthompson2@worcester.edu> skribis:
>
>> Should 'guix environment' create a new profile with all of the
>> necessary packages in it? IIRC, nix shell doesn't do this, but I
>> don't fully understand why and how.
>
> The thing is, all the packages in question must be registered as GC
> roots, at least for the duration of the shell session (otherwise they
> could disappear.)
>
I abandoned the profile approach and tried to implement something
similar to what nix-shell does: Build all input derivations and set the
environment variables that a builder would set. My primary reason for
using the low-level derivations instead of high-level package inputs is
that the derivations include information about all of the implicit
inputs as well. However, building the correct environment has still
turned out to be very difficult, and I'm stuck once again.
My problems seem to stem from the disconnect between packages and
derivations, and the implicit inputs of build systems. It's fairly easy
to construct PATH and standard-search-paths, but I haven't been able to
determine all of the other native search paths that a package might need
in a build system agnostic manner. The derivation files do not store
such paths, they are in the source code of the builder script.
nix-shell has it easy because in Nix there is always a $stdenv/setup
file that can be sourced that does the right thing.
Since using derivations alone wasn't enough, I tried to use the
native-search-paths of the package inputs. However, there is no
interface to obtain all of the inputs for a package, including the
implicit ones, in client-side code. Without the implicit inputs, it
seems impossible to create an environment is the same as the environment
of a builder.
Do you have thoughts on how to overcome these issues? I'm stumped. I
could very well be overlooking something. I hope the above paragraphs
have made some sense.
--
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate
next prev parent reply other threads:[~2014-09-21 17:26 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-22 9:22 Back from GHM Ludovic Courtès
2014-08-25 11:57 ` Amirouche Boubekki
2014-08-25 13:47 ` Thompson, David
2014-08-25 15:38 ` Amirouche Boubekki
2014-08-25 22:24 ` guix-shell? Ludovic Courtès
2014-08-26 11:32 ` guix-shell? David Thompson
2014-08-28 15:45 ` guix-shell? Ludovic Courtès
2014-08-26 12:14 ` guix-shell? David Thompson
2014-08-26 20:20 ` guix-shell? Andreas Enge
2014-08-26 20:31 ` guix-shell? David Thompson
2014-08-28 12:39 ` guix-shell? Amirouche Boubekki
2014-08-28 15:50 ` guix-shell? Ludovic Courtès
2014-08-30 2:03 ` guix-shell? David Thompson
2014-08-31 15:00 ` guix-shell? Ludovic Courtès
2014-09-18 2:22 ` guix-shell? David Thompson
2014-09-18 8:00 ` guix-shell? Ludovic Courtès
2014-09-21 17:25 ` David Thompson [this message]
2014-09-21 19:54 ` guix-shell? Ludovic Courtès
2014-09-22 7:40 ` guix-shell? 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=87iokgans5.fsf@izanagi.i-did-not-set--mail-host-address--so-tickle-me \
--to=dthompson2@worcester.edu \
--cc=guix-devel@gnu.org \
--cc=ludo@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).