public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH] eclass/(dist-)kernel-*.eclass: drop installkernel-gentoo-7
@ 2024-01-07 16:40 Andrew Ammerlaan
  0 siblings, 0 replies; only message in thread
From: Andrew Ammerlaan @ 2024-01-07 16:40 UTC (permalink / raw)
  To: gentoo-dev

Part of https://github.com/gentoo/gentoo/pull/33727

 From 0878f48e492b2c7bfd4b58c8f6dcfbfdbd642d8a Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Date: Wed, 15 Nov 2023 19:59:06 +0100
Subject: [PATCH] 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 <andrewammerlaan@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 8ccffd0384742..13137f8c863c8 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: <output> <version>
-# @DESCRIPTION:
-# Build an initramfs for the kernel.  <output> specifies the absolute
-# path where initramfs will be created, while <version> 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 <kernel-dir> 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 28f111ec998bb..f3a59559d1041 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 b4c3d5fe7b4d9..5a5b833cdd7b6 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: <ver>
  # @DESCRIPTION:
-# Build an initramfs for the kernel if required and install the kernel.
-# This is called from pkg_postinst() and pkg_config().  <ver> 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().
+# <ver> 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)


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-01-07 16:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-07 16:40 [gentoo-dev] [PATCH] eclass/(dist-)kernel-*.eclass: drop installkernel-gentoo-7 Andrew Ammerlaan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox