Guix shouldn't request substitutes for profile derivations

DoneSubmitted by pkill9.
Details
2 participants
  • Ludovic Courtès
  • pkill9
Owner
unassigned
Severity
normal
P
P
pkill9 wrote on 1 Apr 2020 22:18
(address . bug-guix@gnu.org)
20200401211846.77cafa00@runbox.com
I see that Guix is requesting substitutes from the build servers beforeit builds a profile derivation.
L
L
Ludovic Courtès wrote on 2 Apr 2020 12:44
(name . pkill9)(address . pkill9@runbox.com)(address . 40381@debbugs.gnu.org)
87imiip3ol.fsf@gnu.org
Hi,
pkill9 <pkill9@runbox.com> skribis:
Toggle quote (3 lines)> I see that Guix is requesting substitutes from the build servers before> it builds a profile derivation.
Can you show more precisely what you mean by pasting a command and itsoutput?
With the recent changes in the implementation of grafts, what happens isusually this:
$ guix build foo updating the list of substitutes… The following things will be built/downloaded:
updating the list of substitutes… The following things will be built/downloaded:
The second stage here typically includes profile.drv as well as grafts.All this is expected behavior.
Detailed behavior depends on what’s in /gnu/store, the freshness ofsubstitute info in /var/guix/substitute/cache, and applicable grafts forthe package(s) at hand.
Thanks,Ludo’.
L
L
Ludovic Courtès wrote on 14 Apr 2020 17:41
control message for bug #40381
(address . control@debbugs.gnu.org)
87blnuvzw3.fsf@gnu.org
tags 40381 + moreinfoquit
P
P
pkill9 wrote on 26 Apr 2020 17:58
Re: bug#40381: Guix shouldn't request substitutes for profile derivations
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40381@debbugs.gnu.org)
20200426165834.44b07258@runbox.com
Hi Ludovic
Toggle quote (18 lines)> Can you show more precisely what you mean by pasting a command and its> output?> > With the recent changes in the implementation of grafts, what happens> is usually this:> > $ guix build foo> updating the list of substitutes…> The following things will be built/downloaded:> …> > updating the list of substitutes…> The following things will be built/downloaded:> …> > The second stage here typically includes profile.drv as well as> grafts. All this is expected behavior.
I think that since profile.drv is always produced locally on themachine, then it's unnecessary to update the list of substituteswhen it's on that second stage.
L
L
Ludovic Courtès wrote on 26 Apr 2020 22:20
(name . pkill9)(address . pkill9@runbox.com)(address . 40381@debbugs.gnu.org)
87v9lmyp61.fsf@gnu.org
Hi,
pkill9 <pkill9@runbox.com> skribis:
Toggle quote (22 lines)>> Can you show more precisely what you mean by pasting a command and its>> output?>> >> With the recent changes in the implementation of grafts, what happens>> is usually this:>> >> $ guix build foo>> updating the list of substitutes…>> The following things will be built/downloaded:>> …>> >> updating the list of substitutes…>> The following things will be built/downloaded:>> …>> >> The second stage here typically includes profile.drv as well as>> grafts. All this is expected behavior.>> I think that since profile.drv is always produced locally on the> machine, then it's unnecessary to update the list of substitutes> when it's on that second stage.
I don’t observe this, or rather I cannot blame profile.drv for this.
Can you show more precisely what you mean by pasting a command and itsoutput?
Thanks,Ludo’.
P
P
pkill9 wrote on 27 Apr 2020 05:35
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 40381@debbugs.gnu.org)
20200427043512.4c400946@runbox.com
Hi,
Toggle quote (3 lines)> Can you show more precisely what you mean by pasting a command and its> output?
So it seems it tries to look for substitutes when the profile hooks are built,not when profile.drv is built.
Here is the output without build hooks:```itsme@antelope ~> guix environment --ad-hoc helloThe following derivation will be built: /gnu/store/gkz9hzjpc9pj1np7vi5pwb4xhmssk55d-profile.drvbuilding profile with 1 package...Welcome to fish, the friendly interactive shellitsme@antelope ~ [Guix env: /gnu/store/nsi48y..]>```
And here is output with build hooks:```itsme@antelope ~> guix environment --ad-hoc man-db hellosubstitute: updating substitutes from 'https://berlin.guixsd.org'... 100.0%substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%The following derivation will be built: /gnu/store/w623j5spid7kyxjdp6xbgxs2r5scpjkn-profile.drvThe following profile hooks will be built: /gnu/store/14d1mgn1mwz66mj28rwjmnkddskf4zm0-info-dir.drv /gnu/store/7rrkqrdpxahk8g0927d56lpgz3n1kl6z-manual-database.drv /gnu/store/8h76m85hiyilv0mj053i9n7k2nxb0wf1-ca-certificate-bundle.drv /gnu/store/ia5d18hpmza375dizljqi2x12zlirwqi-fonts-dir.drvbuilding CA certificate bundle...building fonts directory...building directory of Info manuals...building database for manual pages...building profile with 2 packages...Welcome to fish, the friendly interactive shellitsme@antelope ~ [Guix env: /gnu/store/9qv380..]>```
L
L
Ludovic Courtès wrote on 1 May 2020 01:22
(name . pkill9)(address . pkill9@runbox.com)(address . 40381-done@debbugs.gnu.org)
877dxwimno.fsf@gnu.org
Hi,
pkill9 <pkill9@runbox.com> skribis:
Toggle quote (27 lines)> So it seems it tries to look for substitutes when the profile hooks are built,> not when profile.drv is built.>> Here is the output without build hooks:> ```> itsme@antelope ~> guix environment --ad-hoc hello> The following derivation will be built:> /gnu/store/gkz9hzjpc9pj1np7vi5pwb4xhmssk55d-profile.drv> building profile with 1 package...> Welcome to fish, the friendly interactive shell> itsme@antelope ~ [Guix env: /gnu/store/nsi48y..]>> ```>> And here is output with build hooks:> ```> itsme@antelope ~> guix environment --ad-hoc man-db hello> substitute: updating substitutes from 'https://berlin.guixsd.org'... 100.0%> substitute: updating substitutes from 'https://mirror.hydra.gnu.org'... 100.0%> substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%> The following derivation will be built:> /gnu/store/w623j5spid7kyxjdp6xbgxs2r5scpjkn-profile.drv> The following profile hooks will be built:> /gnu/store/14d1mgn1mwz66mj28rwjmnkddskf4zm0-info-dir.drv> /gnu/store/7rrkqrdpxahk8g0927d56lpgz3n1kl6z-manual-database.drv> /gnu/store/8h76m85hiyilv0mj053i9n7k2nxb0wf1-ca-certificate-bundle.drv> /gnu/store/ia5d18hpmza375dizljqi2x12zlirwqi-fonts-dir.drv
Looks like manual-database.drv was the only hook not mark asnon-substitutable.
Fixed in 69de98391d720b92206d5e45072ecd3944d95774.
Thanks,Ludo’.
Closed
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send email to 40381@debbugs.gnu.org