commit: e893119949ec1f94b83dc467514dc9ad4495a596
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Fri Jul 23 22:04:53 2021 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Fri Jul 23 22:06:48 2021 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e8931199
kernel-install.eclass: Add a safety check for mismatched version
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
eclass/kernel-install.eclass | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/eclass/kernel-install.eclass b/eclass/kernel-install.eclass
index e6b9cbe45c0..b80a8d6ea93 100644
--- a/eclass/kernel-install.eclass
+++ b/eclass/kernel-install.eclass
@@ -388,11 +388,23 @@ kernel-install_src_test() {
# @FUNCTION: kernel-install_pkg_preinst
# @DESCRIPTION:
-# Stub out mount-boot.eclass.
+# Verify whether the kernel has been installed correctly.
kernel-install_pkg_preinst() {
debug-print-function ${FUNCNAME} "${@}"
- # (no-op)
+ local ver="${PV}${KV_LOCALVERSION}"
+ local kdir="${ED}/usr/src/linux-${ver}"
+ local relfile="${kdir}/include/config/kernel.release"
+ [[ ! -d ${kdir} ]] && die "Kernel directory ${kdir} not installed!"
+ [[ ! -f ${relfile} ]] && die "Release file ${relfile} not installed!"
+ local release="$(<"${relfile}")"
+ if [[ ${release} != ${PV}* ]]; then
+ eerror "Kernel release mismatch!"
+ eerror " expected (PV): ${PV}*"
+ eerror " found: ${release}"
+ eerror "Please verify that you are applying the correct
patches."
+ die "Kernel release mismatch (${release} instead of ${PV}*)"
+ fi
}
# @FUNCTION: kernel-install_install_all