@@ -449,6 +449,23 @@ class PackageManager(object, metaclass=ABCMeta):
return res
return _append(uris, base_paths)
+
+def generate_feed_dirs(d, feedname, assumeprovidedfeeds):
+ classes = d.getVar('PACKAGE_CLASSES').replace("package_", "").split()
+
+ indexer_map = {
+ "rpm": ("package_write_rpm", d.getVar('DEPLOY_DIR_RPM'), d.expand('${DEPLOY_DIR_FEED_RPM}/%s' % feedname)),
+ "ipk": ("package_write_ipk", d.getVar('DEPLOY_DIR_IPK'), d.expand('${DEPLOY_DIR_FEED_IPK}/%s' % feedname)),
+ "deb": ("package_write_deb", d.getVar('DEPLOY_DIR_DEB'), d.expand('${DEPLOY_DIR_FEED_DEB}/%s' % feedname))
+ }
+
+ for pkg_class in classes:
+ if not pkg_class in indexer_map:
+ continue
+
+ create_packages_dir(d, indexer_map[pkg_class][2], indexer_map[pkg_class][1], indexer_map[pkg_class][0], True, assumeprovidedfeeds)
+
+
def create_packages_dir(d, subrepo_dir, deploydir, taskname, filterbydependencies, assumeprovidedfeeds = None):
"""
Go through our do_package_write_X dependencies and hardlink the packages we depend
Add a generate_feed_dirs method that will call the create_packages_dir method for each package class currently supported in the build environment. The value of the PACKAGE_CLASSES determines which feed types are built. This handles knowing which tasks to look for, which deploy directory to pull packages from, and the deploy path for the feed to be created at. Signed-off-by: Charlie Johnston <charlie.johnston@ni.com> --- meta/lib/oe/package_manager/__init__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)