[yum-cvs] plugins/priorities

Tim Lauridsen timlau at linux.duke.edu
Sun Jul 29 06:16:57 UTC 2007


 plugins/priorities/priorities.py |   17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

New commits:
commit 535b6d4df6ee2815e4660ce05edf44a9910c49b5
Author: Tim Lauridsen <tla at rasmil.dk>
Date:   Sun Jul 29 08:16:11 2007 +0200

    Added full version support to priorities plugin (rhbz #249991)
    Use 'check_versions=1' in priorities.conf to use full nerva check, insted of
    the default na check.

diff --git a/plugins/priorities/priorities.py b/plugins/priorities/priorities.py
index 8efecf9..974834d 100644
--- a/plugins/priorities/priorities.py
+++ b/plugins/priorities/priorities.py
@@ -38,6 +38,10 @@
 # priority for repositories is 99. The repositories with the lowest
 # number have the highest priority.
 #
+# If you do not want the plugin to override version checking:
+#
+# check_versions=1
+#
 # Please report errors to Daniel de Kok <danieldk at pobox.com>
 
 from yum.constants import *
@@ -46,13 +50,16 @@ from yum import config
 import yum
 
 check_obsoletes = False
+check_versions = False
 
 requires_api_version = '2.1'
 plugin_type = (TYPE_CORE,)
 
 def config_hook(conduit):
     global check_obsoletes
+    global check_versions
     check_obsoletes = conduit.confBool('main', 'check_obsoletes', default=False)
+    check_versions = conduit.confBool('main', 'check_versions', default=False)
     if yum.__version__ >= '2.5.0':
         # New style : yum >= 2.5
         config.RepoConf.priority = config.IntOption(99)
@@ -78,7 +85,10 @@ def exclude_hook(conduit):
     for repo in allrepos:
         if repo.enabled:
             for po in conduit.getPackages(repo):
-                key = "%s.%s" % (po.name,po.arch)
+                if check_versions:
+                    key = "%s-%s:%s-%s.%s" % (po.name,po.epoch,po.ver,po.rel,po.arch)
+                else:
+                    key = "%s.%s" % (po.name,po.arch)
                 if pkg_priorities.has_key(key) and pkg_priorities[key] < repo.priority:
                     conduit.delPackage(po)
                     cnt += 1
@@ -99,7 +109,10 @@ def exclude_hook(conduit):
 def _pkglisttodict(pl, priority):
     out = {}
     for p in pl:
-        key = "%s.%s" % (p.name,p.arch)
+        if check_versions:
+            key = "%s-%s:%s-%s.%s" % (p.name,p.epoch,p.ver,p.rel,p.arch)
+        else:
+            key = "%s.%s" % (p.name,p.arch)
         out[key] = priority
     return out
 



More information about the Yum-cvs-commits mailing list