diff options
author | Laurentiu Palcu <laurentiu.palcu@intel.com> | 2014-02-25 14:36:17 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-25 17:49:55 +0000 |
commit | 0521d48a1612bfc735e2c86acc9b685c1dc389ef (patch) | |
tree | dfd79f2b8b37ea713ed7b8f9df0f637bca8282fd | |
parent | cb84a4acbd4ad448f140605769b873068e0a0874 (diff) | |
download | openembedded-core-0521d48a1612bfc735e2c86acc9b685c1dc389ef.tar.gz openembedded-core-0521d48a1612bfc735e2c86acc9b685c1dc389ef.tar.bz2 openembedded-core-0521d48a1612bfc735e2c86acc9b685c1dc389ef.zip |
package_manager.py: create index files for all backends in PACKAGE_CLASSES
The previous implementation was checking IMAGE_PKGTYPE and created the
index files just for the backend used to create the image. Apparently,
'bitbake package-index' should attempt to create the index files for all
backends specified in PACKAGE_CLASSES.
[YOCTO #5827]
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oe/package_manager.py | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py index d29adaca7b..ff4f1dee03 100644 --- a/meta/lib/oe/package_manager.py +++ b/meta/lib/oe/package_manager.py @@ -1519,19 +1519,25 @@ class DpkgPM(PackageManager): def generate_index_files(d): - img_type = d.getVar('IMAGE_PKGTYPE', True) + classes = d.getVar('PACKAGE_CLASSES', True).replace("package_", "").split() + + indexer_map = { + "rpm": (RpmIndexer, d.getVar('DEPLOY_DIR_RPM', True)), + "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK', True)), + "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB', True)) + } result = None - if img_type == "rpm": - result = RpmIndexer(d, d.getVar('DEPLOY_DIR_RPM', True)).write_index() - elif img_type == "ipk": - result = OpkgIndexer(d, d.getVar('DEPLOY_DIR_IPK', True)).write_index() - elif img_type == "deb": - result = DpkgIndexer(d, d.getVar('DEPLOY_DIR_DEB', True)).write_index() + for pkg_class in classes: + if not pkg_class in indexer_map: + continue + + if os.path.exists(indexer_map[pkg_class][1]): + result = indexer_map[pkg_class][0](d, indexer_map[pkg_class][1]).write_index() - if result is not None: - bb.fatal(result) + if result is not None: + bb.fatal(result) if __name__ == "__main__": """ |