all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: Mathieu Othacehe <m.othacehe@gmail.com>
Cc: 26339@debbugs.gnu.org
Subject: bug#26339: [PATCH v4 1/7] bootloader: Add extlinux support.
Date: Sun, 14 May 2017 15:25:28 +0200	[thread overview]
Message-ID: <87lgpzwoxj.fsf@gnu.org> (raw)
In-Reply-To: <20170514074803.25556-2-m.othacehe@gmail.com> (Mathieu Othacehe's message of "Sun, 14 May 2017 09:47:57 +0200")

Hello Mathieu,

Mathieu Othacehe <m.othacehe@gmail.com> skribis:

> * gnu/bootloader.scm: New file.
> * gnu/bootloader/extlinux.scm: New file.
> * gnu/bootloader/grub.scm: New file.
> * gnu/local.mk: Build new files.
> * gnu/system.scm: Adapt to new bootloader api.
> * gnu/scripts/system.scm: Adapt to new bootloader api.
> * gnu.scm: Remove (gnu system grub) and replace by (gnu bootloader) and (gnu
> bootloader grub) modules.
> * gnu/system/grub.scm: Moved content to gnu/bootloader/grub.scm.
> * gnu/system/vm: Replace (gnu system grub) module by (gnu bootloader).
> * gnu/tests.scm: Ditto.
> * gnu/tests/nfs.scm: Ditto.

Nice!  Some very minor comments before you push:

> +;;; The <bootloader> record contains fields expressing how the bootloader
> +;;; should be installed. Every bootloader in gnu/bootloader/ directory
> +;;; has to be described by this record.
   ^
Only two semicolons here.  :-)

> +  (theme                           bootloader-theme
> +                                   (default #f))

I would expect the theme to be part of <bootloader-configuration> rather
than <bootloader> no?  For example GRUB does not impose a particular
theme.

> +(define dd
> +  #~(lambda (bs count if of)
> +      (zero? (system* "dd"
> +                      (string-append "bs=" (number->string bs))
> +                      (string-append "count=" (number->string count))
> +                      (string-append "if=" if)
> +                      (string-append "of=" of)))))

Dunno but in the future it may be better to use ‘dump-port’ from (guix
build utils) than to invoke ‘dd’.

> +(define install-syslinux
> +  #~(lambda (bootloader device mount-point)
> +      (let ((extlinux (string-append bootloader "/sbin/extlinux"))
> +            (install-dir (string-append mount-point "/boot/extlinux"))
> +            (syslinux-dir (string-append bootloader "/share/syslinux")))
> +        (mkdir-p install-dir)
> +        (for-each (lambda (file)
> +                    (copy-file file
> +                               (string-append install-dir "/" (basename file))))

Rather: (install-file file install-dir).

> +;;;
> +;;; Bootloader definitions.
> +;;;
> +
> +(define extlinux-bootloader
> +  (bootloader
> +   (name 'extlinux)
> +   (package #f)
> +   (installer #f)

Why #f here?  Looks fishy.

> +;;;
> +;;; Compatibility macros.
> +;;;
> +
> +(define-syntax-rule (extlinux-configuration fields ...)
> +  (bootloader-configuration
> +   (bootloader extlinux-bootloader)
> +   fields ...))
> +
> +(define-syntax-rule (syslinux-configuration fields ...)
> +  (bootloader-configuration
> +   (bootloader syslinux-bootloader)
> +   fields ...))

We can omit these two macros since they have never existed before this
patch.  New users will write:

  (bootloader-configuration
    (bootloader syslinux-bootloader)
    …)

Speaking of which, could you update guix.texi, maybe in a subsequent
patch to avoid blocking this one?  I suppose “GRUB Configuration” would
have to be renamed to “Bootloader Configuration”.

> +;;;
> +;;; Compatibility macros.
> +;;;
> +
> +(define-syntax-rule (grub-configuration fields ...)
> +  (bootloader-configuration
> +   (bootloader grub-bootloader)
> +   fields ...))
> +
> +(define-syntax-rule (grub-efi-configuration fields ...)
> +  (bootloader-configuration
> +   (bootloader grub-efi-bootloader)
> +   fields ...))

The second macro can be removed (it did not exist before).

However the first one might need to be improved to be really compatible
with what exists now.  For instance, my laptop’s config has this:

  (grub-configuration
    (grub grub-efi)
    (device "/dev/sda"))

So we probably need something like this (untested):

  (define-syntax grub-configuration
    (syntax-rules (grub)
      ((_ (grub package) fields ...)
       (if (eq? package grub)
           (bootloader-configuration
             (bootloader grub-bootloader)
             fields ...)
           (bootloader-configuration
             (bootloader grub-efi-bootloader)
             fields ...)))
      ((_ fields ...)
       (bootloader-configuration
         (bootloader grub-bootloader)
         fields ...))))

This will only address the simple case where the ‘grub’ field comes
first, but that should be OK (esp. since UEFI support was not documented
until now…).

Otherwise LGTM, thanks!

Ludo’.

  parent reply	other threads:[~2017-05-14 13:26 UTC|newest]

Thread overview: 204+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-02 13:49 bug#26339: [PATCH 00/18] wip: Support non grub bootloaders Mathieu Othacehe
2017-04-02 13:52 ` bug#26339: [PATCH 01/18] system: Pass <bootloader-parameter> to grub Mathieu Othacehe
2017-04-02 13:52   ` bug#26339: [PATCH 02/18] system: Add extlinux support Mathieu Othacehe
2017-04-15 16:03     ` Danny Milosavljevic
2017-05-08 20:06     ` Ludovic Courtès
2017-05-09  7:38       ` Mathieu Othacehe
2017-05-09  9:51         ` Ludovic Courtès
2017-05-09 14:30           ` Mathieu Othacehe
2017-05-09 20:40             ` Ludovic Courtès
2017-05-12  0:02               ` Danny Milosavljevic
2017-05-12  8:26                 ` Ludovic Courtès
2017-05-12 11:26                   ` Danny Milosavljevic
2017-05-12 11:36                     ` Ludovic Courtès
2017-05-12 12:18                       ` Mathieu Othacehe
2017-05-13  9:53                         ` Danny Milosavljevic
2017-05-14  7:49                           ` Mathieu Othacehe
2017-05-09 10:25         ` Ludovic Courtès
2017-05-09 14:32           ` Mathieu Othacehe
2017-04-02 13:52   ` bug#26339: [PATCH 03/18] scripts: system: Rename --no-grub option to --no-bootloader Mathieu Othacehe
2017-04-15 10:10     ` Danny Milosavljevic
2017-04-16  9:58       ` Ludovic Courtès
2017-04-02 13:52   ` bug#26339: [PATCH 04/18] bootloader: Add install procedures and use them Mathieu Othacehe
2017-04-15 16:22     ` Danny Milosavljevic
2017-04-15 17:15       ` Mathieu Othacehe
2017-04-16 21:37         ` Danny Milosavljevic
2017-04-17  8:49           ` Mathieu Othacehe
2017-04-18  8:23             ` Ludovic Courtès
2017-04-02 13:52   ` bug#26339: [PATCH 05/18] system: Rename operating-system-grub.cfg to operating-system-bootcfg Mathieu Othacehe
2017-04-15 12:44     ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 06/18] vm: Reword grub.cfg to boot.cfg Mathieu Othacehe
2017-04-15 12:43     ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 07/18] system: Add bootloader type Mathieu Othacehe
2017-04-15 16:26     ` Danny Milosavljevic
2017-04-15 17:23       ` Mathieu Othacehe
2017-04-15 20:16         ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 08/18] bootloader: Stop using grub module Mathieu Othacehe
2017-04-15 13:33     ` Danny Milosavljevic
2017-04-15 16:44     ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 09/18] scripts: system: Move save-load-path-excursion and save-environment-excursion macros to the top Mathieu Othacehe
2017-04-15 10:35     ` Danny Milosavljevic
2017-04-15 10:46       ` Mathieu Othacehe
2017-04-15 11:30         ` Danny Milosavljevic
2017-04-15 11:41           ` Mathieu Othacehe
2017-04-15 11:52             ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 10/18] system: Rename kernel->grub-label to kernel->boot-label Mathieu Othacehe
2017-04-15 10:40     ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 11/18] bootloader: Add device and type to bootloader-configuration record Mathieu Othacehe
2017-04-02 13:52   ` bug#26339: [PATCH 12/18] system: Rename grub-device to fs->boot-device Mathieu Othacehe
2017-04-15 12:45     ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 13/18] scripts: system: Remove unused variables Mathieu Othacehe
2017-04-02 13:52   ` bug#26339: [PATCH 14/18] scripts: system: Rename grub? and install-grub? to bootloader? and install-bootloader? Mathieu Othacehe
2017-04-15 13:25     ` Danny Milosavljevic
2017-04-02 13:52   ` bug#26339: [PATCH 15/18] scripts: system: Adapt "reconfigure" to new bootloader API Mathieu Othacehe
2017-04-02 13:52   ` bug#26339: [PATCH 16/18] scripts: system: Adapt "init" " Mathieu Othacehe
2017-04-02 13:52   ` bug#26339: [PATCH 17/18] scripts: system: Adapt "switch-generation" " Mathieu Othacehe
2017-04-15 16:47     ` Danny Milosavljevic
2017-04-15 17:27       ` Mathieu Othacehe
2017-05-05  7:13         ` Danny Milosavljevic
2017-05-05  7:21           ` Mathieu Othacehe
2017-04-15 18:17       ` problem with commit abae042 Mathieu Othacehe
2017-04-15 18:56         ` Danny Milosavljevic
2017-04-15 19:13           ` Mathieu Othacehe
2017-04-15 19:50         ` bootloader and kernel arguments "--root", "--system", "--load" Danny Milosavljevic
2017-04-15 23:18         ` bug#26339: problem with commit abae042 Leo Famulari
2017-04-15 23:22           ` Danny Milosavljevic
2017-04-15 23:56             ` Leo Famulari
2017-04-02 13:52   ` bug#26339: [PATCH 18/18] scripts: system: Display bootloader device and type in "list-generations" Mathieu Othacehe
2017-04-02 18:24   ` bug#26339: [PATCH 01/18] system: Pass <bootloader-parameter> to grub David Craven
2017-04-15 13:04   ` Danny Milosavljevic
2017-04-15 13:58   ` Danny Milosavljevic
2017-04-15 15:39     ` Danny Milosavljevic
2017-04-15 20:17   ` Danny Milosavljevic
2017-04-17  9:01 ` bug#26339: [PATCH v2 00/12] Support for non grub bootloaders Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 01/12] system: Pass <bootloader-parameter> to grub Mathieu Othacehe
2017-04-17 17:08     ` Danny Milosavljevic
2017-05-08  9:37     ` Ludovic Courtès
2017-05-08 13:51       ` Danny Milosavljevic
2017-05-08 15:00         ` Mathieu Othacehe
2017-05-09 14:16           ` Marius Bakke
2017-05-09 14:36             ` Mathieu Othacehe
2017-05-08 19:47         ` Ludovic Courtès
2017-05-08 20:04           ` Danny Milosavljevic
2017-05-09  7:03             ` Ludovic Courtès
2017-05-09  7:21               ` Danny Milosavljevic
2017-05-09  9:45                 ` Ludovic Courtès
2017-05-08 20:16           ` bug#26339: [PATCH] system: Remove circular dependency between (gnu system) and (gnu system grub) Danny Milosavljevic
2017-05-08 21:01             ` Danny Milosavljevic
2017-05-08 14:53       ` bug#26339: [PATCH v2 01/12] system: Pass <bootloader-parameter> to grub Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 02/12] system: Add extlinux support Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 03/12] scripts: system: Rename --no-grub option to --no-bootloader Mathieu Othacehe
2017-04-17 15:54     ` Danny Milosavljevic
2017-04-17  9:01   ` bug#26339: [PATCH v2 04/12] bootloader: Add install procedures and use them Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 05/12] system: Add bootloader type Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 06/12] bootloader: Stop using grub module Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 07/12] bootloader: Add device and type to bootloader-configuration record Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 08/12] scripts: system: Remove unused variables Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 09/12] scripts: system: Adapt "reconfigure" to new bootloader API Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 10/12] scripts: system: Adapt "init" " Mathieu Othacehe
2017-04-23  8:39     ` Danny Milosavljevic
2017-04-23  8:53       ` Danny Milosavljevic
2017-04-23 16:38         ` Mathieu Othacehe
2017-04-23 16:34       ` Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 11/12] scripts: system: Adapt "switch-generation" " Mathieu Othacehe
2017-04-17  9:01   ` bug#26339: [PATCH v2 12/12] scripts: system: Display bootloader device and type in "list-generations" Mathieu Othacehe
2017-05-06 15:41 ` bug#26339: [PATCH v3 0/9] Support non-grub bootloaders Mathieu Othacehe
2017-05-06 15:41   ` bug#26339: [PATCH v3 1/9] system: Add extlinux support Mathieu Othacehe
2017-05-07 16:41     ` Danny Milosavljevic
2017-05-07 20:01       ` Mathieu Othacehe
2017-05-06 15:41   ` bug#26339: [PATCH v3 2/9] bootloader: Add install procedures and use them Mathieu Othacehe
2017-05-07 16:52     ` Danny Milosavljevic
2017-05-06 15:41   ` bug#26339: [PATCH v3 3/9] system: Add bootloader type Mathieu Othacehe
2017-05-07 16:55     ` Danny Milosavljevic
2017-05-06 15:41   ` bug#26339: [PATCH v3 4/9] bootloader: Stop using grub module Mathieu Othacehe
2017-05-07 16:53     ` Danny Milosavljevic
2017-05-06 15:41   ` bug#26339: [PATCH v3 5/9] bootloader: Add device and type to bootloader-configuration record Mathieu Othacehe
2017-05-07 20:59     ` Danny Milosavljevic
2017-05-06 15:41   ` bug#26339: [PATCH v3 6/9] scripts: system: Adapt "reconfigure" to new bootloader API Mathieu Othacehe
2017-05-07 20:33     ` Danny Milosavljevic
2017-05-07 20:56       ` Danny Milosavljevic
2017-05-08 16:24         ` Mathieu Othacehe
2017-05-08 16:21       ` Mathieu Othacehe
2017-05-07 21:14     ` Danny Milosavljevic
2017-05-08 16:27       ` Mathieu Othacehe
2017-05-06 15:41   ` bug#26339: [PATCH v3 7/9] scripts: system: Adapt "init" " Mathieu Othacehe
2017-05-07 21:08     ` Danny Milosavljevic
2017-05-08 16:26       ` Mathieu Othacehe
2017-05-06 15:41   ` bug#26339: [PATCH v3 8/9] scripts: system: Adapt "switch-generation" " Mathieu Othacehe
2017-05-07 20:54     ` Danny Milosavljevic
2017-05-08 16:22       ` Mathieu Othacehe
2017-05-06 15:41   ` bug#26339: [PATCH v3 9/9] scripts: system: Display bootloader device and type in "list-generations" Mathieu Othacehe
2017-05-07 16:57     ` Danny Milosavljevic
2017-05-14  7:47 ` bug#26339: [PATCH v4 0/7] Support non grub bootloaders Mathieu Othacehe
2017-05-14  7:47   ` bug#26339: [PATCH v4 1/7] bootloader: Add extlinux support Mathieu Othacehe
2017-05-14  8:43     ` Danny Milosavljevic
2017-05-16 12:46       ` Mathieu Othacehe
2017-05-14 13:25     ` Ludovic Courtès [this message]
2017-05-16 12:51       ` Mathieu Othacehe
2017-05-16 14:38         ` Danny Milosavljevic
2017-05-16 14:50           ` Mathieu Othacehe
2017-05-16 15:00             ` Danny Milosavljevic
2017-05-16 15:03               ` Mathieu Othacehe
2017-05-14 13:35     ` Ludovic Courtès
2017-05-16 12:55       ` Mathieu Othacehe
2017-05-14  7:47   ` bug#26339: [PATCH v4 2/7] bootloader: Adapt vm to new bootloader API Mathieu Othacehe
2017-05-14  8:47     ` Danny Milosavljevic
2017-05-14 13:28     ` Ludovic Courtès
2017-05-14 14:59       ` Danny Milosavljevic
2017-05-14 19:53         ` Ludovic Courtès
2017-05-14  7:47   ` bug#26339: [PATCH v4 3/7] bootloader: Add bootloader name to boot-parameters record Mathieu Othacehe
2017-05-14  8:47     ` Danny Milosavljevic
2017-05-14 13:29       ` Ludovic Courtès
2017-05-14  7:48   ` bug#26339: [PATCH v4 4/7] scripts: system: Adapt "reconfigure" to new bootloader API Mathieu Othacehe
2017-05-14  8:50     ` Danny Milosavljevic
2017-05-14 13:31     ` Ludovic Courtès
2017-05-14  7:48   ` bug#26339: [PATCH v4 5/7] scripts: system: Adapt "init" " Mathieu Othacehe
2017-05-14  8:51     ` Danny Milosavljevic
2017-05-14 13:31       ` Ludovic Courtès
2017-05-14  7:48   ` bug#26339: [PATCH v4 6/7] scripts: system: Adapt "switch-generation" " Mathieu Othacehe
2017-05-14  8:52     ` Danny Milosavljevic
2017-05-14 13:32       ` Ludovic Courtès
2017-05-14  8:54     ` Danny Milosavljevic
2017-05-16 12:46       ` Mathieu Othacehe
2017-05-14  7:48   ` bug#26339: [PATCH v4 7/7] scripts: system: Display bootloader name in "list-generations" Mathieu Othacehe
2017-05-14 13:33     ` Ludovic Courtès
2017-05-16 13:03 ` bug#26339: [PATCH] doc: Adapt to multiple bootloader support Mathieu Othacehe
2017-05-20 20:49   ` Danny Milosavljevic
2017-05-22  8:11     ` Mathieu Othacehe
2017-05-20 21:12   ` Tomáš Čech
2017-05-20 21:19     ` Mathieu Othacehe
2017-05-18 10:13 ` bug#26339: [PATCH] bootloader: extlinux: Add extlinux-bootloader-gpt Mathieu Othacehe
2017-06-12 20:23   ` [bug#26339] " Ludovic Courtès
2017-06-13 17:52     ` Mathieu Othacehe
2017-06-14  7:37       ` Ludovic Courtès
2017-06-13 14:34   ` Danny Milosavljevic
2017-05-18 10:26 ` bug#26339: [PATCH] tests: Add syslinux gpt test Mathieu Othacehe
2017-06-12 20:29   ` [bug#26339] " Ludovic Courtès
2017-06-19 16:55     ` Mathieu Othacehe
2017-06-20 20:13       ` Ludovic Courtès
2017-06-21  8:05         ` Mathieu Othacehe
2017-05-21 13:57 ` bug#26339: [PATCH] scripts: system: Handle unspecified bootloader package and installer Mathieu Othacehe
2017-06-12 20:32   ` [bug#26339] " Ludovic Courtès
2017-06-10  8:53 ` bug#26339: [PATCH] bootloader: Rename boot-name to bootloader-name Mathieu Othacehe
2017-06-10 14:26   ` Ludovic Courtès
2017-06-10 16:33     ` Mathieu Othacehe
2017-06-11  8:42     ` Mathieu Othacehe
2017-06-11  9:54       ` bug#26339: "extlinux", "extlinux" gpt, bootloader-configuration without package nor installer Danny Milosavljevic
2017-06-11 10:13         ` Danny Milosavljevic
2017-06-12  9:58         ` [bug#26339] " Mathieu Othacehe
2017-06-12 20:09           ` Ludovic Courtès
2017-06-12 20:20         ` Ludovic Courtès
2017-06-13  5:07           ` Danny Milosavljevic
2017-10-04 14:55             ` Ludovic Courtès
2017-10-04 19:56               ` Mathieu Othacehe
2017-10-13 14:08 ` bug#26339: closing bootloader serie Mathieu Othacehe
2017-10-13 15:31   ` [bug#26339] " Ludovic Courtès
2017-10-26  9:43     ` Mathieu Othacehe
2017-10-26 17:14       ` Ludovic Courtès
2017-10-26 17:33         ` Mathieu Othacehe
2017-10-26 22:20           ` Ludovic Courtès
2017-10-27  7:52             ` bug#26339: " Mathieu Othacehe
2017-10-29 15:47               ` Ludovic Courtès
2017-11-09 10:47                 ` GuixSD on armhf Mathieu Othacehe
2017-11-10 23:39                   ` Chris Marusich
2017-11-11 11:35                   ` Ludovic Courtès

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=87lgpzwoxj.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=26339@debbugs.gnu.org \
    --cc=m.othacehe@gmail.com \
    /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.