summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Server/Plugins')
-rw-r--r--src/lib/Server/Plugins/Packages.py11
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