GNU bug report logs -
#19816
'guix environment' always downloads all the outputs of dependencies
Previous Next
Reported by: ludo <at> gnu.org (Ludovic Courtès)
Date: Sun, 8 Feb 2015 18:25:02 UTC
Severity: normal
Done: ludo <at> gnu.org (Ludovic Courtès)
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 19816 in the body.
You can then email your comments to 19816 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-guix <at> gnu.org
:
bug#19816
; Package
guix
.
(Sun, 08 Feb 2015 18:25:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
New bug report received and forwarded. Copy sent to
bug-guix <at> gnu.org
.
(Sun, 08 Feb 2015 18:25:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19641#16>:
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.
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.)
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#19816
; Package
guix
.
(Sun, 20 Dec 2015 22:36:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 19816 <at> debbugs.gnu.org (full text, mbox):
ludo <at> gnu.org (Ludovic Courtès) skribis:
>>From <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19641#16>:
>
> 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.
>
> 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.
David, I think you had started looking at doing exactly this. Do you
have a preliminary patch you’d like to post?
I understand you may be busy preparing the Lisp Game Jam now and I
wouldn’t want to distract you from that. ;-) If you have something to
share, I’m happy to help start from there though (says the guy who sees
its ‘guix environment’ pointlessly downloading “debug” and “doc” outputs
again.)
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#19816
; Package
guix
.
(Mon, 21 Dec 2015 17:22:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 19816 <at> debbugs.gnu.org (full text, mbox):
On Sun, Dec 20, 2015 at 5:34 PM, Ludovic Courtès <ludo <at> gnu.org> wrote:
> ludo <at> gnu.org (Ludovic Courtès) skribis:
>
>>>From <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19641#16>:
>>
>> 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.
>>
>> 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.
>
> David, I think you had started looking at doing exactly this. Do you
> have a preliminary patch you’d like to post?
>
> I understand you may be busy preparing the Lisp Game Jam now and I
> wouldn’t want to distract you from that. ;-) If you have something to
> share, I’m happy to help start from there though (says the guy who sees
> its ‘guix environment’ pointlessly downloading “debug” and “doc” outputs
> again.)
The wip-environment-profiles branch has the code I've written thus
far. I rebased it on master and resolved some conflicts in hopefully
the right way. :)
When I last hacked on it I got into a fully working state AFAICT, but
the tests needed updating and that proved to be the most challenging
part. If you're willing to finish it up, that would be awesome!
Thanks,
- Dave
Information forwarded
to
bug-guix <at> gnu.org
:
bug#19816
; Package
guix
.
(Mon, 21 Dec 2015 21:33:01 GMT)
Full text and
rfc822 format available.
Message #14 received at 19816 <at> debbugs.gnu.org (full text, mbox):
"Thompson, David" <dthompson2 <at> worcester.edu> skribis:
> On Sun, Dec 20, 2015 at 5:34 PM, Ludovic Courtès <ludo <at> gnu.org> wrote:
>> ludo <at> gnu.org (Ludovic Courtès) skribis:
>>
>>>>From <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19641#16>:
>>>
>>> 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.
>>>
>>> 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.
>>
>> David, I think you had started looking at doing exactly this. Do you
>> have a preliminary patch you’d like to post?
>>
>> I understand you may be busy preparing the Lisp Game Jam now and I
>> wouldn’t want to distract you from that. ;-) If you have something to
>> share, I’m happy to help start from there though (says the guy who sees
>> its ‘guix environment’ pointlessly downloading “debug” and “doc” outputs
>> again.)
>
> The wip-environment-profiles branch has the code I've written thus
> far. I rebased it on master and resolved some conflicts in hopefully
> the right way. :)
>
> When I last hacked on it I got into a fully working state AFAICT, but
> the tests needed updating and that proved to be the most challenging
> part. If you're willing to finish it up, that would be awesome!
Excellent, I had forgotten there was already a branch.
I’ll see what I can do before or after my vacations!
Ludo’.
Reply sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
You have taken responsibility.
(Fri, 12 Feb 2016 21:08:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
ludo <at> gnu.org (Ludovic Courtès)
:
bug acknowledged by developer.
(Fri, 12 Feb 2016 21:08:02 GMT)
Full text and
rfc822 format available.
Message #19 received at 19816-done <at> debbugs.gnu.org (full text, mbox):
"Thompson, David" <dthompson2 <at> worcester.edu> skribis:
> On Sun, Dec 20, 2015 at 5:34 PM, Ludovic Courtès <ludo <at> gnu.org> wrote:
>> ludo <at> gnu.org (Ludovic Courtès) skribis:
>>
>>>>>From <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19641#16>:
>>>
>>> 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.
>>>
>>> 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.
>>
>> David, I think you had started looking at doing exactly this. Do you
>> have a preliminary patch you’d like to post?
>>
>> I understand you may be busy preparing the Lisp Game Jam now and I
>> wouldn’t want to distract you from that. ;-) If you have something to
>> share, I’m happy to help start from there though (says the guy who sees
>> its ‘guix environment’ pointlessly downloading “debug” and “doc” outputs
>> again.)
>
> The wip-environment-profiles branch has the code I've written thus
> far. I rebased it on master and resolved some conflicts in hopefully
> the right way. :)
>
> When I last hacked on it I got into a fully working state AFAICT, but
> the tests needed updating and that proved to be the most challenging
> part. If you're willing to finish it up, that would be awesome!
It took me a while but I’ve finally finished it and pushed as 779aa00.
I took a different strategy for the tests, which is to rely (in part) on
the output of ‘guix gc --references’ to determine whether the profile
contains all we need.
Thanks,
Ludo’.
Information forwarded
to
bug-guix <at> gnu.org
:
bug#19816
; Package
guix
.
(Fri, 12 Feb 2016 21:38:01 GMT)
Full text and
rfc822 format available.
Message #22 received at 19816-done <at> debbugs.gnu.org (full text, mbox):
On Fri, Feb 12, 2016 at 4:07 PM, Ludovic Courtès <ludo <at> gnu.org> wrote:
> "Thompson, David" <dthompson2 <at> worcester.edu> skribis:
>
>> On Sun, Dec 20, 2015 at 5:34 PM, Ludovic Courtès <ludo <at> gnu.org> wrote:
>>> ludo <at> gnu.org (Ludovic Courtès) skribis:
>>>
>>>>>>From <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=19641#16>:
>>>>
>>>> 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.
>>>>
>>>> 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.
>>>
>>> David, I think you had started looking at doing exactly this. Do you
>>> have a preliminary patch you’d like to post?
>>>
>>> I understand you may be busy preparing the Lisp Game Jam now and I
>>> wouldn’t want to distract you from that. ;-) If you have something to
>>> share, I’m happy to help start from there though (says the guy who sees
>>> its ‘guix environment’ pointlessly downloading “debug” and “doc” outputs
>>> again.)
>>
>> The wip-environment-profiles branch has the code I've written thus
>> far. I rebased it on master and resolved some conflicts in hopefully
>> the right way. :)
>>
>> When I last hacked on it I got into a fully working state AFAICT, but
>> the tests needed updating and that proved to be the most challenging
>> part. If you're willing to finish it up, that would be awesome!
>
> It took me a while but I’ve finally finished it and pushed as 779aa00.
>
> I took a different strategy for the tests, which is to rely (in part) on
> the output of ‘guix gc --references’ to determine whether the profile
> contains all we need.
Thank you! I'm excited that this is finally in master.
- Dave
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 12 Mar 2016 12:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 8 years and 44 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.