add support for slot dependencies (original patch by Robert Buchholz <rbu@gentoo...
authorMarius Mauch <genone@gentoo.org>
Sun, 28 Sep 2008 19:15:43 +0000 (19:15 -0000)
committerMarius Mauch <genone@gentoo.org>
Sun, 28 Sep 2008 19:15:43 +0000 (19:15 -0000)
svn path=/main/trunk/; revision=11593

pym/portage/glsa.py

index f0d99c8c1b6980e399a27123642eb1cf6a5bbdce..33d3cf027cf6a796e50eb599d580bc14c19d3708 100644 (file)
@@ -226,6 +226,8 @@ def makeAtom(pkgname, versionNode):
        rValue = opMapping[versionNode.getAttribute("range")] \
                                + pkgname \
                                + "-" + getText(versionNode, format="strip")
+       if "slot" in versionNode.attributes and versionNode.getAttribute("slot") != "*":
+               rValue += ":"+versionNode.getAttribute("slot")
        return str(rValue)
 
 def makeVersion(versionNode):
@@ -239,8 +241,11 @@ def makeVersion(versionNode):
        @rtype:         String
        @return:        the version string
        """
-       return opMapping[versionNode.getAttribute("range")] \
+       rValue = opMapping[versionNode.getAttribute("range")] \
                        + getText(versionNode, format="strip")
+       if "slot" in versionNode.attributes and versionNode.getAttribute("slot") != "*":
+               rValue += ":"+versionNode.getAttribute("slot")
+       return rValue
 
 def match(atom, dbapi, match_type="default"):
        """
@@ -283,9 +288,9 @@ def revisionMatch(revisionAtom, dbapi, match_type="default"):
        @return:        a list with the matching versions
        """
        if match_type == "default" or not hasattr(dbapi, "xmatch"):
-               mylist = dbapi.match(re.sub("-r[0-9]+$", "", revisionAtom[2:]))
+               mylist = dbapi.match(re.sub(r'-r[0-9]+(:[^ ]+)?$', r'\1', revisionAtom[2:]))
        else:
-               mylist = dbapi.xmatch(match_type, re.sub("-r[0-9]+$", "", revisionAtom[2:]))
+               mylist = dbapi.xmatch(match_type, re.sub(r'-r[0-9]+(:[^ ]+)?$', r'\1', revisionAtom[2:]))
        rValue = []
        for v in mylist:
                r1 = pkgsplit(v)[-1][1:]