commit:     b1f74da11016a3c872f250983cd5f9d06f181708
Author:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 29 09:58:11 2024 +0000
Commit:     Andrew Ammerlaan <andrewammerlaan <AT> gentoo <DOT> org>
CommitDate: Tue Jan 30 11:08:45 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b1f74da1

linux-mod-r1.eclass: warn if KV does not match virtual/dist-kernel

We have no mechanism to ensure that we build the kernel modules for
the same kernel version as the version we will record in the virtual/dist-kernel
subslot dependency. This does not fix this problem, but it does add a warning
to ensure users are aware that, for example, built binpkgs are going to have
wrong dependency metadata.

Bug: https://bugs.gentoo.org/923025
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/35066
Signed-off-by: Andrew Ammerlaan <andrewammerlaan <AT> gentoo.org>

 eclass/linux-mod-r1.eclass | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/eclass/linux-mod-r1.eclass b/eclass/linux-mod-r1.eclass
index 67a4b64eb481..8d384c2b30c8 100644
--- a/eclass/linux-mod-r1.eclass
+++ b/eclass/linux-mod-r1.eclass
@@ -1,4 +1,4 @@
-# Copyright 2023 Gentoo Authors
+# Copyright 2023-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: linux-mod-r1.eclass
@@ -650,6 +650,24 @@ _modules_prepare_kernel() {
        fi
 
        linux-info_pkg_setup
+
+       if use dist-kernel &&
+               ! has_version 
"~virtual/dist-kernel-${KV_MAJOR}.${KV_MINOR}.${KV_PATCH}"
+       then
+               ewarn
+               ewarn "The kernel modules in ${CATEGORY}/${PN} are being built 
for"
+               ewarn "kernel version ${KV_FULL}. But this does not match the"
+               ewarn "installed version of virtual/dist-kernel."
+               ewarn
+               ewarn "If this is not intentional, the problem may be corrected 
by"
+               ewarn "using \"eselect kernel\" to set the default kernel 
version to"
+               ewarn "the same version as the installed version of 
virtual/dist-kernel."
+               ewarn
+               ewarn "If the distribution kernel is being downgraded, ensure 
that"
+               ewarn "virtual/dist-kernel is also downgraded to the same 
version"
+               ewarn "before rebuilding external kernel modules."
+               ewarn
+       fi
 }
 
 # @FUNCTION: _modules_prepare_sign

Reply via email to