diff options
author | Phil Blundell <philb@gnu.org> | 2004-07-04 15:24:14 +0000 |
---|---|---|
committer | Phil Blundell <philb@gnu.org> | 2004-07-04 15:24:14 +0000 |
commit | fd62b55281f1493f24bd4dd0a9c6a2c078390221 (patch) | |
tree | f7a22963645a5c1ad9f49733b4cfe2289f78ed0e /classes | |
parent | f8790318128135669c3d7fe5aa2a3a4ab8c0f814 (diff) |
rationalise module handling in kernel packages and MACHINE.conf files.
changed module naming to use - rather than + as replacement for underscore.
ignore errors from update-modules in postinst, in case modutils-collateral is in use.
add postrm scripts.
BKrev: 40e8211eLQcjqqTncCe6a_iEukTM_g
Diffstat (limited to 'classes')
-rw-r--r-- | classes/kernel.oeclass | 15 | ||||
-rw-r--r-- | classes/linux_modules.oeclass | 0 | ||||
-rw-r--r-- | classes/package.oeclass | 14 |
3 files changed, 21 insertions, 8 deletions
diff --git a/classes/kernel.oeclass b/classes/kernel.oeclass index 35884000a3..a0b26e33b9 100644 --- a/classes/kernel.oeclass +++ b/classes/kernel.oeclass @@ -85,10 +85,14 @@ if [ -n "$D" ]; then ${HOST_PREFIX}depmod -A -b $D -F $D/boot/System.map-${PV} $VER else depmod -A - update-modules + update-modules || true fi } +pkg_postrm_modules () { +update-modules || true +} + autoload_postinst_fragment() { if [ x"$D" = "x" ]; then modprobe %s @@ -184,7 +188,7 @@ python populate_packages_prepend () { m = re.match(pattern, os.path.basename(i)) if not m: continue - on = m.group(1).lower().replace('_', '+').replace('@', '+') + on = legitimize_package_name(m.group(1)) dependencies.append(format % on) return dependencies return [] @@ -219,7 +223,7 @@ python populate_packages_prepend () { f.close() files = oe.data.getVar('FILES_%s' % pkg, d, 1) - files = "%s %s/etc/modutils/%s %s/etc/modutils/%s.conf" % (files, dvar, basename, dvar, basename) + files = "%s /etc/modutils/%s /etc/modutils/%s.conf" % (files, basename, basename) oe.data.setVar('FILES_%s' % pkg, files, d) if vals.has_key("description"): @@ -239,7 +243,8 @@ python populate_packages_prepend () { module_pattern = 'kernel-module-%s' postinst = oe.data.getVar('pkg_postinst_modules', d, 1) - do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, recursive=True, hook=frob_metadata, extra_depends='update-modules') + postrm = oe.data.getVar('pkg_postrm_modules', d, 1) + do_split_packages(d, root='/lib/modules', file_regex=module_regex, output_pattern=module_pattern, description='%s kernel module', postinst=postinst, postrm=postrm, recursive=True, hook=frob_metadata, extra_depends='update-modules') import re, os metapkg = "kernel-modules" @@ -248,7 +253,7 @@ python populate_packages_prepend () { blacklist = [] for l in module_deps.values(): for i in l: - pkg = module_pattern % re.match(module_regex, os.path.basename(i)).group(1).lower().replace('_', '+').replace('@', '+') + pkg = module_pattern % legitimize_package_name(re.match(module_regex, os.path.basename(i)).group(1)) blacklist.append(pkg) metapkg_rdepends = [] packages = oe.data.getVar('PACKAGES', d, 1).split() diff --git a/classes/linux_modules.oeclass b/classes/linux_modules.oeclass new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/classes/linux_modules.oeclass diff --git a/classes/package.oeclass b/classes/package.oeclass index 1c9cc53cbb..cde4ef6e5c 100644 --- a/classes/package.oeclass +++ b/classes/package.oeclass @@ -1,4 +1,7 @@ -def do_split_packages(d, root, file_regex, output_pattern, description, postinst=None, recursive=False, hook=None, extra_depends=None, aux_files_pattern=None): +def legitimize_package_name(s): + return s.lower().replace('_', '-').replace('@', '+') + +def do_split_packages(d, root, file_regex, output_pattern, description, postinst=None, recursive=False, hook=None, extra_depends=None, aux_files_pattern=None, postrm=None): import os, os.path, oe dvar = oe.data.getVar('D', d, 1) @@ -13,6 +16,8 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst if postinst: postinst = '#!/bin/sh\n' + postinst + if postrm: + postrm = '#!/bin/sh\n' + postrm if not recursive: objs = os.listdir(dvar + root) else: @@ -34,7 +39,7 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst f = os.path.join(dvar + root, o) if not stat.S_ISREG(os.lstat(f).st_mode): continue - on = m.group(1).lower().replace('_', '+').replace('@', '+') + on = legitimize_package_name(m.group(1)) pkg = output_pattern % on if not pkg in packages: packages.append(pkg) @@ -47,6 +52,8 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst oe.data.setVar('DESCRIPTION_' + pkg, description % on, d) if postinst: oe.data.setVar('pkg_postinst_' + pkg, postinst, d) + if postrm: + oe.data.setVar('pkg_postrm_' + pkg, postrm, d) else: oldfiles = oe.data.getVar('FILES_' + pkg, d, 1) if not oldfiles: @@ -220,6 +227,7 @@ python populate_packages () { write_if_exists(f, pkg, 'ALLOW_EMPTY') write_if_exists(f, pkg, 'FILES') write_if_exists(f, pkg, 'pkg_postinst') + write_if_exists(f, pkg, 'pkg_postrm') f.close() oe.build.exec_func("read_subpackage_metadata", d) } @@ -399,7 +407,7 @@ python package_do_split_locales() { mainpkg = packages[0] for l in locales: - ln = l.lower().replace('_', '+').replace('@', '+') + ln = legitimize_package_name(l) pkg = pn + '-locale-' + ln packages.append(pkg) oe.data.setVar('FILES_' + pkg, os.path.join(datadir, 'locale', l), d) |