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 BA9A9158451 for ; Sun, 7 Jan 2024 17:29:14 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id DD4C22BC0F9; Sun, 7 Jan 2024 17:29:13 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (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 AB8022BC0F9 for ; Sun, 7 Jan 2024 17:29:13 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (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 smtp.gentoo.org (Postfix) with ESMTPS id BB5713432BD for ; Sun, 7 Jan 2024 17:29:12 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 5444CAE5 for ; Sun, 7 Jan 2024 17:29:11 +0000 (UTC) From: "Andrew Ammerlaan" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andrew Ammerlaan" Message-ID: <1704648536.a42e98431e7538eadaee1df2b90f0e3174b22341.andrewammerlaan@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/ X-VCS-Repository: repo/gentoo X-VCS-Files: eclass/dist-kernel-utils.eclass eclass/kernel-build.eclass eclass/kernel-install.eclass X-VCS-Directories: eclass/ X-VCS-Committer: andrewammerlaan X-VCS-Committer-Name: Andrew Ammerlaan X-VCS-Revision: a42e98431e7538eadaee1df2b90f0e3174b22341 X-VCS-Branch: master Date: Sun, 7 Jan 2024 17:29:11 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 8c1de3c3-d943-422e-aaff-d331ac11d74f X-Archives-Hash: 7c18866ccdfcbf9c399ee939889081ea commit: a42e98431e7538eadaee1df2b90f0e3174b22341 Author: Andrew Ammerlaan gentoo org> AuthorDate: Wed Nov 15 18:59:06 2023 +0000 Commit: Andrew Ammerlaan gentoo org> CommitDate: Sun Jan 7 17:28:56 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a42e9843 eclass/(dist-)kernel-*.eclass: drop installkernel-gentoo-7 because we drop the generation of the initrd/uki here we can remove KERNEL_IUSE_SECUREBOOT since this is now exactly the same as KERNEL_IUSE_MODULES_SIGN Signed-off-by: Andrew Ammerlaan gentoo.org> eclass/dist-kernel-utils.eclass | 78 ----------------------------------------- eclass/kernel-build.eclass | 13 +++---- eclass/kernel-install.eclass | 39 +++++++-------------- 3 files changed, 17 insertions(+), 113 deletions(-) diff --git a/eclass/dist-kernel-utils.eclass b/eclass/dist-kernel-utils.eclass index 8ccffd038474..13137f8c863c 100644 --- a/eclass/dist-kernel-utils.eclass +++ b/eclass/dist-kernel-utils.eclass @@ -12,13 +12,6 @@ # This eclass provides various utility functions related to Distribution # Kernels. -# @ECLASS_VARIABLE: KERNEL_IUSE_SECUREBOOT -# @PRE_INHERIT -# @DEFAULT_UNSET -# @DESCRIPTION: -# If set to a non-null value, inherits secureboot.eclass -# and allows signing of generated kernel images. - # @ECLASS_VARIABLE: KERNEL_EFI_ZBOOT # @DEFAULT_UNSET # @DESCRIPTION: @@ -35,43 +28,6 @@ esac inherit toolchain-funcs -if [[ ${KERNEL_IUSE_SECUREBOOT} ]]; then - inherit secureboot -fi - -# @FUNCTION: dist-kernel_build_initramfs -# @USAGE: -# @DESCRIPTION: -# Build an initramfs for the kernel. specifies the absolute -# path where initramfs will be created, while specifies -# the kernel version, used to find modules. -# -# Note: while this function uses dracut at the moment, other initramfs -# variants may be supported in the future. -dist-kernel_build_initramfs() { - debug-print-function ${FUNCNAME} "${@}" - - [[ ${#} -eq 2 ]] || die "${FUNCNAME}: invalid arguments" - local output=${1} - local version=${2} - - local rel_image_path=$(dist-kernel_get_image_path) - local image=${output%/*}/${rel_image_path##*/} - - local args=( - --force - # if uefi=yes is used, dracut needs to locate the kernel image - --kernel-image "${image}" - - # positional arguments - "${output}" "${version}" - ) - - ebegin "Building initramfs via dracut" - dracut "${args[@]}" - eend ${?} || die -n "Building initramfs failed" -} - # @FUNCTION: dist-kernel_get_image_path # @DESCRIPTION: # Get relative kernel image path specific to the current ${ARCH}. @@ -123,26 +79,6 @@ dist-kernel_install_kernel() { local image=${2} local map=${3} - if has_version "<=sys-kernel/installkernel-gentoo-7"; then - # if dracut is used in uefi=yes mode, initrd will actually - # be a combined kernel+initramfs UEFI executable. we can easily - # recognize it by PE magic (vs cpio for a regular initramfs) - local initrd=${image%/*}/initrd - local magic - [[ -s ${initrd} ]] && read -n 2 magic < "${initrd}" - if [[ ${magic} == MZ ]]; then - einfo "Combined UEFI kernel+initramfs executable found" - # install the combined executable in place of kernel - image=${initrd%/*}/uki.efi - mv "${initrd}" "${image}" || die - - if [[ ${KERNEL_IUSE_SECUREBOOT} ]]; then - # Ensure the uki is signed if dracut hasn't already done so. - secureboot_sign_efi_file "${image}" - fi - fi - fi - ebegin "Installing the kernel via installkernel" # note: .config is taken relatively to System.map; # initrd relatively to bzImage @@ -159,10 +95,6 @@ dist-kernel_install_kernel() { # The function will determine whether is actually # a dist-kernel, and whether initramfs was used. # -# With sys-kernel/installkernel-systemd, or version 8 or greater of -# sys-kernel/installkernel-gentoo, the generation of the initrd via dracut -# is handled by kernel-install instead. -# # This function is to be used in pkg_postinst() of ebuilds installing # kernel modules that are included in the initramfs. dist-kernel_reinstall_initramfs() { @@ -180,16 +112,6 @@ dist-kernel_reinstall_initramfs() { return fi - if has_version "<=sys-kernel/installkernel-gentoo-7"; then - local initramfs_path=${image_path%/*}/initrd - if [[ ! -f ${initramfs_path} && ! -f ${initramfs_path%/*}/uki.efi ]]; then - einfo "No initramfs or uki found at ${image_path}" - return - fi - - dist-kernel_build_initramfs "${initramfs_path}" "${ver}" - fi - dist-kernel_install_kernel "${ver}" "${image_path}" \ "${kernel_dir}/System.map" } diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass index 28f111ec998b..f3a59559d104 100644 --- a/eclass/kernel-build.eclass +++ b/eclass/kernel-build.eclass @@ -30,9 +30,6 @@ _KERNEL_BUILD_ECLASS=1 PYTHON_COMPAT=( python3_{10..12} ) if [[ ${KERNEL_IUSE_MODULES_SIGN} ]]; then - # If we have enabled module signing IUSE - # then we can also enable secureboot IUSE - KERNEL_IUSE_SECUREBOOT=1 inherit secureboot fi @@ -56,10 +53,10 @@ IUSE="+strip" # @PRE_INHERIT # @DEFAULT_UNSET # @DESCRIPTION: -# If set to a non-null value, adds IUSE=modules-sign and required -# logic to manipulate the kernel config while respecting the -# MODULES_SIGN_HASH, MODULES_SIGN_CERT, and MODULES_SIGN_KEY user -# variables. +# If set to a non-null value, inherits secureboot.eclass, adds +# IUSE=modules-sign and required logic to manipulate the kernel +# config while respecting the MODULES_SIGN_HASH, MODULES_SIGN_CERT, +# and MODULES_SIGN_KEY user variables. # @ECLASS_VARIABLE: MODULES_SIGN_HASH # @USER_VARIABLE @@ -381,7 +378,7 @@ kernel-build_src_install() { dosym "../../../${kernel_dir}" "/lib/modules/${module_ver}/build" dosym "../../../${kernel_dir}" "/lib/modules/${module_ver}/source" - if [[ ${KERNEL_IUSE_SECUREBOOT} ]]; then + if [[ ${KERNEL_IUSE_MODULES_SIGN} ]]; then secureboot_sign_efi_file "${image}" fi diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass index b4c3d5fe7b4d..5a5b833cdd7b 100644 --- a/eclass/kernel-install.eclass +++ b/eclass/kernel-install.eclass @@ -63,16 +63,15 @@ RESTRICT+=" _IDEPEND_BASE=" !initramfs? ( || ( - sys-kernel/installkernel-gentoo - sys-kernel/installkernel-systemd + >=sys-kernel/installkernel-gentoo-8 + >=sys-kernel/installkernel-systemd-2-r5 ) ) initramfs? ( >=sys-kernel/dracut-059-r4 || ( - <=sys-kernel/installkernel-gentoo-7 >=sys-kernel/installkernel-gentoo-8[dracut(-)] - sys-kernel/installkernel-systemd + >=sys-kernel/installkernel-systemd-2-r5 ) ) " @@ -543,14 +542,11 @@ kernel-install_pkg_pretend() { ewarn "for your hardware to work. If in doubt, it is recommended" ewarn "to pause or abort the build process and install it before" ewarn "resuming." - - if use initramfs; then - elog - elog "If you decide to install linux-firmware later, you can rebuild" - elog "the initramfs via issuing a command equivalent to:" - elog - elog " emerge --config ${CATEGORY}/${PN}:${SLOT}" - fi + elog + elog "If you decide to install linux-firmware later, you can rebuild" + elog "the initramfs via issuing a command equivalent to:" + elog + elog " emerge --config ${CATEGORY}/${PN}:${SLOT}" fi if ! use initramfs && ! has_version "${CATEGORY}/${PN}[-initramfs]"; then @@ -633,13 +629,9 @@ kernel-install_extract_from_uki() { # @FUNCTION: kernel-install_install_all # @USAGE: # @DESCRIPTION: -# Build an initramfs for the kernel if required and install the kernel. -# This is called from pkg_postinst() and pkg_config(). is the -# full kernel version. -# -# With sys-kernel/installkernel-systemd, or version 8 or greater of -# sys-kernel/installkernel-gentoo, the generation of the initrd via dracut -# is handled by kernel-install instead. +# Install the kernel, initramfs/uki generation is optionally handled by +# installkernel. This is called from pkg_postinst() and pkg_config(). +# is the full kernel version. kernel-install_install_all() { debug-print-function ${FUNCNAME} "${@}" @@ -673,13 +665,6 @@ kernel-install_install_all() { while :; do nonfatal mount-boot_check_status || break - if use initramfs && has_version "<=sys-kernel/installkernel-gentoo-7"; then - # putting it alongside kernel image as 'initrd' makes - # kernel-install happier - nonfatal dist-kernel_build_initramfs \ - "${image_dir}/initrd" "${module_ver}" || break - fi - nonfatal dist-kernel_install_kernel "${module_ver}" \ "${image_path}" "${kernel_dir}/System.map" || break @@ -743,7 +728,7 @@ kernel-install_pkg_prerm() { kernel-install_pkg_postrm() { debug-print-function ${FUNCNAME} "${@}" - if [[ -z ${ROOT} && ! ${KERNEL_IUSE_GENERIC_UKI} ]] && use initramfs; then + if [[ -z ${ROOT} && ! ${KERNEL_IUSE_GENERIC_UKI} ]]; then local dir_ver=${PV}${KV_LOCALVERSION} local kernel_dir=${EROOT}/usr/src/linux-${dir_ver} local image_path=$(dist-kernel_get_image_path)