From e6facbe069ba536a6bb9dffc582a78f982596be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Mon, 3 Jun 2024 22:01:22 +0200 Subject: [PATCH] gnu: grub: Update to 2.12. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 Modified-by: Maxim Cournoyer --- doc/guix.texi | 13 +---- gnu/local.mk | 1 - gnu/packages/bootloaders.scm | 27 ++++++---- .../grub-ignore-metadata-csum-seed.patch | 54 ------------------- 4 files changed, 18 insertions(+), 77 deletions(-) delete mode 100644 gnu/packages/patches/grub-ignore-metadata-csum-seed.patch diff --git a/doc/guix.texi b/doc/guix.texi index 6257de7583..0ad0a23b6c 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -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 diff --git a/gnu/local.mk b/gnu/local.mk index 4a2c7f7bfa..6a436dd1b8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -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 \ diff --git a/gnu/packages/bootloaders.scm b/gnu/packages/bootloaders.scm index f37344c25b..4e932ee328 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 +;;; Copyright © 2013-2019, 2021, 2023-2024 Ludovic Courtès ;;; Copyright © 2015, 2018 Mark H Weaver ;;; Copyright © 2015 Leo Famulari ;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen @@ -104,25 +104,28 @@ (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 @@ menu to select one of the installed operating systems.") "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 cd9b897aa6..0000000000 --- a/gnu/packages/patches/grub-ignore-metadata-csum-seed.patch +++ /dev/null @@ -1,54 +0,0 @@ -commit 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763 -Author: Javier Martinez Canillas -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 - Suggested-by: Lukas Czerner - Signed-off-by: Javier Martinez Canillas - Reviewed-by: Lukas Czerner - Reviewed-by: Daniel Kiper - -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 -