Subject: bug#31757: 'guix system disk-image --format=iso9660' includes more than the OS closure

From: [email-masked] (Ludovic Courtès)
Date: Fri, 08 Jun 2018 15:23:27 +0200

Hey hey!

Turns out ‘guix system disk-image --format=iso9660’ includes not sure
the closure of the given OS, but everything that’s in the build
environment’s store.  So typically, we end up with QEMU and all in
addition to the store’s closure.

This stems from the fact that ‘make-iso9660-image’ does:

--8<---------------cut here---------------start------------->8---
    (apply invoke
           `(,grub-mkrescue "-o" ,target
                            ,(string-append "boot/grub/grub.cfg=" config-file)
                            ,(string-append "gnu/store=" os-drv "/..")
                            "etc=/tmp/root/etc"
                            "var=/tmp/root/var"
                            "run=/tmp/root/run"
                            ;; /mnt is used as part of the installation
                            ;; process, as the mount point for the target
                            ;; file system, so create it.
                            "mnt=/tmp/root/mnt"
                            "--"
                            "-volid" ,(string-upcase volume-id)
                            ,@(if volume-uuid
                                  `("-volume_date" "uuid"
                                    ,(string-filter (lambda (value)
                                                      (not (char=? #\- value)))
                                                    (iso9660-uuid->string
                                                     volume-uuid)))
                                  `())))
--8<---------------cut here---------------end--------------->8---

The “gnu/store=…” argument means we’re adding the whole store to the ISO.

Ludo’.