diff options
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/AtomArg.py | 2 | ||||
-rw-r--r-- | pym/_emerge/EbuildBuild.py | 2 | ||||
-rw-r--r-- | pym/_emerge/EbuildFetcher.py | 2 | ||||
-rw-r--r-- | pym/_emerge/EbuildFetchonly.py | 4 | ||||
-rw-r--r-- | pym/_emerge/FakeVartree.py | 2 | ||||
-rw-r--r-- | pym/_emerge/MergeListItem.py | 2 | ||||
-rw-r--r-- | pym/_emerge/Package.py | 16 | ||||
-rw-r--r-- | pym/_emerge/PackageVirtualDbapi.py | 2 | ||||
-rw-r--r-- | pym/_emerge/Scheduler.py | 8 | ||||
-rw-r--r-- | pym/_emerge/actions.py | 4 | ||||
-rw-r--r-- | pym/_emerge/depgraph.py | 91 | ||||
-rw-r--r-- | pym/_emerge/is_valid_package_atom.py | 11 | ||||
-rw-r--r-- | pym/_emerge/main.py | 2 | ||||
-rw-r--r-- | pym/_emerge/resolver/output.py | 8 |
14 files changed, 84 insertions, 72 deletions
diff --git a/pym/_emerge/AtomArg.py b/pym/_emerge/AtomArg.py index f7740753c..a929b433e 100644 --- a/pym/_emerge/AtomArg.py +++ b/pym/_emerge/AtomArg.py @@ -8,4 +8,4 @@ class AtomArg(DependencyArg): def __init__(self, atom=None, **kwargs): DependencyArg.__init__(self, **kwargs) self.atom = atom - self.pset = InternalPackageSet(initial_atoms=(self.atom,)) + self.pset = InternalPackageSet(initial_atoms=(self.atom,), allow_repo=True) diff --git a/pym/_emerge/EbuildBuild.py b/pym/_emerge/EbuildBuild.py index 974a1586a..0f9b85cc3 100644 --- a/pym/_emerge/EbuildBuild.py +++ b/pym/_emerge/EbuildBuild.py @@ -42,7 +42,7 @@ class EbuildBuild(CompositeTask): portdb = root_config.trees[tree].dbapi settings.setcpv(pkg) settings.configdict["pkg"]["EMERGE_FROM"] = pkg.type_name - ebuild_path = portdb.findname(pkg.cpv) + ebuild_path = portdb.findname(pkg.cpv, myrepo=pkg.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % pkg.cpv) self._ebuild_path = ebuild_path diff --git a/pym/_emerge/EbuildFetcher.py b/pym/_emerge/EbuildFetcher.py index 191d56ee7..3446918b6 100644 --- a/pym/_emerge/EbuildFetcher.py +++ b/pym/_emerge/EbuildFetcher.py @@ -20,7 +20,7 @@ class EbuildFetcher(SpawnProcess): root_config = self.pkg.root_config portdb = root_config.trees["porttree"].dbapi - ebuild_path = portdb.findname(self.pkg.cpv) + ebuild_path = portdb.findname(self.pkg.cpv, myrepo=self.pkg.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % self.pkg.cpv) diff --git a/pym/_emerge/EbuildFetchonly.py b/pym/_emerge/EbuildFetchonly.py index 8e02c2a77..0ab1a723e 100644 --- a/pym/_emerge/EbuildFetchonly.py +++ b/pym/_emerge/EbuildFetchonly.py @@ -15,7 +15,7 @@ class EbuildFetchonly(SlotObject): settings = self.settings pkg = self.pkg portdb = pkg.root_config.trees["porttree"].dbapi - ebuild_path = portdb.findname(pkg.cpv) + ebuild_path = portdb.findname(pkg.cpv, myrepo=pkg.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % pkg.cpv) settings.setcpv(pkg) @@ -64,7 +64,7 @@ class EbuildFetchonly(SlotObject): pkg = self.pkg root_config = pkg.root_config portdb = root_config.trees["porttree"].dbapi - ebuild_path = portdb.findname(pkg.cpv) + ebuild_path = portdb.findname(pkg.cpv, myrepo=pkg.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % pkg.cpv) debug = settings.get("PORTAGE_DEBUG") == "1" diff --git a/pym/_emerge/FakeVartree.py b/pym/_emerge/FakeVartree.py index 977824c78..64a39cf4d 100644 --- a/pym/_emerge/FakeVartree.py +++ b/pym/_emerge/FakeVartree.py @@ -81,7 +81,7 @@ class FakeVartree(vartree): self._aux_get_wrapper(cpv, []) return matches - def _aux_get_wrapper(self, pkg, wants): + def _aux_get_wrapper(self, pkg, wants, myrepo=None): if pkg in self._aux_get_history: return self._aux_get(pkg, wants) self._aux_get_history.add(pkg) diff --git a/pym/_emerge/MergeListItem.py b/pym/_emerge/MergeListItem.py index e7856ccfc..0eadb7d99 100644 --- a/pym/_emerge/MergeListItem.py +++ b/pym/_emerge/MergeListItem.py @@ -61,7 +61,7 @@ class MergeListItem(CompositeTask): portdb = pkg.root_config.trees["porttree"].dbapi portdir_repo_name = portdb._repository_map.get(portdb.porttree_root) if portdir_repo_name: - pkg_repo_name = pkg.metadata.get("repository") + pkg_repo_name = pkg.repo if pkg_repo_name != portdir_repo_name: if not pkg_repo_name: pkg_repo_name = "unknown repo" diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 66ac7ff67..ba7fa42f8 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -8,7 +8,7 @@ from portage import _encodings, _unicode_decode, _unicode_encode from portage.cache.mappings import slot_dict_class from portage.const import EBUILD_PHASES from portage.dep import Atom, check_required_use, use_reduce, \ - paren_enclose, _slot_re + paren_enclose, _slot_re, _slot_separator, _repo_separator from portage.eapi import eapi_has_iuse_defaults, eapi_has_required_use from portage.exception import InvalidDependString from _emerge.Task import Task @@ -26,7 +26,7 @@ class Package(Task): "category", "counter", "cp", "cpv_split", "inherited", "invalid", "iuse", "masks", "mtime", "pf", "pv_split", "root", "slot", "slot_atom", "visible",) + \ - ("_raw_metadata", "_use",) + ("_raw_metadata", "_use", "_repo",) metadata_keys = [ "BUILD_TIME", "CHOST", "COUNTER", "DEPEND", "EAPI", @@ -58,7 +58,7 @@ class Package(Task): if not self.installed: self._invalid_metadata('EAPI.incompatible', "IUSE contains defaults, but EAPI doesn't allow them") - self.slot_atom = portage.dep.Atom("%s:%s" % (self.cp, slot)) + self.slot_atom = portage.dep.Atom("%s%s%s" % (self.cp, _slot_separator, slot)) self.category, self.pf = portage.catsplit(self.cpv) self.cpv_split = portage.catpkgsplit(self.cpv) self.pv_split = self.cpv_split[1:] @@ -283,7 +283,7 @@ class Package(Task): cpv_color = "PKG_NOMERGE" s = "(%s, %s" \ - % (portage.output.colorize(cpv_color, self.cpv) , self.type_name) + % (portage.output.colorize(cpv_color, self.cpv + _repo_separator + self.repo) , self.type_name) if self.type_name == "installed": if self.root != "/": @@ -314,6 +314,12 @@ class Package(Task): self.enabled = frozenset(use) @property + def repo(self): + if self._repo is None: + self._repo = self.metadata['repository'] + return self._repo + + @property def use(self): if self._use is None: self._use = self._use_class(self.metadata['USE'].split()) @@ -377,7 +383,7 @@ class Package(Task): if self.onlydeps or self.installed: self.operation = "nomerge" self._hash_key = \ - (self.type_name, self.root, self.cpv, self.operation) + (self.type_name, self.root, self.cpv, self.operation, self.metadata.get('repository', None)) return self._hash_key def __lt__(self, other): diff --git a/pym/_emerge/PackageVirtualDbapi.py b/pym/_emerge/PackageVirtualDbapi.py index 45a183e60..129a51615 100644 --- a/pym/_emerge/PackageVirtualDbapi.py +++ b/pym/_emerge/PackageVirtualDbapi.py @@ -135,7 +135,7 @@ class PackageVirtualDbapi(dbapi): del self._cpv_map[pkg.cpv] self._clear_cache() - def aux_get(self, cpv, wants): + def aux_get(self, cpv, wants, myrepo=None): metadata = self._cpv_map[cpv].metadata return [metadata.get(x, "") for x in wants] diff --git a/pym/_emerge/Scheduler.py b/pym/_emerge/Scheduler.py index 4b6b80f76..463b6146e 100644 --- a/pym/_emerge/Scheduler.py +++ b/pym/_emerge/Scheduler.py @@ -154,7 +154,7 @@ class Scheduler(PollScheduler): self._spinner = spinner self._mtimedb = mtimedb self._favorites = favorites - self._args_set = InternalPackageSet(favorites) + self._args_set = InternalPackageSet(favorites, allow_repo=True) self._build_opts = self._build_opts_class() for k in self._build_opts.__slots__: setattr(self._build_opts, k, "--" + k.replace("_", "-") in myopts) @@ -703,7 +703,7 @@ class Scheduler(PollScheduler): 'digest' not in pkgsettings.features: continue portdb = x.root_config.trees['porttree'].dbapi - ebuild_path = portdb.findname(x.cpv) + ebuild_path = portdb.findname(x.cpv, myrepo=x.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % x.cpv) pkgsettings['O'] = os.path.dirname(ebuild_path) @@ -780,7 +780,7 @@ class Scheduler(PollScheduler): root_config = x.root_config portdb = root_config.trees["porttree"].dbapi quiet_config = quiet_settings[root_config.root] - ebuild_path = portdb.findname(x.cpv) + ebuild_path = portdb.findname(x.cpv, myrepo=x.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % x.cpv) quiet_config["O"] = os.path.dirname(ebuild_path) @@ -983,7 +983,7 @@ class Scheduler(PollScheduler): else: tree = "porttree" portdb = root_config.trees["porttree"].dbapi - ebuild_path = portdb.findname(x.cpv) + ebuild_path = portdb.findname(x.cpv, myrepo=x.repo) if ebuild_path is None: raise AssertionError("ebuild not found for '%s'" % x.cpv) diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py index 92eb18b74..52442878e 100644 --- a/pym/_emerge/actions.py +++ b/pym/_emerge/actions.py @@ -512,7 +512,7 @@ def action_config(settings, trees, myopts, myfiles): else: print("Configuring pkg...") print() - ebuildpath = trees[settings["ROOT"]]["vartree"].dbapi.findname(pkg) + ebuildpath = trees[settings["ROOT"]]["vartree"].dbapi.findname(pkg, myrepo=pkg.repo) mysettings = portage.config(clone=settings) vardb = trees[mysettings["ROOT"]]["vartree"].dbapi debug = mysettings.get("PORTAGE_DEBUG") == "1" @@ -1544,7 +1544,7 @@ def action_info(settings, trees, myopts, myfiles): if pkg_type == "installed": ebuildpath = vardb.findname(pkg.cpv) elif pkg_type == "ebuild": - ebuildpath = portdb.findname(pkg.cpv) + ebuildpath = portdb.findname(pkg.cpv, pkg.repo) elif pkg_type == "binary": tbz2_file = bindb.bintree.getname(pkg.cpv) ebuild_file_name = pkg.cpv.split("/")[1] + ".ebuild" diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 1131d0600..5c01712d5 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -120,10 +120,10 @@ class _depgraph_sets(object): # contains all sets added to the graph self.sets = {} # contains non-set atoms given as arguments - self.sets['__non_set_args__'] = InternalPackageSet() + self.sets['__non_set_args__'] = InternalPackageSet(allow_repo=True) # contains all atoms from all sets added to the graph, including # atoms given as arguments - self.atoms = InternalPackageSet() + self.atoms = InternalPackageSet(allow_repo=True) self.atom_arg_map = {} class _dynamic_depgraph_config(object): @@ -1148,7 +1148,7 @@ class depgraph(object): mykey, noiselevel=-1) elif mytype == "ebuild": portdb = self._frozen_config.roots[myroot].trees["porttree"].dbapi - myebuild, mylocation = portdb.findname2(mykey) + myebuild, mylocation = portdb.findname2(mykey, myrepo = pkg.repo) portage.writemsg("!!! This ebuild cannot be installed: " + \ "'%s'\n" % myebuild, noiselevel=-1) portage.writemsg("!!! Please notify the package maintainer " + \ @@ -1430,7 +1430,7 @@ class depgraph(object): deps = [] for cat in categories: deps.append(Atom(insert_category_into_atom( - atom_without_category, cat))) + atom_without_category, cat), allow_repo=True)) return deps def _have_new_virt(self, root, atom_cp): @@ -1573,7 +1573,7 @@ class depgraph(object): args.append(SetArg(arg=x, pset=pset, root_config=root_config)) continue - if not is_valid_package_atom(x): + if not is_valid_package_atom(x, allow_repo=True): portage.writemsg("\n\n!!! '%s' is not a valid package atom.\n" % x, noiselevel=-1) portage.writemsg("!!! Please check ebuild(5) for full details.\n") @@ -1587,7 +1587,7 @@ class depgraph(object): # 2) It takes away freedom from the resolver to choose other # possible expansions when necessary. if "/" in x: - args.append(AtomArg(arg=x, atom=Atom(x), + args.append(AtomArg(arg=x, atom=Atom(x, allow_repo=True), root_config=root_config)) continue expanded_atoms = self._dep_expand(root_config, x) @@ -1915,7 +1915,7 @@ class depgraph(object): for root in self._dynamic_config.sets: depgraph_sets = self._dynamic_config.sets[root] depgraph_sets.sets.setdefault('__non_set_args__', - InternalPackageSet()).clear() + InternalPackageSet(allow_repo=True)).clear() depgraph_sets.atoms.clear() depgraph_sets.atom_arg_map.clear() set_atoms[root] = [] @@ -2118,7 +2118,7 @@ class depgraph(object): a matching package has been masked by backtracking. """ backtrack_mask = False - atom_set = InternalPackageSet(initial_atoms=(atom,)) + atom_set = InternalPackageSet(initial_atoms=(atom,), allow_repo=True) xinfo = '"%s"' % atom.unevaluated_atom if arg: xinfo='"%s"' % arg @@ -2144,12 +2144,12 @@ class depgraph(object): # descending order cpv_list.reverse() for cpv in cpv_list: - metadata, mreasons = get_mask_info(root_config, cpv, pkgsettings, db, \ - pkg_type, built, installed, db_keys, _pkg_use_enabled=self._pkg_use_enabled) + metadata, mreasons = get_mask_info(root_config, cpv, pkgsettings, db, pkg_type, \ + built, installed, db_keys, myrepo=atom.repo, _pkg_use_enabled=self._pkg_use_enabled) if metadata is not None: pkg = self._pkg(cpv, pkg_type, root_config, - installed=installed) + installed=installed, myrepo = atom.repo) # pkg.metadata contains calculated USE for ebuilds, # required later for getMissingLicenses. metadata = pkg.metadata @@ -2450,7 +2450,7 @@ class depgraph(object): if not slot_available: continue inst_pkg = self._pkg(cpv, "installed", - root_config, installed=installed) + root_config, installed=installed, myrepo = atom.repo) # Remove the slot from the atom and verify that # the package matches the resulting atom. atom_without_slot = portage.dep.remove_slot(atom) @@ -2463,25 +2463,30 @@ class depgraph(object): break if cpv_list: + if atom.repo is None and hasattr(db, "getRepositories"): + repo_list = db.getRepositories() + else: + repo_list = [atom.repo] # descending order cpv_list.reverse() for cpv in cpv_list: - try: - pkg = self._pkg(cpv, pkg_type, root_config, - installed=installed, onlydeps=onlydeps) - except portage.exception.PackageNotFound: - pass - else: - if pkg.cp != atom.cp: - # A cpv can be returned from dbapi.match() as an - # old-style virtual match even in cases when the - # package does not actually PROVIDE the virtual. - # Filter out any such false matches here. - if not InternalPackageSet(initial_atoms=(atom,) - ).findAtomForPackage(pkg, modified_use=self._pkg_use_enabled(pkg)): - continue - yield pkg + for repo in repo_list: + try: + pkg = self._pkg(cpv, pkg_type, root_config, + installed=installed, onlydeps=onlydeps, myrepo=repo) + except portage.exception.PackageNotFound: + pass + else: + if pkg.cp != atom.cp: + # A cpv can be returned from dbapi.match() as an + # old-style virtual match even in cases when the + # package does not actually PROVIDE the virtual. + # Filter out any such false matches here. + if not InternalPackageSet(initial_atoms=(atom,) + ).findAtomForPackage(pkg, modified_use=self._pkg_use_enabled(pkg)): + continue + yield pkg def _select_pkg_highest_available(self, root, atom, onlydeps=False): cache_key = (root, atom, onlydeps) @@ -2722,7 +2727,7 @@ class depgraph(object): if not isinstance(atom, portage.dep.Atom): atom = portage.dep.Atom(atom) atom_cp = atom.cp - atom_set = InternalPackageSet(initial_atoms=(atom,)) + atom_set = InternalPackageSet(initial_atoms=(atom,), allow_repo=True) existing_node = None myeb = None rebuilt_binaries = 'rebuilt_binaries' in self._dynamic_config.myparams @@ -2843,7 +2848,7 @@ class depgraph(object): else: try: pkg_eb = self._pkg( - pkg.cpv, "ebuild", root_config) + pkg.cpv, "ebuild", root_config, myrepo=atom.repo) except portage.exception.PackageNotFound: continue else: @@ -3235,7 +3240,7 @@ class depgraph(object): return 1 def _pkg(self, cpv, type_name, root_config, installed=False, - onlydeps=False): + onlydeps=False, myrepo = None): """ Get a package instance from the cache, or create a new one if necessary. Raises PackageNotFound from aux_get if it @@ -3261,7 +3266,7 @@ class depgraph(object): db_keys = list(self._frozen_config._trees_orig[root_config.root][ tree_type].dbapi._aux_cache_keys) try: - metadata = zip(db_keys, db.aux_get(cpv, db_keys)) + metadata = zip(db_keys, db.aux_get(cpv, db_keys, myrepo=myrepo)) except KeyError: raise portage.exception.PackageNotFound(cpv) pkg = Package(built=(type_name != "ebuild"), cpv=cpv, @@ -4858,7 +4863,7 @@ class depgraph(object): portdb = self._frozen_config.trees[self._frozen_config.target_root]["porttree"].dbapi added_favorites = set() for x in self._dynamic_config._set_nodes: - pkg_type, root, pkg_key, pkg_status = x + pkg_type, root, pkg_key, pkg_status, pkg_repo = x if pkg_status != "nomerge": continue @@ -4918,16 +4923,16 @@ class depgraph(object): serialized_tasks = [] masked_tasks = [] for x in mergelist: - if not (isinstance(x, list) and len(x) == 4): + if not (isinstance(x, list) and len(x) == 5): continue - pkg_type, myroot, pkg_key, action = x + pkg_type, myroot, pkg_key, action, pkg_repo = x if pkg_type not in self.pkg_tree_map: continue if action != "merge": continue root_config = self._frozen_config.roots[myroot] try: - pkg = self._pkg(pkg_key, pkg_type, root_config) + pkg = self._pkg(pkg_key, pkg_type, root_config, myrepo=pkg_repo) except portage.exception.PackageNotFound: # It does no exist or it is corrupt. if skip_missing: @@ -5487,11 +5492,11 @@ def _resume_depgraph(settings, trees, mtimedb, myopts, myparams, spinner): return (success, mydepgraph, dropped_tasks) def get_mask_info(root_config, cpv, pkgsettings, - db, pkg_type, built, installed, db_keys, _pkg_use_enabled=None): + db, pkg_type, built, installed, db_keys, myrepo = None, _pkg_use_enabled=None): eapi_masked = False try: metadata = dict(zip(db_keys, - db.aux_get(cpv, db_keys))) + db.aux_get(cpv, db_keys, myrepo=myrepo))) except KeyError: metadata = None @@ -5511,7 +5516,8 @@ def get_mask_info(root_config, cpv, pkgsettings, if _pkg_use_enabled is not None: modified_use = _pkg_use_enabled(pkg) - mreasons = get_masking_status(pkg, pkgsettings, root_config, use=modified_use) + mreasons = get_masking_status(pkg, pkgsettings, root_config, myrepo=myrepo, use=modified_use) + return metadata, mreasons def show_masked_packages(masked_packages): @@ -5573,15 +5579,14 @@ def show_blocker_docs_link(): writemsg("section of the Gentoo Linux x86 Handbook (architecture is irrelevant):\n\n", noiselevel=-1) writemsg("http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?full=1#blocked\n\n", noiselevel=-1) -def get_masking_status(pkg, pkgsettings, root_config, use=None): +def get_masking_status(pkg, pkgsettings, root_config, myrepo=None, use=None): return [mreason.message for \ - mreason in _get_masking_status(pkg, pkgsettings, root_config, use=use)] - -def _get_masking_status(pkg, pkgsettings, root_config, use=None): + mreason in _get_masking_status(pkg, pkgsettings, root_config, myrepo=myrepo, use=use)] +def _get_masking_status(pkg, pkgsettings, root_config, myrepo=None, use=None): mreasons = _getmaskingstatus( pkg, settings=pkgsettings, - portdb=root_config.trees["porttree"].dbapi) + portdb=root_config.trees["porttree"].dbapi, myrepo=myrepo) if not pkg.installed: if not pkgsettings._accept_chost(pkg.cpv, pkg.metadata): diff --git a/pym/_emerge/is_valid_package_atom.py b/pym/_emerge/is_valid_package_atom.py index b6183d48a..d33cf4557 100644 --- a/pym/_emerge/is_valid_package_atom.py +++ b/pym/_emerge/is_valid_package_atom.py @@ -3,10 +3,11 @@ import re import portage +import _emerge.depgraph -def is_valid_package_atom(x): +def is_valid_package_atom(x, allow_repo=False): if "/" not in x: - alphanum = re.search(r'\w', x) - if alphanum: - x = x[:alphanum.start()] + "cat/" + x[alphanum.start():] - return portage.isvalidatom(x, allow_blockers=False) + x2 = _emerge.depgraph.insert_category_into_atom(x, 'cat') + if x2 != None: + x = x2 + return portage.isvalidatom(x, allow_blockers=False, allow_repo=allow_repo) diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py index 97d36426d..17f83672c 100644 --- a/pym/_emerge/main.py +++ b/pym/_emerge/main.py @@ -1661,7 +1661,7 @@ def emerge_main(): for x in myfiles: if x.startswith(SETPREFIX) or \ - is_valid_package_atom(x): + is_valid_package_atom(x, allow_repo=True): continue if x[:1] == os.sep: continue diff --git a/pym/_emerge/resolver/output.py b/pym/_emerge/resolver/output.py index 5277dff0d..fbb8859fb 100644 --- a/pym/_emerge/resolver/output.py +++ b/pym/_emerge/resolver/output.py @@ -186,7 +186,7 @@ class _DisplayConfig(object): dynamic_config = depgraph._dynamic_config self.mylist = mylist - self.favorites = InternalPackageSet(favorites) + self.favorites = InternalPackageSet(favorites, allow_repo=True) self.verbosity = verbosity if self.verbosity is None: @@ -340,9 +340,9 @@ def display(depgraph, mylist, favorites=[], verbosity=None): pkg = x metadata = pkg.metadata ebuild_path = None - repo_name = metadata["repository"] + repo_name = pkg.repo if pkg.type_name == "ebuild": - ebuild_path = portdb.findname(pkg.cpv) + ebuild_path = portdb.findname(pkg.cpv, myrepo=repo_name) if ebuild_path is None: raise AssertionError( "ebuild not found for '%s'" % pkg.cpv) @@ -356,7 +356,7 @@ def display(depgraph, mylist, favorites=[], verbosity=None): fetch = red("F") if ordered: counters.restrict_fetch += 1 - if portdb.fetch_check(pkg_key, pkg_use): + if portdb.fetch_check(pkg_key, pkg_use, myrepo=pkg.repo): fetch = green("f") if ordered: counters.restrict_fetch_satisfied += 1 |