From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
To: gentoo-dev@lists.gentoo.org
Subject: [gentoo-dev] [PATCH 2/2] kernel-install.eclass: install vmlinu{x,z} symlink
Date: Fri, 9 Feb 2024 17:19:24 +0100 [thread overview]
Message-ID: <bf7e2ab7-fe45-4875-a882-58f1b9496d49@gentoo.org> (raw)
In-Reply-To: <576a69ac-8fea-4d58-b573-58812af5c25d@gentoo.org>
From a06fd4447d34febaa2cca449c8f6979b91a2818e Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Date: Wed, 7 Feb 2024 13:41:30 +0100
Subject: [PATCH] kernel-install.eclass: install vmlinu{x,z} symlink
and also link generic initrd/uki.efi
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
---
eclass/kernel-install.eclass | 28 +++++++++++++++++++++-------
1 file changed, 21 insertions(+), 7 deletions(-)
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index 78a498000790d..ac470c47d9365 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -572,6 +572,7 @@ kernel-install_pkg_preinst() {
local dir_ver=${PV}${KV_LOCALVERSION}
local kernel_dir=${ED}/usr/src/linux-${dir_ver}
local relfile=${kernel_dir}/include/config/kernel.release
+ local image_path=$(dist-kernel_get_image_path)
[[ ! -d ${kernel_dir} ]] &&
die "Kernel directory ${kernel_dir} not installed!"
[[ ! -f ${relfile} ]] &&
@@ -598,6 +599,12 @@ kernel-install_pkg_preinst() {
rm "${ED}/lib/modules/${release}"/{build,source} || die
dosym "../../../src/linux-${dir_ver}"
"/usr/lib/modules/${release}/build"
dosym "../../../src/linux-${dir_ver}"
"/usr/lib/modules/${release}/source"
+ for file in vmlinux vmlinuz; do
+ if [[ -e "${ED}/lib/modules/${release}/${file}" ]]; then
+ rm "${ED}/lib/modules/${release}/${file}" || die
+ dosym "../../../src/linux-${dir_ver}/${image_path}"
"/usr/lib/modules/${release}/${file}"
+ fi
+ done
fi
}
@@ -629,7 +636,7 @@ kernel-install_install_all() {
local dir_ver=${1}
local kernel_dir=${EROOT}/usr/src/linux-${dir_ver}
local relfile=${kernel_dir}/include/config/kernel.release
- local image_path=${kernel_dir}/$(dist-kernel_get_image_path)
+ local image_path=$(dist-kernel_get_image_path)
local image_dir=${image_path%/*}
local module_ver
module_ver=$(<"${relfile}") || die
@@ -638,15 +645,22 @@ kernel-install_install_all() {
if use generic-uki; then
# Populate placeholders
kernel-install_extract_from_uki linux \
- "${image_dir}"/uki.efi \
- "${image_path}"
+ "${kernel_dir}/${image_dir}"/uki.efi \
+ "${kernel_dir}/${image_path}"
kernel-install_extract_from_uki initrd \
- "${image_dir}"/uki.efi \
- "${image_dir}"/initrd
+ "${kernel_dir}/${image_dir}"/uki.efi \
+ "${kernel_dir}/${image_dir}"/initrd
+ if [[ -L ${EROOT}/lib && ${EROOT}/lib -ef ${EROOT}/usr/lib ]]; then
+ ln -sf "../../../src/linux-${dir_ver}/${image_dir}/initrd"
"${EROOT}/usr/lib/modules/${module_ver}/initrd" || die
+ ln -sf "../../../src/linux-${dir_ver}/${image_dir}/uki.efi"
"${EROOT}/usr/lib/modules/${module_ver}/uki.efi" || die
+ else
+ ln -sf "../../../usr/src/linux-${dir_ver}/${image_dir}/initrd"
"${EROOT}/lib/modules/${module_ver}/initrd" || die
+ ln -sf "../../../usr/src/linux-${dir_ver}/${image_dir}/uki.efi"
"${EROOT}/lib/modules/${module_ver}/uki.efi" || die
+ fi
else
# Remove placeholders, -f because these have already been removed
# when doing emerge --config.
- rm -f "${image_dir}"/{initrd,uki.efi} || die
+ rm -f "${kernel_dir}/${image_dir}"/{initrd,uki.efi} || die
fi
fi
@@ -656,7 +670,7 @@ kernel-install_install_all() {
nonfatal mount-boot_check_status || break
nonfatal dist-kernel_install_kernel "${module_ver}" \
- "${image_path}" "${kernel_dir}/System.map" || break
+ "${kernel_dir}/${image_path}" "${kernel_dir}/System.map" || break
success=1
break
prev parent reply other threads:[~2024-02-09 16:19 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-09 16:18 [gentoo-dev] [PATCH 1/2] kernel-build.eclass: install vmlinu{x,z} symlink Andrew Ammerlaan
2024-02-09 16:19 ` Andrew Ammerlaan [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=bf7e2ab7-fe45-4875-a882-58f1b9496d49@gentoo.org \
--to=andrewammerlaan@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox