summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-07-18 08:34:46 +0200
committerAndrew Ammerlaan <andrewammerlaan@gentoo.org>2024-07-18 08:34:46 +0200
commit24aae6dd6e42c19b4e7415b9477621a357648219 (patch)
tree07ce28a076d7069129a06267b56010d707a0022c /sys-firmware
parentsys-kernel/linux-firmware: avoid mount-boot if ROOT is set (diff)
downloadgentoo-24aae6dd6e42c19b4e7415b9477621a357648219.tar.gz
gentoo-24aae6dd6e42c19b4e7415b9477621a357648219.tar.bz2
gentoo-24aae6dd6e42c19b4e7415b9477621a357648219.zip
sys-firmware/intel-microcode: avoid mount-boot if ROOT is set
and: - rdep on iucode_tool for .install hook - USE=hostonly: iucode_tool is executed in pkg_preinst and should therefore be an idep instead of a rdep (not that it really makes a functional difference since it is bdep anyway) - rework REQUIRED_USE: the *.install hooks require the split-ucode to be present. Since with USE=dist-kernel, USE=initramfs does not install intel-uc.img (instead it is delegared to installkernel via the *.install hooks) we need always split-ucode with dist-kernel. - *.install: exit gracefully if no ucode installed this mirrors recent changes in sys-kernel/linux-firmware Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Diffstat (limited to 'sys-firmware')
-rw-r--r--sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install23
-rw-r--r--sys-firmware/intel-microcode/files/35-intel-microcode.install10
-rw-r--r--sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r2.ebuild (renamed from sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r1.ebuild)22
3 files changed, 36 insertions, 19 deletions
diff --git a/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install b/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install
index 7ad7b8c49e83..58593a675b37 100644
--- a/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install
+++ b/sys-firmware/intel-microcode/files/35-intel-microcode-systemd.install
@@ -35,13 +35,18 @@ opts=(
--no-downgrade
)
-if [[ ${KERNEL_INSTALL_VERBOSE} == 1 ]]; then
- echo "Generating Intel CPU Microcode early initramfs image..."
- opts+=(
- --list-all
- --list
- )
+if [[ -d /lib/firmware/intel-ucode ]]; then
+ if [[ ${KERNEL_INSTALL_VERBOSE} == 1 ]]; then
+ echo "Generating Intel CPU Microcode early initramfs image..."
+ opts+=(
+ --list-all
+ --list
+ )
+ fi
+
+ iucode_tool /lib/firmware/intel-ucode "${opts[@]}" ||
+ { echo "iucode_tool failed" && exit 1; }
+else
+ [[ ${KERNEL_INSTALL_VERBOSE} == 1 ]] && echo \
+ "No Intel CPU Microcode installed, nothing to do here."
fi
-
-iucode_tool /lib/firmware/intel-ucode "${opts[@]}" ||
- { echo "iucode_tool failed" && exit 1; }
diff --git a/sys-firmware/intel-microcode/files/35-intel-microcode.install b/sys-firmware/intel-microcode/files/35-intel-microcode.install
index d4e9ef19d56b..513b3a84d08e 100644
--- a/sys-firmware/intel-microcode/files/35-intel-microcode.install
+++ b/sys-firmware/intel-microcode/files/35-intel-microcode.install
@@ -41,9 +41,13 @@ main() {
--list
)
- einfo "Generating Intel CPU Microcode early initramfs image..."
- iucode_tool /lib/firmware/intel-ucode "${opts[@]}" ||
- die "iucode_tool failed"
+ if [[ -d /lib/firmware/intel-ucode ]]; then
+ einfo "Generating Intel CPU Microcode early initramfs image..."
+ iucode_tool /lib/firmware/intel-ucode "${opts[@]}" ||
+ die "iucode_tool failed"
+ else
+ einfo "No Intel CPU Microcode installed, nothing to do here."
+ fi
}
main
diff --git a/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r1.ebuild b/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r2.ebuild
index 55f66f30803d..947e22ff9bc2 100644
--- a/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r1.ebuild
+++ b/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526-r2.ebuild
@@ -45,16 +45,24 @@ LICENSE="intel-ucode"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86"
IUSE="dist-kernel hostonly +initramfs +split-ucode vanilla"
-REQUIRED_USE="!dist-kernel? ( || ( initramfs split-ucode ) )"
+REQUIRED_USE="
+ || ( initramfs split-ucode )
+ dist-kernel? ( split-ucode )
+"
RESTRICT="binchecks strip"
BDEPEND=">=sys-apps/iucode_tool-2.3"
# !<sys-apps/microcode-ctl-1.17-r2 due to bug #268586
RDEPEND="
- dist-kernel? ( virtual/dist-kernel )
- hostonly? ( sys-apps/iucode_tool )
+ dist-kernel? (
+ virtual/dist-kernel
+ initramfs? (
+ sys-apps/iucode_tool
+ )
+ )
"
IDEPEND="
+ hostonly? ( sys-apps/iucode_tool )
dist-kernel? (
initramfs? ( sys-kernel/installkernel )
)
@@ -84,10 +92,10 @@ MICROCODE_SIGNATURES_DEFAULT=""
pkg_pretend() {
if use initramfs; then
- if [[ -z ${ROOT} ]] && use dist-kernel; then
+ if use dist-kernel; then
# Check, but don't die because we can fix the problem and then
# emerge --config ... to re-run installation.
- nonfatal mount-boot_check_status
+ [[ -z ${ROOT} ]] && nonfatal mount-boot_check_status
else
mount-boot_pkg_pretend
fi
@@ -302,8 +310,8 @@ pkg_postrm() {
pkg_postinst() {
if use initramfs; then
- if [[ -z ${ROOT} ]] && use dist-kernel; then
- dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
+ if use dist-kernel; then
+ [[ -z ${ROOT} ]] && dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}"
else
# Don't forget to umount /boot if it was previously mounted by us.
mount-boot_pkg_postinst