GNU bug report logs -
#26608
Provide --only-substitutes flag to "guix package --upgrade"
Previous Next
Full log
View this message in rfc822 format
Hi Alex,
Alex Sassmannshausen <alex <at> pompo.co> skribis:
> Ludovic Courtès writes:
[...]
>> I just had a bright idea (yes!): this can be addressed by writing
>> something like this in ~/.config/guix/channels.scm:
>>
>> (map latest-commit-with-substitutes-available
>> %default-channels)
>>
>> The hypothetical ‘latest-commit-with-substitutes-available’ would use
>> (git) and (guix ci) to find the latest commit for which substitutes of
>> interest are available, and would return:
>>
>> (channel
>> ;; …
>> (commit "cabbag3")) ;the ideal commit
>
> This sounds incredibly interesting — and it is testament once again to
> the power of Guix that this kind of solution could be feasible!
Just to be clear: I don’t think this would be a substitute for a
“stable” branch; rather, I view as a way to have user-defined policies
such as “pull up to the latest commit for which there’s a substitute for
IceCat.”
> Thinking this through in my head somewhat, I had the following thoughts:
> - This procedure is invoked client side, where the channel is defined
> - That means the git searching is done client side, on every invocation
> of guix (I guess this might be cacheable?)
On every invocation of ‘guix pull’ only.
> I have no idea what the performance cost would be. I guess you would
> use "guix weather" to turn the set of requested packages into a manifest
> which can then be checked with it.
As I imagine it, the cost would be a few HTTP queries to the Cuirass
API. I should try to come up with an example to better explain what I
had in mind!
> The question of security updates is tricky at the moment already — I
> would hazard a guess that many people bail out of upgrading when they
> can't get substitutes for their entire profile / system right now, which
> means they are not getting security upgrades for package (a) when a
> substitute for (b) fails.
That’s probably true, and I agree it’s problematic.
What I typically do is “guix pull && guix package -n -u”. Then I look
at things that would be built; if, say, LibreOffice is among them, I
wait for a little while and try again later, until I can get enough
substitutes. That usually works okay, but it fails if it turns out that
one of the dependencies fails to build: substitutes never become
available in that case.
Ludo’.
This bug report was last modified 3 years and 297 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.