From: ludo@gnu.org (Ludovic Courtès)
To: Hartmut Goebel <h.goebel@crazy-compilers.com>
Cc: 24886-done@debbugs.gnu.org
Subject: bug#24886: Why is die "doc" output downloaded when building this package?
Date: Wed, 25 Jan 2017 11:12:09 +0100 [thread overview]
Message-ID: <87mvef30ue.fsf@gnu.org> (raw)
In-Reply-To: <871syp61ai.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Sat, 05 Nov 2016 22:53:57 +0100")
ludo@gnu.org (Ludovic Courtès) skribis:
> Hartmut Goebel <h.goebel@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’.
prev parent reply other threads:[~2017-01-25 10:13 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <e8b061e0-9a62-a65e-4051-33152c3c1516@crazy-compilers.com>
2016-11-05 21:53 ` Why is die "doc" output downloaded when building this package? Ludovic Courtès
2016-11-06 15:25 ` Hartmut Goebel
2017-01-25 10:12 ` Ludovic Courtès [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87mvef30ue.fsf@gnu.org \
--to=ludo@gnu.org \
--cc=24886-done@debbugs.gnu.org \
--cc=h.goebel@crazy-compilers.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).