summaryrefslogtreecommitdiffstats
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:47:20 +0000
commit47400e36484b2da96d568a4d26a9cef8fb5ed592 (patch)
tree54e0b38f81a6778c3ebc15cc50215b665c903468
parenteb6bd8901460eb722bae6353d6199bd2a4aaf456 (diff)
downloadpoky-47400e36484b2da96d568a4d26a9cef8fb5ed592.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. (From OE-Core rev: 78cde87bb6e71ec5b603426879267874900d09f3) Signed-off-by: Ola Redell <ola.redell@retotech.se> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-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 "
31KERNEL_MODULES_META_PACKAGE ?= "kernel-modules" 31KERNEL_MODULES_META_PACKAGE ?= "kernel-modules"
32 32
33KERNEL_MODULE_PACKAGE_PREFIX ?= "" 33KERNEL_MODULE_PACKAGE_PREFIX ?= ""
34KERNEL_MODULE_PROVIDE_VIRTUAL ?= "1"
34 35
35python split_kernel_module_packages () { 36python split_kernel_module_packages () {
36 import re 37 import re
@@ -119,10 +120,16 @@ python split_kernel_module_packages () {
119 # Avoid automatic -dev recommendations for modules ending with -dev. 120 # Avoid automatic -dev recommendations for modules ending with -dev.
120 d.setVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs', 1) 121 d.setVarFlag('RRECOMMENDS_' + pkg, 'nodeprrecs', 1)
121 122
123 # Provide virtual package without postfix
124 providevirt = d.getVar('KERNEL_MODULE_PROVIDE_VIRTUAL', True)
125 if providevirt == "1":
126 postfix = format.split('%s')[1]
127 d.setVar('RPROVIDES_' + pkg, pkg.replace(postfix, ''))
128
122 module_regex = '^(.*)\.k?o$' 129 module_regex = '^(.*)\.k?o$'
123 130
124 module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX') 131 module_pattern_prefix = d.getVar('KERNEL_MODULE_PACKAGE_PREFIX')
125 module_pattern = module_pattern_prefix + 'kernel-module-%s' 132 module_pattern = module_pattern_prefix + 'kernel-module-%s-' + d.getVar("KERNEL_VERSION", True)
126 133
127 postinst = d.getVar('pkg_postinst_modules') 134 postinst = d.getVar('pkg_postinst_modules')
128 postrm = d.getVar('pkg_postrm_modules') 135 postrm = d.getVar('pkg_postrm_modules')