gnu: grub: Update to 2.12.

* 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’.
* doc/guix.texi (Keyboard Layout and Networking and Partitioning): Update
accordingly (it should now be fine to use LUKS2).
* gnu/packages/patches/grub-ignore-metadata-csum-seed.patch: Remove.
* gnu/local.mk (dist_patch_DATA): Remove it.

Change-Id: Ia31b3b7e0a2e7de42d30229733e9c196fcd12fd9
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
Ludovic Courtès 2024-06-03 22:01:22 +02:00 committed by Maxim Cournoyer
parent d37614bed1
commit e6facbe069
No known key found for this signature in database
GPG key ID: 1260E46482E63562
4 changed files with 18 additions and 77 deletions

View file

@ -2403,21 +2403,12 @@ the Cryptsetup/LUKS utilities to do that (see @inlinefmtifelse{html,
@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

View file

@ -1425,7 +1425,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 \

View file

@ -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"

View file

@ -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