Open
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #5710 +/- ##
===========================================
+ Coverage 19.52% 29.87% +10.34%
===========================================
Files 19 18 -1
Lines 3021 2417 -604
===========================================
+ Hits 590 722 +132
+ Misses 2310 1549 -761
- Partials 121 146 +25 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
5d3f0fd to
3a42998
Compare
de443ae to
9d1d88a
Compare
bcb52e6 to
981fe9c
Compare
rene
approved these changes
Apr 1, 2026
Upgrade from GRUB 2.06 (amd64) / 2.06 (arm64, riscv64) to GRUB 2.12
for all architectures using a single unified patch set.
Key changes:
- All archs now use GRUB_COMMIT=grub-2.12 and GRUB_PATCHES=patches-2.12
- New patches-2.12/ with 14 shared patches (no arch-specific patch dirs
needed: riscv64 linux loader and arm64 search are upstream in 2.12)
- coreutils added to base BUILD_PKGS (gnulib bootstrap needs `join`)
- GNULIB_REVISION updated to match grub-2.12 bootstrap.conf
- Removed modules dropped in 2.12: linuxefi (merged into linux),
verify, gcry_sha256 (standalone)
- Added search_part_uuid to GRUB_MODULES_PORT (all archs)
- Added getenv to arm64 GRUB_MODULES (was already in amd64)
- GRUB_REPO updated to GitLab (freedesktop.org), replacing old Savannah URL
Patch set carries forward all EVE-specific features:
export-vars, cat-to-var, cmddevice, removable-drives, gpt, gptprio,
search_part_{label,uuid,disk_uuid}, watchdog timeout, measurefs,
no-measurefs-without-TPM, dt-fixup, getenv,
tpm-status-code (EFI status in unknown TPM error messages).
Dropped probe-partuuid patch: upstream GRUB 2.12 already provides
`probe --part-uuid` natively (handles both GPT and MBR); no grub.cfg
changes needed as the command syntax is identical.
API fixes for 2.12 compatibility:
- grub_efi_guid_t -> grub_guid_t (type renamed)
- grub_efi_get_variable() gained a void** output parameter
- efi_call_4() removed; replaced with direct function pointer calls
(fdt.c: only compiled for arm/riscv EFI, not x86)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Mikhail Malyshev <mike.malyshev@gmail.com>
Drop patches/, patches-2.06/, patches-aarch64-2.06/, and patches-riscv64-2.06/ — all absorbed into the new unified patches-2.12/ set in the previous commit. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Signed-off-by: Mikhail Malyshev <mike.malyshev@gmail.com>
- Update patch folder reference from patches/ to patches-2.12/ - List patches dropped in 2.12 (now upstream in mainline GRUB) - Document all 15 current patches with authors and upstreaming tasks - Add CoreOS/grub commit hashes for GPT patches (reference for future migrations) - Note GRUB's move to GitLab at freedesktop.org (March 13, 2026) Signed-off-by: Mikhail Malyshev <mike.malyshev@gmail.com>
981fe9c to
fd91db7
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Upgrade the EVE GRUB package from 2.02 and 2.06 to 2.12 for all three architectures (amd64, arm64, riscv64) using a single unified patch set.
2.12 is used by many modern distros
All patches were traced back to their original authors in https://github.com/coreos/grub and restored accordingly. The CoreOS-originated commits map as follows:
This gives a future porter a direct breadcrumb trail: they can git log those 4 coreos hashes and see exactly what upstream they need to diff against when targeting GRUB 2.14.
Key changes:
GRUB_COMMIT=grub-2.12with a singlepatches-2.12/directory — no arch-specific patch dirs neededpatches/,patches-2.06/,patches-aarch64-2.06/,patches-riscv64-2.06/coreutilsadded to baseBUILD_PKGS(gnulib bootstrap needsjoin)GNULIB_REVISIONupdated to match grub-2.12'sbootstrap.conflinuxefi(merged into genericlinux),verify,gcry_sha256as standalonesearch_part_uuidtoGRUB_MODULES_PORT(all archs); addedgetenvto arm64GRUB_MODULESGRUB 2.12 API compatibility fixes applied to our patches:
grub_efi_guid_t→grub_guid_t(type renamed in 2.12)grub_efi_get_variable()gained avoid **output parameterefi_call_4()removed from 2.12; replaced with direct function pointer calls infdt.c(fdt.moduleis only built for arm/riscv EFI, not x86, which is why this only surfaced on those targets)Why riscv64/arm64 arch-specific patch dirs are empty:
loader/efi/linux.cintroduced in 2.12 (handles all EFI archs)search_part_*modulesHow to test and validate this PR
Build the grub package for all three architectures:
All three should complete with
Build complete.Boot an amd64 device or QEMU image and verify:
Tested: Docker build verified for amd64, arm64, riscv64. Boot tested on amd64 QEMU — system boots normally, gptprio selects correct partition.
Changelog notes
Upgraded GRUB bootloader from version 2.06 to 2.12 for all supported architectures (amd64, arm64, riscv64).
PR Backports
Checklist
I've provided a proper description
I've added the proper documentation
I've tested my PR on amd64 device
I've tested my PR on arm64 device
I've written the test verification instructions
I've set the proper labels to this PR
I've checked the boxes above, or I've provided a good reason why I didn't
check them.