mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
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>
This commit is contained in:
@@ -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"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user