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:
		
							parent
							
								
									d37614bed1
								
							
						
					
					
						commit
						e6facbe069
					
				
					 4 changed files with 18 additions and 77 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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             \
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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-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"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in a new issue