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.

Full log


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’.




This bug report was last modified 8 years and 177 days ago.

Previous Next


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