Mark H Weaver <m...@netris.org> skribis: > Mark H Weaver <m...@netris.org> writes: > >> I'm in the early stages of adding GuixSD for the Lemote Yeeloong, and so >> for now would like to avoid getting grub working on the Yeeloong. So, >> I tried running "guix system init config.scm /target --no-grub", and >> this is what happens: >> >> /gnu/store/...-system >> >> initializing operating system under '/target'... >> guix system: error: build failed: path `/gnu/store/...-grub.cfg' is not >> valid > > I ran into the same problem while porting GuixSD to MIPS, before I had > GRUB working. > > The problem here is that the method for copying the necessary store > items to the target directory is to copy grub.cfg and its transitive > closure, using (maybe-copy grub.cfg).
Right. > However, if --no-grub is specified, then grub.cfg is not built. I see. Good catch! > The preliminary approach I used successfully was to build and install > grub.cfg even if --no-grub is specified, although 'grub-install' is not > run in that case. Here's the patch I used: > > diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm > index 45f5982..6ec1f29 100644 > --- a/guix/scripts/system.scm > +++ b/guix/scripts/system.scm > @@ -331,8 +331,10 @@ boot directly to the kernel or to the bootloader." > (if (eq? 'init action) > '() > (previous-grub-entries)))) > - (drvs -> (if (and grub? (memq action '(init reconfigure))) > - (list sys grub grub.cfg) > + (drvs -> (if (memq action '(init reconfigure)) > + (if grub? > + (list sys grub.cfg grub) > + (list sys grub.cfg)) Sounds like a reasonable approach. We’d be building slightly too much in the --no-grub case, but that’s probably acceptable. WDYT? Thanks, Ludo’.