From b4e40a079e918d95d3e59553375b945661b911df Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Thu, 10 Feb 2011 15:30:02 -0500 Subject: [PATCH] Add an option to allow only grabbing the best provides for a particular depenedency, instead of all. --- src/bin/pungi.py | 4 ++++ src/pypungi/__init__.py | 3 +++ src/pypungi/config.py | 1 + 3 files changed, 8 insertions(+) diff --git a/src/bin/pungi.py b/src/bin/pungi.py index 3e88ef8e..7fa119de 100755 --- a/src/bin/pungi.py +++ b/src/bin/pungi.py @@ -77,6 +77,8 @@ def main(): # Set debuginfo flag if opts.nodebuginfo: config.set('pungi', 'debuginfo', "False") + if opts.nogreedy: + config.set('pungi', 'alldeps', "False") # Actually do work. mypungi = pypungi.Pungi(config, ksparser) @@ -178,6 +180,8 @@ if __name__ == '__main__': help='disable gathering of source packages (optional)') parser.add_option("--nodebuginfo", action="store_true", dest="nodebuginfo", help='disable gathering of debuginfo packages (optional)') + parser.add_option("--nogreedy", action="store_true", dest="nogreedy", + help='disable pulling of all providers of package dependencies (optional)') parser.add_option("--sourceisos", default=False, action="store_true", dest="sourceisos", help='Create the source isos (other arch runs must be done)') parser.add_option("--force", default=False, action="store_true", diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py index 2a778c24..506c848a 100644 --- a/src/pypungi/__init__.py +++ b/src/pypungi/__init__.py @@ -285,6 +285,9 @@ class Pungi(pypungi.PungiBase): self.logger.warn("Unresolvable dependency %s in %s.%s" % (r, po.name, po.arch)) continue + if not self.config.getboolean('pungi', 'alldeps'): + deps = self.ayum.bestPackagesFromList(deps) + depsack = yum.packageSack.ListPackageSack(deps) for dep in depsack.returnNewestByNameArch(): diff --git a/src/pypungi/config.py b/src/pypungi/config.py index 848a2d4a..c8eb10de 100644 --- a/src/pypungi/config.py +++ b/src/pypungi/config.py @@ -42,4 +42,5 @@ class Config(SafeConfigParser): self.set('pungi', 'bugurl', 'https://bugzilla.redhat.com') self.set('pungi', 'cdsize', '695.0') self.set('pungi', 'debuginfo', "True") + self.set('pungi', 'alldeps', "True")