do_split_packages: revise for multilib case
authorYu Ke <ke.yu@intel.com>
Sat, 16 Jul 2011 02:02:53 +0000 (10:02 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 27 Jul 2011 15:18:50 +0000 (16:18 +0100)
in multilib case, the PACKAGE_DYNAMIC is overrided with multilib
prefix. Take multilib:lib64-perl as example. the "perl-module-*"
will become "lib64-perl-module-*"

the output_pattern in do_split_packages is designed to work with
PACKAGE_DYNAMIC, so it should be applied with the same logic, i.e.
overriding with multilib prefix. otherwise the do_split_package will
split incorrect files

this patch implements the mulitlib override logic for do_split_packages

We also need to rename the extra_depends to support multilib case
(from Dongxaio Xu).

(From OE-Core rev: a4bc86713892502aeefbbdb3053e8cf1e1fc0bdb)

Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Xu Dongxiao <dongxiao.xu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package.bbclass

index 0caab6d..bb0ba68 100644 (file)
@@ -70,6 +70,20 @@ def do_split_packages(d, root, file_regex, output_pattern, description, postinst
        given package, usually plugins or modules.
        """
 
+       ml = d.getVar("MLPREFIX", True)
+       if ml:
+               if not output_pattern.startswith(ml):
+                       output_pattern = ml + output_pattern
+
+               newdeps = []
+               for dep in (extra_depends or "").split():
+                       if dep.startswith(ml):
+                               newdeps.append(dep)
+                       else:
+                               newdeps.append(ml + dep)
+               if newdeps:
+                       extra_depends = " ".join(newdeps)
+
        dvar = bb.data.getVar('PKGD', d, True)
 
        packages = bb.data.getVar('PACKAGES', d, True).split()