From c5cf62a41038e344312d8758a4ba232fcd726053 Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerl...@gentoo.org>
Date: Tue, 25 Jun 2024 16:36:46 +0200
Subject: [PATCH] sys-firmware/intel-microcode: complain less when /boot is not
 mounted

When using dist-kernel users can correct the problem and then
emerge --config ...

Signed-off-by: Andrew Ammerlaan <andrewammerl...@gentoo.org>
---
 .../intel-microcode-20240312_p20240312.ebuild | 21 +++++++++++++------
 .../intel-microcode-20240514_p20240514.ebuild | 21 +++++++++++++------
 .../intel-microcode-20240531_p20240526.ebuild | 21 +++++++++++++------
 3 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/sys-firmware/intel-microcode/intel-microcode-20240312_p20240312.ebuild b/sys-firmware/intel-microcode/intel-microcode-20240312_p20240312.ebuild
index 957da662f92e3..5e2d305fc9ed6 100644
--- a/sys-firmware/intel-microcode/intel-microcode-20240312_p20240312.ebuild
+++ b/sys-firmware/intel-microcode/intel-microcode-20240312_p20240312.ebuild
@@ -83,7 +83,15 @@ MICROCODE_SIGNATURES_DEFAULT=""
 # exclude specific CPU: MICROCODE_SIGNATURES="-s !0x00000686"

 pkg_pretend() {
-       use initramfs && mount-boot_pkg_pretend
+       if use initramfs; then
+               if [[ -z ${ROOT} ]] && 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
+               else
+                       mount-boot_pkg_pretend
+               fi
+       fi
 }

 src_prepare() {
@@ -181,7 +189,7 @@ pkg_preinst() {
        fi

        # Make sure /boot is available if needed.
-       use initramfs && mount-boot_pkg_preinst
+       use initramfs && ! use dist-kernel && mount-boot_pkg_preinst

        local _initramfs_file="${ED}/boot/intel-uc.img"

@@ -274,21 +282,22 @@ pkg_preinst() {

 pkg_prerm() {
        # Make sure /boot is mounted so that we can remove /boot/intel-uc.img!
-       use initramfs && mount-boot_pkg_prerm
+       use initramfs && ! use dist-kernel && mount-boot_pkg_prerm
 }

 pkg_postrm() {
        # Don't forget to umount /boot if it was previously mounted by us.
-       use initramfs && mount-boot_pkg_postrm
+       use initramfs && ! use dist-kernel && mount-boot_pkg_postrm
 }

 pkg_postinst() {
-       # Don't forget to umount /boot if it was previously mounted by us.
        if use initramfs; then
                if [[ -z ${ROOT} ]] && use dist-kernel; then
                        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
                fi
-               mount-boot_pkg_postinst
        fi

        # We cannot give detailed information if user is affected or not:
diff --git a/sys-firmware/intel-microcode/intel-microcode-20240514_p20240514.ebuild b/sys-firmware/intel-microcode/intel-microcode-20240514_p20240514.ebuild
index c33321a94497a..656f5a519b913 100644
--- a/sys-firmware/intel-microcode/intel-microcode-20240514_p20240514.ebuild
+++ b/sys-firmware/intel-microcode/intel-microcode-20240514_p20240514.ebuild
@@ -83,7 +83,15 @@ MICROCODE_SIGNATURES_DEFAULT=""
 # exclude specific CPU: MICROCODE_SIGNATURES="-s !0x00000686"

 pkg_pretend() {
-       use initramfs && mount-boot_pkg_pretend
+       if use initramfs; then
+               if [[ -z ${ROOT} ]] && 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
+               else
+                       mount-boot_pkg_pretend
+               fi
+       fi
 }

 src_prepare() {
@@ -181,7 +189,7 @@ pkg_preinst() {
        fi

        # Make sure /boot is available if needed.
-       use initramfs && mount-boot_pkg_preinst
+       use initramfs && ! use dist-kernel && mount-boot_pkg_preinst

        local _initramfs_file="${ED}/boot/intel-uc.img"

@@ -274,21 +282,22 @@ pkg_preinst() {

 pkg_prerm() {
        # Make sure /boot is mounted so that we can remove /boot/intel-uc.img!
-       use initramfs && mount-boot_pkg_prerm
+       use initramfs && ! use dist-kernel && mount-boot_pkg_prerm
 }

 pkg_postrm() {
        # Don't forget to umount /boot if it was previously mounted by us.
-       use initramfs && mount-boot_pkg_postrm
+       use initramfs && ! use dist-kernel && mount-boot_pkg_postrm
 }

 pkg_postinst() {
-       # Don't forget to umount /boot if it was previously mounted by us.
        if use initramfs; then
                if [[ -z ${ROOT} ]] && use dist-kernel; then
                        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
                fi
-               mount-boot_pkg_postinst
        fi

        # We cannot give detailed information if user is affected or not:
diff --git a/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild b/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild
index c33321a94497a..656f5a519b913 100644
--- a/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild
+++ b/sys-firmware/intel-microcode/intel-microcode-20240531_p20240526.ebuild
@@ -83,7 +83,15 @@ MICROCODE_SIGNATURES_DEFAULT=""
 # exclude specific CPU: MICROCODE_SIGNATURES="-s !0x00000686"

 pkg_pretend() {
-       use initramfs && mount-boot_pkg_pretend
+       if use initramfs; then
+               if [[ -z ${ROOT} ]] && 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
+               else
+                       mount-boot_pkg_pretend
+               fi
+       fi
 }

 src_prepare() {
@@ -181,7 +189,7 @@ pkg_preinst() {
        fi

        # Make sure /boot is available if needed.
-       use initramfs && mount-boot_pkg_preinst
+       use initramfs && ! use dist-kernel && mount-boot_pkg_preinst

        local _initramfs_file="${ED}/boot/intel-uc.img"

@@ -274,21 +282,22 @@ pkg_preinst() {

 pkg_prerm() {
        # Make sure /boot is mounted so that we can remove /boot/intel-uc.img!
-       use initramfs && mount-boot_pkg_prerm
+       use initramfs && ! use dist-kernel && mount-boot_pkg_prerm
 }

 pkg_postrm() {
        # Don't forget to umount /boot if it was previously mounted by us.
-       use initramfs && mount-boot_pkg_postrm
+       use initramfs && ! use dist-kernel && mount-boot_pkg_postrm
 }

 pkg_postinst() {
-       # Don't forget to umount /boot if it was previously mounted by us.
        if use initramfs; then
                if [[ -z ${ROOT} ]] && use dist-kernel; then
                        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
                fi
-               mount-boot_pkg_postinst
        fi

        # We cannot give detailed information if user is affected or not:


Reply via email to