all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* quirky behaviour of “guix environment”
@ 2018-02-22 13:17 Ricardo Wurmus
  2018-02-22 14:54 ` Björn Höfling
  2018-02-24 22:30 ` Chris Marusich
  0 siblings, 2 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2018-02-22 13:17 UTC (permalink / raw)
  To: guix-devel

Hi Guix,

for a few days now I have been testing the glibc graft to make software
work on the cluster running CentOS 6.8 (with a heavily patched Linux
that has the nominal version 2.6.32).

The graft seems to work fine (with the exception of a Guile GC warning I
get when running Guix), except when using “guix environment -l”.

In this particular instance a user informed me that running a
“configure” script inside of an environment spawned by “guix environment
-l guix.scm” something wasn’t quite right.  The script would check for R
packages and print something like this:

    checking for R package scater… FATAL: kernel too old
    yes

The check succeeded but somewhere a program was spawned that used the
ungrafted glibc!  I entered the environment myself and noticed that it
contained “ldd” from the glibc package.  And sure enough, running “ldd”
printed “FATAL: kernel too old”.

There are two things I find odd:

1.) the environment includes glibc and its executables.  Is this ever
    desired?  When loading an environment from a file or from a package
    (i.e. when “--ad-hoc” is NOT provided) “guix environment” uses
    “package-environment-inputs”, which runs “package->bag” and then
    “bag-transitive-inputs”.  The resulting list of packages is then
    used as the inputs for a profile derivation.  That seems a bit
    excessive.

    Would it not be sufficient to use only the direct inputs of the
    package as the inputs to the profile derivation?  That way “guix
    environment foo” would behave just like “guix environment --ad-hoc
    input-a-of-foo input-b-of-foo input-c-of-foo”.

    Is there a reason why it creates a whole bag and dumps its contents
    into the inputs of the profile derivation?

2.) How could the *old* glibc end up in the environment?  I expected the
    grafted glibc, which comes with a patch to avoid “FATAL: kernel too
    old”.

I have been trying to reproduce this with a grafted package that is
already in the repository, but I failed.  I tried with “raptor2”, which
has “curl” among its direct inputs.  “curl” has a replacement.  The
replacement ended up in the environment as expected.

I wonder if the difference in behaviour can be explained by the fact
that “curl” is a direct inputs whereas “glibc” is a build system input.

Any ideas?

--
Ricardo

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-03-07 22:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-22 13:17 quirky behaviour of “guix environment” Ricardo Wurmus
2018-02-22 14:54 ` Björn Höfling
2018-02-24 22:30 ` Chris Marusich
2018-03-06 19:16   ` Ricardo Wurmus
2018-03-07 22:31     ` Ludovic Courtès

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.