summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes-recipe/kernel-module-split.bbclass35
1 files changed, 13 insertions, 22 deletions
diff --git a/meta/classes-recipe/kernel-module-split.bbclass b/meta/classes-recipe/kernel-module-split.bbclass
index 50882c31a7..9467a28208 100644
--- a/meta/classes-recipe/kernel-module-split.bbclass
+++ b/meta/classes-recipe/kernel-module-split.bbclass
@@ -30,10 +30,6 @@ fi
30 30
31PACKAGE_WRITE_DEPS += "kmod-native depmodwrapper-cross" 31PACKAGE_WRITE_DEPS += "kmod-native depmodwrapper-cross"
32 32
33do_install:append() {
34 install -d ${D}${sysconfdir}/modules-load.d/ ${D}${sysconfdir}/modprobe.d/
35}
36
37KERNEL_SPLIT_MODULES ?= "1" 33KERNEL_SPLIT_MODULES ?= "1"
38PACKAGESPLITFUNCS =+ "split_kernel_module_packages" 34PACKAGESPLITFUNCS =+ "split_kernel_module_packages"
39 35
@@ -102,7 +98,9 @@ python split_kernel_module_packages () {
102 if autoload and basename not in autoloadlist: 98 if autoload and basename not in autoloadlist:
103 bb.warn("module_autoload_%s is defined but '%s' isn't included in KERNEL_MODULE_AUTOLOAD, please add it there" % (basename, basename)) 99 bb.warn("module_autoload_%s is defined but '%s' isn't included in KERNEL_MODULE_AUTOLOAD, please add it there" % (basename, basename))
104 if basename in autoloadlist: 100 if basename in autoloadlist:
105 name = '%s/etc/modules-load.d/%s.conf' % (dvar, basename) 101 conf = '/etc/modules-load.d/%s.conf' % basename
102 name = '%s%s' % (dvar, conf)
103 os.makedirs(os.path.dirname(name), exist_ok=True)
106 f = open(name, 'w') 104 f = open(name, 'w')
107 if autoload: 105 if autoload:
108 for m in autoload.split(): 106 for m in autoload.split():
@@ -110,6 +108,9 @@ python split_kernel_module_packages () {
110 else: 108 else:
111 f.write('%s\n' % basename) 109 f.write('%s\n' % basename)
112 f.close() 110 f.close()
111 conf2append = ' %s' % conf
112 d.appendVar('FILES:%s' % pkg, conf2append)
113 d.appendVar('CONFFILES:%s' % pkg, conf2append)
113 postinst = d.getVar('pkg_postinst:%s' % pkg) 114 postinst = d.getVar('pkg_postinst:%s' % pkg)
114 if not postinst: 115 if not postinst:
115 bb.fatal("pkg_postinst:%s not defined" % pkg) 116 bb.fatal("pkg_postinst:%s not defined" % pkg)
@@ -120,21 +121,19 @@ python split_kernel_module_packages () {
120 modconflist = (d.getVar("KERNEL_MODULE_PROBECONF") or "").split() 121 modconflist = (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()
121 modconf = d.getVar('module_conf_%s' % basename) 122 modconf = d.getVar('module_conf_%s' % basename)
122 if modconf and basename in modconflist: 123 if modconf and basename in modconflist:
123 name = '%s/etc/modprobe.d/%s.conf' % (dvar, basename) 124 conf = '/etc/modprobe.d/%s.conf' % basename
125 name = '%s%s' % (dvar, conf)
126 os.makedirs(os.path.dirname(name), exist_ok=True)
124 f = open(name, 'w') 127 f = open(name, 'w')
125 f.write("%s\n" % modconf) 128 f.write("%s\n" % modconf)
126 f.close() 129 f.close()
130 conf2append = ' %s' % conf
131 d.appendVar('FILES:%s' % pkg, conf2append)
132 d.appendVar('CONFFILES:%s' % pkg, conf2append)
133
127 elif modconf: 134 elif modconf:
128 bb.error("Please ensure module %s is listed in KERNEL_MODULE_PROBECONF since module_conf_%s is set" % (basename, basename)) 135 bb.error("Please ensure module %s is listed in KERNEL_MODULE_PROBECONF since module_conf_%s is set" % (basename, basename))
129 136
130 files = d.getVar('FILES:%s' % pkg)
131 files = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (files, basename, basename)
132 d.setVar('FILES:%s' % pkg, files)
133
134 conffiles = d.getVar('CONFFILES:%s' % pkg)
135 conffiles = "%s /etc/modules-load.d/%s.conf /etc/modprobe.d/%s.conf" % (conffiles, basename, basename)
136 d.setVar('CONFFILES:%s' % pkg, conffiles)
137
138 if "description" in vals: 137 if "description" in vals:
139 old_desc = d.getVar('DESCRIPTION:' + pkg) or "" 138 old_desc = d.getVar('DESCRIPTION:' + pkg) or ""
140 d.setVar('DESCRIPTION:' + pkg, old_desc + "; " + vals["description"]) 139 d.setVar('DESCRIPTION:' + pkg, old_desc + "; " + vals["description"])
@@ -184,14 +183,6 @@ python split_kernel_module_packages () {
184 modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%s-%s' % (kernel_package_name, kernel_version)) 183 modules = do_split_packages(d, root='${nonarch_base_libdir}/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='%s-%s' % (kernel_package_name, kernel_version))
185 if modules: 184 if modules:
186 d.appendVar('RDEPENDS:' + metapkg, ' '+' '.join(modules)) 185 d.appendVar('RDEPENDS:' + metapkg, ' '+' '.join(modules))
187
188 # If modules-load.d and modprobe.d are empty at this point, remove them to
189 # avoid warnings. removedirs only raises an OSError if an empty
190 # directory cannot be removed.
191 dvar = d.getVar('PKGD')
192 for dir in ["%s/etc/modprobe.d" % (dvar), "%s/etc/modules-load.d" % (dvar), "%s/etc" % (dvar)]:
193 if len(os.listdir(dir)) == 0:
194 os.rmdir(dir)
195} 186}
196 187
197do_package[vardeps] += '${@" ".join(map(lambda s: "module_conf_" + s, (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()))}' 188do_package[vardeps] += '${@" ".join(map(lambda s: "module_conf_" + s, (d.getVar("KERNEL_MODULE_PROBECONF") or "").split()))}'