releases/portage/isos: add genkernel patch for ppc64

since it's still not fixed in genkernel, we can carry a
local patch.

patch is conditional for ppc64 only, it will affect only ppc64le
iso for now. ppc64 installcd is ppc, not ppc64.

Bug: https://bugs.gentoo.org/796272
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
This commit is contained in:
Georgy Yakovlev 2021-07-03 14:50:27 -07:00
parent bcc8c249ae
commit 35826178e4
No known key found for this signature in database
GPG key ID: A272C8F015129D52
2 changed files with 82 additions and 0 deletions

View file

@ -0,0 +1,35 @@
post_src_unpack() {
if use ppc64; then
einfo "hooked by ${BASH_SOURCE[0]} in ${FUNCNAME[0]}"
local patchfile
patchfile="${PORTAGE_CONFIGROOT%/}/etc/portage/patches/genkernel-ppc64-iso.patch"
if [[ -f ${patchfile} ]]; then
einfo "found genkernel patch for bug https://bugs.gentoo.org/796272"
cd "${S}" || die
eapply "${patchfile}"
else
ewarn "no genkernel patch found, skipping hook"
fi
fi
}
post_pkg_postinst() {
einfo "hooked by ${BASH_SOURCE[0]} in ${FUNCNAME[0]}"
einfo "cleaning up bug https://bugs.gentoo.org/796272 workarounds"
# cleanup after ourselves, we don't want workarounds shipped to users
# and don't want updating all the spec files with new removal directives.
local envfile patchfile
envfile="${PORTAGE_CONFIGROOT%/}/etc/portage/env/sys-kernel/genkernel"
patchfile="${PORTAGE_CONFIGROOT%/}/etc/portage/patches/genkernel-ppc64-iso.patch"
local _x
for _x in "${envfile}" "${patchfile}"; do
if [[ -f ${_x} ]]; then
rm -vf "${_x}"
fi
done
rmdir -v --ignore-fail-on-non-empty "${PORTAGE_CONFIGROOT%/}/etc/portage/env/sys-kernel"
rmdir -v --ignore-fail-on-non-empty "${PORTAGE_CONFIGROOT%/}/etc/portage/env"
rmdir -v --ignore-fail-on-non-empty "${PORTAGE_CONFIGROOT%/}/etc/portage/patches"
}

View file

@ -0,0 +1,47 @@
From 628e1a30b384a900cf7095cf86441fed7a0300dc Mon Sep 17 00:00:00 2001
From: Georgy Yakovlev <gyakovlev@gentoo.org>
Date: Fri, 14 May 2021 22:05:33 -0700
Subject: [PATCH] defaults/initrd.scripts: don't skip top level devices with
partitions
ppc64 media should be mounted as /dev/sdX, not as /dev/sdX1
this loop was skipping /dev/sdX if /dev/sdX1 is present.
Bug: https://bugs.gentoo.org/796272
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
---
defaults/initrd.scripts | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index 5ec8adb..bfc36cf 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -178,24 +178,6 @@ findmediamount() {
# Check for a block device to mount
if [ -b "${x}" ]
then
- skip=0
- bsn=$(basename "${x}")
- #
- # If disk and it has at least one partition, skip.
- # We use /sys/block/${bsn}/${bsn}[0-9]* to make sure that we
- # don't skip device mapper devices. Even the craziest scenario
- # deserves a fair chance.
- #
- # shellcheck disable=SC2045
- for part in $(ls /sys/block/${bsn}/${bsn}*[0-9]* 2>/dev/null)
- do
- skip=1
- break;
- done
- if [ ${skip} -eq 1 ]
- then
- continue
- fi
good_msg "Attempting to mount media: ${x}" ${CRYPT_SILENT}
CDROOT_TYPE=$(determine_fs "${x}" "${CDROOT_TYPE}")
--
2.31.1