# mount -o remount,ro /boot # emerge -1 sys-firmware/intel-microcode ...will fail with > * checking 233 files for package collisions > * One or more files installed to this package are set to be installed to > * read-only filesystems. Please mount the following filesystems as read- > * write and retry. > * > * /boot > * > * Package 'sys-firmware/intel-microcode-20190514_p20190525' NOT merged > * due to read-only file systems. If necessary, refer to your elog > * messages for the whole content of the above message. error. However, we are using mount-boot elcass to handle exactly this case. And eclass will detect that /boot is mounted ro only: > * To avoid automounting and auto(un)installing with /boot, > * just export the DONT_MOUNT_BOOT variable. > > * Your boot partition, detected as being mounted at /boot, is read-only. > * It will be remounted in read-write mode temporarily. It looks like portage is checking for /boot after src_install, before any pkg_* function which clashes with mount-boot eclass. It's working as expected when /boot is unmounted.
(In reply to Thomas Deutschmann from comment #0) > It looks like portage is checking for /boot after src_install, before any > pkg_* function which clashes with mount-boot eclass. The readonly and file collision checks are intentionally executed prior to pkg_preinst, since pkg_preinst could potentially make irreversible changes that are better to avoid when the readonly and file collision checks fail. I suppose we could trust that execution of pkg_preinst should be harmless, and delay the readonly and file collisions checks until afterwards. Maybe we should support a RESTRICT or PROPERTIES value to trust pkg_preinst in this respect.
Note that FEATURES=mount-sandbox may interfere with mount-boot.eclass functions.
In my case there's _no_ FEATURES=mount-sandbox set.
For me, this also fails for unmounted /boot. See Bug 710618