diff options
author | Andrew Ammerlaan <andrewammerlaan@gentoo.org> | 2024-07-18 08:34:46 +0200 |
---|---|---|
committer | Andrew Ammerlaan <andrewammerlaan@gentoo.org> | 2024-07-18 08:34:46 +0200 |
commit | 24aae6dd6e42c19b4e7415b9477621a357648219 (patch) | |
tree | 07ce28a076d7069129a06267b56010d707a0022c /sys-firmware | |
parent | sys-kernel/linux-firmware: avoid mount-boot if ROOT is set (diff) | |
download | gentoo-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.install | 23 | ||||
-rw-r--r-- | sys-firmware/intel-microcode/files/35-intel-microcode.install | 10 | ||||
-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 |