all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: 26544@debbugs.gnu.org
Subject: bug#26544: [PATCH] system: Move "--load" and other guix-specific parameters from the grub module to the generic system module.
Date: Tue, 18 Apr 2017 16:51:59 +0200	[thread overview]
Message-ID: <20170418165159.2cb80518@scratchpost.org> (raw)
In-Reply-To: <87vaq2rubm.fsf@gnu.org>

Hi Ludo,

> Could you explain the “big picture”, the rationale behind this change?

Currenly, (gnu system grub) prepends the "--system", "--load" and "--root" on its own.  But that's something specific to the guix system and has nothing to do with bootloaders (it's not even a bootloader option - it's just passing it through to the Linux kernel and *that* is passing some through to Shepherd).

In connection with the effort to support other bootloaders we could of course copy such a prepension-block to each of the bootloader modules, but in my opinion it's better if it's moved to (bootloader-independent) boot-parameters so everyone just automatically uses the correct kernel arguments, including which guix system guix should boot.

I suspect that this wasn't done before because the boot-parameters are serialized to a file "parameters" in the "system" directory.  But then "--system=<system>" in that file would have to contain the hash value of the system, which is ... impossible (or at least very very hard to do).

Therefore, this patch makes sure the in-memory <boot-parameters> instances do contain "--system" with the correct hash value, but the stored "parameters" doesn't.

I think that that's the best of both worlds.  Clients in guix can use data read from <boot-parameters> without second-guessing everything and the stored file still doesn't have to solve a hash-functions-really-try-to-prevent-you-from-doing-that problem - the stored file doesn't contain the hash value of itself (and now doesn't need to).

I've successfully tested it by "guix system reconfigure" on my machine and also by "guix system vm" (full-boot and non-full-boot) on my machine, starting from master.

> Danny Milosavljevic <dannym@scratchpost.org> skribis:
> 
> > +(define (bootable-kernel-arguments kernel-arguments system root-device)

> Please add a docstring to top-level procedures:

Something like this?

"Prepend extra arguments to KERNEL-ARGUMENTS that allow the guix system to boot SYSTEM on ROOT-DEVICE."

> So I suggest stick to this convention and thus have:
> 
>   operating-system-user-kernel-arguments     ;arguments specified by the user
>   operating-system-kernel-arguments          ;all the arguments

Hmm, I don't think it's really directly specified by the user, is it?  I'm just trying to avoid having to store the file's (more or less) own hash value into the file.

> > -(define (operating-system-parameters-file os)
> > +(define (operating-system-boot-parameters os system root-device)  
> 
> I think it would be clearer to rename in a separate patch.

I'll try.

> > +(define (read-boot-parameters-file sysgen)
> > +  "Read boot parameters from SYSGEN's (system or generation) \"parameters\"  
> 
> Please use full words in variable names, typically ‘system’ here.

Ok.  Should the docstring say "SYSTEM (system or generation)" or just "SYSTEM"?

  reply	other threads:[~2017-04-18 14:53 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-17 17:00 bug#26544: [PATCH] system: Move "--load" and other guix-specific parameters from the grub module to the generic system module Danny Milosavljevic
2017-04-17 17:26 ` Mathieu Othacehe
2017-04-18  8:30 ` Ludovic Courtès
2017-04-18 14:51   ` Danny Milosavljevic [this message]
2017-04-19  9:59     ` Ludovic Courtès
2017-04-21  2:21 ` bug#26544: [PATCH v2 0/8] " Danny Milosavljevic
2017-04-21  2:21   ` bug#26544: [PATCH v2 1/8] system: Rename operating-system-kernel-arguments to operating-system-user-kernel-arguments Danny Milosavljevic
2017-04-21  8:23     ` Mathieu Othacehe
2017-04-22 18:56     ` Danny Milosavljevic
2017-04-21  2:21   ` bug#26544: [PATCH v2 2/8] system: Rename operating-system-parameters-file to operating-system-boot-parameters-file Danny Milosavljevic
2017-04-21  8:23     ` Mathieu Othacehe
2017-04-22 18:57     ` Danny Milosavljevic
2017-04-21  2:21   ` bug#26544: [PATCH v2 3/8] system: Factorize operating-system-boot-parameters-file Danny Milosavljevic
2017-04-21  8:24     ` Mathieu Othacehe
2017-04-21  2:21   ` bug#26544: [PATCH v2 4/8] system: Introduce operating-system-kernel-arguments and use it Danny Milosavljevic
2017-04-21  8:53     ` Mathieu Othacehe
2017-04-21  2:21   ` bug#26544: [PATCH v2 5/8] system: Introduce read-boot-parameters-file Danny Milosavljevic
2017-04-21  8:59     ` Mathieu Othacehe
2017-04-21  2:21   ` bug#26544: [PATCH v2 6/8] system: vm: Use operating-system-kernel-arguments Danny Milosavljevic
2017-04-21  9:02     ` Mathieu Othacehe
2017-04-21  2:21   ` bug#26544: [PATCH v2 7/8] system: Use operating-system-boot-parameters directly Danny Milosavljevic
2017-04-21  9:02     ` Mathieu Othacehe
2017-04-21  2:21   ` bug#26544: [PATCH v2 8/8] system: grub: Use boot-parameters instead of menu-entry where possible Danny Milosavljevic
2017-04-21  9:01     ` Mathieu Othacehe
2017-04-21  8:22   ` bug#26544: [PATCH v2 0/8] system: Move "--load" and other guix-specific parameters from the grub module to the generic system module Mathieu Othacehe
2017-04-21 12:14     ` bug#26544: [PATCH v3 0/9] " Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 1/9] system: Rename operating-system-parameters-file to operating-system-boot-parameters-file Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 2/9] system: Factorize operating-system-boot-parameters-file Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 3/9] system: Introduce operating-system-kernel-arguments and use it Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 4/9] system: Introduce read-boot-parameters-file Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 5/9] scripts: Make boot-parameters label include generation number and time Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 6/9] system: vm: Use operating-system-kernel-arguments Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 7/9] system: Use operating-system-boot-parameters directly Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 8/9] system: grub: Use boot-parameters instead of menu-entry where possible Danny Milosavljevic
2017-04-21 12:14       ` bug#26544: [PATCH v3 9/9] scripts: Remove profile-grub-entries Danny Milosavljevic
2017-04-21 12:37     ` bug#26544: [PATCH v4 00/10] system: Move "--load" and other guix-specific parameters from the grub module to the generic system module Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 01/10] system: Rename operating-system-kernel-arguments to operating-system-user-kernel-arguments Danny Milosavljevic
2017-04-22 18:59         ` Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 02/10] system: Rename operating-system-parameters-file to operating-system-boot-parameters-file Danny Milosavljevic
2017-04-22 19:00         ` Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 03/10] system: Factorize operating-system-boot-parameters-file Danny Milosavljevic
2017-04-22 20:08         ` Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 04/10] system: Introduce operating-system-kernel-arguments and use it Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 05/10] system: Introduce read-boot-parameters-file Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 06/10] scripts: Make boot-parameters label include generation number and time Danny Milosavljevic
2017-04-22 20:32         ` Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 07/10] system: vm: Use operating-system-kernel-arguments Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 08/10] system: Use operating-system-boot-parameters directly Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 09/10] system: grub: Use boot-parameters instead of menu-entry where possible Danny Milosavljevic
2017-04-21 12:37       ` bug#26544: [PATCH v4 10/10] scripts: Remove profile-grub-entries Danny Milosavljevic
2017-04-21 13:04         ` Mathieu Othacehe
2017-04-21 15:20           ` Danny Milosavljevic
2017-04-21 16:11             ` Mathieu Othacehe
2017-04-22 19:05       ` bug#26544: [PATCH v4 00/10] system: Move "--load" and other guix-specific parameters from the grub module to the generic system module Danny Milosavljevic
2017-05-05  7:04       ` Danny Milosavljevic
2017-05-05  8:03         ` Ludovic Courtès
2017-05-05 13:35 ` bug#26544: Merged to master: [PATCH v4 *] " Danny Milosavljevic

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

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

  git send-email \
    --in-reply-to=20170418165159.2cb80518@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=26544@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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.