* [PR PATCH] grub: update to 2.12.
@ 2024-02-18 17:18 dataCobra
2024-02-26 9:41 ` dataCobra
` (13 more replies)
0 siblings, 14 replies; 15+ messages in thread
From: dataCobra @ 2024-02-18 17:18 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 587 bytes --]
There is a new pull request by dataCobra against master on the void-packages repository
https://github.com/dataCobra/void-packages grub
https://github.com/void-linux/void-packages/pull/48817
grub: update to 2.12.
#### Testing the changes
- I tested the changes in this PR: **YES**
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- x86_64-musl
- i686
A patch file from https://github.com/void-linux/void-packages/pull/48817.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-grub-48817.patch --]
[-- Type: text/x-diff, Size: 7979 bytes --]
From e61dffb50b40e3571a86d155c15710b0f71bf230 Mon Sep 17 00:00:00 2001
From: Benedikt Brinkmann <datacobra@thinkbot.de>
Date: Sun, 18 Feb 2024 18:14:58 +0100
Subject: [PATCH] grub: update to 2.12.
---
srcpkgs/grub/patches/xx-e2fsprogs-1.patch | 62 -----------------------
srcpkgs/grub/patches/xx-e2fsprogs-2.patch | 60 ----------------------
srcpkgs/grub/template | 13 +++--
3 files changed, 8 insertions(+), 127 deletions(-)
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-1.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-2.patch
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch b/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
deleted file mode 100644
index 5cd83273be1a59..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
-useful because e2fsprogs 1.47 defaults to this enabled, and grub won't touch it
---
-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
-
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch b/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
deleted file mode 100644
index 7e02e2087799ff..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b
-useful to support the large_dir ext4 feature
---
-From 2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 30 Aug 2022 22:41:59 -0400
-Subject: fs/ext2: Ignore the large_dir incompat feature
-
-Recently, ext4 added the large_dir feature, which adds support for
-a 3 level htree directory support.
-
-The GRUB supports existing file systems with htree directories by
-ignoring their existence, and since the index nodes for the hash tree
-look like deleted directory entries (by design), the GRUB can simply do
-a brute force O(n) linear search of directories. The same is true for
-3 level deep htrees indicated by large_dir feature flag.
-
-Hence, it is safe for the GRUB to ignore the large_dir incompat feature.
-
-Fixes: https://savannah.gnu.org/bugs/?61606
-
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
----
- grub-core/fs/ext2.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
-index 0989e26..e1cc5e6 100644
---- a/grub-core/fs/ext2.c
-+++ b/grub-core/fs/ext2.c
-@@ -104,6 +104,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
- #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
- #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
- #define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000
-+#define EXT4_FEATURE_INCOMPAT_LARGEDIR 0x4000 /* >2GB or 3 level htree */
- #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000
-
- /* The set of back-incompatible features this driver DOES support. Add (OR)
-@@ -129,10 +130,17 @@ GRUB_MOD_LICENSE ("GPLv3+");
- * 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.
-+ * large_dir: Not back-incompatible given that the GRUB ext2 driver does
-+ * not implement EXT2_FEATURE_COMPAT_DIR_INDEX. If the GRUB
-+ * eventually supports the htree feature (aka dir_index)
-+ * it should support 3 level htrees and then move
-+ * EXT4_FEATURE_INCOMPAT_LARGEDIR to
-+ * EXT2_DRIVER_SUPPORTED_INCOMPAT.
- */
- #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
- | EXT4_FEATURE_INCOMPAT_MMP \
-- | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
-+ | EXT4_FEATURE_INCOMPAT_CSUM_SEED \
-+ | EXT4_FEATURE_INCOMPAT_LARGEDIR)
-
- #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U
-
---
-cgit v1.1
diff --git a/srcpkgs/grub/template b/srcpkgs/grub/template
index 7294fa503f3a73..95c56d1ce32107 100644
--- a/srcpkgs/grub/template
+++ b/srcpkgs/grub/template
@@ -1,11 +1,11 @@
# Template file for 'grub'
pkgname=grub
-version=2.06
-revision=3
+version=2.12
+revision=1
hostmakedepends="python3 pkg-config flex freetype-devel font-unifont-bdf help2man
automake gettext-devel-tools"
-makedepends="libusb-compat-devel ncurses-devel freetype-devel
- liblzma-devel device-mapper-devel fuse-devel"
+makedepends="libusb-compat-devel ncurses-devel freetype-devel liblzma-devel
+ device-mapper-devel fuse-devel"
depends="os-prober"
conf_files="/etc/default/grub /etc/grub.d/*"
short_desc="GRand Unified Bootloader 2"
@@ -13,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.gnu.org/software/grub/"
distfiles="${GNU_SITE}/grub/grub-${version}.tar.xz"
-checksum=b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
+checksum=f3c97391f7c4eaa677a78e090c7e97e6dc47b16f655f04683ebd37bef7fe0faa
archs="i686* x86_64* aarch64* ppc ppc-musl ppc64*"
nopie=yes
@@ -46,6 +46,9 @@ esac
pre_configure() {
autoreconf -fi
+
+ # Required to fix 2.12 build - (empty) file is missing from release
+ touch $XBPS_BUILDDIR/grub-${version}/grub-core/extra_deps.lst
}
do_configure() {
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
@ 2024-02-26 9:41 ` dataCobra
2024-02-26 9:41 ` dataCobra
` (12 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: dataCobra @ 2024-02-26 9:41 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 355 bytes --]
New comment by dataCobra on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-1963693427
Comment:
When installing the update and only do a update-grub. Grub doesn't boot it seems.
I had the problem on my ThinkPad. After reinstalling grub with the corresponding command, everything worked again as expected.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
2024-02-26 9:41 ` dataCobra
@ 2024-02-26 9:41 ` dataCobra
2024-02-26 19:35 ` dataCobra
` (11 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: dataCobra @ 2024-02-26 9:41 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 346 bytes --]
New comment by dataCobra on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-1963693427
Comment:
When installing the update and only do a update-grub. Grub doesn't boot.
I had the problem on my ThinkPad. After reinstalling grub with the corresponding command, everything worked again as expected.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
2024-02-26 9:41 ` dataCobra
2024-02-26 9:41 ` dataCobra
@ 2024-02-26 19:35 ` dataCobra
2024-03-02 16:30 ` classabbyamp
` (10 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: dataCobra @ 2024-02-26 19:35 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 439 bytes --]
New comment by dataCobra on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-1965097493
Comment:
Here is an example on how Arch goes about that -> https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/blob/main/grub.install?ref_type=heads.
With a package that is so important (being the bootloader) is it enough to create an update message and inform the users about what to do?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (2 preceding siblings ...)
2024-02-26 19:35 ` dataCobra
@ 2024-03-02 16:30 ` classabbyamp
2024-03-25 6:43 ` dataCobra
` (9 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-03-02 16:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 312 bytes --]
New comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-1974844544
Comment:
> is it enough to create an update message and inform the users about what to do?
If we can do it in a way that does not require manual intervention, prefer that.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (3 preceding siblings ...)
2024-03-02 16:30 ` classabbyamp
@ 2024-03-25 6:43 ` dataCobra
2024-03-25 6:43 ` dataCobra
` (8 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: dataCobra @ 2024-03-25 6:43 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 714 bytes --]
New comment by dataCobra on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-2017328415
Comment:
I've tested a bit more and couldn't reproduce my `grub doesn't boot` after update problem.
I need to check a bit more and encourage others to help me if possible.
> > is it enough to create an update message and inform the users about what to do?
>
> If we can do it in a way that does not require manual intervention, prefer that.
I checked a few more things and to this point couldn't find a way to not require manual intervention from the user when upgrading.
But if somebody has knowledge about that or has some information, I appreciate the help.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (4 preceding siblings ...)
2024-03-25 6:43 ` dataCobra
@ 2024-03-25 6:43 ` dataCobra
2024-04-27 13:08 ` classabbyamp
` (7 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: dataCobra @ 2024-03-25 6:43 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 765 bytes --]
New comment by dataCobra on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-2017328415
Comment:
I've tested a bit more and couldn't reproduce my `grub doesn't boot` after update problem. (Didn't test with LUKS, LVM2 or software RAID yet)
I need to check a bit more and encourage others to help me if possible.
> > is it enough to create an update message and inform the users about what to do?
>
> If we can do it in a way that does not require manual intervention, prefer that.
I checked a few more things and to this point couldn't find a way to not require manual intervention from the user when upgrading.
But if somebody has knowledge about that or has some information, I appreciate the help.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (5 preceding siblings ...)
2024-03-25 6:43 ` dataCobra
@ 2024-04-27 13:08 ` classabbyamp
2024-04-27 14:00 ` [PR PATCH] [Updated] " classabbyamp
` (6 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-27 13:08 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 304 bytes --]
New comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-2080619344
Comment:
> When installing the update and only do a update-grub. Grub doesn't boot.
what do you mean by "doesn't boot"? going to the uefi firmware setup interface?
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PR PATCH] [Updated] grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (6 preceding siblings ...)
2024-04-27 13:08 ` classabbyamp
@ 2024-04-27 14:00 ` classabbyamp
2024-04-27 14:00 ` classabbyamp
` (5 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-27 14:00 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 597 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/dataCobra/void-packages grub
https://github.com/void-linux/void-packages/pull/48817
grub: update to 2.12.
#### Testing the changes
- I tested the changes in this PR: **BRIEFLY**
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- x86_64-musl
- i686
A patch file from https://github.com/void-linux/void-packages/pull/48817.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-grub-48817.patch --]
[-- Type: text/x-diff, Size: 9478 bytes --]
From f5558b09ce318ddd902f90571a69f1ae21479e0a Mon Sep 17 00:00:00 2001
From: Benedikt Brinkmann <datacobra@thinkbot.de>
Date: Sun, 18 Feb 2024 18:14:58 +0100
Subject: [PATCH] grub: update to 2.12.
---
.../grub/patches/revert-fwsetup-2.12.patch | 31 ++++++++++
srcpkgs/grub/patches/xx-e2fsprogs-1.patch | 62 -------------------
srcpkgs/grub/patches/xx-e2fsprogs-2.patch | 60 ------------------
srcpkgs/grub/template | 13 ++--
4 files changed, 39 insertions(+), 127 deletions(-)
create mode 100644 srcpkgs/grub/patches/revert-fwsetup-2.12.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-1.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-2.patch
diff --git a/srcpkgs/grub/patches/revert-fwsetup-2.12.patch b/srcpkgs/grub/patches/revert-fwsetup-2.12.patch
new file mode 100644
index 00000000000000..85ba31dd5ac5b4
--- /dev/null
+++ b/srcpkgs/grub/patches/revert-fwsetup-2.12.patch
@@ -0,0 +1,31 @@
+grub 2.12 introduced the `--is-supported` argument for fwsetup, and runs it for
+efi systems to determine whether to show the uefi-firmware menu item.
+
+The problem is that grub 2.06 does not support the `--is-supported` flag yet,
+and calling it just crashes grub, causing the machine to reboot.
+
+Showing a menu entry for uefi-firmware that may not work is infinitely better
+than crashing and preventing the machine to boot, so remove the condition and
+always show the menu entry.
+
+See also: https://bugs.archlinux.org/task/75701
+
+diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in
+index 1c2365d..b6041b5 100644
+--- a/util/grub.d/30_uefi-firmware.in
++++ b/util/grub.d/30_uefi-firmware.in
+@@ -32,11 +32,8 @@ gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2
+
+ cat << EOF
+ if [ "\$grub_platform" = "efi" ]; then
+- fwsetup --is-supported
+- if [ "\$?" = 0 ]; then
+- menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+- fwsetup
+- }
+- fi
++ menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
++ fwsetup
++ }
+ fi
+ EOF
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch b/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
deleted file mode 100644
index 5cd83273be1a59..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
-useful because e2fsprogs 1.47 defaults to this enabled, and grub won't touch it
---
-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
-
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch b/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
deleted file mode 100644
index 7e02e2087799ff..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b
-useful to support the large_dir ext4 feature
---
-From 2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 30 Aug 2022 22:41:59 -0400
-Subject: fs/ext2: Ignore the large_dir incompat feature
-
-Recently, ext4 added the large_dir feature, which adds support for
-a 3 level htree directory support.
-
-The GRUB supports existing file systems with htree directories by
-ignoring their existence, and since the index nodes for the hash tree
-look like deleted directory entries (by design), the GRUB can simply do
-a brute force O(n) linear search of directories. The same is true for
-3 level deep htrees indicated by large_dir feature flag.
-
-Hence, it is safe for the GRUB to ignore the large_dir incompat feature.
-
-Fixes: https://savannah.gnu.org/bugs/?61606
-
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
----
- grub-core/fs/ext2.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
-index 0989e26..e1cc5e6 100644
---- a/grub-core/fs/ext2.c
-+++ b/grub-core/fs/ext2.c
-@@ -104,6 +104,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
- #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
- #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
- #define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000
-+#define EXT4_FEATURE_INCOMPAT_LARGEDIR 0x4000 /* >2GB or 3 level htree */
- #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000
-
- /* The set of back-incompatible features this driver DOES support. Add (OR)
-@@ -129,10 +130,17 @@ GRUB_MOD_LICENSE ("GPLv3+");
- * 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.
-+ * large_dir: Not back-incompatible given that the GRUB ext2 driver does
-+ * not implement EXT2_FEATURE_COMPAT_DIR_INDEX. If the GRUB
-+ * eventually supports the htree feature (aka dir_index)
-+ * it should support 3 level htrees and then move
-+ * EXT4_FEATURE_INCOMPAT_LARGEDIR to
-+ * EXT2_DRIVER_SUPPORTED_INCOMPAT.
- */
- #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
- | EXT4_FEATURE_INCOMPAT_MMP \
-- | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
-+ | EXT4_FEATURE_INCOMPAT_CSUM_SEED \
-+ | EXT4_FEATURE_INCOMPAT_LARGEDIR)
-
- #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U
-
---
-cgit v1.1
diff --git a/srcpkgs/grub/template b/srcpkgs/grub/template
index 7294fa503f3a73..95c56d1ce32107 100644
--- a/srcpkgs/grub/template
+++ b/srcpkgs/grub/template
@@ -1,11 +1,11 @@
# Template file for 'grub'
pkgname=grub
-version=2.06
-revision=3
+version=2.12
+revision=1
hostmakedepends="python3 pkg-config flex freetype-devel font-unifont-bdf help2man
automake gettext-devel-tools"
-makedepends="libusb-compat-devel ncurses-devel freetype-devel
- liblzma-devel device-mapper-devel fuse-devel"
+makedepends="libusb-compat-devel ncurses-devel freetype-devel liblzma-devel
+ device-mapper-devel fuse-devel"
depends="os-prober"
conf_files="/etc/default/grub /etc/grub.d/*"
short_desc="GRand Unified Bootloader 2"
@@ -13,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.gnu.org/software/grub/"
distfiles="${GNU_SITE}/grub/grub-${version}.tar.xz"
-checksum=b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
+checksum=f3c97391f7c4eaa677a78e090c7e97e6dc47b16f655f04683ebd37bef7fe0faa
archs="i686* x86_64* aarch64* ppc ppc-musl ppc64*"
nopie=yes
@@ -46,6 +46,9 @@ esac
pre_configure() {
autoreconf -fi
+
+ # Required to fix 2.12 build - (empty) file is missing from release
+ touch $XBPS_BUILDDIR/grub-${version}/grub-core/extra_deps.lst
}
do_configure() {
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (7 preceding siblings ...)
2024-04-27 14:00 ` [PR PATCH] [Updated] " classabbyamp
@ 2024-04-27 14:00 ` classabbyamp
2024-04-27 15:08 ` [PR PATCH] [Updated] " classabbyamp
` (4 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-27 14:00 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 170 bytes --]
New comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-2080729473
Comment:
added patch for fwsetup
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PR PATCH] [Updated] grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (8 preceding siblings ...)
2024-04-27 14:00 ` classabbyamp
@ 2024-04-27 15:08 ` classabbyamp
2024-04-27 15:08 ` classabbyamp
` (3 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-27 15:08 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 597 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/dataCobra/void-packages grub
https://github.com/void-linux/void-packages/pull/48817
grub: update to 2.12.
#### Testing the changes
- I tested the changes in this PR: **BRIEFLY**
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- x86_64-musl
- i686
A patch file from https://github.com/void-linux/void-packages/pull/48817.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-grub-48817.patch --]
[-- Type: text/x-diff, Size: 12057 bytes --]
From d8263902d530d7cbf6d52160068a45b79658b505 Mon Sep 17 00:00:00 2001
From: Benedikt Brinkmann <datacobra@thinkbot.de>
Date: Sun, 18 Feb 2024 18:14:58 +0100
Subject: [PATCH] grub: update to 2.12.
---
.../grub/patches/revert-fwsetup-2.12.patch | 31 ++++++++++
srcpkgs/grub/patches/xfs.patch | 60 ++++++++++++++++++
srcpkgs/grub/patches/xx-e2fsprogs-1.patch | 62 -------------------
srcpkgs/grub/patches/xx-e2fsprogs-2.patch | 60 ------------------
srcpkgs/grub/template | 13 ++--
5 files changed, 99 insertions(+), 127 deletions(-)
create mode 100644 srcpkgs/grub/patches/revert-fwsetup-2.12.patch
create mode 100644 srcpkgs/grub/patches/xfs.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-1.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-2.patch
diff --git a/srcpkgs/grub/patches/revert-fwsetup-2.12.patch b/srcpkgs/grub/patches/revert-fwsetup-2.12.patch
new file mode 100644
index 00000000000000..85ba31dd5ac5b4
--- /dev/null
+++ b/srcpkgs/grub/patches/revert-fwsetup-2.12.patch
@@ -0,0 +1,31 @@
+grub 2.12 introduced the `--is-supported` argument for fwsetup, and runs it for
+efi systems to determine whether to show the uefi-firmware menu item.
+
+The problem is that grub 2.06 does not support the `--is-supported` flag yet,
+and calling it just crashes grub, causing the machine to reboot.
+
+Showing a menu entry for uefi-firmware that may not work is infinitely better
+than crashing and preventing the machine to boot, so remove the condition and
+always show the menu entry.
+
+See also: https://bugs.archlinux.org/task/75701
+
+diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in
+index 1c2365d..b6041b5 100644
+--- a/util/grub.d/30_uefi-firmware.in
++++ b/util/grub.d/30_uefi-firmware.in
+@@ -32,11 +32,8 @@ gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2
+
+ cat << EOF
+ if [ "\$grub_platform" = "efi" ]; then
+- fwsetup --is-supported
+- if [ "\$?" = 0 ]; then
+- menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+- fwsetup
+- }
+- fi
++ menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
++ fwsetup
++ }
+ fi
+ EOF
diff --git a/srcpkgs/grub/patches/xfs.patch b/srcpkgs/grub/patches/xfs.patch
new file mode 100644
index 00000000000000..6982be08f66720
--- /dev/null
+++ b/srcpkgs/grub/patches/xfs.patch
@@ -0,0 +1,60 @@
+fixes "unknown filesystem" error when installing grub on a system that
+uses XFS for /boot.
+
+From 68dd65cfdaad08b1f8ec01b84949b0bf88bc0d8c Mon Sep 17 00:00:00 2001
+From: Jon DeVree <nuxi@vault24.org>
+Date: Sun, 11 Feb 2024 10:34:58 -0500
+Subject: [PATCH] fs/xfs: Handle non-continuous data blocks in directory
+ extents
+
+The directory extent list does not have to be a continuous list of data
+blocks. When GRUB tries to read a non-existant member of the list,
+grub_xfs_read_file() will return a block of zero'ed memory. Checking for
+a zero'ed magic number is sufficient to skip this non-existant data block.
+
+Prior to commit 07318ee7e (fs/xfs: Fix XFS directory extent parsing)
+this was handled as a subtle side effect of reading the (non-existant)
+tail data structure. Since the block was zero'ed the computation of the
+number of directory entries in the block would return 0 as well.
+
+Fixes: 07318ee7e (fs/xfs: Fix XFS directory extent parsing)
+Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2254370
+
+Signed-off-by: Jon DeVree <nuxi@vault24.org>
+Reviewed-By: Vladimir Serbinenko <phcoder@gmail.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+---
+ grub-core/fs/xfs.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
+index bc2224dbb..8e02ab4a3 100644
+--- a/grub-core/fs/xfs.c
++++ b/grub-core/fs/xfs.c
+@@ -902,6 +902,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
+ grub_xfs_first_de(dir->data, dirblock);
+ int entries = -1;
+ char *end = dirblock + dirblk_size;
++ grub_uint32_t magic;
+
+ numread = grub_xfs_read_file (dir, 0, 0,
+ blk << dirblk_log2,
+@@ -912,6 +913,15 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
+ return 0;
+ }
+
++ /*
++ * If this data block isn't actually part of the extent list then
++ * grub_xfs_read_file() returns a block of zeros. So, if the magic
++ * number field is all zeros then this block should be skipped.
++ */
++ magic = *(grub_uint32_t *)(void *) dirblock;
++ if (!magic)
++ continue;
++
+ /*
+ * Leaf and tail information are only in the data block if the number
+ * of extents is 1.
+--
+2.44.0
+
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch b/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
deleted file mode 100644
index 5cd83273be1a59..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
-useful because e2fsprogs 1.47 defaults to this enabled, and grub won't touch it
---
-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
-
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch b/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
deleted file mode 100644
index 7e02e2087799ff..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b
-useful to support the large_dir ext4 feature
---
-From 2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 30 Aug 2022 22:41:59 -0400
-Subject: fs/ext2: Ignore the large_dir incompat feature
-
-Recently, ext4 added the large_dir feature, which adds support for
-a 3 level htree directory support.
-
-The GRUB supports existing file systems with htree directories by
-ignoring their existence, and since the index nodes for the hash tree
-look like deleted directory entries (by design), the GRUB can simply do
-a brute force O(n) linear search of directories. The same is true for
-3 level deep htrees indicated by large_dir feature flag.
-
-Hence, it is safe for the GRUB to ignore the large_dir incompat feature.
-
-Fixes: https://savannah.gnu.org/bugs/?61606
-
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
----
- grub-core/fs/ext2.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
-index 0989e26..e1cc5e6 100644
---- a/grub-core/fs/ext2.c
-+++ b/grub-core/fs/ext2.c
-@@ -104,6 +104,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
- #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
- #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
- #define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000
-+#define EXT4_FEATURE_INCOMPAT_LARGEDIR 0x4000 /* >2GB or 3 level htree */
- #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000
-
- /* The set of back-incompatible features this driver DOES support. Add (OR)
-@@ -129,10 +130,17 @@ GRUB_MOD_LICENSE ("GPLv3+");
- * 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.
-+ * large_dir: Not back-incompatible given that the GRUB ext2 driver does
-+ * not implement EXT2_FEATURE_COMPAT_DIR_INDEX. If the GRUB
-+ * eventually supports the htree feature (aka dir_index)
-+ * it should support 3 level htrees and then move
-+ * EXT4_FEATURE_INCOMPAT_LARGEDIR to
-+ * EXT2_DRIVER_SUPPORTED_INCOMPAT.
- */
- #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
- | EXT4_FEATURE_INCOMPAT_MMP \
-- | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
-+ | EXT4_FEATURE_INCOMPAT_CSUM_SEED \
-+ | EXT4_FEATURE_INCOMPAT_LARGEDIR)
-
- #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U
-
---
-cgit v1.1
diff --git a/srcpkgs/grub/template b/srcpkgs/grub/template
index 7294fa503f3a73..95c56d1ce32107 100644
--- a/srcpkgs/grub/template
+++ b/srcpkgs/grub/template
@@ -1,11 +1,11 @@
# Template file for 'grub'
pkgname=grub
-version=2.06
-revision=3
+version=2.12
+revision=1
hostmakedepends="python3 pkg-config flex freetype-devel font-unifont-bdf help2man
automake gettext-devel-tools"
-makedepends="libusb-compat-devel ncurses-devel freetype-devel
- liblzma-devel device-mapper-devel fuse-devel"
+makedepends="libusb-compat-devel ncurses-devel freetype-devel liblzma-devel
+ device-mapper-devel fuse-devel"
depends="os-prober"
conf_files="/etc/default/grub /etc/grub.d/*"
short_desc="GRand Unified Bootloader 2"
@@ -13,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.gnu.org/software/grub/"
distfiles="${GNU_SITE}/grub/grub-${version}.tar.xz"
-checksum=b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
+checksum=f3c97391f7c4eaa677a78e090c7e97e6dc47b16f655f04683ebd37bef7fe0faa
archs="i686* x86_64* aarch64* ppc ppc-musl ppc64*"
nopie=yes
@@ -46,6 +46,9 @@ esac
pre_configure() {
autoreconf -fi
+
+ # Required to fix 2.12 build - (empty) file is missing from release
+ touch $XBPS_BUILDDIR/grub-${version}/grub-core/extra_deps.lst
}
do_configure() {
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (9 preceding siblings ...)
2024-04-27 15:08 ` [PR PATCH] [Updated] " classabbyamp
@ 2024-04-27 15:08 ` classabbyamp
2024-04-27 16:30 ` classabbyamp
` (2 subsequent siblings)
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-27 15:08 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 194 bytes --]
New comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-2080866810
Comment:
added patch fixing grub-install on xfs, rebased
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (10 preceding siblings ...)
2024-04-27 15:08 ` classabbyamp
@ 2024-04-27 16:30 ` classabbyamp
2024-04-28 17:40 ` [PR PATCH] [Updated] " classabbyamp
2024-04-28 17:55 ` [PR PATCH] [Merged]: " classabbyamp
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-27 16:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 237 bytes --]
New comment by classabbyamp on void-packages repository
https://github.com/void-linux/void-packages/pull/48817#issuecomment-2081029574
Comment:
tested on:
- x86_64-efi with ext4
- x86_64-efi with luks1 and xfs
- arm64-efi with ext4
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PR PATCH] [Updated] grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (11 preceding siblings ...)
2024-04-27 16:30 ` classabbyamp
@ 2024-04-28 17:40 ` classabbyamp
2024-04-28 17:55 ` [PR PATCH] [Merged]: " classabbyamp
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-28 17:40 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 597 bytes --]
There is an updated pull request by classabbyamp against master on the void-packages repository
https://github.com/dataCobra/void-packages grub
https://github.com/void-linux/void-packages/pull/48817
grub: update to 2.12.
#### Testing the changes
- I tested the changes in this PR: **BRIEFLY**
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- x86_64-musl
- i686
A patch file from https://github.com/void-linux/void-packages/pull/48817.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-grub-48817.patch --]
[-- Type: text/x-diff, Size: 12002 bytes --]
From 0b66a9773f308f503c04c74613c08f915846bd49 Mon Sep 17 00:00:00 2001
From: Benedikt Brinkmann <datacobra@thinkbot.de>
Date: Sun, 18 Feb 2024 18:14:58 +0100
Subject: [PATCH] grub: update to 2.12.
---
.../grub/patches/revert-fwsetup-2.12.patch | 31 ++++++++++
srcpkgs/grub/patches/xfs.patch | 60 ++++++++++++++++++
srcpkgs/grub/patches/xx-e2fsprogs-1.patch | 62 -------------------
srcpkgs/grub/patches/xx-e2fsprogs-2.patch | 60 ------------------
srcpkgs/grub/template | 13 ++--
5 files changed, 99 insertions(+), 127 deletions(-)
create mode 100644 srcpkgs/grub/patches/revert-fwsetup-2.12.patch
create mode 100644 srcpkgs/grub/patches/xfs.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-1.patch
delete mode 100644 srcpkgs/grub/patches/xx-e2fsprogs-2.patch
diff --git a/srcpkgs/grub/patches/revert-fwsetup-2.12.patch b/srcpkgs/grub/patches/revert-fwsetup-2.12.patch
new file mode 100644
index 00000000000000..85ba31dd5ac5b4
--- /dev/null
+++ b/srcpkgs/grub/patches/revert-fwsetup-2.12.patch
@@ -0,0 +1,31 @@
+grub 2.12 introduced the `--is-supported` argument for fwsetup, and runs it for
+efi systems to determine whether to show the uefi-firmware menu item.
+
+The problem is that grub 2.06 does not support the `--is-supported` flag yet,
+and calling it just crashes grub, causing the machine to reboot.
+
+Showing a menu entry for uefi-firmware that may not work is infinitely better
+than crashing and preventing the machine to boot, so remove the condition and
+always show the menu entry.
+
+See also: https://bugs.archlinux.org/task/75701
+
+diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in
+index 1c2365d..b6041b5 100644
+--- a/util/grub.d/30_uefi-firmware.in
++++ b/util/grub.d/30_uefi-firmware.in
+@@ -32,11 +32,8 @@ gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2
+
+ cat << EOF
+ if [ "\$grub_platform" = "efi" ]; then
+- fwsetup --is-supported
+- if [ "\$?" = 0 ]; then
+- menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+- fwsetup
+- }
+- fi
++ menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
++ fwsetup
++ }
+ fi
+ EOF
diff --git a/srcpkgs/grub/patches/xfs.patch b/srcpkgs/grub/patches/xfs.patch
new file mode 100644
index 00000000000000..6982be08f66720
--- /dev/null
+++ b/srcpkgs/grub/patches/xfs.patch
@@ -0,0 +1,60 @@
+fixes "unknown filesystem" error when installing grub on a system that
+uses XFS for /boot.
+
+From 68dd65cfdaad08b1f8ec01b84949b0bf88bc0d8c Mon Sep 17 00:00:00 2001
+From: Jon DeVree <nuxi@vault24.org>
+Date: Sun, 11 Feb 2024 10:34:58 -0500
+Subject: [PATCH] fs/xfs: Handle non-continuous data blocks in directory
+ extents
+
+The directory extent list does not have to be a continuous list of data
+blocks. When GRUB tries to read a non-existant member of the list,
+grub_xfs_read_file() will return a block of zero'ed memory. Checking for
+a zero'ed magic number is sufficient to skip this non-existant data block.
+
+Prior to commit 07318ee7e (fs/xfs: Fix XFS directory extent parsing)
+this was handled as a subtle side effect of reading the (non-existant)
+tail data structure. Since the block was zero'ed the computation of the
+number of directory entries in the block would return 0 as well.
+
+Fixes: 07318ee7e (fs/xfs: Fix XFS directory extent parsing)
+Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2254370
+
+Signed-off-by: Jon DeVree <nuxi@vault24.org>
+Reviewed-By: Vladimir Serbinenko <phcoder@gmail.com>
+Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
+---
+ grub-core/fs/xfs.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c
+index bc2224dbb..8e02ab4a3 100644
+--- a/grub-core/fs/xfs.c
++++ b/grub-core/fs/xfs.c
+@@ -902,6 +902,7 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
+ grub_xfs_first_de(dir->data, dirblock);
+ int entries = -1;
+ char *end = dirblock + dirblk_size;
++ grub_uint32_t magic;
+
+ numread = grub_xfs_read_file (dir, 0, 0,
+ blk << dirblk_log2,
+@@ -912,6 +913,15 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir,
+ return 0;
+ }
+
++ /*
++ * If this data block isn't actually part of the extent list then
++ * grub_xfs_read_file() returns a block of zeros. So, if the magic
++ * number field is all zeros then this block should be skipped.
++ */
++ magic = *(grub_uint32_t *)(void *) dirblock;
++ if (!magic)
++ continue;
++
+ /*
+ * Leaf and tail information are only in the data block if the number
+ * of extents is 1.
+--
+2.44.0
+
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch b/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
deleted file mode 100644
index 5cd83273be1a59..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-1.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7fd5feff97c4b1f446f8fcf6d37aca0c64e7c763
-useful because e2fsprogs 1.47 defaults to this enabled, and grub won't touch it
---
-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
-
diff --git a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch b/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
deleted file mode 100644
index 7e02e2087799ff..00000000000000
--- a/srcpkgs/grub/patches/xx-e2fsprogs-2.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Patch-Source: https://git.savannah.gnu.org/cgit/grub.git/patch/?id=2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b
-useful to support the large_dir ext4 feature
---
-From 2e9fa73a040462b81bfbfe56c0bc7ad2d30b446b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso@mit.edu>
-Date: Tue, 30 Aug 2022 22:41:59 -0400
-Subject: fs/ext2: Ignore the large_dir incompat feature
-
-Recently, ext4 added the large_dir feature, which adds support for
-a 3 level htree directory support.
-
-The GRUB supports existing file systems with htree directories by
-ignoring their existence, and since the index nodes for the hash tree
-look like deleted directory entries (by design), the GRUB can simply do
-a brute force O(n) linear search of directories. The same is true for
-3 level deep htrees indicated by large_dir feature flag.
-
-Hence, it is safe for the GRUB to ignore the large_dir incompat feature.
-
-Fixes: https://savannah.gnu.org/bugs/?61606
-
-Signed-off-by: Theodore Ts'o <tytso@mit.edu>
-Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
----
- grub-core/fs/ext2.c | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c
-index 0989e26..e1cc5e6 100644
---- a/grub-core/fs/ext2.c
-+++ b/grub-core/fs/ext2.c
-@@ -104,6 +104,7 @@ GRUB_MOD_LICENSE ("GPLv3+");
- #define EXT4_FEATURE_INCOMPAT_MMP 0x0100
- #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200
- #define EXT4_FEATURE_INCOMPAT_CSUM_SEED 0x2000
-+#define EXT4_FEATURE_INCOMPAT_LARGEDIR 0x4000 /* >2GB or 3 level htree */
- #define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000
-
- /* The set of back-incompatible features this driver DOES support. Add (OR)
-@@ -129,10 +130,17 @@ GRUB_MOD_LICENSE ("GPLv3+");
- * 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.
-+ * large_dir: Not back-incompatible given that the GRUB ext2 driver does
-+ * not implement EXT2_FEATURE_COMPAT_DIR_INDEX. If the GRUB
-+ * eventually supports the htree feature (aka dir_index)
-+ * it should support 3 level htrees and then move
-+ * EXT4_FEATURE_INCOMPAT_LARGEDIR to
-+ * EXT2_DRIVER_SUPPORTED_INCOMPAT.
- */
- #define EXT2_DRIVER_IGNORED_INCOMPAT ( EXT3_FEATURE_INCOMPAT_RECOVER \
- | EXT4_FEATURE_INCOMPAT_MMP \
-- | EXT4_FEATURE_INCOMPAT_CSUM_SEED)
-+ | EXT4_FEATURE_INCOMPAT_CSUM_SEED \
-+ | EXT4_FEATURE_INCOMPAT_LARGEDIR)
-
- #define EXT3_JOURNAL_MAGIC_NUMBER 0xc03b3998U
-
---
-cgit v1.1
diff --git a/srcpkgs/grub/template b/srcpkgs/grub/template
index 7294fa503f3a73..2b2d8e88a21fa5 100644
--- a/srcpkgs/grub/template
+++ b/srcpkgs/grub/template
@@ -1,11 +1,11 @@
# Template file for 'grub'
pkgname=grub
-version=2.06
-revision=3
+version=2.12
+revision=1
hostmakedepends="python3 pkg-config flex freetype-devel font-unifont-bdf help2man
automake gettext-devel-tools"
-makedepends="libusb-compat-devel ncurses-devel freetype-devel
- liblzma-devel device-mapper-devel fuse-devel"
+makedepends="libusb-compat-devel ncurses-devel freetype-devel liblzma-devel
+ device-mapper-devel fuse-devel"
depends="os-prober"
conf_files="/etc/default/grub /etc/grub.d/*"
short_desc="GRand Unified Bootloader 2"
@@ -13,7 +13,7 @@ maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.gnu.org/software/grub/"
distfiles="${GNU_SITE}/grub/grub-${version}.tar.xz"
-checksum=b79ea44af91b93d17cd3fe80bdae6ed43770678a9a5ae192ccea803ebb657ee1
+checksum=f3c97391f7c4eaa677a78e090c7e97e6dc47b16f655f04683ebd37bef7fe0faa
archs="i686* x86_64* aarch64* ppc ppc-musl ppc64*"
nopie=yes
@@ -46,6 +46,9 @@ esac
pre_configure() {
autoreconf -fi
+
+ # XXX: empty file missing from 2.12 release
+ touch grub-core/extra_deps.lst
}
do_configure() {
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PR PATCH] [Merged]: grub: update to 2.12.
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
` (12 preceding siblings ...)
2024-04-28 17:40 ` [PR PATCH] [Updated] " classabbyamp
@ 2024-04-28 17:55 ` classabbyamp
13 siblings, 0 replies; 15+ messages in thread
From: classabbyamp @ 2024-04-28 17:55 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 437 bytes --]
There's a merged pull request on the void-packages repository
grub: update to 2.12.
https://github.com/void-linux/void-packages/pull/48817
Description:
#### Testing the changes
- I tested the changes in this PR: **BRIEFLY**
#### Local build testing
- I built this PR locally for my native architecture, (x86_64-glibc)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
- x86_64-musl
- i686
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2024-04-28 17:55 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-02-18 17:18 [PR PATCH] grub: update to 2.12 dataCobra
2024-02-26 9:41 ` dataCobra
2024-02-26 9:41 ` dataCobra
2024-02-26 19:35 ` dataCobra
2024-03-02 16:30 ` classabbyamp
2024-03-25 6:43 ` dataCobra
2024-03-25 6:43 ` dataCobra
2024-04-27 13:08 ` classabbyamp
2024-04-27 14:00 ` [PR PATCH] [Updated] " classabbyamp
2024-04-27 14:00 ` classabbyamp
2024-04-27 15:08 ` [PR PATCH] [Updated] " classabbyamp
2024-04-27 15:08 ` classabbyamp
2024-04-27 16:30 ` classabbyamp
2024-04-28 17:40 ` [PR PATCH] [Updated] " classabbyamp
2024-04-28 17:55 ` [PR PATCH] [Merged]: " classabbyamp
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).