def get_recipe_upgrade_status(recipes=None): pkgs_list = [] data_copy_list = [] copy_vars = ( 'SRC_URI', 'PV', 'GITDIR', 'DL_DIR', 'PN', 'CACHE', 'PERSISTENT_DIR', 'BB_URI_HEADREVS', 'UPSTREAM_CHECK_COMMITS', 'UPSTREAM_CHECK_GITTAGREGEX', 'UPSTREAM_CHECK_REGEX', 'UPSTREAM_CHECK_URI', 'UPSTREAM_VERSION_UNKNOWN', 'RECIPE_MAINTAINER', 'RECIPE_NO_UPDATE_REASON', 'RECIPE_UPSTREAM_VERSION', 'RECIPE_UPSTREAM_DATE', 'CHECK_DATE', ) with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=False) if not recipes: recipes = tinfoil.all_recipe_files(variants=False) for fn in recipes: try: if fn.startswith("/"): data = tinfoil.parse_recipe_file(fn) else: data = tinfoil.parse_recipe(fn) except bb.providers.NoProvider: bb.note(" No provider for %s" % fn) continue unreliable = data.getVar('UPSTREAM_CHECK_UNRELIABLE') if unreliable == "1": bb.note(" Skip package %s as upstream check unreliable" % pn) continue data_copy = bb.data.init() for var in copy_vars: data_copy.setVar(var, data.getVar(var)) for k in data: if k.startswith('SRCREV'): data_copy.setVar(k, data.getVar(k)) data_copy_list.append(data_copy) from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor(max_workers=utils.cpu_count()) as executor: pkgs_list = executor.map(_get_recipe_upgrade_status, data_copy_list) return pkgs_list
def get_recipe_upgrade_status(recipes=None): pkgs_list = [] data_copy_list = [] copy_vars = ('SRC_URI', 'PV', 'GITDIR', 'DL_DIR', 'PN', 'CACHE', 'PERSISTENT_DIR', 'BB_URI_HEADREVS', 'UPSTREAM_CHECK_COMMITS', 'UPSTREAM_CHECK_GITTAGREGEX', 'UPSTREAM_CHECK_REGEX', 'UPSTREAM_CHECK_URI', 'UPSTREAM_VERSION_UNKNOWN', 'RECIPE_MAINTAINER', 'RECIPE_NO_UPDATE_REASON', 'RECIPE_UPSTREAM_VERSION', 'RECIPE_UPSTREAM_DATE', 'CHECK_DATE', ) with bb.tinfoil.Tinfoil() as tinfoil: tinfoil.prepare(config_only=False) if not recipes: recipes = tinfoil.all_recipe_files(variants=False) for fn in recipes: try: if fn.startswith("/"): data = tinfoil.parse_recipe_file(fn) else: data = tinfoil.parse_recipe(fn) except bb.providers.NoProvider: bb.note(" No provider for %s" % fn) continue unreliable = data.getVar('UPSTREAM_CHECK_UNRELIABLE') if unreliable == "1": bb.note(" Skip package %s as upstream check unreliable" % pn) continue data_copy = bb.data.init() for var in copy_vars: data_copy.setVar(var, data.getVar(var)) for k in data: if k.startswith('SRCREV'): data_copy.setVar(k, data.getVar(k)) data_copy_list.append(data_copy) from concurrent.futures import ProcessPoolExecutor with ProcessPoolExecutor(max_workers=utils.cpu_count()) as executor: pkgs_list = executor.map(_get_recipe_upgrade_status, data_copy_list) return pkgs_list