diff --git a/srcpkgs/grub-customizer/template b/srcpkgs/grub-customizer/template index e1ddd8088b6897..779b9e2e57975f 100644 --- a/srcpkgs/grub-customizer/template +++ b/srcpkgs/grub-customizer/template @@ -1,7 +1,7 @@ # Template file for 'grub-customizer' pkgname=grub-customizer -version=5.2.3 -revision=2 +version=5.2.5 +revision=1 build_style=cmake hostmakedepends="pkg-config" makedepends="gtkmm-devel openssl-devel libarchive-devel" @@ -12,7 +12,7 @@ maintainer="Orphaned " license="GPL-3.0-or-later" homepage="https://launchpad.net/grub-customizer/" distfiles="https://launchpad.net/grub-customizer/${version%.*}/${version}/+download/grub-customizer_${version}.tar.gz" -checksum=2e357b114f4f5ebb868cb249d9ff60512d7ec49131314d378212717cd085bd21 +checksum=a0b15150a0df792dd44313b88439fb01a60fdbf123d2558a55606a5d3f62cc63 pre_configure() { # Modify desktop file for Void Linux diff --git a/srcpkgs/grub/INSTALL.msg b/srcpkgs/grub/INSTALL.msg new file mode 100644 index 00000000000000..61694515701315 --- /dev/null +++ b/srcpkgs/grub/INSTALL.msg @@ -0,0 +1,2 @@ +To ensure bootloader functionality, it is recommended to run grub-install +to update the grub bootloader modules in /boot when updating to grub 2.14. diff --git a/srcpkgs/grub/patches/devicetree-loading.patch b/srcpkgs/grub/patches/devicetree-loading.patch index b2284bf0f35937..9c4cb9c6f9f466 100644 --- a/srcpkgs/grub/patches/devicetree-loading.patch +++ b/srcpkgs/grub/patches/devicetree-loading.patch @@ -6,12 +6,12 @@ based on https://src.fedoraproject.org/rpms/grub2/blob/rawhide/f/0022-Add-device --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -255,7 +255,8 @@ - GRUB_ENABLE_CRYPTODISK \ +@@ -256,7 +256,8 @@ GRUB_BADRAM \ GRUB_OS_PROBER_SKIP_LIST \ -- GRUB_DISABLE_SUBMENU -+ GRUB_DISABLE_SUBMENU \ + GRUB_DISABLE_SUBMENU \ +- GRUB_FORCE_EFI_ALL_VIDEO ++ GRUB_FORCE_EFI_ALL_VIDEO \ + GRUB_DEFAULT_DTB if test "x${grub_cfg}" != "x"; then diff --git a/srcpkgs/grub/patches/grub-2.14-efi_uga.patch b/srcpkgs/grub/patches/grub-2.14-efi_uga.patch new file mode 100644 index 00000000000000..51819d043184b3 --- /dev/null +++ b/srcpkgs/grub/patches/grub-2.14-efi_uga.patch @@ -0,0 +1,41 @@ +https://gitlab.freedesktop.org/gnu-grub/grub/-/merge_requests/10 + +From 129588e498647842c6f13f7809ef9ac583e2351b Mon Sep 17 00:00:00 2001 +From: Egor Ignatov +Date: Thu, 19 Mar 2026 17:22:11 +0500 +Subject: [PATCH] util/grub.d/00_header.in: Load efi_uga only on x86 EFI + platforms + +The efi_uga module is only built for i386-efi and x86_64-efi firmware), but +commit ea0b76dc4a ("Disable loading all_video for EFI") loads it unconditionally +on all EFI platforms. This causes a "file not found" error on aarch64-efi and +other non-x86 EFI targets. + +Guard the insmod with a $grub_cpu check so the module is only +loaded where it is actually available. + +Fixes: ea0b76dc4 ("util/grub.d/00_header.in: Disable loading all_video for EFI") + +Signed-off-by: Egor Ignatov +--- + util/grub.d/00_header.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in +index 77834cfaf..1afe41e67 100644 +--- a/util/grub.d/00_header.in ++++ b/util/grub.d/00_header.in +@@ -135,7 +135,9 @@ else # GRUB_FORCE_EFI_ALL_VIDEO is not set true + cat < +Date: Thu, 16 Oct 2014 23:43:51 -0400 +Subject: [PATCH] 10_linux: default gfxpayload=keep only when booting using EFI + +A given kernel may be compiled with CONFIG_FB_EFI, but may be booted in +legacy PC-BIOS mode. It is not safe to set gfxmode=keep under these +conditions, and this may result in a black screen once the kernel +starts. + +Signed-off-by: Mike Gilbert +Reviewed-by: Neal Gompa +Reviewed-by: Leo Sandoval +--- + util/grub.d/10_linux.in | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 1233b112b..737e1c30c 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -118,7 +118,9 @@ linux_entry () + echo " load_video" | sed "s/^/$submenu_indentation/" + if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ + && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then +- echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" ++ echo ' if [ "x$grub_platform" = xefi ]; then' | sed "s/^/$submenu_indentation/" ++ echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" ++ echo ' fi' | sed "s/^/$submenu_indentation/" + fi + else + if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then +-- +GitLab + diff --git a/srcpkgs/grub/patches/revert-autoconf-archive.patch b/srcpkgs/grub/patches/revert-autoconf-archive.patch new file mode 100644 index 00000000000000..179781b9229ddb --- /dev/null +++ b/srcpkgs/grub/patches/revert-autoconf-archive.patch @@ -0,0 +1,34 @@ +From 7b72d6cbd548f714a0122c3cd1dd9a70db10894a Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:15 -0500 +Subject: [PATCH] Revert "configure: Print a more helpful error if + autoconf-archive is not installed" + +This reverts commit ac042f3f5 (configure: Print a more helpful error if +autoconf-archive is not installed). + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d8ca1b7c1..45f19f188 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1792,11 +1792,6 @@ LIBS="" + # Defined in acinclude.m4. + grub_ASM_USCORE + grub_PROG_TARGET_CC +- +-# The error message produced by autoconf if autoconf-archive is not installed is +-# quite misleading and not very helpful. So, try point people in the right direction. +-m4_ifndef([AX_CHECK_LINK_FLAG], [m4_fatal([autoconf-archive is missing. You must install it to generate the configure script.])]) +- + if test "x$TARGET_APPLE_LINKER" != x1 ; then + AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000], + [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"], +-- +GitLab + diff --git a/srcpkgs/grub/patches/revert-image-base.patch b/srcpkgs/grub/patches/revert-image-base.patch new file mode 100644 index 00000000000000..6080de8c944463 --- /dev/null +++ b/srcpkgs/grub/patches/revert-image-base.patch @@ -0,0 +1,72 @@ +From 1dc2986c7e8480d955f87d276d31400116a21fac Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:16 -0500 +Subject: [PATCH] Revert "configure: Check linker for --image-base support" + +This reverts commit 1a5417f39 (configure: Check linker for --image-base support). + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + acinclude.m4 | 5 ----- + configure.ac | 14 ++------------ + 2 files changed, 2 insertions(+), 17 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 70c1912f8..fa7840f09 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -79,11 +79,6 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE], + [AC_MSG_CHECKING([whether ${TARGET_OBJCOPY} works for absolute addresses]) + AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, + [cat > conftest.c <<\EOF +-asm ( +- ".globl start, _start, __start\n" +- ".ifdef cmain; .set start = _start = __start = cmain\n.endif\n" +- ".ifdef _cmain; .set start = _start = __start = _cmain\n.endif\n" +-); + void cmain (void); + void + cmain (void) +diff --git a/configure.ac b/configure.ac +index 45f19f188..209c0fb11 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1461,6 +1461,7 @@ elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_c + TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc" + TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}" + TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc" ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" + TARGET_IMG_CFLAGS= + else + TARGET_APPLE_LINKER=0 +@@ -1468,6 +1469,7 @@ else + TARGET_IMG_LDSCRIPT= + TARGET_IMG_LDFLAGS='-Wl,-N' + TARGET_IMG_LDFLAGS_AC='-Wl,-N' ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" + TARGET_IMG_CFLAGS= + fi + +@@ -1793,18 +1795,6 @@ LIBS="" + grub_ASM_USCORE + grub_PROG_TARGET_CC + if test "x$TARGET_APPLE_LINKER" != x1 ; then +-AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000], +- [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"], +- [TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"], +- [], +- [AC_LANG_SOURCE([ +-asm (".globl start; start:"); +-asm (".globl _start; _start:"); +-asm (".globl __start; __start:"); +-void __main (void); +-void __main (void) {} +-int main (void); +- ])]) + grub_PROG_OBJCOPY_ABSOLUTE + fi + grub_PROG_LD_BUILD_ID_NONE +-- +GitLab + diff --git a/srcpkgs/grub/patches/xfs.patch b/srcpkgs/grub/patches/xfs.patch deleted file mode 100644 index 6982be08f66720..00000000000000 --- a/srcpkgs/grub/patches/xfs.patch +++ /dev/null @@ -1,60 +0,0 @@ -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 -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 -Reviewed-By: Vladimir Serbinenko -Reviewed-by: Daniel Kiper ---- - 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/template b/srcpkgs/grub/template index 5bf8c1d7909f80..ef64e351e95a03 100644 --- a/srcpkgs/grub/template +++ b/srcpkgs/grub/template @@ -1,7 +1,7 @@ # Template file for 'grub' pkgname=grub -version=2.12 -revision=2 +version=2.14 +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 @@ -11,10 +11,10 @@ conf_files="/etc/default/grub /etc/grub.d/*" short_desc="GRand Unified Bootloader 2" maintainer="Orphaned " license="GPL-3.0-or-later" -homepage="https://www.gnu.org/software/grub/" -changelog="https://git.savannah.gnu.org/cgit/grub.git/plain/NEWS" +homepage="https://gnu-grub.freedesktop.org" +changelog="https://gitlab.freedesktop.org/gnu-grub/grub/-/raw/master/NEWS" distfiles="${GNU_SITE}/grub/grub-${version}.tar.xz" -checksum=f3c97391f7c4eaa677a78e090c7e97e6dc47b16f655f04683ebd37bef7fe0faa +checksum=bc8d3c73535b8838d8c8e2654d73edc4e6ae8c8acdb45d5df5dc9a1547446d43 archs="i686* x86_64* aarch64* ppc ppc-musl ppc64*" nopie=yes @@ -47,9 +47,6 @@ esac pre_configure() { autoreconf -fi - - # XXX: empty file missing from 2.12 release - touch grub-core/extra_deps.lst } do_configure() { @@ -73,6 +70,9 @@ do_configure() { --enable-grub-mkfont --enable-grub-mount --disable-werror --sbindir=/usr/bin" + # https://bugs.gentoo.org/971544 + find grub-core/lib/gnulib -name '*.in.h' | sed 's/.in.h$/.h/' | xargs rm -fv + # build tools msg_normal "Configuring grub tools...\n" mkdir $wrksrc/build @@ -158,10 +158,6 @@ do_install() { ${DESTDIR}/usr/bin/update-grub chmod 755 ${DESTDIR}/usr/bin/update-grub - vmkdir usr/share/bash-completion/completions - mv ${DESTDIR}/etc/bash_completion.d/grub \ - ${DESTDIR}/usr/share/bash-completion/completions - # Remove useless tools rm ${DESTDIR}/usr/bin/grub-ofpathname rm ${DESTDIR}/usr/bin/grub-sparc64-setup