diff -Naurp a/sys-firmware/intel-microcode/intel-microcode-20171117_p20171215.ebuild b/sys-firmware/intel-microcode/intel-microcode-20171117_p20171215.ebuild --- a/sys-firmware/intel-microcode/intel-microcode-20171117_p20171215.ebuild 2018-01-07 16:25:09.977255835 +0100 +++ b/sys-firmware/intel-microcode/intel-microcode-20171117_p20171215.ebuild 2018-01-07 16:25:09.984255835 +0100 @@ -18,22 +18,87 @@ SRC_URI="mirror://gentoo/microcode-${PV} LICENSE="intel-ucode" SLOT="0" KEYWORDS="-* amd64 x86" -IUSE="initramfs +split-ucode" +IUSE="initramfs scan-system +split-ucode" REQUIRED_USE="|| ( initramfs split-ucode )" -DEPEND="initramfs? ( sys-apps/iucode_tool )" +DEPEND="initramfs? ( sys-apps/iucode_tool ) + scan-system? ( sys-apps/iucode_tool )" RDEPEND="!&1) # signature is written to stderr + elog "" + + # Suitable bundles identified? + if (( ${#suitable[@]} == 0 )); then + ewarn "Unable to identify suitable microcode bundle(s)" + ewarn "Please install without USE flag 'scan-system' instead" + die "Failed to identify suitable microcode bundle(s)" + fi + + # Install identified bundles + insinto /lib/firmware/intel-ucode + for index in ${suitable[@]}; do + doins "${bundles[$index]}" + done + else + doins intel-ucode/* + fi + fi +} + +pkg_postinst() { + if use initramfs; then + elog "CPIO archive was installed to '/lib/firmware/intel-ucode/initramfs.cpio'" + elog "This archive needs to be prepended to an existing initramfs image:" + elog "# cat /lib/firmware/intel-ucode/initramfs.cpio existing-image > combined-image" + elog "" + fi + if use split-ucode; then + elog "Split binary ucode files were installed to '/lib/firmware/intel-ucode'" + elog "" + fi + elog "Please refer to the Gentoo Wiki for more detailed information:" + elog "https://wiki.gentoo.org/wiki/Intel_microcode" } diff -Naurp a/sys-firmware/intel-microcode/metadata.xml b/sys-firmware/intel-microcode/metadata.xml --- a/sys-firmware/intel-microcode/metadata.xml 2018-01-07 16:25:09.980255835 +0100 +++ b/sys-firmware/intel-microcode/metadata.xml 2018-01-07 16:25:09.988255835 +0100 @@ -8,6 +8,7 @@ install a small initramfs for use with CONFIG_MICROCODE_EARLY install the large text microcode.dat (used by older kernels via microcode_ctl) + scan system and only install suitable/applicable microcode install the split binary ucode files (used by the kernel directly)