GNU bug report logs -
#24886
Grafting triggers a download of all the outputs of each derivation
Previous Next
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):
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.