[PATCH 0/2] Update GRUB to 2.12

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Ludovic Courtès
Severity
normal
L
L
Ludovic Courtès wrote on 3 Jun 21:21 +0200
(address . guix-patches@gnu.org)
cover.1717434692.git.ludo@gnu.org
Hello Guix!

Following the discussion with Ada Stevenson¹ who reported that
the e2fsprogs upgrade to 1.47.0 broke system installation, here
is an upgrade of GRUB.

I tested it on x86_64-linux with:

./pre-inst-env guix build grub-efi{,32} grub-coreboot grub-hybrid grub{,-minimal}
./pre-inst-env guix build grub --target=aarch64-linux-gnu
./pre-inst-env guix build grub --target=i586-pc-gnu

and:

make check-system TESTS="installed-os encrypted-root-os"

Feedback welcome!

Thanks,
Ludo'.


Ludovic Courtès (2):
gnu: grub: Update to 2.12.
gnu: grub: Remove input labels and use gexps.

gnu/local.mk | 1 -
gnu/packages/bootloaders.scm | 535 +++++++++---------
.../grub-ignore-metadata-csum-seed.patch | 54 --
3 files changed, 268 insertions(+), 322 deletions(-)
delete mode 100644 gnu/packages/patches/grub-ignore-metadata-csum-seed.patch


base-commit: 2e53fa5346bf52f6d6d26e035bc905ebd410dabb
--
2.45.1
L
L
Ludovic Courtès wrote on 3 Jun 22:01 +0200
[PATCH 1/2] gnu: grub: Update to 2.12.
(address . 71348@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)
57843a086c81c4be2c540d623d46b0d2565958cc.1717434693.git.ludo@gnu.org
* gnu/packages/bootloaders.scm (grub): Update to 2.12.
[source](patches): Remove ‘grub-ignore-metadata-csum-seed.patch’.
(snippet): Create ‘grub-core/extra_deps.lst’. Replace “exit 99”
by “exit 77”.
(grub-coreboot): Update value of ‘XFAIL_TESTS’.
* gnu/packages/patches/grub-ignore-metadata-csum-seed.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Remove it.

Change-Id: Ia31b3b7e0a2e7de42d30229733e9c196fcd12fd9
---
gnu/local.mk | 1 -
gnu/packages/bootloaders.scm | 27 ++++++----
.../grub-ignore-metadata-csum-seed.patch | 54 -------------------
3 files changed, 16 insertions(+), 66 deletions(-)
delete mode 100644 gnu/packages/patches/grub-ignore-metadata-csum-seed.patch

Toggle diff (127 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 6934d5ccc77..eab949f0775 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1424,7 +1424,6 @@ dist_patch_DATA = \
%D%/packages/patches/groovy-add-exceptionutilsgenerator.patch \
%D%/packages/patches/grub-efi-fat-serial-number.patch \
%D%/packages/patches/grub-setup-root.patch \
- %D%/packages/patches/grub-ignore-metadata-csum-seed.patch \
%D%/packages/patches/guile-1.8-cpp-4.5.patch \
%D%/packages/patches/guile-2.2-skip-oom-test.patch \
%D%/packages/patches/guile-2.2-skip-so-test.patch \
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index f37344c25bb..4e932ee3288 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013-2019, 2021, 2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013-2019, 2021, 2023-2024 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
@@ -104,25 +104,28 @@ (define unifont
(define-public grub
(package
(name "grub")
- (version "2.06")
+ (version "2.12")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/grub/grub-" version ".tar.xz"))
(sha256
(base32
- "1qbycnxkx07arj9f2nlsi9kp0dyldspbv07ysdyd34qvz55a97mp"))
+ "1ahgzvvvwdxx7rl08pv5dyqlgp76jxz0q2cflxvsdsn4yy8p7jgk"))
(patches (search-patches
"grub-efi-fat-serial-number.patch"
- "grub-setup-root.patch"
- "grub-ignore-metadata-csum-seed.patch"))
+ "grub-setup-root.patch"))
(modules '((guix build utils)))
(snippet
- '(begin
- ;; Adjust QEMU invocation to not use a deprecated device
- ;; name that was removed in QEMU 6.0. Remove for >2.06.
- (substitute* "tests/ahci_test.in"
- (("ide-drive")
- "ide-hd"))))))
+ #~(begin
+ ;; Add file missing from the release tarball.
+ (call-with-output-file "grub-core/extra_deps.lst"
+ (lambda (port)
+ (display "depends bli part_gpt\n" port)))
+
+ ;; Use exit code 77, not 99, to tell Automake that a test
+ ;; is skipped.
+ (substitute* (find-files "tests" "\\.in$")
+ (("exit 99") "exit 77"))))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
@@ -348,8 +351,10 @@ (define-public grub-coreboot
"grub_script_return"
"grub_script_setparams"
"grub_cmd_date"
+ "grub_cmd_set_date"
"grub_cmd_sleep"
"grub_cmd_regexp"
+ "grub_cmd_test"
"grub_script_not"
"grub_cmd_echo"
"grub_script_expansion"
diff --git a/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch b/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch
deleted file mode 100644
index cd9b897aa65..00000000000
--- a/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-commit 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
-Author: Javier Martinez Canillas <javierm@redhat.com>
-Date: Fri Jun 11 21:36:16 2021 +0200
-
- fs/ext2: Ignore checksum seed incompat feature
-
- This incompat feature is used to denote that the filesystem stored its
- metadata checksum seed in the superblock. This is used to allow tune2fs
- changing the UUID on a mounted metdata_csum filesystem without having
- to rewrite all the disk metadata. However, the GRUB doesn't use the
- metadata checksum at all. So, it can just ignore this feature if it
- is enabled. This is consistent with the GRUB filesystem code in general
- which just does a best effort to access the filesystem's data.
-
- The checksum seed incompat feature has to be removed from the ignore
- list if the support for metadata checksum verification is added to the
- GRUB ext2 driver later.
-
- Suggested-by: Eric Sandeen <esandeen@redhat.com>
- Suggested-by: Lukas Czerner <lczerner@redhat.com>
- Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
- Reviewed-by: Lukas Czerner <lczerner@redhat.com>
- Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
-
-diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
-index e7dd78e66..4953a1591 100644
---- a/grub-core/fs/ext2.c
-+++ b/grub-core/fs/ext2.c
-@@ -103,6 +103,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
- #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080
- #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
- #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
-+#define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000
- #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000
-
- /* The set of back-incompatible features this driver DOES support. Add (OR)
-@@ -123,10 +124,15 @@ GRUB_MOD_LICENSE ("GPLv3+");
- * mmp: Not really back-incompatible - was added as such to
- * avoid multiple read-write mounts. Safe to ignore for this
- * RO driver.
-+ * checksum seed: Not really back-incompatible - was added to allow tools
-+ * such as tune2fs to change the UUID on a mounted metadata
-+ * checksummed filesystem. Safe to ignore for now since the
-+ * driver doesn't support checksum verification. However, it
-+ * has to be removed from this list if the support is added later.
- */
- #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
-- | EXT4_FEATURE_INCOMPAT_MMP)
--
-+ | EXT4_FEATURE_INCOMPAT_MMP \
-+ | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
-
- #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U
-
--
2.45.1
L
L
Ludovic Courtès wrote on 3 Jun 22:01 +0200
[PATCH 2/2] gnu: grub: Remove input labels and use gexps.
(address . 71348@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)
89180e3feee011bc1f3e237aad28465838fc5e61.1717434693.git.ludo@gnu.org
* gnu/packages/bootloaders.scm (grub)[arguments]: Use gexps.
[inputs, native-inputs]: Remove labels.
(grub-minimal, grub-coreboot, grub-efi, grub-efi32)
(grub-hybrid): Likewise.

Change-Id: I2773e6d96d170fae991d9c5db9e10196ea603371
---
gnu/packages/bootloaders.scm | 512 +++++++++++++++++------------------
1 file changed, 254 insertions(+), 258 deletions(-)

Toggle diff (401 lines)
diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm
index 4e932ee3288..503c7d4a194 100644
--- a/gnu/packages/bootloaders.scm
+++ b/gnu/packages/bootloaders.scm
@@ -128,140 +128,140 @@ (define-public grub
(("exit 99") "exit 77"))))))
(build-system gnu-build-system)
(arguments
- `(#:configure-flags
- ;; Counterintuitively, this *disables* a spurious Python dependency by
- ;; calling the ‘true’ binary instead. Python is only needed during
- ;; bootstrapping (for genptl.py), not when building from a release.
- (list "PYTHON=true")
- ;; Grub fails to load modules stripped with --strip-unneeded.
- #:strip-flags '("--strip-debug" "--enable-deterministic-archives")
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'patch-stuff
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (substitute* "grub-core/Makefile.in"
- (("/bin/sh") (which "sh")))
+ (list #:configure-flags
+ ;; Counterintuitively, this *disables* a spurious Python dependency by
+ ;; calling the ‘true’ binary instead. Python is only needed during
+ ;; bootstrapping (for genptl.py), not when building from a release.
+ #~(list "PYTHON=true")
- ;; Give the absolute file name of 'mdadm', used to determine the
- ;; root file system when it's a RAID device. Failing to do that,
- ;; 'grub-probe' silently fails if 'mdadm' is not in $PATH.
- (when (assoc-ref inputs "mdadm")
- (substitute* "grub-core/osdep/linux/getroot.c"
- (("argv\\[0\\] = \"mdadm\"")
- (string-append "argv[0] = \""
- (assoc-ref inputs "mdadm")
- "/sbin/mdadm\""))))
+ ;; GRUB fails to load modules stripped with --strip-unneeded.
+ #:strip-flags
+ #~(list "--strip-debug" "--enable-deterministic-archives")
- ;; Make the font visible.
- (copy-file (assoc-ref (or native-inputs inputs)
- "unifont")
- "unifont.bdf.gz")
- (system* "gunzip" "unifont.bdf.gz")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-stuff
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (substitute* "grub-core/Makefile.in"
+ (("/bin/sh") (which "sh")))
- ;; Give the absolute file name of 'ckbcomp'.
- (substitute* "util/grub-kbdcomp.in"
- (("^ckbcomp ")
- (string-append
- (search-input-file inputs "/bin/ckbcomp")
- " ")))))
- (add-after 'unpack 'set-freetype-variables
- ;; These variables need to be set to the native versions of the
- ;; dependencies because they are used to build programs which are
- ;; executed during build time.
- (lambda* (#:key native-inputs #:allow-other-keys)
- (when (assoc-ref native-inputs "freetype")
- (let ((freetype (assoc-ref native-inputs "freetype")))
- (setenv "BUILD_FREETYPE_LIBS"
- (string-append "-L" freetype
- "/lib -lfreetype"))
- (setenv "BUILD_FREETYPE_CFLAGS"
- (string-append "-I" freetype
- "/include/freetype2"))))))
- (add-before 'check 'disable-flaky-test
- (lambda _
- ;; This test is unreliable. For more information, see:
- ;; <https://bugs.gnu.org/26936>.
- (substitute* "Makefile.in"
- (("grub_cmd_date grub_cmd_set_date grub_cmd_sleep")
- "grub_cmd_date grub_cmd_sleep"))))
- (add-before 'check 'disable-pixel-perfect-test
- (lambda _
- ;; This test compares many screenshots rendered with an older
- ;; Unifont (9.0.06) than that packaged in Guix.
- (substitute* "Makefile.in"
- (("test_unset grub_func_test")
- "test_unset")))))
- ;; Disable tests on ARM and AARCH64 platforms or when cross-compiling.
- #:tests? ,(not (or (any (cute string-prefix? <> (or (%current-target-system)
- (%current-system)))
- '("arm" "aarch64"))
- (%current-target-system)))))
+ ;; Give the absolute file name of 'mdadm', used to determine the
+ ;; root file system when it's a RAID device. Failing to do that,
+ ;; 'grub-probe' silently fails if 'mdadm' is not in $PATH.
+ (let ((mdadm (false-if-exception
+ (search-input-file inputs "/sbin/mdadm"))))
+ (when mdadm
+ (substitute* "grub-core/osdep/linux/getroot.c"
+ (("argv\\[0\\] = \"mdadm\"")
+ (string-append "argv[0] = \"" mdadm "/sbin/mdadm\"")))))
+
+ ;; Make the font visible.
+ (copy-file #+unifont "unifont.bdf.gz")
+ (system* "gunzip" "unifont.bdf.gz")
+
+ ;; Give the absolute file name of 'ckbcomp'.
+ (substitute* "util/grub-kbdcomp.in"
+ (("^ckbcomp ")
+ (string-append
+ (search-input-file inputs "/bin/ckbcomp")
+ " ")))))
+ (add-after 'unpack 'set-freetype-variables
+ ;; These variables need to be set to the native versions of the
+ ;; dependencies because they are used to build programs which are
+ ;; executed during build time.
+ (lambda* (#:key native-inputs #:allow-other-keys)
+ (when (assoc-ref native-inputs "freetype")
+ (let ((freetype (assoc-ref native-inputs "freetype")))
+ (setenv "BUILD_FREETYPE_LIBS"
+ (string-append "-L" freetype
+ "/lib -lfreetype"))
+ (setenv "BUILD_FREETYPE_CFLAGS"
+ (string-append "-I" freetype
+ "/include/freetype2"))))))
+ (add-before 'check 'disable-flaky-test
+ (lambda _
+ ;; This test is unreliable. For more information, see:
+ ;; <https://bugs.gnu.org/26936>.
+ (substitute* "Makefile.in"
+ (("grub_cmd_date grub_cmd_set_date grub_cmd_sleep")
+ "grub_cmd_date grub_cmd_sleep"))))
+ (add-before 'check 'disable-pixel-perfect-test
+ (lambda _
+ ;; This test compares many screenshots rendered with an older
+ ;; Unifont (9.0.06) than that packaged in Guix.
+ (substitute* "Makefile.in"
+ (("test_unset grub_func_test")
+ "test_unset")))))
+
+ ;; Disable tests on ARM and AARCH64 platforms or when cross-compiling.
+ #:tests? (not (or (any (cute string-prefix? <> (%current-system))
+ '("arm" "aarch64"))
+ (%current-target-system)))))
(inputs
- `(("gettext" ,gettext-minimal)
+ (append (list gettext-minimal freetype ncurses
- ;; Depend on LVM2 for libdevmapper, used by 'grub-probe' and
- ;; 'grub-install' to recognize mapped devices (LUKS, etc.)
- ,@(if (member (or (%current-target-system)
- (%current-system))
- (package-supported-systems lvm2))
- `(("lvm2" ,lvm2))
- '())
+ ;; Console-setup's ckbcomp is invoked by grub-kbdcomp. It
+ ;; is required for generating alternative keyboard layouts.
+ console-setup)
- ;; Depend on mdadm, which is invoked by 'grub-probe' and 'grub-install'
- ;; to determine whether the root file system is RAID.
- ,@(if (member (or (%current-target-system)
- (%current-system))
- (package-supported-systems mdadm))
- `(("mdadm" ,mdadm))
- '())
+ ;; Depend on LVM2 for libdevmapper, used by 'grub-probe' and
+ ;; 'grub-install' to recognize mapped devices (LUKS, etc.)
+ (if (member (or (%current-target-system)
+ (%current-system))
+ (package-supported-systems lvm2))
+ (list lvm2)
+ '())
- ;; Console-setup's ckbcomp is invoked by grub-kbdcomp. It is required
- ;; for generating alternative keyboard layouts.
- ("console-setup" ,console-setup)
+ ;; Depend on mdadm, which is invoked by 'grub-probe' and
+ ;; 'grub-install' to determine whether the root file system is
+ ;; RAID.
+ (if (member (or (%current-target-system)
+ (%current-system))
+ (package-supported-systems mdadm))
+ (list mdadm)
+ '())
- ;; Needed for ‘grub-mount’, the only reliable way to tell whether a given
- ;; file system will be readable by GRUB without rebooting.
- ,@(if (member (or (%current-target-system)
- (%current-system))
- (package-supported-systems fuse-2))
- `(("fuse" ,fuse-2))
- '())
-
- ("freetype" ,freetype)
- ;; ("libusb" ,libusb)
- ("ncurses" ,ncurses)))
+ ;; Needed for ‘grub-mount’, the only reliable way to tell whether
+ ;; a given file system will be readable by GRUB without
+ ;; rebooting.
+ (if (member (or (%current-target-system)
+ (%current-system))
+ (package-supported-systems fuse-2))
+ (list fuse-2)
+ '())))
(native-inputs
- `(("pkg-config" ,pkg-config)
- ("unifont" ,unifont)
- ("bison" ,bison)
- ("flex" ,flex)
- ("texinfo" ,texinfo)
- ("help2man" ,help2man)
- ("freetype" ,freetype) ;native version needed for build-grub-mkfont
+ (append (list pkg-config
+ bison
+ flex
+ texinfo
+ help2man
+ freetype ;native version needed for build-grub-mkfont
- ;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
- ;; capable of assembling 64-bit instructions. However, our default
- ;; binutils on 32-bit x86 is not 64-bit capable.
- ,@(if (string-match "^i[3456]86-" (%current-system))
- (let ((binutils (package/inherit
- binutils
- (name "binutils-i386")
- (arguments
- (substitute-keyword-arguments (package-arguments binutils)
- ((#:configure-flags flags ''())
- `(cons "--enable-64-bit-bfd" ,flags)))))))
- `(("ld-wrapper" ,(make-ld-wrapper "ld-wrapper-i386"
- #:binutils binutils))
- ("binutils" ,binutils)))
- '())
+ ;; Dependencies of the test suite.
+ parted
+ xorriso)
- ;; Dependencies for the test suite. The "real" QEMU is needed here,
- ;; because several targets are used.
- ("parted" ,parted)
- ,@(if (member (%current-system) (package-supported-systems qemu-minimal))
- `(("qemu" ,qemu-minimal))
- '())
- ("xorriso" ,xorriso)))
+ ;; For the test suite, the "real" QEMU is needed because several
+ ;; targets are used.
+ (if (member (%current-system) (package-supported-systems qemu-minimal))
+ (list qemu-minimal)
+ '())
+
+ ;; XXX: When building GRUB 2.02 on 32-bit x86, we need a binutils
+ ;; capable of assembling 64-bit instructions. However, our default
+ ;; binutils on 32-bit x86 is not 64-bit capable.
+ (if (string-match "^i[3456]86-" (%current-system))
+ (let ((binutils (package/inherit
+ binutils
+ (name "binutils-i386")
+ (arguments
+ (substitute-keyword-arguments (package-arguments binutils)
+ ((#:configure-flags flags ''())
+ `(cons "--enable-64-bit-bfd" ,flags)))))))
+ (list (make-ld-wrapper "ld-wrapper-i386"
+ #:binutils binutils)
+ binutils))
+ '())))
(home-page "https://www.gnu.org/software/grub/")
(synopsis "GRand Unified Boot loader")
(description
@@ -286,24 +286,21 @@ (define-public grub-minimal
(delete "help2man" "texinfo" "parted" "qemu" "xorriso")))
(arguments
(substitute-keyword-arguments (package-arguments grub)
- ((#:configure-flags _ ''())
- '(list "PYTHON=true"))
+ ((#:configure-flags _ #~'())
+ #~(list "PYTHON=true"))
((#:tests? _ #t)
#f)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (replace 'patch-stuff
- (lambda* (#:key native-inputs inputs #:allow-other-keys)
- (substitute* "grub-core/Makefile.in"
- (("/bin/sh") (which "sh")))
+ ((#:phases phases #~%standard-phases)
+ #~(modify-phases #$phases
+ (replace 'patch-stuff
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (substitute* "grub-core/Makefile.in"
+ (("/bin/sh")
+ (which "sh")))
- ;; Make the font visible.
- (copy-file (assoc-ref (or native-inputs inputs)
- "unifont")
- "unifont.bdf.gz")
- (system* "gunzip" "unifont.bdf.gz")
-
- #t))))))))
+ ;; Make the font visible.
+ (copy-file #+unifont "unifont.bdf.gz")
+ (system* "gunzip" "unifont.bdf.gz")))))))))
(define-public grub-coreboot
(package
@@ -311,66 +308,62 @@ (define-public grub-coreboot
(name "grub-coreboot")
(synopsis "GRand Unified Boot loader (Coreboot payload version)")
(arguments
- `(,@(substitute-keyword-arguments (package-arguments grub)
- ((#:phases phases '%standard-phases)
- `(modify-phases ,phases
- (add-before 'check 'disable-broken-tests
- (lambda _
- (setenv "DISABLE_HARD_ERRORS" "1")
- (setenv
- "XFAIL_TESTS"
- (string-join
- ;; TODO: All the tests below use grub shell
- ;; (tests/util/grub-shell.in), and here grub-shell uses
- ;; QEMU and a Coreboot image to run the tests. Since we
- ;; don't have a Coreboot package in Guix yet these tests
- ;; are disabled. See the Guix bug #64667 for more details
- ;; (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64667).
- (list
- "pata_test"
- "ahci_test"
- "uhci_test"
- "ehci_test"
- "example_grub_script_test"
- "ohci_test"
- "grub_script_eval"
- "grub_script_echo1"
- "grub_script_test"
- "grub_script_leading_whitespace"
- "grub_script_echo_keywords"
- "grub_script_vars1"
- "grub_script_for1"
- "grub_script_while1"
- "grub_script_if"
- "grub_script_comments"
- "grub_script_functions"
- "grub_script_continue"
- "grub_script_break"
- "grub_script_shift"
- "grub_script_blockarg"
- "grub_script_return"
- "grub_script_setparams"
- "grub_cmd_date"
- "grub_cmd_set_date"
- "grub_cmd_sleep"
- "grub_cmd_regexp"
- "grub_cmd_test"
- "grub_script_not"
- "grub_cmd_echo"
- "grub_script_expansion"
- "grub_script_gettext"
- "grub_script_escape_comma"
- "help_test"
- "grub_script_strcmp"
- "test_sha512sum"
- "grub_cmd_tr"
- "test_unset"
- "file_filter_test")
- " "))))))
- ((#:configure-flags flags
- ''())
- `(cons* "--with-platform=coreboot"
- ,flags)))))))
+ (substitute-keyword-arguments (package-arguments grub)
+ ((#:phases phases #~%standard-phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'disable-broken-tests
+ (lambda _
+ (setenv "DISABLE_HARD_ERRORS" "1")
+ (setenv "XFAIL_TESTS"
+ (string-join
+ ;; TODO: All the tests below use grub shell
+ ;; (tests/util/grub-shell.in), and here grub-shell uses
+ ;; QEMU and a Coreboot image to run the tests. Since we
+ ;; don't have a Coreboot package in Guix yet these tests
+ ;; are disabled. See the Guix bug #64667 for more details
+ ;; (https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64667).
+ (list "pata_test"
+ "ahci_test"
+ "uhci_test"
+ "ehci_test"
+ "example_grub_script_test"
+ "ohci_test"
+ "grub_script_eval"
+ "grub_script_echo1"
+ "grub_script_test"
+ "grub_script_leading_whitespace"
+ "grub_script_echo_keywords"
+ "grub_script_vars1"
+ "grub_script_for1"
+ "grub_script_while1"
+ "grub_script_if"
+ "grub_script_comments"
+ "grub_script_functions"
+ "grub_s
This message was truncated. Download the full message here.
M
M
Maxim Cournoyer wrote on 9 Jun 03:47 +0200
Re: [bug#71348] [PATCH 0/2] Update GRUB to 2.12
(name . Ludovic Courtès)(address . ludo@gnu.org)
87cyoqzy2y.fsf@gmail.com
Hi Ludovic,

+CC Josselin, who also had a GRUB 2.12 patch somewhere (can't find it)

Ludovic Courtès <ludo@gnu.org> writes:

Toggle quote (10 lines)
> Hello Guix!
>
> Following the discussion with Ada Stevenson¹ who reported that
> the e2fsprogs upgrade to 1.47.0 broke system installation, here
> is an upgrade of GRUB.
>
> I tested it on x86_64-linux with:
>
> ./pre-inst-env guix build grub-efi{,32} grub-coreboot grub-hybrid grub{,-minimal}

That's a welcome update. I believe it'll fix our LUKS2 issues and we
could do without mentioning the caveats in the manual, like so:

Toggle snippet (27 lines)
modified doc/guix.texi
@@ -2384,21 +2384,12 @@ Keyboard Layout and Networking and Partitioning
@uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}},
@code{man cryptsetup}} for more information).
-@quotation Warning
-While efforts are in progress to extend support to LUKS2, please note
-that Guix only supports devices of type LUKS1 at the moment. You can
-verify that your existing LUKS device is of the right type by running
-@command{cryptsetup luksDump @var{device}}. Alternatively, you can
-create a new LUKS1 device with @command{cryptsetup luksFormat --type
-luks1 @var{device}}.
-@end quotation
-
Assuming you want to store the root partition on @file{/dev/sda2}, the
-command sequence to format it as a LUKS1 partition would be along these
+command sequence to format it as a LUKS partition would be along these
lines:
@example
-cryptsetup luksFormat --type luks1 /dev/sda2
+cryptsetup luksFormat /dev/sda2
cryptsetup open /dev/sda2 my-partition
mkfs.ext4 -L my-root /dev/mapper/my-partition
@end example

Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>

--
Thanks,
Maxim
M
M
Maxim Cournoyer wrote on 24 Jun 04:51 +0200
(name . Ludovic Courtès)(address . ludo@gnu.org)
877cef6okg.fsf@gmail.com
Hi,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

Toggle quote (47 lines)
> Hi Ludovic,
>
> +CC Josselin, who also had a GRUB 2.12 patch somewhere (can't find it)
>
> Ludovic Courtès <ludo@gnu.org> writes:
>
>> Hello Guix!
>>
>> Following the discussion with Ada Stevenson¹ who reported that
>> the e2fsprogs upgrade to 1.47.0 broke system installation, here
>> is an upgrade of GRUB.
>>
>> I tested it on x86_64-linux with:
>>
>> ./pre-inst-env guix build grub-efi{,32} grub-coreboot grub-hybrid grub{,-minimal}
>
> That's a welcome update. I believe it'll fix our LUKS2 issues and we
> could do without mentioning the caveats in the manual, like so:
>
> modified doc/guix.texi
> @@ -2384,21 +2384,12 @@ Keyboard Layout and Networking and Partitioning
> @uref{https://linux.die.net/man/8/cryptsetup, @code{man cryptsetup}},
> @code{man cryptsetup}} for more information).
>
> -@quotation Warning
> -While efforts are in progress to extend support to LUKS2, please note
> -that Guix only supports devices of type LUKS1 at the moment. You can
> -verify that your existing LUKS device is of the right type by running
> -@command{cryptsetup luksDump @var{device}}. Alternatively, you can
> -create a new LUKS1 device with @command{cryptsetup luksFormat --type
> -luks1 @var{device}}.
> -@end quotation
> -
> Assuming you want to store the root partition on @file{/dev/sda2}, the
> -command sequence to format it as a LUKS1 partition would be along these
> +command sequence to format it as a LUKS partition would be along these
> lines:
>
> @example
> -cryptsetup luksFormat --type luks1 /dev/sda2
> +cryptsetup luksFormat /dev/sda2
> cryptsetup open /dev/sda2 my-partition
> mkfs.ext4 -L my-root /dev/mapper/my-partition
> @end example
>
> Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail>

I've now applied this with the above.

Closing!

--
Thanks,
Maxim
?
Your comment

This issue is archived.

To comment on this conversation send an email to 71348@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 71348
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch