GNU bug report logs - #24886
Grafting triggers a download of all the outputs of each derivation

Previous Next

Package: guix;

Reported by: ludo <at> gnu.org (Ludovic Courtès)

Date: Sat, 5 Nov 2016 21:55:01 UTC

Severity: important

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 24886 in the body.
You can then email your comments to 24886 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#24886; Package guix. (Sat, 05 Nov 2016 21:55:01 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. (Sat, 05 Nov 2016 21:55:01 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
Cc: bug-guix <at> gnu.org, help-guix <at> gnu.org
Subject: Re: Why is die "doc" output downloaded when building this package?
Date: Sat, 05 Nov 2016 22:53:57 +0100
Hi,

(Adding a bug at bug-guix <at> gnu.org.)

Hartmut Goebel <h.goebel <at> crazy-compilers.com> skribis:

> when building this package, qt-4.8.7-doc (the doc-output of qt-4.7.8)
> will be downloaded. I do not understand why.

Most likely this is due to a limitation of the current implementation of
grafts: all the outputs of packages on a “grafting path” need to be
downloaded, even if some of these outputs are unused.

This is because ‘graft-derivation’ takes a derivation, such as Qt’s, and
returns a derivation with as many outputs, but marked as
non-substitutable (locally built).  Because it’s locally built, all the
outputs of the original derivation must be fetched just to be able to
build the grafted derivation, even if only one of those outputs is
needed.

I think we could fix that by creating one graft derivation for each
output of the original derivation.

Thanks,
Ludo’.




Information forwarded to bug-guix <at> gnu.org:
bug#24886; Package guix. (Sun, 06 Nov 2016 15:26:01 GMT) Full text and rfc822 format available.

Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: bug-guix <at> gnu.org, help-guix <at> gnu.org
Subject: Re: Why is die "doc" output downloaded when building this package?
Date: Sun, 6 Nov 2016 16:25:29 +0100
Am 05.11.2016 um 22:53 schrieb Ludovic Courtès:
> Most likely this is due to a limitation of the current implementation of
> grafts: all the outputs of packages on a “grafting path” need to be
> downloaded, even if some of these outputs are unused.

IC. Thanks for the explanation.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel          | h.goebel <at> crazy-compilers.com               |
| www.crazy-compilers.com | compilers which you thought are impossible |





Changed bug title to 'Grafting triggers a download of all the outputs of each derivation' from 'Why is die "doc" output downloaded when building this package?' Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Mon, 07 Nov 2016 09:27:02 GMT) Full text and rfc822 format available.

Severity set to 'important' from 'normal' Request was from ludo <at> gnu.org (Ludovic Courtès) to control <at> debbugs.gnu.org. (Wed, 09 Nov 2016 20:41:02 GMT) Full text and rfc822 format available.

Reply sent to ludo <at> gnu.org (Ludovic Courtès):
You have taken responsibility. (Wed, 25 Jan 2017 10:13:02 GMT) Full text and rfc822 format available.

Notification sent to ludo <at> gnu.org (Ludovic Courtès):
bug acknowledged by developer. (Wed, 25 Jan 2017 10:13:02 GMT) Full text and rfc822 format available.

Message #17 received at 24886-done <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Hartmut Goebel <h.goebel <at> crazy-compilers.com>
Cc: 24886-done <at> debbugs.gnu.org
Subject: Re: bug#24886: Why is die "doc" output downloaded when building this
 package?
Date: Wed, 25 Jan 2017 11:12:09 +0100
ludo <at> gnu.org (Ludovic Courtès) skribis:

> Hartmut Goebel <h.goebel <at> crazy-compilers.com> skribis:
>
>> when building this package, qt-4.8.7-doc (the doc-output of qt-4.7.8)
>> will be downloaded. I do not understand why.
>
> Most likely this is due to a limitation of the current implementation of
> grafts: all the outputs of packages on a “grafting path” need to be
> downloaded, even if some of these outputs are unused.
>
> This is because ‘graft-derivation’ takes a derivation, such as Qt’s, and
> returns a derivation with as many outputs, but marked as
> non-substitutable (locally built).  Because it’s locally built, all the
> outputs of the original derivation must be fetched just to be able to
> build the grafted derivation, even if only one of those outputs is
> needed.
>
> I think we could fix that by creating one graft derivation for each
> output of the original derivation.

Done in 482fda2729c3e76999892cb8f9a0391a7bd37119.

To take a concrete example, “guix build brdf-explorer” would previously
trigger a download of qt:doc, even though only qt:out is used.  This is
no longer the case.

This commit does not fix situations like:

  guix package -i qt

In this case, qt:doc still gets downloaded for nothing.  This is because
the underlying

  (package-derivation store qt #:graft? #t)

call does not know that only “out” is needed.  This can be addressed
with “lazy grafting” as discussed in <https://bugs.gnu.org/22990>, where
we’d delay grafting until the profile is built instead of grafting each
individual package eagerly.

Ludo’.




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 22 Feb 2017 12:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 7 years and 37 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.