Andreas Enge <[email protected]> skribis: > On Wed, Apr 22, 2015 at 01:46:35PM +0200, Pjotr Prins wrote: >> 5. We reload the list of substitutes after a fixed time >> Let me rephrase. Can we have a more lazy approach towards fetching >> substitutes? Rather than a fixed TTL we could fetch the latest list on >> the first failed substitute. > > A while ago, the list of substitutes was downloaded even when removing > packages from a profile, which Ludovic fixed if I remember correctly.
Not really, see below. > But even when installing, one may not need to download anything if the > package is already in the store. So I think the following would be good: > Determine the list of packages to be installed in a profile with "guix > package" or to be built with "guix build". If they are all in the store, > fine, otherwise, check the age of the list of substitutes and if it is > to old, download it again. This is correct, except it’s not just about packages explicitly specified by the user: anytime the daemon is asked to build something, it calls out to ‘guix substitute’, which tells it whether a substitute is available for that thing. ‘guix substitute’ has a cache of what’s available, which it refreshes when it gets too old (hence the “updating substitute list” message.) ‘guix package -r’ actually asks the daemon to build/download (if needed) the Guile package that is used to create the new profile. If that Guile package is missing, then it is built/downloaded. HTH, Ludo’.
