commit b4e40a079e918d95d3e59553375b945661b911df Author: Bill Nottingham Date: Thu Feb 10 15:30:02 2011 -0500 Add an option to allow only grabbing the best provides for a particular depenedency, instead of all. diff --git a/src/bin/pungi.py b/src/bin/pungi.py index 3e88ef8..7fa119d 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 2a778c2..506c848 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 848a2d4..c8eb10d 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")