@@ -533,27 +533,29 @@ def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencie
raise
-def generate_index_files(d):
+def generate_index_files(d, isFeed = False):
from oe.package_manager.rpm import RpmSubdirIndexer
from oe.package_manager.ipk import OpkgIndexer
from oe.package_manager.deb import DpkgIndexer
classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split()
- indexer_map = {
- "rpm": (RpmSubdirIndexer, d.getVar('DEPLOY_DIR_RPM')),
- "ipk": (OpkgIndexer, d.getVar('DEPLOY_DIR_IPK')),
- "deb": (DpkgIndexer, d.getVar('DEPLOY_DIR_DEB'))
+ pkg_class_map = {
+ "rpm": { 'indexer': RpmSubdirIndexer, 'pkgdir': d.getVar('DEPLOY_DIR_RPM'), 'feedir': d.getVar('DEPLOY_DIR_FEED_RPM')},
+ "ipk": { 'indexer': OpkgIndexer, 'pkgdir': d.getVar('DEPLOY_DIR_IPK'), 'feedir': d.getVar('DEPLOY_DIR_FEED_IPK')},
+ "deb": { 'indexer': DpkgIndexer, 'pkgdir': d.getVar('DEPLOY_DIR_DEB'), 'feedir': d.getVar('DEPLOY_DIR_FEED_DEB')}
}
result = None
for pkg_class in classes:
- if not pkg_class in indexer_map:
+ if not pkg_class in pkg_class_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()
+ pkgcfg = pkg_class_map[pkg_class]
+ feedpath = pkgcfg['feedir'] if isFeed else pkgcfg['pkgdir']
+ if os.path.exists(feedpath):
+ result = pkgcfg['indexer'](d, feedpath).write_index()
if result is not None:
bb.fatal(result)
Currently, the generate_index_files function only handles the creation of index files in the DEPLOY_DIR_<PKG_TYPE> directories. This change adds an optional isFeed input that will instead point the index generation at a package specific feed directory. If no feedname is specified, the original behavior persists and the index is created in the DEPLOY_DIR_<PKG_TYPE> directory. The directory for index creation when isFeed is true will be DEPLOY_DIR_FEED_<PKG_TYPE>. Signed-off-by: Charlie Johnston <charlie.johnston@ni.com> --- meta/lib/oe/package_manager/__init__.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-)