all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
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

  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

* 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 external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.