[PATCH 0/3] Bootloader localization

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Miguel
Owner
unassigned
Submitted by
Miguel
Severity
normal
M
M
Miguel wrote on 23 Apr 2019 15:17
(name . Guix-devel)(address . guix-patches@gnu.org)
20190423151702.05258473@gmail.com
Hello Guix!

As a Grub translator, I've been hacking a little bit in order to
provide locale information to Grub. I use Guix in a daily basis, as my
main computer operating system, and I this is a key step in order to
provide a better experience to the all kind of users, who may do not
know other languages than their native one.

My current idea, implemented in the following patches, is something
along these lines:
1. Store locale information into boot-parameters file. This patch
contains a quite silly test that requires wiser review.
2. Provide this information to the bootloader at the configuration
time. This, ideally, should provided at installation time too, but
I'm stuck seeing my first messages in english when grub asks for the
whole-disk encryption passphrase as I don't know how to create a
working core.img yet.
3. Add a snippet to the generated grub.cfg file with the language
information. Some configurations, as /boot in a separate partition,
does not work with this patch, but take it as a proof of concept.

Lacking points:
1. No support for other bootloaders yet. I don't know any of them too
much, but I'm unaware of their localization support.
2. Grub installation process is not transactional enough. I have some
ideas for that, to be discussed in another thread, although one key
point is tightly related with this topic: /boot/grub/locale
generation. Having this folder as a derivation would make explicit
the dependency, but I have to work more on this and I'm open to any
ideas.

WDYT?

Best regards,
Miguel
M
M
Miguel wrote on 23 Apr 2019 15:26
[PATCH 1/3] system: Add locale to boot-parameters.
(address . 35394@debbugs.gnu.org)
20190423152620.2b4fa56b@gmail.com
system: Add locale to boot-parameters.

* gnu/system.scm (<boot-parameters>): New locale field.
(boot-parameters-locale): New accessor.
(read-boot-parameters): Read locale field.
(operating-system-boot-parameters): Add locale to boot-parameters form.
(opeating-system-boot-parameters-file): Add locale to file-like object.
* tests/boot-parameters.scm: New test file.
* Makefile.am (SCM_TESTS): Add tests/boot-parameters.scm.
---
Makefile.am | 1 +
gnu/system.scm | 19 +++-
tests/boot-parameters.scm | 232 ++++++++++++++++++++++++++++++++++++++
3 files changed, 248 insertions(+), 4 deletions(-)
M
M
Miguel wrote on 23 Apr 2019 15:26
[PATCH 2/3] system: Provide locale information to the bootloader.
(address . 35394@debbugs.gnu.org)
20190423152628.53387a9b@gmail.com
system: Provide locale information to the bootloader.

* gnu/bootloader/depthcharge.scm (depthcharge-configuration-file): Add
locale keyword.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise.
* gnu/bootloader/grub.scm (grub-configuration-file): Likewise.
* gnu/system.scm (operating-system-bootcfg): Provide locale information
to the bootloader.
* guix/system/script.scm (reinstall-bootloader): Use locale information
from boot-parameters.
---
gnu/bootloader/depthcharge.scm | 3 ++-
gnu/bootloader/extlinux.scm | 3 ++-
gnu/bootloader/grub.scm | 3 ++-
gnu/system.scm | 4 +++-
guix/scripts/system.scm | 4 +++-
5 files changed, 12 insertions(+), 5 deletions(-)
M
M
Miguel wrote on 23 Apr 2019 15:26
[PATCH 3/3] system: Use locale information in grub.cfg.
(address . 35394@debbugs.gnu.org)
20190423152635.12dbc536@gmail.com
system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (locale-config-entries): New procedure.
(grub-configuration-file): Use locale-config-entries.
---
gnu/bootloader/grub.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
From 762b00327be7a21ac3e04b10610666b0d323104b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
<rosen644835@gmail.com>
Date: Tue, 23 Apr 2019 15:03:58 +0200
Subject: [PATCH 3/3] system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (locale-config-entries): New procedure.
(grub-configuration-file): Use locale-config-entries.
---
gnu/bootloader/grub.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)

Toggle diff (78 lines)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 446f90157c..81c4e31e28 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,6 +29,7 @@
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
+ #:use-module (gnu system locale)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
@@ -216,6 +218,36 @@ fi~%"
#$(theme-colors grub-theme-color-normal)
#$(theme-colors grub-theme-color-highlight))))
+(define* (locale-config-entries config store-device store-mount-point
+ #:key locale port)
+ "Return a gexp that writes to PORT (a port-valued gexp) the
+'grub.cfg' part concerned with locale configuration."
+ ;; FIXME: /boot in a separate partition is not suported. The prefix must
+ ;; be removed in order to make it work. GRUB EFI installation contains an
+ ;; usable /boot/efi/grub/locale/ folder too, but it is not used, for the
+ ;; same reason.
+ (define grub-locale-dir "/boot/grub/locale")
+ (define (grub-lang-id)
+ (let ((definition (locale-name->definition locale)))
+ (locale-definition-source definition)))
+ (define (grub-locale-file)
+ (string-append grub-locale-dir "/" (grub-lang-id) ".mo"))
+
+ (and locale
+ #~(format #$port "# Configure GRUB with the selected locale.
+
+# Set the root for the locale file
+~a
+
+if [ -d ~a ]; then
+ set locale_dir=~a
+ set lang=~a
+fi~%"
+ #$(grub-root-search store-device (grub-locale-file))
+ #$grub-locale-dir
+ #$grub-locale-dir
+ #$(grub-lang-id))))
+
;;;
;;; Configuration file.
@@ -364,6 +396,10 @@ entries corresponding to old generations of the system."
terminal_input at_keyboard
insmod keylayouts
keymap ~a~%" keymap)))))
+ (define locale-config
+ (locale-config-entries config (menu-entry-device (first all-entries))
+ (menu-entry-device-mount-point (first all-entries))
+ #:locale locale #:port #~port))
(define builder
#~(call-with-output-file #$output
@@ -374,6 +410,7 @@ keymap ~a~%" keymap)))))
")
#$sugar
#$keyboard-layout-config
+ #$locale-config
(format port "
set default=~a
set timeout=~a~%"
--
2.21.0
M
M
Miguel wrote on 26 Apr 2019 12:50
[PATCH 3/4] gnu: grub: Add locale output for bootloading.
(address . 35394@debbugs.gnu.org)
20190426125041.4bd524e0@gmail.com
gnu: grub: Add locale output for bootloading.

* gnu/packages/bootloaders.scm (grub): Add needed modules and new output
generated with new phase 'install-locale-folder.
---
gnu/packages/bootloaders.scm | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
From bc6e8168155ea017aece23b3a6f099de4a2d2d47 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
<rosen644835@gmail.com>
Date: Fri, 26 Apr 2019 11:56:43 +0200
Subject: [PATCH 3/4] gnu: grub: Add locale output for bootloading.

* gnu/packages/bootloaders.scm (grub): Add needed modules and new output
generated with new phase 'install-locale-folder.
---
gnu/packages/bootloaders.scm | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)

Toggle diff (67 lines)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index b4eabaea48..e3baff267d 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -94,7 +94,10 @@
"grub-efi-fat-serial-number.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
+ `(#:modules ((ice-9 ftw)
+ (guix build utils)
+ (guix build gnu-build-system))
+ #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "grub-core/Makefile.in"
@@ -127,7 +130,30 @@
(substitute* "Makefile.in"
(("grub_cmd_date grub_cmd_set_date grub_cmd_sleep")
"grub_cmd_date grub_cmd_sleep"))
- #t)))
+ #t))
+ (add-after 'install 'install-locale-folder
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; XXX: Better checks are needed here
+ (define (lang? file)
+ (not (or (string=? file ".") (string=? file ".."))))
+ (define (make-lang-installer to)
+ (lambda (in-file stat flag)
+ (if (eq? flag 'regular)
+ (copy-file in-file to)
+ #t)))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (locale (string-append out "/share/locale"))
+ (langs (scandir locale-dir lang?))
+ (locale-out (assoc-ref outputs "locale")))
+ (mkdir-p locale-out)
+ (for-each (lambda (lang)
+ (let ((from (string-append locale "/" lang))
+ (to (string-append out-path "/"
+ lang ".mo")))
+ (ftw from (make-lang-installer to))))
+ langs)
+ #t))))
;; Disable tests on ARM and AARCH64 platforms.
#:tests? ,(not (any (cute string-prefix? <> (or (%current-target-system)
(%current-system)))
@@ -183,6 +209,7 @@
("parted" ,parted)
("qemu" ,qemu-minimal-2.10)
("xorriso" ,xorriso)))
+ (outputs '("out" "locale"))
(home-page "https://www.gnu.org/software/grub/")
(synopsis "GRand Unified Boot loader")
(description
@@ -249,8 +276,6 @@ menu to select one of the installed operating systems.")
,@(package-inputs grub-efi)))
(arguments
(substitute-keyword-arguments (package-arguments grub-efi)
- ((#:modules modules `((guix build utils) (guix build gnu-build-system)))
- `((ice-9 ftw) ,@modules))
((#:phases phases)
`(modify-phases ,phases
(add-after 'install 'install-non-efi
--
2.21.0
M
M
Miguel wrote on 26 Apr 2019 12:51
[PATCH 4/4] system: Use locale information in grub.cfg.
(address . 35394@debbugs.gnu.org)
20190426125123.22f810f4@gmail.com
system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (module-declaration): Add (gnu system locale).
(locale-config-entries): New procedure.
(grub-configuration-file): Use locale-config-entries.
---
gnu/bootloader/grub.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
From 216f818bb27d3c491681c4d67e483279c3065b2f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
<rosen644835@gmail.com>
Date: Fri, 26 Apr 2019 11:58:43 +0200
Subject: [PATCH 4/4] system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (module-declaration): Add (gnu system locale).
(locale-config-entries): New procedure.
(grub-configuration-file): Use locale-config-entries.
---
gnu/bootloader/grub.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (69 lines)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 446f90157c..92c33063c3 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,6 +29,7 @@
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
+ #:use-module (gnu system locale)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
@@ -216,6 +218,27 @@ fi~%"
#$(theme-colors grub-theme-color-normal)
#$(theme-colors grub-theme-color-highlight))))
+(define* (locale-config-entries config store-mount-point #:key locale port)
+ "Return a gexp that writes to PORT (a port-valued gexp) the
+'grub.cfg' part concerned with locale configuration."
+ (define grub (bootloader-package
+ (bootloader-configuration-bootloader config)))
+ (define (locale-dir)
+ #~(let ((dir #$grub:locale))
+ dir))
+ (define (lang-id)
+ (let ((definition (locale-name->definition locale)))
+ (locale-definition-source definition)))
+
+ (and locale
+ (member "locale" (package-outputs grub))
+ #~(format #$port "
+# Configure GRUB with the selected locale.
+set locale_dir=~a
+set lang=~a~%"
+ #$(strip-mount-point store-mount-point (locale-dir))
+ #$(lang-id))))
+
;;;
;;; Configuration file.
@@ -364,6 +387,10 @@ entries corresponding to old generations of the system."
terminal_input at_keyboard
insmod keylayouts
keymap ~a~%" keymap)))))
+ (define locale-config
+ (locale-config-entries config
+ (menu-entry-device-mount-point (first all-entries))
+ #:locale locale #:port #~port))
(define builder
#~(call-with-output-file #$output
@@ -374,6 +401,7 @@ keymap ~a~%" keymap)))))
")
#$sugar
#$keyboard-layout-config
+ #$locale-config
(format port "
set default=~a
set timeout=~a~%"
--
2.21.0
M
M
Miguel wrote on 26 Apr 2019 12:59
Bootloader localization
(address . 35394@debbugs.gnu.org)(address . guix-devel@gnu.org)
20190426125913.3d8b0ab4@gmail.com
Hi everybody!

I've been working on these patches and I've been able to generate a
derivation with the format expected by Grub during bootloading, use it
in the grub.cfg file. I removed the test for the folder inside the
configuration file and added a check for the "locale" output during
the file generation. Maybe it is not quite elegant, but I'm open to
ideas. Now there are 4 patches instead of 3.

What do you think?

Best regards,
Miguel

PS: I CC'ed the mailing list too looking for other ideas.

El Tue, 23 Apr 2019 15:17:02 +0200
Miguel <rosen644835@gmail.com> escribió:
Toggle quote (35 lines)
> Hello Guix!
>
> As a Grub translator, I've been hacking a little bit in order to
> provide locale information to Grub. I use Guix in a daily basis, as my
> main computer operating system, and I this is a key step in order to
> provide a better experience to the all kind of users, who may do not
> know other languages than their native one.
>
> My current idea, implemented in the following patches, is something
> along these lines:
> 1. Store locale information into boot-parameters file. This patch
> contains a quite silly test that requires wiser review.
> 2. Provide this information to the bootloader at the configuration
> time. This, ideally, should provided at installation time too, but
> I'm stuck seeing my first messages in english when grub asks for the
> whole-disk encryption passphrase as I don't know how to create a
> working core.img yet.
> 3. Add a snippet to the generated grub.cfg file with the language
> information. Some configurations, as /boot in a separate partition,
> does not work with this patch, but take it as a proof of concept.
>
> Lacking points:
> 1. No support for other bootloaders yet. I don't know any of them
> too much, but I'm unaware of their localization support.
> 2. Grub installation process is not transactional enough. I have
> some ideas for that, to be discussed in another thread, although one
> key point is tightly related with this topic: /boot/grub/locale
> generation. Having this folder as a derivation would make explicit
> the dependency, but I have to work more on this and I'm open to any
> ideas.
>
> WDYT?
>
> Best regards,
> Miguel
L
L
Ludovic Courtès wrote on 29 Apr 2019 09:56
(name . Miguel)(address . rosen644835@gmail.com)(address . 35394@debbugs.gnu.org)
87tvehi6s6.fsf@gnu.org
Hi Miguel,

Miguel <rosen644835@gmail.com> skribis:

Toggle quote (6 lines)
> As a Grub translator, I've been hacking a little bit in order to
> provide locale information to Grub. I use Guix in a daily basis, as my
> main computer operating system, and I this is a key step in order to
> provide a better experience to the all kind of users, who may do not
> know other languages than their native one.

Thanks a lot for this work. FWIW, I’m holding off review and
integration after 1.0, but I’m happy if someone else reviews :-), and
I’ll be really happy to see it in master once 1.0 is out.

Ludo’.
M
M
Miguel wrote on 3 May 2019 14:27
Re: [PATCH 4/4] system: Use locale information in grub.cfg.
(address . 35394@debbugs.gnu.org)
20190503142741.10918dc2@gmail.com
This patch fixes the module uses.

---
system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (module-declaration): Add dependencies.
(locale-config-entries): New procedure.
(grub-configuration-file): Use locale-config-entries.
---
gnu/bootloader/grub.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
From d8cd9d98670570e0a29892c8988d5b84b23662d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
<rosen644835@gmail.com>
Date: Fri, 26 Apr 2019 11:58:43 +0200
Subject: [PATCH 4/4] system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (module-declaration): Add dependencies.
(locale-config-entries): New procedure.
(grub-configuration-file): Use locale-config-entries.
---
gnu/bootloader/grub.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (77 lines)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index 446f90157c..13f4e57414 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +22,7 @@
(define-module (gnu bootloader grub)
#:use-module (guix records)
+ #:use-module (guix packages)
#:use-module ((guix utils) #:select (%current-system))
#:use-module (guix gexp)
#:use-module (gnu artwork)
@@ -28,6 +30,7 @@
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
+ #:use-module (gnu system locale)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
@@ -216,6 +219,27 @@ fi~%"
#$(theme-colors grub-theme-color-normal)
#$(theme-colors grub-theme-color-highlight))))
+(define* (locale-config-entries config store-mount-point #:key locale port)
+ "Return a gexp that writes to PORT (a port-valued gexp) the
+'grub.cfg' part concerned with locale configuration."
+ (define grub (bootloader-package
+ (bootloader-configuration-bootloader config)))
+ (define (locale-dir)
+ #~(let ((dir #$grub:locale))
+ dir))
+ (define (lang-id)
+ (let ((definition (locale-name->definition locale)))
+ (locale-definition-source definition)))
+
+ (and locale
+ (member "locale" (package-outputs grub))
+ #~(format #$port "
+# Configure GRUB with the selected locale.
+set locale_dir=~a
+set lang=~a~%"
+ #$(strip-mount-point store-mount-point (locale-dir))
+ #$(lang-id))))
+
;;;
;;; Configuration file.
@@ -364,6 +388,10 @@ entries corresponding to old generations of the system."
terminal_input at_keyboard
insmod keylayouts
keymap ~a~%" keymap)))))
+ (define locale-config
+ (locale-config-entries config
+ (menu-entry-device-mount-point (first all-entries))
+ #:locale locale #:port #~port))
(define builder
#~(call-with-output-file #$output
@@ -374,6 +402,7 @@ keymap ~a~%" keymap)))))
")
#$sugar
#$keyboard-layout-config
+ #$locale-config
(format port "
set default=~a
set timeout=~a~%"
--
2.21.0
M
M
Miguel wrote on 3 May 2019 14:27
Re: [PATCH 3/4] gnu: grub: Add locale output for bootloading.
(address . 35394@debbugs.gnu.org)
20190503142712.5604f83f@gmail.com
Last patches contain a couple of problems, unbound variables are fixed
in the attached patch. Commit message has been reworded.

-----
gnu: grub: Add locale output.

* gnu/packages/bootloaders.scm (grub): Add new phase 'install-locale-folder
to generate new output used for bootloader localization.
---
gnu/packages/bootloaders.scm | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)
From d8462c2b980eb8fc5eff3d97292bffea63a89ea9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
<rosen644835@gmail.com>
Date: Fri, 26 Apr 2019 11:56:43 +0200
Subject: [PATCH 3/4] gnu: grub: Add locale output.

* gnu/packages/bootloaders.scm (grub): Add new phase 'install-locale-folder
to generate new output used for bootloader localization.
---
gnu/packages/bootloaders.scm | 33 +++++++++++++++++++++++++++++----
1 file changed, 29 insertions(+), 4 deletions(-)

Toggle diff (67 lines)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 6e6e69ff3b..71411ca954 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -94,7 +94,10 @@
"grub-efi-fat-serial-number.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:phases (modify-phases %standard-phases
+ `(#:modules ((ice-9 ftw)
+ (guix build utils)
+ (guix build gnu-build-system))
+ #:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-stuff
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "grub-core/Makefile.in"
@@ -127,7 +130,30 @@
(substitute* "Makefile.in"
(("grub_cmd_date grub_cmd_set_date grub_cmd_sleep")
"grub_cmd_date grub_cmd_sleep"))
- #t)))
+ #t))
+ (add-after 'install 'install-locale-folder
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; XXX: Better checks are needed here
+ (define (lang? file)
+ (not (or (string=? file ".") (string=? file ".."))))
+ (define (make-lang-installer to)
+ (lambda (in-file stat flag)
+ (if (eq? flag 'regular)
+ (copy-file in-file to)
+ #t)))
+
+ (let* ((out (assoc-ref outputs "out"))
+ (locale (string-append out "/share/locale"))
+ (langs (scandir locale lang?))
+ (locale-out (assoc-ref outputs "locale")))
+ (mkdir-p locale-out)
+ (for-each (lambda (lang)
+ (let ((from (string-append locale "/" lang))
+ (to (string-append locale-out "/"
+ lang ".mo")))
+ (ftw from (make-lang-installer to))))
+ langs)
+ #t))))
;; Disable tests on ARM and AARCH64 platforms.
#:tests? ,(not (any (cute string-prefix? <> (or (%current-target-system)
(%current-system)))
@@ -183,6 +209,7 @@
("parted" ,parted)
("qemu" ,qemu-minimal-2.10)
("xorriso" ,xorriso)))
+ (outputs '("out" "locale"))
(home-page "https://www.gnu.org/software/grub/")
(synopsis "GRand Unified Boot loader")
(description
@@ -249,8 +276,6 @@ menu to select one of the installed operating systems.")
,@(package-inputs grub-efi)))
(arguments
(substitute-keyword-arguments (package-arguments grub-efi)
- ((#:modules modules `((guix build utils) (guix build gnu-build-system)))
- `((ice-9 ftw) ,@modules))
((#:phases phases)
`(modify-phases ,phases
(add-after 'install 'install-non-efi
--
2.21.0
M
M
Miguel Arruga Vivas wrote on 21 Oct 2019 12:40
Re: [bug#35394] [PATCH 0/3] Bootloader localization
(address . 35394@debbugs.gnu.org)
20191021124035.531bed75@gmail.com
Hi Ludo’,

El Mon, 29 Apr 2019 09:56:25 +0200
Ludovic Courtès <ludo@gnu.org> escribió:
Toggle quote (4 lines)
> Hi Miguel,
>
> Thanks a lot for this work.

I've been quite silent about this because I wanted to solve the issue
with .mo files in a better way, but my current understanding is that
the best way to go with that is to make grub installation
(store-)reproducible and removing /boot altogether, so I'll open
a different thread on the mailing list about that. For the moment,
the patches following this mail rely on the installation
of /boot/grub/locale, usually generated by grub-install. The generated
grub.cfg scriptlet enables the use case for /boot in a different
partition found in many other distributions (which breaks the boot
when /gnu/store is encrypted in a different partition, I'm going to fill
a bug for that too).

I've tested them on the following machine configurations, on top of
commit 5f760515c8:
- grub-efi on x86_64-gnu-linux:
* Encrypted partition for the whole disk.
* Separate "/boot" (ext4) and "/" (ext4 and btrfs)
partitions.
- grub-pc on x86_64-gnu-linux:
* Same as grub-efi, plus
* Encrypted and different "/boot" and "/" partitions,
typing manually in the console
"cryptomount (hdX,msdosX)" with the "/" partition to
allow grub loading the kernel image.


Toggle quote (3 lines)
> FWIW, I’m holding off review and integration after 1.0, but I’m happy
> if someone else reviews :-),

I'm CCing the list to bring some attention onto it, I think it's
on-topic enough to worth a try. The hardest part for review is the new
test case, because I wanted to be 100% sure I didn't break anything.
As you can see, the tested code didn't need almost any change, although
I've made some changes on the test case from the last set of patches.

Toggle quote (2 lines)
> and I’ll be really happy to see it in master once 1.0 is out.

I wish we'll see it in master soon.

Best regards,
Miguel
M
M
Miguel Arruga Vivas wrote on 21 Oct 2019 12:46
Re: [bug#35394] [PATCH 1/3] system: Add locale to boot-parameters.
(address . 35394@debbugs.gnu.org)
20191021124614.58f0b232@gmail.com
* gnu/system.scm (define-module)[export]: Add boot-parameters-locale.
(<boot-parameters>)[locale]: New field.
[boot-parameters-locale]: New accessor.
(read-boot-parameters): Read locale field.
(operating-system-boot-parameters): Provide operating-system locale to
boot-parameters record.
(opeating-system-boot-parameters-file): Likewise.
* Makefile.am (SCM_TESTS): Add tests/boot-parameters.scm.
* tests/boot-parameters.scm: New test file.
---
Makefile.am | 1 +
gnu/system.scm | 19 ++-
tests/boot-parameters.scm | 250 ++++++++++++++++++++++++++++++++++++++
3 files changed, 266 insertions(+), 4 deletions(-)
create mode 100644 tests/boot-parameters.scm
M
M
Miguel Arruga Vivas wrote on 21 Oct 2019 12:46
Re: [bug#35394] [PATCH 2/3] system: Provide locale information to the bootloader.
(address . 35394@debbugs.gnu.org)
20191021124624.6c7c470a@gmail.com
* gnu/bootloader/depthcharge.scm (depthcharge-configuration-file): Add
locale keyword.
* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Likewise.
* gnu/bootloader/grub.scm (grub-configuration-file): Likewise.
* gnu/system.scm (operating-system-bootcfg): Provide locale information
to the bootloader.
* guix/system/script.scm (reinstall-bootloader): Use locale information
from boot-parameters.
---
gnu/bootloader/depthcharge.scm | 3 ++-
gnu/bootloader/extlinux.scm | 3 ++-
gnu/bootloader/grub.scm | 3 ++-
gnu/system.scm | 4 +++-
guix/scripts/system.scm | 4 +++-
5 files changed, 12 insertions(+), 5 deletions(-)
M
M
Miguel Arruga Vivas wrote on 21 Oct 2019 12:46
Re: [bug#35394] [PATCH 3/3] system: Use locale information in grub.cfg.
(address . 35394@debbugs.gnu.org)
20191021124632.7d050b48@gmail.com
* gnu/bootloader/grub.scm (define-module): Add new dependency.
(grub-configuration-file)[locale-config]: New variable with generated
locale configuration when locale parameter has been provided.
[builder]: Add locale-config.
---
gnu/bootloader/grub.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
From c5f4f7d0d3564731dc29f563b70a05ab83eec061 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
<rosen644835@gmail.com>
Date: Sat, 19 Oct 2019 13:28:48 +0200
Subject: [PATCH 3/3] system: Use locale information in grub.cfg.

* gnu/bootloader/grub.scm (define-module): Add new dependency.
(grub-configuration-file)[locale-config]: New variable with generated
locale configuration when locale parameter has been provided.
[builder]: Add locale-config.
---
gnu/bootloader/grub.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (51 lines)
diff --git a/gnu/bootloader/grub.scm b/gnu/bootloader/grub.scm
index a0d068d1bd..8c3bab6fa7 100644
--- a/gnu/bootloader/grub.scm
+++ b/gnu/bootloader/grub.scm
@@ -3,6 +3,7 @@
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
+;;; Copyright © 2019 Miguel Ángel Arruga Vivas <rosen644835@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -28,6 +29,7 @@
#:use-module (gnu system uuid)
#:use-module (gnu system file-systems)
#:use-module (gnu system keyboard)
+ #:use-module (gnu system locale)
#:autoload (gnu packages bootloaders) (grub)
#:autoload (gnu packages gtk) (guile-cairo guile-rsvg)
#:autoload (gnu packages xorg) (xkeyboard-config)
@@ -353,6 +355,20 @@ entries corresponding to old generations of the system."
#:system system
#:port #~port))
+ (define locale-config
+ #~(let ((locale #$(and locale
+ (locale-definition-source
+ (locale-name->definition locale)))))
+ (when locale
+ (format port "\
+# Localization configuration.
+if search --file --set boot_partition /grub/grub.cfg; then
+ set locale_dir=(${boot_partition})/grub/locale
+else
+ set locale_dir=/boot/grub/locale
+fi
+set lang=~a~%" locale))))
+
(define keyboard-layout-config
(let ((layout (bootloader-configuration-keyboard-layout config))
(grub (bootloader-package
@@ -372,6 +388,7 @@ keymap ~a~%" keymap)))))
# will be lost upon reconfiguration.
")
#$sugar
+ #$locale-config
#$keyboard-layout-config
(format port "
set default=~a
--
2.23.0
M
M
Miguel Ángel Arruga Vivas wrote on 11 Oct 2020 16:18
Re: [bug#35394] [PATCH 1/1 v4] Grub i18n
(address . 35394@debbugs.gnu.org)
87ft6k7sn2.fsf@gmail.com
Hi,

This is the latest version of the patch, that could be applied to
master.

They have been reduced to one patch, and as on previous versions of this
series of patches only the grub messages are translated, not the menu
entries generated by guix (yet).

WDYT?

Best regards,
Miguel
--
L
L
Ludovic Courtès wrote on 17 Oct 2020 18:32
(name . Miguel Ángel Arruga Vivas)(address . rosen644835@gmail.com)(address . 35394@debbugs.gnu.org)
87362c6cew.fsf@gnu.org
Hi Miguel,

Miguel Ángel Arruga Vivas <rosen644835@gmail.com> skribis:

Toggle quote (7 lines)
> This is the latest version of the patch, that could be applied to
> master.
>
> They have been reduced to one patch, and as on previous versions of this
> series of patches only the grub messages are translated, not the menu
> entries generated by guix (yet).

Sounds good. I think the way you split patches in v3 was fine too (the
added test was also a nice bonus), so I actually have a slight
preference for v3.

Toggle quote (23 lines)
>>From 885a7c167faafa295b0f3edaae1ee456eacf1e63 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
> <rosen644835@gmail.com>
> Date: Sat, 2 Nov 2019 18:18:45 +0100
> Subject: [PATCH] system: Use locale information in grub.cfg.
>
> * gnu/bootloader/grub.scm (define-module): Add new dependency.
> (grub-configuration-file): Add locale keyword.
> (grub-configuration-file)[locale-config]: New variable with generated
> locale configuration when locale parameter has been provided.
> [builder]: Add locale-config.
> * gnu/machine/ssh.scm (roll-back-managed-host): Use locale information
> from boot-parameters.
> * gnu/system.scm (define-module)[export]: Add boot-parameters-locale.
> (<boot-parameters>)[locale]: New field.
> [boot-parameters-locale]: New accessor.
> (read-boot-parameters): Read locale field.
> (operating-system-boot-parameters): Provide operating-system locale to
> oboot-parameters record.
> (operating-system-boot-parameters-file): Likewise.
> (operating-system-bootcfg): Provide locale information to the bootloader.
> * guix/system/script.scm (reinstall-bootloader): Likewise.

This (and v3) LGTM! We’ll have to do another round of testing before
1.2.

¡Gracias!

Ludo’.
M
M
Miguel Ángel Arruga Vivas wrote on 18 Oct 2020 17:09
Re: [bug#35394] [PATCH 4/4 v4] Grub i18n
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 35394@debbugs.gnu.org)
87v9f7po4x.fsf_-_@gmail.com
Hi Ludo,

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (7 lines)
> Sounds good. I think the way you split patches in v3 was fine too (the
> added test was also a nice bonus), so I actually have a slight
> preference for v3.
> (...)
> This (and v3) LGTM! We’ll have to do another round of testing before
> 1.2.

I plan to push them today. The code is the same as v4 (as it contained
the code for roll-back in ssh.scm) plus the test from v3, with only
cosmetic changes to avoid touching other lines and an update for
multiboot-modules in the test. Thank you very much for your review.

Nonetheless, I have a nice last minute addition for this to keep this
open for a bit more. :-)

It brings the whole glibc-locales to the grub and extlinux configuration
builders, and changes again boot-parameters. It would be optimal to
create a minimal locale with the desired locale, as glibc-utf8-locales
doesn't work with my to-go test target (es_ES.utf8) because setlocale
raises an exception.

I have in my TODO list to extract translate-label somewhere else, even
though I'm not sure where could it fit, and to sanitize some inputs to
ensure the correct generation. The latter should be ready this week,
the first depends on finding (or creating) the right place.

WDYT?

Happy hacking!
Miguel
M
M
Miguel Ángel Arruga Vivas wrote on 18 Oct 2020 17:43
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 35394@debbugs.gnu.org)
87o8kzpmjv.fsf@gmail.com
Sorry, please disregard the last patch, it was a non-working version. I
tested this one with Grub and the boot-parameters test (for the label
modification).

I leave the open points for reference.

Miguel Ángel Arruga Vivas <rosen644835@gmail.com> writes:
Toggle quote (12 lines)
> (...)
> It brings the whole glibc-locales to the grub and extlinux configuration
> builders, and changes again boot-parameters. It would be optimal to
> create a minimal locale with the desired locale, as glibc-utf8-locales
> doesn't work with my to-go test target (es_ES.utf8) because setlocale
> raises an exception.
>
> I have in my TODO list to extract translate-label somewhere else, even
> though I'm not sure where could it fit, and to sanitize some inputs to
> ensure the correct generation. The latter should be ready this week,
> the first depends on finding (or creating) the right place.

Happy hacking!
Miguel
L
L
Ludovic Courtès wrote on 19 Oct 2020 10:50
(name . Miguel Ángel Arruga Vivas)(address . rosen644835@gmail.com)(address . 35394@debbugs.gnu.org)
87o8ky1tx6.fsf@gnu.org
Hi!

Miguel Ángel Arruga Vivas <rosen644835@gmail.com> skribis:

Toggle quote (28 lines)
> From e9f3c255c13abc14e1f0decf5460b7a2f9a2d162 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Miguel=20=C3=81ngel=20Arruga=20Vivas?=
> <rosen644835@gmail.com>
> Date: Sat, 17 Oct 2020 21:27:51 +0200
> Subject: [PATCH] system: nls for boot labels.
>
> * gnu/bootloader/extlinux.scm (extlinux-configuration-file): Add
> keyword locale.
> [translate-label]: New function that formats the label after
> translation.
> [menu-entry->gexp]: Use translate-label.
> [init-gettext]: Init gettext with the language provided through the
> configuration.
> [builder]: Use init-gettext, define G_ and translate strings.
> * gnu/bootloader/grub.scm (eye-candy): Translate string.
> (grub-configuration-file)[translate-label]: New function.
> [menu-entry->gexp]: Use translate-label.
> [init-gettext]: New g-exp variable.
> [locale-config]: Translate string.
> [builder]: Use init-gettext, define G_ and translate strings.
> * gnu/system.scm (kernel->boot-label): Modify return type, and
> document it, to allow correct translation of the labels.
> * po/guix/POTFILES.in: Add gnu/bootloader/grub.scm.
> * tests/boot-parameters.scm (%default-label): Update to the new
> format.
> (%old-label): Renamed from old %default-label.
> (read old format): New test case.

[...]

Toggle quote (29 lines)
> (define* (extlinux-configuration-file config entries
> #:key
> + (locale #f)
> (system (%current-system))
> (old-entries '())
> #:allow-other-keys)
> @@ -38,8 +43,38 @@ corresponding to old generations of the system."
> (define all-entries
> (append entries (bootloader-configuration-menu-entries config)))
>
> + (define (translate-label label)
> + (match label
> + (('hurd name version)
> + ;; TRANSLATORS: The first parameter is the capitalized package name
> + ;; for the Hurd kernel, which uses the definite article in English.
> + ;; The second parameter contains the version string.
> + #~(format #f (G_ "GNU with the ~a ~a") package version))
> + (('linux name version)
> + ;; TRANSLATORS: The first parameter is the capitalized package name
> + ;; for Linux kernel, which doesn't use the definite article in
> + ;; English. The second parameter contains the version string.
> + #~(format #f (G_ "GNU with ~a ~a") package version))
> + (('unknown)
> + ;; TRANSLATORS: This is the label for an unknown system to be booted.
> + #~(G_ "GNU"))
> + ((? string? old-format)
> + ;; We cannot translate properly the old format.
> + old-format)))

It’s not good that we’re baking assumptions about the label here: the
user is free to choose the label they want in the ‘label’ field, and we
don’t want to replicate “GNU with the” etc. in each bootloader.

It’s also not great that we’re changing the boot parameters again as
this can make compatibility trickier down the road.

(Brainstorm…)

I would simply translate it on the client side by temporarily setting
LANGUAGE to the target locale. The downside is that this will not be
translated if the target locale is not supported by the host.

Alternately, we could have:

(define (formatted-i18n-string locale fmt . args)
(computed-file "formatted-i18n-string"
#~(begin
(textdomain …)
(setlocale …)
(call-with-output-file #$output
(lambda (port)
(format port …))))))

We would then need to adjust all bootloaders to read the label from that
file. If the user-supplied ‘label’ is a plain string, we’d wrap it in
(plain-file …) so that ‘label’ is always a file-like object.

WDYT?

Thanks,
Ludo’.
M
M
Miguel Ángel Arruga Vivas wrote on 19 Oct 2020 13:41
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 35394@debbugs.gnu.org)
878sc2phn3.fsf@gmail.com
Hi Ludo,

Thanks for your review and your ideas, I'll comment inline.

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (23 lines)
>> + (define (translate-label label)
>> + (match label
>> + (('hurd name version)
>> + ;; TRANSLATORS: The first parameter is the capitalized package name
>> + ;; for the Hurd kernel, which uses the definite article in English.
>> + ;; The second parameter contains the version string.
>> + #~(format #f (G_ "GNU with the ~a ~a") package version))
>> + (('linux name version)
>> + ;; TRANSLATORS: The first parameter is the capitalized package name
>> + ;; for Linux kernel, which doesn't use the definite article in
>> + ;; English. The second parameter contains the version string.
>> + #~(format #f (G_ "GNU with ~a ~a") package version))
>> + (('unknown)
>> + ;; TRANSLATORS: This is the label for an unknown system to be booted.
>> + #~(G_ "GNU"))
>> + ((? string? old-format)
>> + ;; We cannot translate properly the old format.
>> + old-format)))
>
> It’s not good that we’re baking assumptions about the label here: the
> user is free to choose the label they want in the ‘label’ field, and we
> don’t want to replicate “GNU with the” etc. in each bootloader.

I guess the main problem here was calling it 'old-format', as this is
the format that would be received for the labels provided by the user
too, I should have called it 'fixed-label' instead. I didn't though of
this at first so that was the name, but the user provided label works as
always: the installation image was the first example I checked, as it
does exactly that---that startled me a bit until I noticed, by the way.

Toggle quote (3 lines)
> It’s also not great that we’re changing the boot parameters again as
> this can make compatibility trickier down the road.

That was an important point of this design, and the reason why I created
the test in the first place: the tests try to cover all the
possibilities, the old format and the new one(s). :-)

Toggle quote (17 lines)
> (Brainstorm…)
>
> I would simply translate it on the client side by temporarily setting
> LANGUAGE to the target locale. The downside is that this will not be
> translated if the target locale is not supported by the host.
>
> Alternately, we could have:
>
> (define (formatted-i18n-string locale fmt . args)
> (computed-file "formatted-i18n-string"
> #~(begin
> (textdomain …)
> (setlocale …)
> (call-with-output-file #$output
> (lambda (port)
> (format port …))))))

I'd prefer this option, as it avoids triggering the translation on the
client side, and it could be used in other places too if needed. It
needs xgettext support and a tag (like F_ or L_) would be very concise,
and useful from my point of view. There are some other places
(e.g. gnu/machine/ssh.scm:395) which use string-append for user visible
strings[1]. They should be localized with a proper format, and
including the format call into the i18n call itself helps to ensure
that.

Toggle quote (4 lines)
> We would then need to adjust all bootloaders to read the label from that
> file. If the user-supplied ‘label’ is a plain string, we’d wrap it in
> (plain-file …) so that ‘label’ is always a file-like object.

I'll probably raise some questions about the design here and there, and
maybe open another thread for the point before, but as soon as I have
anything tangible, I'll send a patch. :-)

Happy hacking!
Miguel

L
L
Ludovic Courtès wrote on 19 Oct 2020 15:21
(name . Miguel Ángel Arruga Vivas)(address . rosen644835@gmail.com)(address . 35394@debbugs.gnu.org)
87lfg2z703.fsf@gnu.org
Hi,

Miguel Ángel Arruga Vivas <rosen644835@gmail.com> skribis:

Toggle quote (22 lines)
>> (Brainstorm…)
>>
>> I would simply translate it on the client side by temporarily setting
>> LANGUAGE to the target locale. The downside is that this will not be
>> translated if the target locale is not supported by the host.
>>
>> Alternately, we could have:
>>
>> (define (formatted-i18n-string locale fmt . args)
>> (computed-file "formatted-i18n-string"
>> #~(begin
>> (textdomain …)
>> (setlocale …)
>> (call-with-output-file #$output
>> (lambda (port)
>> (format port …))))))
>
> I'd prefer this option, as it avoids triggering the translation on the
> client side, and it could be used in other places too if needed. It
> needs xgettext support and a tag (like F_ or L_) would be very concise,
> and useful from my point of view.

That’s OK, we can do (as we did in other places) something like:

(define-syntax formatted-i18n-string
(syntax-rules (G_ N_)
((_ locale (G_ fmt) args ...)
(%formatted-i18n-string locale fmt args ...))
…))

That way, xgettext is happy.

Toggle quote (5 lines)
> There are some other places (e.g. gnu/machine/ssh.scm:395) which use
> string-append for user visible strings[1]. They should be localized
> with a proper format, and including the format call into the i18n call
> itself helps to ensure that.

Yup!

Toggle quote (8 lines)
>> We would then need to adjust all bootloaders to read the label from that
>> file. If the user-supplied ‘label’ is a plain string, we’d wrap it in
>> (plain-file …) so that ‘label’ is always a file-like object.
>
> I'll probably raise some questions about the design here and there, and
> maybe open another thread for the point before, but as soon as I have
> anything tangible, I'll send a patch. :-)

Sure!

We may end up delaying that post-release if there’s potential for
breakage. We’ll see.

Thanks!

Ludo’.
M
M
Miguel Ángel Arruga Vivas wrote on 19 Oct 2020 15:44
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 35394@debbugs.gnu.org)
87lfg2nxeb.fsf@gmail.com
Hi,

I take note about your comments, just one quick thing:

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (3 lines)
> We may end up delaying that post-release if there’s potential for
> breakage. We’ll see.

With the release coming this week I wouldn't push anything more of this
into this release unless it's the most expected feature, which it isn't
by far. I can test Grub and be really confident about not breaking
anything, but I don't almost any experience with the other bootloaders,
and neither lots of places nor time to test them.

Happy hacking!
Miguel
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEEiIeExBRZrMuD5+hMY0xuiXn6vsIFAl+NmCwACgkQY0xuiXn6
vsKp/Av/cvd5TBYPkCKZklTaUGUul2LGwKtXNy0fsOlPf+5np00Asw5fT7jdQz+b
dEgjnnasDc9zjxmYHHuPrRPbkIAtwOz9IWpZwfCt5tJL/KuDSRC+fYoB0E9LxteL
vLNqo/0nGvi/21V+pdDQQu3gj5Hl4ifjcSjEVi1MERzOM7Q1A2i0/gb94+8SmJJM
1BHxwTSP1Fz81Yn11z5oU6nKgQgZlulXgaH/iMrVeV7RRCk8dHfvZzSOe2Sydrpo
E0xGAffVPJwbipJ9yWEv082o03tmzfbFbP5deyen1OitSYWLFQvKa6T+Tll+IMLb
wZiUlgvlsmuQRGGPgEottWY/tJhmOQeFJmUdldVp13udzpN6upP+BwWchwNZNeQt
9B71tSFDUcCw9xmgtlBqhE4kq7X8m/wo3fb047XIECVqU7UxZvfRzopjHoN1c1J0
c+PYRn8S/LCQbaNE6LovhME7TwCO5ized/Hr3AOSkaY0194FMaRHPh9lkqNKPW6s
5VHXVRQN
=hMu+
-----END PGP SIGNATURE-----

L
L
Ludovic Courtès wrote on 20 Oct 2020 22:50
(name . Miguel Ángel Arruga Vivas)(address . rosen644835@gmail.com)(address . 35394@debbugs.gnu.org)
87zh4gbp15.fsf@gnu.org
Hola,

Miguel Ángel Arruga Vivas <rosen644835@gmail.com> skribis:

Toggle quote (10 lines)
> Ludovic Courtès <ludo@gnu.org> writes:
>> We may end up delaying that post-release if there’s potential for
>> breakage. We’ll see.
>
> With the release coming this week I wouldn't push anything more of this
> into this release unless it's the most expected feature, which it isn't
> by far. I can test Grub and be really confident about not breaking
> anything, but I don't almost any experience with the other bootloaders,
> and neither lots of places nor time to test them.

Sounds good, let’s take it post-release then.

Perhaps we should track it in a different issue and close this one?

Thanks!

Ludo’.
M
M
Miguel Ángel Arruga Vivas wrote on 20 Oct 2020 23:19
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 35394-done@debbugs.gnu.org)
87wnzkk33p.fsf@gmail.com
Salut!

Ludovic Courtès <ludo@gnu.org> writes:
Toggle quote (18 lines)
> Hola,
>
> Miguel Ángel Arruga Vivas <rosen644835@gmail.com> skribis:
>
>> Ludovic Courtès <ludo@gnu.org> writes:
>>> We may end up delaying that post-release if there’s potential for
>>> breakage. We’ll see.
>>
>> With the release coming this week I wouldn't push anything more of this
>> into this release unless it's the most expected feature, which it isn't
>> by far. I can test Grub and be really confident about not breaking
>> anything, but I don't almost any experience with the other bootloaders,
>> and neither lots of places nor time to test them.
>
> Sounds good, let’s take it post-release then.
>
> Perhaps we should track it in a different issue and close this one?

Done, probably tomorrow I'll open a new one with a good description and
send the patch there as soon as it's ready.

Toggle quote (2 lines)
> Thanks!

Thank you too, very much. :-)

Happy hacking!
Miguel
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEEiIeExBRZrMuD5+hMY0xuiXn6vsIFAl+PVEsACgkQY0xuiXn6
vsIJ3QwAg850KKYdGjDsqCxmqyqm/hhH+MPP4sOVnzcF25V/q27NyzYh4Q+akE+h
N4YaBo4SbQsl8tYJka8F+tnJpMoZrP1CPTELDbzvli2XtxL5ik9MDudviB3hRjtA
H5GdOY3lMG0U25SLQluPvpVjtZKPm2xcZn0caL4mf1qYhH+fE+i/oihl2U+VwA7v
wYMsQVANomWqpvBEvRNfy9cIHPH9asDQMUauRozjcBNr2K2prwYnQCGNE7G+6mcW
CAwoR7tMXcQ/vjs+RXZ67NMdgMTeuscRtSwC2rabTSYUZGrxgkINzOTYl21unJwX
6uKYXMdL33Hm4j85SSpRCEw0HXnBONihyeZys6ehKDP+0JxL08VxTAG+nYQbJFgB
ujcB/l2ontmvfJJkb9cvHXaykih1HRxW/iA9BVbxKni4qT69QOcVDOaRKvlArb/F
+yyeD2HVy7yxh+Oi0IE/Kt6hxY5F7tbbwd+V0J9OVnVlItm+jmmZzHojSesusDHE
rITUap5o
=4JF1
-----END PGP SIGNATURE-----

Closed
?