From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:48028) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hJh2b-0000zM-TW for guix-patches@gnu.org; Thu, 25 Apr 2019 12:16:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hJh2Z-0000av-Uo for guix-patches@gnu.org; Thu, 25 Apr 2019 12:16:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:45639) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hJh2Y-0000XR-4m for guix-patches@gnu.org; Thu, 25 Apr 2019 12:16:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hJh2X-0007QL-Tl for guix-patches@gnu.org; Thu, 25 Apr 2019 12:16:01 -0400 Subject: [bug#35428] [WIP v3] vm: Pass xorriso customizer. Resent-Message-ID: From: Danny Milosavljevic Date: Thu, 25 Apr 2019 18:15:10 +0200 Message-Id: <20190425161510.30475-1-dannym@scratchpost.org> In-Reply-To: <20190425153141.29025-1-dannym@scratchpost.org> References: <20190425153141.29025-1-dannym@scratchpost.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 35428@debbugs.gnu.org * gnu/build/vm.scm (make-iso9660-image): Accept XORRISO. Neutralize frontend. * gnu/system/vm.scm (iso9660-image): Pass XORRISO. * gnu/packages/cdrom.scm (xorriso)[arguments]<#:phases>[install-frontends]: Add phase. --- gnu/build/vm.scm | 11 +++++++++-- gnu/packages/cdrom.scm | 9 +++++++++ gnu/system/vm.scm | 10 +++++++--- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 372cf63c68..00be231fb0 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -422,7 +422,8 @@ SYSTEM-DIRECTORY is the name of the directory of the 'system' derivation." ;; Graft the configuration file onto the image. (string-append "boot/grub/grub.cfg=" config-file)))) -(define* (make-iso9660-image grub config-file os-drv target +(define* (make-iso9660-image xorriso mkrescue-sed-mode + grub config-file os-drv target #:key (volume-id "Guix_image") (volume-uuid #f) register-closures? (closures '())) "Given a GRUB package, creates an iso image as TARGET, using CONFIG-FILE as @@ -430,6 +431,9 @@ GRUB configuration and OS-DRV as the stuff in it." (define grub-mkrescue (string-append grub "/bin/grub-mkrescue")) + (define grub-mkrescue-sed.sh + (string-append xorriso "/bin/grub-mkrescue-sed.sh")) + (define target-store (string-append "/tmp/root" (%store-directory))) @@ -482,9 +486,12 @@ GRUB configuration and OS-DRV as the stuff in it." #x77777777) 16)) + (setenv "MKRESCUE_SED_MODE" mkrescue-sed-mode) (let ((pipe (apply open-pipe* OPEN_WRITE - grub-mkrescue "-o" target + grub-mkrescue + (string-append "--xorriso=" grub-mkrescue-sed.sh) + "-o" target (string-append "boot/grub/grub.cfg=" config-file) "etc=/tmp/root/etc" "var=/tmp/root/var" diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 2193a94f86..cd548e24ce 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -164,6 +164,15 @@ libcdio.") (base32 "0aq6lvlwlkxz56l5sbvgycr6j5c82ch2bv6zrnc2345ibfpafgx9")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'install 'install-frontends + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (out-bin (string-append out "/bin"))) + (install-file "frontend/grub-mkrescue-sed.sh" out-bin) + #t)))))) (inputs `(("acl" ,acl) ("readline" ,readline) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 92b03b01ad..187a0413e4 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -259,7 +259,8 @@ made available under the /xchg CIFS share." bootcfg-drv bootloader register-closures? - (inputs '())) + (inputs '()) + (mkrescue-sed-mode "original")) "Return a bootable, stand-alone iso9660 image. INPUTS is a list of inputs (as for packages)." @@ -301,7 +302,9 @@ INPUTS is a list of inputs (as for packages)." inputs))) (set-path-environment-variable "PATH" '("bin" "sbin") inputs) - (make-iso9660-image #$(bootloader-package bootloader) + (make-iso9660-image #$xorriso + #$mkrescue-sed-mode + #$(bootloader-package bootloader) #$bootcfg-drv #$os "/xchg/guixsd.iso" @@ -673,7 +676,8 @@ to USB sticks meant to be read-only." #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) #:inputs `(("system" ,os) - ("bootcfg" ,bootcfg))) + ("bootcfg" ,bootcfg)) + #:mkrescue-sed-mode "original") (qemu-image #:name name #:os os #:bootcfg-drv bootcfg