]> TLD Linux GIT Repositories - packages/grub2.git/commitdiff
- fix for ext4 fs with metadata_csum_seed
authorMarcin Krol <hawk@tld-linux.org>
Sun, 9 Jul 2023 21:37:15 +0000 (23:37 +0200)
committerMarcin Krol <hawk@tld-linux.org>
Sun, 9 Jul 2023 21:37:15 +0000 (23:37 +0200)
- python 3

grub2.spec
ignore-ext4-metadata_csum_seed.patch [new file with mode: 0644]
tld-sysconfdir.patch

index c158e449bce5af89b4ad367917785501e6a43f87..bb2ae3179b92e60feef0f3db901b1babeaec754b 100644 (file)
@@ -144,7 +144,7 @@ Summary(pl.UTF-8):  GRUB2 - bootloader dla x86 i ppc
 Summary(pt_BR.UTF-8):  Gerenciador de inicializaĆ§Ć£o GRUB2
 Name:          grub2
 Version:       2.06
-Release:       3
+Release:       4
 License:       GPL v2
 Group:         Base
 Source0:       https://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
@@ -169,6 +169,7 @@ Patch14:    blscfg.patch
 Patch15:       restricted.patch
 Patch16:        0193-fs-xfs-Fix-unreadable-filesystem-with-v4-superblock.patch
 Patch17:        0268-grub_fs_probe-dprint-errors-from-filesystems.patch
+Patch18:       ignore-ext4-metadata_csum_seed.patch
 URL:           http://www.gnu.org/software/grub/
 BuildRequires: autoconf >= 2.63
 BuildRequires: automake >= 1:1.11.1-1
@@ -200,8 +201,8 @@ BuildRequires:      libfuse-devel
 BuildRequires: libtool
 BuildRequires: ncurses-devel
 BuildRequires: pkgconfig
-BuildRequires: python >= 1:2.6
-BuildRequires: python-modules >= 1:2.6
+BuildRequires: python3
+BuildRequires: python3-modules
 BuildRequires: rpm >= 4.4.9-56
 BuildRequires: rpmbuild(macros) >= 1.213
 BuildRequires: sed >= 4.0
@@ -539,6 +540,7 @@ Motyw starfield dla GRUB-a.
 %patch15 -p1
 %patch16 -p1
 %patch17 -p1
+%patch18 -p1
 
 # we don't have C.utf-8 and need an UTF-8 locale for build
 sed -i -e 's/LC_ALL=C.UTF-8/LC_ALL=en_US.utf-8/g' po/Makefile* po/Rules*
diff --git a/ignore-ext4-metadata_csum_seed.patch b/ignore-ext4-metadata_csum_seed.patch
new file mode 100644 (file)
index 0000000..27b2277
--- /dev/null
@@ -0,0 +1,59 @@
+From 7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763 Mon Sep 17 00:00:00 2001
+From: Javier Martinez Canillas <javierm@redhat.com>
+Date: Fri, 11 Jun 2021 21:36:16 +0200
+Subject: 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>
+---
+ grub-core/fs/ext2.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
+index e7dd78e..4953a15 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
+-- 
+cgit v1.1
+
index 5334ccaddf16d5f3bb725fd3676bb00e4e1d19c8..301f4c5e30d7bf1742c3ee9668c3557513884dc9 100644 (file)
@@ -1,16 +1,7 @@
-diff -ur grub-2.04.orig/util/grub.d/README grub-2.04/util/grub.d/README
---- grub-2.04.orig/util/grub.d/README  2018-11-24 18:13:02.000000000 +0100
-+++ grub-2.04/util/grub.d/README       2019-08-18 15:41:16.068000000 +0200
-@@ -8,4 +8,4 @@
- The number namespace in-between is configurable by system installer and/or
- administrator.  For example, you can add an entry to boot another OS as
- 01_otheros, 11_otheros, etc, depending on the position you want it to occupy in
--the menu; and then adjust the default setting via /etc/default/grub.
-+the menu; and then adjust the default setting via /etc/sysconfig/grub.
-diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
---- grub-2.04.orig/util/grub-mkconfig.in       2019-05-20 12:59:36.000000000 +0200
-+++ grub-2.04/util/grub-mkconfig.in    2019-08-18 15:41:16.068000000 +0200
-@@ -154,8 +154,8 @@
+diff -urNp -x '*.orig' grub-2.06.org/util/grub-mkconfig.in grub-2.06/util/grub-mkconfig.in
+--- grub-2.06.org/util/grub-mkconfig.in        2021-03-10 14:42:22.000000000 +0100
++++ grub-2.06/util/grub-mkconfig.in    2023-07-09 22:57:02.992264334 +0200
+@@ -157,8 +157,8 @@ if [ "x${GRUB_EARLY_INITRD_LINUX_STOCK}"
        GRUB_EARLY_INITRD_LINUX_STOCK="intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode.cpio"
  fi
  
@@ -20,8 +11,8 @@ diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
 +  . ${sysconfdir}/sysconfig/grub
  fi
  
- # XXX: should this be deprecated at some point?
-@@ -254,7 +254,7 @@
+ if [ "x${GRUB_DISABLE_UUID}" = "xtrue" ]; then
+@@ -267,7 +267,7 @@ cat << EOF
  # DO NOT EDIT THIS FILE
  #
  # It is automatically generated by $self using templates
@@ -30,7 +21,7 @@ diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
  #
  EOF
  
-@@ -280,7 +280,7 @@
+@@ -293,7 +293,7 @@ if test "x${grub_cfg}" != "x" ; then
    if ! ${grub_script_check} ${grub_cfg}.new; then
      # TRANSLATORS: %s is replaced by filename
      gettext_printf "Syntax errors are detected in generated GRUB config file.
@@ -39,3 +30,12 @@ diff -ur grub-2.04.orig/util/grub-mkconfig.in grub-2.04/util/grub-mkconfig.in
  and /etc/grub.d/* files or please file a bug report with
  %s file attached." "${grub_cfg}.new" >&2
      echo >&2
+diff -urNp -x '*.orig' grub-2.06.org/util/grub.d/README grub-2.06/util/grub.d/README
+--- grub-2.06.org/util/grub.d/README   2018-11-24 18:13:02.000000000 +0100
++++ grub-2.06/util/grub.d/README       2023-07-09 22:57:02.992264334 +0200
+@@ -8,4 +8,4 @@ All executable files in this directory a
+ The number namespace in-between is configurable by system installer and/or
+ administrator.  For example, you can add an entry to boot another OS as
+ 01_otheros, 11_otheros, etc, depending on the position you want it to occupy in
+-the menu; and then adjust the default setting via /etc/default/grub.
++the menu; and then adjust the default setting via /etc/sysconfig/grub.