Hi Ludo, On Mon, 18 Nov 2019 at 17:22, Ludovic Courtès <l...@gnu.org> wrote:
> zimoun <zimon.touto...@gmail.com> skribis: > > On Sun, 17 Nov 2019 at 22:15, Ludovic Courtès <l...@gnu.org> wrote: > >> The only thing that’s missing here is that currently “guix build > >> /gnu/store/….drv” fails if the .drv doesn’t already exist, which is why > >> the trick above resorts to a lower-level mechanism. > > > > I miss how to fetch this missing .drv. :-) > > > > For example this evaluation built a recent enough Guix, right? > > > > $ wget -q -O - 'http://ci.guix.gnu.org/build/1943556' | jq '."derivation"' > > > > > > outputs the derivation file. But how do you fetch it? > > You don’t explicitly fetch it. Instead, you run “guix build /….drv”, > and the daemon automatically attempts to substitute it if it’s not > available in your store (note that you need commit > 9c9982dc0c8c38ce3821b154b7e92509c1564317.) I do not have when I tested. The commit is from yesterday evening. ;-) (that's a real rolling release :-D) But if you have this commit, you do not need the dance that you described to "guix pull" with a very very old Guix version -- say before the 0.15 overhaul. > Now, I noticed that it doesn’t work so well when ‘guix publish --cache’ > is used, as is the case on berlin. The reason is that the daemon will > query substitutes one by one: guix-xyz.drv, then guix-xyz-builder, and > so on. And because of the ‘--cache’ behavior, they’ll all have to be > baked separately. --8<---------------cut here---------------start------------->8--- $ guix build "/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv" substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% cannot build missing derivation ‘/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv’ guix build: error: build of `/gnu/store/bz1qqy225p1jlicwf07iiqr79icqddcv-guix-4de11dda7.drv' failed $ guix describe Generation 55 Nov 18 2019 13:21:24 (current) guix 900ef20 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 900ef20b1da66ad71145082c883dc12f31fafa54 --8<---------------cut here---------------end--------------->8--- > >> Perhaps ‘guix pull’ should have a ‘--rescue’ option to do the trick > >> above? > > > > Is it possible? > > We need to track on Cuirass one recent enough derivation of Guix for > > each architecture, right? > > Yeah well, that needs more thought. :-) I am not sure to clearly understand what we are talking about. :-) All the best, simon