From 1674541ed83fa4645f2e078f65fe0f878527ee6e Mon Sep 17 00:00:00 2001 From: Constantin Musca Date: Mon, 24 Dec 2012 13:28:38 +0200 Subject: multilib: fix allarch/kernel/module-base multilib issues - skip the non-packagegroup allarch recipes in multilib_virtclass_handler - extend PROVIDES/RPROVIDES for allarch recipes which are not packagegroups - use variants from MULTILIB_GLOBAL_VARIANTS (lib32 lib64 libx32) to create additional pkgdata files for multilib allarch: ${pkgdatadir}/${variant}-${PN} and ${pkgdatadir}/runtime/${variant}-${pkg} - use variants from MULTILIB_VARIANTS to create additional pkgdata files for multilib kernel/module-base recipes - add a sanity check to determine if the current multilib is in MULTILIB_GLOBAL_VARIANTS [YOCTO #2918] [YOCTO #3440] [YOCTO #3565] [YOCTO #3568] (From OE-Core rev: bc4da2573dfb59ea2fc4af359701818df20f7663) Signed-off-by: Constantin Musca Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- meta/classes/package.bbclass | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'meta/classes/package.bbclass') diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 9885d94101..1ac65510c7 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass @@ -1132,6 +1132,20 @@ python emit_pkgdata() { size = 0 return size + def write_extra_pkgs(variants, pn, packages, pkgdatadir): + for variant in variants: + with open("%s/%s-%s" % (pkgdatadir, variant, pn), 'w') as fd: + fd.write("PACKAGES: %s\n" % ' '.join( + map(lambda pkg: '%s-%s' % (variant, pkg), packages.split()))) + + def write_extra_runtime_pkgs(variants, packages, pkgdatadir): + for variant in variants: + for pkg in packages.split(): + ml_pkg = "%s-%s" % (variant, pkg) + subdata_file = "%s/runtime/%s" % (pkgdatadir, ml_pkg) + with open(subdata_file, 'w') as fd: + fd.write("PKG_%s: %s" % (ml_pkg, pkg)) + packages = d.getVar('PACKAGES', True) pkgdest = d.getVar('PKGDEST', True) pkgdatadir = d.getVar('PKGDESTWORK', True) @@ -1144,6 +1158,16 @@ python emit_pkgdata() { f.write("PACKAGES: %s\n" % packages) f.close() + pn = d.getVar('PN', True) + global_variants = (d.getVar('MULTILIB_GLOBAL_VARIANTS', True) or "").split() + variants = (d.getVar('MULTILIB_VARIANTS', True) or "").split() + + if bb.data.inherits_class('kernel', d) or bb.data.inherits_class('module-base', d): + write_extra_pkgs(variants, pn, packages, pkgdatadir) + + if (bb.data.inherits_class('allarch', d) and not bb.data.inherits_class('packagegroup', d)): + write_extra_pkgs(global_variants, pn, packages, pkgdatadir) + workdir = d.getVar('WORKDIR', True) for pkg in packages.split(): @@ -1198,6 +1222,12 @@ python emit_pkgdata() { packagedfile = pkgdatadir + '/runtime/%s.packaged' % pkg file(packagedfile, 'w').close() + if bb.data.inherits_class('kernel', d) or bb.data.inherits_class('module-base', d): + write_extra_runtime_pkgs(variants, packages, pkgdatadir) + + if bb.data.inherits_class('allarch', d) and not bb.data.inherits_class('packagegroup', d): + write_extra_runtime_pkgs(global_variants, packages, pkgdatadir) + bb.utils.unlockfile(lf) } emit_pkgdata[dirs] = "${PKGDESTWORK}/runtime ${PKGDESTWORK}/runtime-reverse" -- cgit v1.2.3-54-g00ecf