[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: guix environment
From: |
David Thompson |
Subject: |
Re: guix environment |
Date: |
Tue, 03 Feb 2015 16:15:21 -0500 |
User-agent: |
Notmuch/0.18.2 (http://notmuchmail.org) Emacs/24.4.1 (x86_64-pc-linux-gnu) |
Ludovic Courtès <address@hidden> writes:
> LGTM, please push!
Pushed.
> There’s another problem, though. When a dependency is a multiple-output
> package, all its outputs are added to the environment, because
> ‘package->transitive-inputs’ discards the information of which output is
> needed.
Yes, I had thought about this, but couldn't think of a way to preserve
that information throughout the program.
> So for instance, both the ‘out’ and the ‘debug’ output of Coreutils end
> up being downloaded and added to the environment, even though only ‘out’
> is an input.
>
> Now, the problem is that ‘build-derivations’ can only build *all* the
> outputs of the given derivation. This could be worked around either:
>
> 1. by creating a “sink” derivation, for instance with
> ‘profile-derivation’, that could refer precisely to the output(s)
> needed; not ideal.
>
> 2. by using (build-things (list "/the/output/path")) and resorting to
> ‘build-derivations’ only if the ‘build-things’ call did nothing
> (when passed a non-.drv store item, ‘build-things’ tries to
> substitute and does nothing if that fails.)
>
> Thoughts?
I don't like option #1. I haven't fully grokked option #2, but I guess
that will be the next thing to try.
Thanks for the nudge in the right direction.
--
David Thompson
Web Developer - Free Software Foundation - http://fsf.org
GPG Key: 0FF1D807
Support the FSF: https://fsf.org/donate