Created attachment 534330 [details] emerge --info I have a separate boot partition that is not mounted by default. While this partition gets automounted as expected during the installation and the microcode is actually getting installed, elog wrongly reports that no ucode has been installed. Steps to reproduce: 1. Unmount /boot 2. emerge -1 intel-microcode 3. See the warning that no ucode was installed 4. Manually mount /boot and confirm there actually has been an intel-uc.img installed into /boot despite the warning
If this is still an issue, please show us a build.log of >=sys-firmware/intel-microcode-20180807_p20180808 and `ls -lv /boot` output.
Created attachment 542802 [details] build.log This is indeed still an issue.
Created attachment 542804 [details] ls -lv /boot Directly after installing, the /boot directory obviously only shows the .keep file for it gets unmounted post-emerge. If I then mount it manually (without touching emerge in the meantime, of course), the attached output is shown.
Created attachment 542806 [details] build.log (/boot manually mounted before emerging) Here is a build.log when I mount /boot manually before emerging intel-microcode. As you can see, the warning that no microcode was installed is missing in that case.
Created attachment 542808 [details] sys-firmware:intel-microcode-20180804:20180808-191618.log There is a second log file created in PORTDIR when I emerge intel-microcode, which I should probably also attach. This is from the first emerge today (with /boot unmounted before executing emerge intel-microcode).
Mh, I don't understand yet: Is "mount-boot_pkg_postinst" failing for you? I.e. when pkg_postinst is called for the sanity check, all files should be already merged on disk in their final destinations. Due to > >>> /boot/intel-uc.img I assume that the file "intel-uc.img" was successfully installed in /boot. This is only possible if > use initramfs && mount-boot_pkg_preinst from pkg_preinst was successful. But if this call was successful in pkg_preinst, I don't see a reason why it should fail in pkg_postinst. Also keep in mind, that we don't umount. I.e. if /boot was mounted successfully in pkg_preinst, it should be still mounted in pkg_postinst phase... I am wondering if > -s "${EROOT%/}/boot/intel-uc.img" is the problem, i.e. that you have an EROOT offset. Maybe you can run ebuild/emerge with "--debug" (including merge step when just using ebuild command)?
/boot is unmounted post-emerge if it was /unmounted before executing emerge. The following table shows what happens in the different cases: pre-install | post-install | warning | /boot/intel-ucode.img installed ----------------------------------------------------------------------------- /boot unmounted | /boot unmounted | yes | yes /boot mounted | /boot mounted | no | yes Additionally, I have tracked down the issue. /boot gets unmounted by mount-boot_pkg_postrm (in pkg_postrm(); line 161) , which is executed before pkg_postinstall if an earlier version was installed and it also gets unmounted by mount-boot_pkg_postinst (in pkg_postinst(); line 169). This leads to the the check if something was installed failing because it only happens afterwards, when it obviously does find nothing because /boot has already been unmounted by that time. The check if something has been installed has to happen before pkg_postrm() to avoid the warning.
Unfortunately, I was a bit too fast. Even deleting those two lines does not make the issue go away.
Created attachment 542812 [details] emerge -d log with both build logs attached I have attached the output of emerge -d and appended both logs from PORTDIR, separated by a few ----- because they also contain debug output.
I am now able to reproduce and can work on a fix, thanks.
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=03bd51396a4f29fb393700ad75dc34422f9dd297 commit 03bd51396a4f29fb393700ad75dc34422f9dd297 Author: Thomas Deutschmann <whissi@gentoo.org> AuthorDate: 2018-08-08 23:44:17 +0000 Commit: Thomas Deutschmann <whissi@gentoo.org> CommitDate: 2018-08-08 23:46:21 +0000 sys-firmware/intel-microcode: sanity check moved to pkg_preinst ... ...and logging improved Closes: https://bugs.gentoo.org/656992 Package-Manager: Portage-2.3.44, Repoman-2.3.10 .../intel-microcode-20180807_p20180808-r1.ebuild | 254 +++++++++++++++++++++ 1 file changed, 254 insertions(+)