public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 1/2] kernel-build.eclass: install vmlinu{x,z} symlink
@ 2024-02-09 16:18 Andrew Ammerlaan
  2024-02-09 16:19 ` [gentoo-dev] [PATCH 2/2] kernel-install.eclass: " Andrew Ammerlaan
  0 siblings, 1 reply; 2+ messages in thread
From: Andrew Ammerlaan @ 2024-02-09 16:18 UTC (permalink / raw)
  To: gentoo-dev

 From 3d3c073f932caa307c26f8cf17b061a609433fce Mon Sep 17 00:00:00 2001
From: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
Date: Wed, 7 Feb 2024 13:28:02 +0100
Subject: [PATCH] kernel-build.eclass: install vmlinu{x,z} symlink

Some other distributions install (a symlink to) the kernel
image here. Tools such as 'kernel-install list',
'kernel-install inspect', dracut and ukify look for the kernel
image here. So lets install this symlink to make manual
invocation of dracut and ukify a bit easier. As well as
make it possible to use other kernel-install features
such as list, inspect and add-all.

Signed-off-by: Andrew Ammerlaan <andrewammerlaan@gentoo.org>
---
  eclass/kernel-build.eclass | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/eclass/kernel-build.eclass b/eclass/kernel-build.eclass
index 14a6002ea5b58..7922638be6e1c 100644
--- a/eclass/kernel-build.eclass
+++ b/eclass/kernel-build.eclass
@@ -385,6 +385,11 @@ kernel-build_src_install() {
  	# fix source tree and build dir symlinks
  	dosym "../../../${kernel_dir}" "/lib/modules/${module_ver}/build"
  	dosym "../../../${kernel_dir}" "/lib/modules/${module_ver}/source"
+	if [[ "${image_path}" == *vmlinux* ]]; then
+		dosym "../../../${kernel_dir}/${image_path}" 
"/lib/modules/${module_ver}/vmlinux"
+	else
+		dosym "../../../${kernel_dir}/${image_path}" 
"/lib/modules/${module_ver}/vmlinuz"
+	fi

  	if [[ ${KERNEL_IUSE_MODULES_SIGN} ]]; then
  		secureboot_sign_efi_file "${image}"


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-dev] [PATCH 2/2] kernel-install.eclass: install vmlinu{x,z} symlink
  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
  0 siblings, 0 replies; 2+ messages in thread
From: Andrew Ammerlaan @ 2024-02-09 16:19 UTC (permalink / raw)
  To: gentoo-dev

 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



^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-02-09 16:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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 ` [gentoo-dev] [PATCH 2/2] kernel-install.eclass: " Andrew Ammerlaan

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