]> code.ossystems Code Review - openembedded-core.git/commitdiff
kernel.bbclass: Remove warnings for modutils and modprobe.d
authorDarren Hart <dvhart@linux.intel.com>
Wed, 7 Mar 2012 08:06:46 +0000 (00:06 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 8 Mar 2012 19:53:57 +0000 (11:53 -0800)
Fixes [Yocto #2036]

The source and build directories are unused, remove them.

The modutils and modprobe.d directories may be used if modules are built that
are either autoloaded or have modprobe.d entries. This isn't known at install
time, so check after the package split if these directories are empty and
remove them if they are.

Signed-off-by: Darren Hart <dvhart@linux.intel.com>
CC: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/kernel.bbclass

index 8fbec90ef1654f5ddcfa7d071a8d2a8008cb939e..169df33b31eb9b01405dbd1d3f1d672841b9de9c 100644 (file)
@@ -105,6 +105,8 @@ kernel_do_install() {
                oe_runmake DEPMOD=echo INSTALL_MOD_PATH="${D}" modules_install
                rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.order"
                rm -f "${D}/lib/modules/${KERNEL_VERSION}/modules.builtin"
+               rm "${D}/lib/modules/${KERNEL_VERSION}/build"
+               rm "${D}/lib/modules/${KERNEL_VERSION}/source"
        else
                bbnote "no modules to install"
        fi
@@ -450,6 +452,14 @@ python populate_packages_prepend () {
        do_split_packages(d, root='/lib/firmware', file_regex='^(.*)\.cis$', output_pattern='kernel-firmware-%s', description='Firmware for %s', recursive=True, extra_depends='')
        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 kernel-%s' % d.getVar("KERNEL_VERSION", True))
 
+       # If modutils and modprobe.d are empty at this point, remove them to
+       # avoid warnings. removedirs only raises an OSError if an empty
+       # directory cannot be removed.
+       dvar = d.getVar('PKGD', True)
+       for dir in ["%s/etc/modutils" % (dvar), "%s/etc/modprobe.d" % (dvar)]:
+               if len(os.listdir(dir)) == 0:
+                       os.rmdir(dir)
+
        import re
        metapkg = "kernel-modules"
        d.setVar('ALLOW_EMPTY_' + metapkg, "1")