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

Reply via email to