diff options
Diffstat (limited to 'src/lib/Server/Plugins')
-rw-r--r-- | src/lib/Server/Plugins/Packages.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/Server/Plugins/Packages.py b/src/lib/Server/Plugins/Packages.py index 800be5bab..80ed089b6 100644 --- a/src/lib/Server/Plugins/Packages.py +++ b/src/lib/Server/Plugins/Packages.py @@ -133,6 +133,8 @@ class Source(object): while work: item = work.pop() seen.add(item) + if debug: + logger.debug("Handling pkg %s" % item) item_is_pkg = self.is_package(metadata, item) try: pset = self.get_provides(metadata, item) @@ -158,10 +160,17 @@ class Source(object): % (list(pset), item)) if len(pset) == 1: + provider = list(pset)[0] if debug: logger.debug("Using package %s for requirement %s" \ - % (list(pset)[0], item)) + % (provider, item)) work.update(pset.difference(newpkg)) + # add deps for provider + try: + newdeps = set(self.get_deps(metadata, provider)) + work.update(newdeps.difference(newpkg)) + except NoData: + pass else: if True in [p in newpkg for p in pset]: # dep satisfied |