diff --git a/libraries/databaseTools.py b/libraries/databaseTools.py index 396496a1c..f9d3a1df2 100644 --- a/libraries/databaseTools.py +++ b/libraries/databaseTools.py @@ -4094,6 +4094,7 @@ class etpDatabase: if (pkgversion.split("-")[-1] == "r0"): pkgversion = entropyTools.remove_revision(pkgversion) if (direction == "~"): + pkgrevision = entropyTools.dep_get_portage_revision(pkgversion) pkgversion = entropyTools.remove_revision(pkgversion) for data in foundIDs: @@ -4101,8 +4102,9 @@ class etpDatabase: idpackage = data[1] dbver = self.retrieveVersion(idpackage) if (direction == "~"): + myrev = entropyTools.dep_get_portage_revision(dbver) myver = entropyTools.remove_revision(dbver) - if myver == pkgversion: + if myver == pkgversion and pkgrevision <= myrev: # found dbpkginfo.add((idpackage,dbver)) else: diff --git a/libraries/entropyTools.py b/libraries/entropyTools.py index 5129c995f..1e5dab043 100644 --- a/libraries/entropyTools.py +++ b/libraries/entropyTools.py @@ -804,6 +804,17 @@ def dep_get_entropy_revision(mydep): return myrev return None + +dep_revmatch = re.compile('^r[0-9]?') +def dep_get_portage_revision(mydep): + myver = mydep.split("-") + myrev = myver[-1] + if dep_revmatch.match(myrev): + return myrev + else: + return "r0" + + def dep_get_match_in_repos(mydep): colon = mydep.rfind("@") if colon != -1: