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

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

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?)

> 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.

Thanks!

Ludo’.