From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48996) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eYz82-0000Ai-J9 for guix-patches@gnu.org; Tue, 09 Jan 2018 14:00:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eYz7z-0004k2-DY for guix-patches@gnu.org; Tue, 09 Jan 2018 14:00:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:41990) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eYz7z-0004jX-91 for guix-patches@gnu.org; Tue, 09 Jan 2018 14:00:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eYz7z-0004Xf-0I for guix-patches@gnu.org; Tue, 09 Jan 2018 14:00:03 -0500 Subject: [bug#29932] [PATCH 0/2] Clean up operating-system-kernel-arguments. Resent-Message-ID: Date: Tue, 9 Jan 2018 19:59:41 +0100 From: Danny Milosavljevic Message-ID: <20180109195941.10076cb4@scratchpost.org> In-Reply-To: <20180109113954.530505c0@scratchpost.org> References: <20180101132200.26157-1-dannym@scratchpost.org> <878td8k8f5.fsf@gnu.org> <20180109113954.530505c0@scratchpost.org> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit 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: Ludovic =?UTF-8?Q?Court=C3=A8s?= Cc: 29932@debbugs.gnu.org Newest attempt: diff --git a/gnu/system.scm b/gnu/system.scm index 40e259f43..37f0e76ec 100644 --- a/gnu/system.scm +++ b/gnu/system.scm @@ -73,7 +73,8 @@ operating-system-hosts-file operating-system-kernel operating-system-kernel-file - operating-system-kernel-arguments + operating-system-boot-kernel-arguments + operating-system-user-kernel-arguments operating-system-initrd operating-system-users operating-system-groups @@ -90,7 +91,6 @@ operating-system-activation-script operating-system-user-accounts operating-system-shepherd-service-names - operating-system-user-kernel-arguments operating-system-derivation operating-system-profile @@ -126,10 +126,9 @@ ;;; ;;; Code: -(define (bootable-kernel-arguments kernel-arguments system.drv root-device) - "Prepend extra arguments to KERNEL-ARGUMENTS that allow SYSTEM.DRV to be -booted from ROOT-DEVICE" - (cons* (string-append "--root=" +(define (boot-kernel-arguments system.drv root-device) + "Kernel-arguments that allow SYSTEM.DRV to be booted from ROOT-DEVICE" + (list (string-append "--root=" (if (uuid? root-device) ;; Note: Always use the DCE format because that's @@ -138,8 +137,7 @@ booted from ROOT-DEVICE" (uuid->string (uuid-bytevector root-device) 'dce) root-device)) #~(string-append "--system=" #$system.drv) - #~(string-append "--load=" #$system.drv "/boot") - kernel-arguments)) + #~(string-append "--load=" #$system.drv "/boot"))) ;; System-wide configuration. ;; TODO: Add per-field docstrings/stexi. @@ -201,12 +199,11 @@ booted from ROOT-DEVICE" (sudoers-file operating-system-sudoers-file ; file-like (default %sudoers-specification))) -(define (operating-system-kernel-arguments os system.drv root-device) - "Return all the kernel arguments, including the ones not specified -directly by the user." - (bootable-kernel-arguments (operating-system-user-kernel-arguments os) - system.drv - root-device)) +(define* (operating-system-boot-kernel-arguments os) + "Kernel arguments that allow OS (only) to be booted." + (let* ((root-file-system (operating-system-root-file-system os)) + (root-device (file-system-device root-file-system))) + #~(boot-kernel-arguments #$os root-device))) ^L ;;; @@ -319,8 +316,7 @@ The object has its kernel-arguments extended in order to make it bootable." (if params (boot-parameters (inherit params) - (kernel-arguments (bootable-kernel-arguments kernel-arguments - system root))) + (kernel-arguments (append (boot-kernel-arguments system root) kernel-arguments))) #f))) (define (boot-parameters->menu-entry conf) @@ -940,9 +936,10 @@ kernel arguments for that derivation to ." (root-device root-device) (kernel (operating-system-kernel-file os)) (kernel-arguments - (if system.drv - (operating-system-kernel-arguments os system.drv root-device) - (operating-system-user-kernel-arguments os))) + (append (if system.drv + (operating-system-boot-kernel-arguments os) + '()) + (operating-system-user-kernel-arguments os))) (initrd initrd) (bootloader-name bootloader-name) (store-device (ensure-not-/dev (fs->boot-device store))) diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 496f2ac4e..6ba76142b 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -716,7 +716,8 @@ it is mostly useful when FULL-BOOT? is true." #:disk-image-size disk-image-size))) (define kernel-arguments #~(list #$@(if graphic? #~() #~("console=ttyS0")) - #+@(operating-system-kernel-arguments os os-drv "/dev/vda1"))) + #+@(append (operating-system-boot-kernel-arguments os) + (operating-system-user-kernel-arguments os)))) (define qemu-exec #~(list (string-append #$qemu "/bin/" #$(qemu-command (%current-system))) I get this error message: In gnu/system.scm: 905:2 2 (_ _) 939:14 1 (_ _) In unknown file: 0 (append # ?) ERROR: In procedure append: Wrong type argument in position 1 (expecting empty list): # kern... gnu/system.scm:939 is the "append" in the middle of "operating-system-boot-parameters". What now?