summaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel-module-split.bbclass
diff options
context:
space:
mode:
authorOla Redell <ola.redell@retotech.se>2017-01-13 18:22:23 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-01-19 22:45:42 +0000
commit78cde87bb6e71ec5b603426879267874900d09f3 (patch)
tree191838ef4aa2c1ad0cc1c58a807aebeb2747045c /meta/classes/kernel-module-split.bbclass
parent8d72bea03b3db1ddece309d1bab80f9e4c4c2d33 (diff)
downloadopenembedded-core-78cde87bb6e71ec5b603426879267874900d09f3.tar.gz
kernel-module-split: Append KERNEL_VERSION string to kernel module name
The KERNEL_VERSION string is added to kernel module package names in order to make the kernel modules for different kernel versions distinct packages instead of different versions of the same package. With this change, when a new kernel is installed together with its kernel modules (e.g. by upgrade of the packages kernel and kernel-modules) using some package manager such as apt-get or rpm, the kernel modules for the older kernel will not be removed. This enables a fall back to the older kernel if the new one fails. Also, for backwards compatibility and to enable kernel version agnostic dependencies to kernel modules, create a virtual package with the old (shorter) kernel module package name using RPROVIDES. Signed-off-by: Ola Redell <ola.redell@retotech.se> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/classes/kernel-module-split.bbclass')
-rw-r--r--meta/classes/kernel-module-split.bbclass9
1 files changed, 8 insertions, 1 deletions
diff --git a/meta/classes/kernel-module-split.bbclass b/meta/classes/kernel-module-split.bbclass
index 0e4e110f0c..fd04b72f03 100644
--- a/meta/classes/kernel-module-split.bbclass
+++ b/meta/classes/kernel-module-split.bbclass
@@ -31,6 +31,7 @@ PACKAGESPLITFUNCS_prepend = "split_kernel_module_packages "
KERNEL_MODULES_META_PACKAGE ?= "kernel-modules"
KERNEL_MODULE_PACKAGE_PREFIX ?= ""
+KERNEL_MODULE_PROVIDE_VIRTUAL ?= "1"
python split_kernel_module_packages () {
import re
@@ -119,10 +120,16 @@ python split_kernel_module_packages () {
# Avoid automatic -dev recommendations for modules ending with -dev.
d.setVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs', 1)
+ # Provide virtual package without postfix
+ providevirt = d.getVar('KERNEL_MODULE_PROVIDE_VIRTUAL', True)
+ if providevirt == "1":
+ postfix = format.split('%s')[1]
+ d.setVar('RPROVIDES_' + pkg, pkg.replace(postfix, ''))
+
module_regex = '^(.*)\.k?o$'
module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX')
- module_pattern = module_pattern_prefix + 'kernel-module-%s'
+ module_pattern = module_pattern_prefix + 'kernel-module-%s-' + d.getVar("KERNEL_VERSION", True)
postinst = d.getVar('pkg_postinst_modules')
postrm = d.getVar('pkg_postrm_modules')