Subject: [bug#28288] [PATCH 1/5] vm: Add support for registering closures to make-iso9660-image.

From: Christopher Baines <[email-masked]>
Date: Sun, 10 Sep 2017 11:45:32 +0100

On Wed, 06 Sep 2017 15:20:44 +0200
[email-masked] (Ludovic Courtès) wrote:

> Christopher Baines <[email-masked]> skribis:
> 
> > On Tue, 05 Sep 2017 15:17:32 +0200
> > [email-masked] (Ludovic Courtès) wrote:
> >  
> >> Hi!
> >> 
> >> Christopher Baines <[email-masked]> skribis:
> >>   
> >> > This mimics the functionality in the root-partition-initializer
> >> > used in creating the QEMU image. This helps when trying to run
> >> > guix system init from the generated ISO image.
> >> >
> >> > * gnu/build/vm.scm (make-iso9660-image): Add support for
> >> > registering closures.    
> >> 
> >> [...]
> >>   
> >> > +    (when register-closures?
> >> > +      (display "registering closures...\n")
> >> > +      (for-each (lambda (closure)
> >> > +                  (register-closure
> >> > +                   "/tmp/root"
> >> > +                   (string-append "/xchg/" closure)
> >> > +                   #:deduplicate? #f))
> >> > +                closures))    
> >> 
> >> Was there any specific reason for #:deduplicate? #f here?  
> >
> > Yep, the image creation process fails if this is not specified.
> >
> > error: cannot link
> > `/tmp/root/gnu/store/.links/1wj8bqv0ygz606a0day0gk7w37prsnbg5z2im2yf025r0y6lqfs0'
> > to
> > `/tmp/root/gnu/store/00lgsgxvv1hfhl22yqmzsa3lrs5qa9my-firmware/lib/firmware/b43-open':
> > Invalid cross-device link  
> 
> Hmm, OK.  Looks like it’s trying to deduplicate between /tmp/root and
> some other store.  (Or are we using a bind mount here?)

I think there is a bind mount in use here, so maybe that has something
to do with it.

> > There is probably another way around this though. I'm not sure what
> > impact skipping the deduplication has on the size of the image.  
> 
> It probably doesn’t matter much, so it’s not a blocker IMO.
> 
> Maybe leave an XXX comment mentioning the cross-device link issue.

Yep, I'll put in a comment :)