unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 29932@debbugs.gnu.org
Subject: [bug#29932] [PATCH 0/2] Clean up operating-system-kernel-arguments.
Date: Tue, 9 Jan 2018 19:59:41 +0100	[thread overview]
Message-ID: <20180109195941.10076cb4@scratchpost.org> (raw)
In-Reply-To: <20180109113954.530505c0@scratchpost.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 <boot-parameters>."
              (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 #<gexp (boot-kernel-arguments #<gexp-input #<<?> ?)
ERROR: In procedure append: Wrong type argument in position 1 (expecting empty list): #<gexp (boot-kernel-arguments #<gexp-input #<<operating-system> kern...

gnu/system.scm:939 is the "append" in the middle of "operating-system-boot-parameters".

What now?

  reply	other threads:[~2018-01-09 19:00 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-01 13:22 [bug#29932] [PATCH 0/2] Clean up operating-system-kernel-arguments Danny Milosavljevic
2018-01-01 13:27 ` [bug#29932] [PATCH 1/2] system: Inline operating-system-kernel-arguments Danny Milosavljevic
2018-01-01 13:27   ` [bug#29932] [PATCH 2/2] system: Rename operating-system-user-kernel-arguments to operating-system-kernel-arguments Danny Milosavljevic
2018-01-08  9:26 ` [bug#29932] [PATCH 0/2] Clean up operating-system-kernel-arguments Ludovic Courtès
2018-01-09  8:21   ` Danny Milosavljevic
2018-01-09  8:52     ` Ludovic Courtès
2018-01-09 10:34       ` Danny Milosavljevic
2018-01-09 11:53         ` Ludovic Courtès
2018-01-09 10:39   ` Danny Milosavljevic
2018-01-09 18:59     ` Danny Milosavljevic [this message]
2018-01-11 16:43       ` Ludovic Courtès
2018-01-12 10:59 ` [bug#29932] [PATCH v2 1/2] system: Split up operating-system-kernel-arguments into operating-system-boot-kernel-arguments and operating-system-user-kernel-arguments Danny Milosavljevic
2018-01-12 11:01   ` [bug#29932] [PATCH v2 2/2] system: Rename operating-system-user-kernel-arguments to operating-system-kernel-arguments Danny Milosavljevic
2018-01-12 14:06     ` Ludovic Courtès
2018-01-12 14:43       ` Danny Milosavljevic
2020-10-08 17:50         ` Maxim Cournoyer
2021-07-13 11:56           ` bug#29932: [PATCH 0/2] Clean up operating-system-kernel-arguments Maxim Cournoyer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180109195941.10076cb4@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=29932@debbugs.gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).