Incorrect backport range — missing grub fix for issue #14
Description:
Installing the current grub package from the Arch repositories results in a boot failure caused by the Boot Loader Interface script 25_bli.
The system becomes unbootable until /etc/grub.d/25_bli is removed and GRUB is reinstalled/regenerated.
When rebuilding the same PKGBUILD locally with an updated _backports range that includes the actual upstream fix, the package works correctly — the system boots normally.
This indicates that the official package’s _backports range ends too early and misses the upstream fix that resolves the issue.
Additional info:
package version(s):
grub 2:2.12.r418.g6b5c671d-1
config and/or log files:
Affected file: /etc/grub.d/25_bli
Boot failure resolves immediately when it is removed and GRUB is reinstalled:
sudo rm -f /etc/grub.d/25_bli
sudo grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
sudo grub-mkconfig -o /boot/grub/grub.cfg
link to upstream bug report, if any:
- Arch BBS: https://bbs.archlinux.org/viewtopic.php?pid=2263528
- Arch GitLab packaging issue: #14 (closed)
Relevant commits or issue:
See #14 (closed) and commit 0215a7df
- Current PKGBUILD
_backportsrange ends at
19c698d123ae46d7a8fbf425067aff2d10dac8ca(July 21 2025)
→ https://gitlab.archlinux.org/archlinux/packaging/packages/grub/-/blob/main/PKGBUILD?ref_type=heads#L105 - Actual upstream fix was introduced later in:
9a725391f1a70b8a0ae4acde8fbb22a78e52697d- Finalized by
6b5c671d35b1b84468da1fef2b9bd8e05682f7e6(Sept 20 2025)
Steps to reproduce:
-
Remove any old grub configuration and ensure no
/etc/grub.dleftovers remain:sudo pacman -Rsnc grub -
sudo rm -rf /etc/grub.d || true -
Install the official grub package:
sudo pacman -Syu grub -
Generate GRUB configuration:
sudo grub-mkconfig -o /boot/grub/grub.cfg -
Reboot.
Expected: System boots normally.
Observed: Boot fails (stuck during BLI phase). Removing/etc/grub.d/25_bliand reinstalling GRUB resolves it. -
Rebuild grub locally from the same PKGBUILD, but include the latest upstream fix:
`# In PKGBUILD, replace:
_backports=("grub-${_pkgver}..6b5c671d35b1b84468da1fef2b9bd8e05682f7e6")
makepkg -Cfs --skippgpchecksudo pacman -U ./grub-*.pkg.tar.zstsudo grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB --rechecksudo grub-mkconfig -o /boot/grub/grub.cfg reboot→ System boots correctly.
Diagnosis / root cause:
The _backports range in the official PKGBUILD stops at commit 19c698d123a (July 2025), which predates the upstream fix for issue #14 (closed)
Therefore, the current Arch grub package does not include the necessary commits that fix the 25_bli/BLI boot issue.
Rebuilding locally with _backports updated to include 6b5c671d... integrates the fix and eliminates the problem entirely.
Suggested fixes / mitigation:
-
Update
_backportsin PKGBUILD to include the correct upstream fix:_backports=("grub-${_pkgver}..6b5c671d35b1b84468da1fef2b9bd8e05682f7e6")or at least up to
9a725391f1a70b8a0ae4acde8fbb22a78e52697d. -
Optionally add a
post_upgrade()step ingrub.installto remove an obsolete/etc/grub.d/25_blifor users upgrading from affected versions:post_upgrade() { if [[ -e /etc/grub.d/25_bli ]]; then echo "Removing obsolete /etc/grub.d/25_bli (known to cause boot issues)" rm -f /etc/grub.d/25_bli fi } -
Once this is merged, the rebuilt package works correctly across all tested environments (UEFI and BIOS).
Summary:
The packaged grub 2:2.12.r418.g6b5c671d-1 still lacks the upstream fix for the 25_bli boot failure because its _backports range stops before the required commits. Extending the range up to 6b5c671d35b1b84468da1fef2b9bd8e05682f7e6 resolves the issue completely.