From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 4CE321581D3 for ; Tue, 14 May 2024 12:00:58 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 496DBE2A1A; Tue, 14 May 2024 11:59:42 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id DD31BE2A14 for ; Tue, 14 May 2024 11:59:41 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 57B1B34164C; Tue, 14 May 2024 11:59:41 +0000 (UTC) X-Virus-Scanned: by amavisd-new using ClamAV at gentoo.org X-Spam-Flag: NO X-Spam-Score: -1.119 X-Spam-Level: X-Spam-Status: No, score=-1.119 tagged_above=-9999 required=3.5 tests=[AWL=0.000, BAYES_00=-1.9, KHOP_HELO_FCRDNS=0.001, SPF_HELO_FAIL=0.001, SPF_NEUTRAL=0.779] autolearn=no autolearn_force=no Received: from smtp.gentoo.org ([127.0.0.1]) by localhost (smtp.gentoo.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id IjFxlBcGvnjH; Tue, 14 May 2024 11:59:36 +0000 (UTC) Received: from andrew-gentoo-laptop.science.ru.nl (n036122.science.ru.nl [131.174.36.122]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 659813406C2; Tue, 14 May 2024 11:59:35 +0000 (UTC) From: Andrew Ammerlaan To: gentoo-dev@lists.gentoo.org Cc: Andrew Ammerlaan Subject: [gentoo-dev] [PATCH 5/7] sys-kernel/linux-firmware: add USE=dist-kernel Date: Tue, 14 May 2024 13:59:10 +0200 Message-ID: <20240514115924.29167-5-andrewammerlaan@gentoo.org> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20240514115924.29167-1-andrewammerlaan@gentoo.org> References: <20240514115924.29167-1-andrewammerlaan@gentoo.org> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Archives-Salt: e0162611-d353-41ad-a80d-1fde1e213a3c X-Archives-Hash: 4f0a1b8f78dd1e428c0651b89a5a4c8f The /boot/amd-ucode is useless when we use a dist-kernel since dracut is responsible for generating the initramfs, and it (by default) includes the microcode. Instead add USE=dist-kernel and enable USE=initramfs by default. The initramfs flag toggles the early_microcode setting of dracut, and if both flags are enabled we trigger initramfs re-installation. This ensures that when we update this package, we also get the latest microcode in our dist-kernel initramfs or UKI. Signed-off-by: Andrew Ammerlaan --- .../linux-firmware-20240220-r2.ebuild | 32 +++++++++++++++---- .../linux-firmware-20240312.ebuild | 32 +++++++++++++++---- .../linux-firmware-20240410.ebuild | 32 +++++++++++++++---- .../linux-firmware-99999999.ebuild | 32 +++++++++++++++---- 4 files changed, 100 insertions(+), 28 deletions(-) diff --git a/sys-kernel/linux-firmware/linux-firmware-20240220-r2.ebuild b/sys-kernel/linux-firmware/linux-firmware-20240220-r2.ebuild index 8ea7565f00ce..0ecca9dae446 100644 --- a/sys-kernel/linux-firmware/linux-firmware-20240220-r2.ebuild +++ b/sys-kernel/linux-firmware/linux-firmware-20240220-r2.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit linux-info mount-boot savedconfig multiprocessing +inherit dist-kernel-utils linux-info mount-boot savedconfig multiprocessing # In case this is a real snapshot, fill in commit below. # For normal, tagged releases, leave blank @@ -29,7 +29,7 @@ LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 ) redistributable? ( linux-fw-redistributable BSD-2 BSD BSD-4 ISC MIT ) unknown-license? ( all-rights-reserved )" SLOT="0" -IUSE="bindist compress-xz compress-zstd deduplicate initramfs +redistributable savedconfig unknown-license" +IUSE="bindist compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable savedconfig unknown-license" REQUIRED_USE="initramfs? ( redistributable ) ?? ( compress-xz compress-zstd ) savedconfig? ( !deduplicate )" @@ -62,7 +62,14 @@ RDEPEND="!savedconfig? ( !sys-firmware/alsa-firmware[alsa_cards_sb16] !sys-firmware/alsa-firmware[alsa_cards_ymfpci] ) - )" + ) + dist-kernel? ( virtual/dist-kernel ) +" +IDEPEND=" + dist-kernel? ( + initramfs? ( sys-kernel/installkernel ) + ) +" QA_PREBUILT="*" PATCHES=( "${FILESDIR}"/${PN}-copy-firmware-r4.patch ) @@ -84,8 +91,8 @@ pkg_setup() { eerror "Kernels <5.19 do not support ZSTD-compressed firmware files" fi fi - linux-info_pkg_setup fi + linux-info_pkg_setup } src_unpack() { @@ -110,7 +117,7 @@ src_prepare() { chmod +x copy-firmware.sh || die - if use initramfs; then + if use initramfs && ! use dist-kernel; then if [[ -d "${S}/amd-ucode" ]]; then local UCODETMP="${T}/ucode_tmp" local UCODEDIR="${UCODETMP}/kernel/x86/microcode" @@ -351,7 +358,13 @@ src_install() { popd &>/dev/null || die - if use initramfs ; then + # Instruct Dracut on whether or not we want the microcode in initramfs + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 10-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + + if use initramfs && ! use dist-kernel; then insinto /boot doins "${S}"/amd-uc.img fi @@ -391,7 +404,12 @@ pkg_postinst() { done # Don't forget to umount /boot if it was previously mounted by us. - use initramfs && mount-boot_pkg_postinst + if use initramfs; then + if [[ -z ${ROOT} ]] && use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + fi + mount-boot_pkg_postinst + fi } pkg_prerm() { diff --git a/sys-kernel/linux-firmware/linux-firmware-20240312.ebuild b/sys-kernel/linux-firmware/linux-firmware-20240312.ebuild index 8795fc72fda3..2481f3a517f0 100644 --- a/sys-kernel/linux-firmware/linux-firmware-20240312.ebuild +++ b/sys-kernel/linux-firmware/linux-firmware-20240312.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit linux-info mount-boot savedconfig multiprocessing +inherit dist-kernel-utils linux-info mount-boot savedconfig multiprocessing # In case this is a real snapshot, fill in commit below. # For normal, tagged releases, leave blank @@ -29,7 +29,7 @@ LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 ) redistributable? ( linux-fw-redistributable BSD-2 BSD BSD-4 ISC MIT ) unknown-license? ( all-rights-reserved )" SLOT="0" -IUSE="bindist compress-xz compress-zstd deduplicate initramfs +redistributable savedconfig unknown-license" +IUSE="bindist compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable savedconfig unknown-license" REQUIRED_USE="initramfs? ( redistributable ) ?? ( compress-xz compress-zstd ) savedconfig? ( !deduplicate )" @@ -62,7 +62,14 @@ RDEPEND="!savedconfig? ( !sys-firmware/alsa-firmware[alsa_cards_sb16] !sys-firmware/alsa-firmware[alsa_cards_ymfpci] ) - )" + ) + dist-kernel? ( virtual/dist-kernel ) +" +IDEPEND=" + dist-kernel? ( + initramfs? ( sys-kernel/installkernel ) + ) +" QA_PREBUILT="*" PATCHES=( "${FILESDIR}"/${PN}-copy-firmware-r4.patch ) @@ -84,8 +91,8 @@ pkg_setup() { eerror "Kernels <5.19 do not support ZSTD-compressed firmware files" fi fi - linux-info_pkg_setup fi + linux-info_pkg_setup } src_unpack() { @@ -110,7 +117,7 @@ src_prepare() { chmod +x copy-firmware.sh || die - if use initramfs; then + if use initramfs && ! use dist-kernel; then if [[ -d "${S}/amd-ucode" ]]; then local UCODETMP="${T}/ucode_tmp" local UCODEDIR="${UCODETMP}/kernel/x86/microcode" @@ -351,7 +358,13 @@ src_install() { popd &>/dev/null || die - if use initramfs ; then + # Instruct Dracut on whether or not we want the microcode in initramfs + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 10-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + + if use initramfs && ! use dist-kernel; then insinto /boot doins "${S}"/amd-uc.img fi @@ -391,7 +404,12 @@ pkg_postinst() { done # Don't forget to umount /boot if it was previously mounted by us. - use initramfs && mount-boot_pkg_postinst + if use initramfs; then + if [[ -z ${ROOT} ]] && use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + fi + mount-boot_pkg_postinst + fi } pkg_prerm() { diff --git a/sys-kernel/linux-firmware/linux-firmware-20240410.ebuild b/sys-kernel/linux-firmware/linux-firmware-20240410.ebuild index 8795fc72fda3..2481f3a517f0 100644 --- a/sys-kernel/linux-firmware/linux-firmware-20240410.ebuild +++ b/sys-kernel/linux-firmware/linux-firmware-20240410.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit linux-info mount-boot savedconfig multiprocessing +inherit dist-kernel-utils linux-info mount-boot savedconfig multiprocessing # In case this is a real snapshot, fill in commit below. # For normal, tagged releases, leave blank @@ -29,7 +29,7 @@ LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 ) redistributable? ( linux-fw-redistributable BSD-2 BSD BSD-4 ISC MIT ) unknown-license? ( all-rights-reserved )" SLOT="0" -IUSE="bindist compress-xz compress-zstd deduplicate initramfs +redistributable savedconfig unknown-license" +IUSE="bindist compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable savedconfig unknown-license" REQUIRED_USE="initramfs? ( redistributable ) ?? ( compress-xz compress-zstd ) savedconfig? ( !deduplicate )" @@ -62,7 +62,14 @@ RDEPEND="!savedconfig? ( !sys-firmware/alsa-firmware[alsa_cards_sb16] !sys-firmware/alsa-firmware[alsa_cards_ymfpci] ) - )" + ) + dist-kernel? ( virtual/dist-kernel ) +" +IDEPEND=" + dist-kernel? ( + initramfs? ( sys-kernel/installkernel ) + ) +" QA_PREBUILT="*" PATCHES=( "${FILESDIR}"/${PN}-copy-firmware-r4.patch ) @@ -84,8 +91,8 @@ pkg_setup() { eerror "Kernels <5.19 do not support ZSTD-compressed firmware files" fi fi - linux-info_pkg_setup fi + linux-info_pkg_setup } src_unpack() { @@ -110,7 +117,7 @@ src_prepare() { chmod +x copy-firmware.sh || die - if use initramfs; then + if use initramfs && ! use dist-kernel; then if [[ -d "${S}/amd-ucode" ]]; then local UCODETMP="${T}/ucode_tmp" local UCODEDIR="${UCODETMP}/kernel/x86/microcode" @@ -351,7 +358,13 @@ src_install() { popd &>/dev/null || die - if use initramfs ; then + # Instruct Dracut on whether or not we want the microcode in initramfs + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 10-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + + if use initramfs && ! use dist-kernel; then insinto /boot doins "${S}"/amd-uc.img fi @@ -391,7 +404,12 @@ pkg_postinst() { done # Don't forget to umount /boot if it was previously mounted by us. - use initramfs && mount-boot_pkg_postinst + if use initramfs; then + if [[ -z ${ROOT} ]] && use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + fi + mount-boot_pkg_postinst + fi } pkg_prerm() { diff --git a/sys-kernel/linux-firmware/linux-firmware-99999999.ebuild b/sys-kernel/linux-firmware/linux-firmware-99999999.ebuild index e3f5246a89a3..01ae250624ed 100644 --- a/sys-kernel/linux-firmware/linux-firmware-99999999.ebuild +++ b/sys-kernel/linux-firmware/linux-firmware-99999999.ebuild @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 EAPI=8 -inherit linux-info mount-boot savedconfig multiprocessing +inherit dist-kernel-utils linux-info mount-boot savedconfig multiprocessing # In case this is a real snapshot, fill in commit below. # For normal, tagged releases, leave blank @@ -29,7 +29,7 @@ LICENSE="GPL-2 GPL-2+ GPL-3 BSD MIT || ( MPL-1.1 GPL-2 ) redistributable? ( linux-fw-redistributable BSD-2 BSD BSD-4 ISC MIT ) unknown-license? ( all-rights-reserved )" SLOT="0" -IUSE="compress-xz compress-zstd deduplicate initramfs +redistributable savedconfig unknown-license" +IUSE="compress-xz compress-zstd deduplicate dist-kernel +initramfs +redistributable savedconfig unknown-license" REQUIRED_USE="initramfs? ( redistributable ) ?? ( compress-xz compress-zstd ) savedconfig? ( !deduplicate )" @@ -61,7 +61,14 @@ RDEPEND="!savedconfig? ( !sys-firmware/alsa-firmware[alsa_cards_sb16] !sys-firmware/alsa-firmware[alsa_cards_ymfpci] ) - )" + ) + dist-kernel? ( virtual/dist-kernel ) +" +IDEPEND=" + dist-kernel? ( + initramfs? ( sys-kernel/installkernel ) + ) +" QA_PREBUILT="*" @@ -78,8 +85,8 @@ pkg_setup() { eerror "Kernels <5.19 do not support ZSTD-compressed firmware files" fi fi - linux-info_pkg_setup fi + linux-info_pkg_setup } pkg_pretend() { @@ -107,7 +114,7 @@ src_prepare() { chmod +x copy-firmware.sh || die - if use initramfs; then + if use initramfs && ! use dist-kernel; then if [[ -d "${S}/amd-ucode" ]]; then local UCODETMP="${T}/ucode_tmp" local UCODEDIR="${UCODETMP}/kernel/x86/microcode" @@ -355,7 +362,13 @@ src_install() { popd &>/dev/null || die - if use initramfs ; then + # Instruct Dracut on whether or not we want the microcode in initramfs + ( + insinto /usr/lib/dracut/dracut.conf.d + newins - 10-${PN}.conf <<<"early_microcode=$(usex initramfs)" + ) + + if use initramfs && ! use dist-kernel; then insinto /boot doins "${S}"/amd-uc.img fi @@ -391,7 +404,12 @@ pkg_postinst() { done # Don't forget to umount /boot if it was previously mounted by us. - use initramfs && mount-boot_pkg_postinst + if use initramfs; then + if [[ -z ${ROOT} ]] && use dist-kernel; then + dist-kernel_reinstall_initramfs "${KV_DIR}" "${KV_FULL}" + fi + mount-boot_pkg_postinst + fi } pkg_prerm() { -- 2.45.0