sys-boot/os-prober: fix handling of multiple initrd paths

Backport of upstream fix for handling multiple initrd paths like those
needed for Majaro installations.  Still requires changes in grub from
https://savannah.gnu.org/bugs/index.php?47681, if and when it gets merged
upstream.

Package-Manager: Portage-3.0.26, Repoman-3.0.3
Signed-off-by: Peter Levine <plevine457@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/22513
Signed-off-by: Ben Kohler <bkohler@gentoo.org>
This commit is contained in:
Peter Levine
2021-10-07 22:15:06 -04:00
committed by Ben Kohler
parent 9614f93406
commit fdcd2c6597
2 changed files with 36 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
Backport handling of multiple initrd paths, like those needed by Manjaro
installations. Note, it still requires resolution of
https://savannah.gnu.org/bugs/index.php?47681 on grub's end.
Commit: https://salsa.debian.org/installer-team/os-prober/-/commit/53b920e106f13acf87ef8a275161e20f94feeb8a
--- a/linux-boot-probes/mounted/common/40grub2
+++ b/linux-boot-probes/mounted/common/40grub2
@@ -78,11 +78,21 @@
fi
;;
initrd)
- initrd="$(echo "$2" | sed 's/(.*)//')"
- # Initrd same.
- if [ "$partition" != "$bootpart" ]; then
- initrd="/boot$initrd"
- fi
+ shift
+ initrd=""
+ for initrd_path in "$@"; do
+ # sed hack, as above
+ initrd_path="$(echo "$initrd_path" | sed 's/(.*)//')"
+ # Initrd same.
+ if [ "$partition" != "$bootpart" ]; then
+ initrd_path="/boot$initrd_path"
+ fi
+ if [ -z "$initrd" ]; then
+ initrd="$initrd_path"
+ else
+ initrd="$initrd $initrd_path"
+ fi
+ done
;;
"}")
entry_result

View File

@@ -27,6 +27,7 @@ QA_MULTILIB_PATHS="usr/lib/os-prober/.*"
PATCHES=(
"${FILESDIR}"/${PN}-1.79-mdraid-detection.patch
"${FILESDIR}"/${PN}-1.79-handle-multiple-initrd-paths.patch
"${FILESDIR}"/${PN}-1.79-btrfs-subvolume-detection.patch
"${FILESDIR}"/${PN}-1.79-use-fstab-name.patch
"${FILESDIR}"/${PN}-1.79-mounted-boot-partition-fix.patch