Github messages for voidlinux
 help / color / mirror / Atom feed
* [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).