[Secure-testing-commits] r29226 - lib/python

Holger Levsen holger at moszumanska.debian.org
Fri Oct 3 07:36:30 UTC 2014


Author: holger
Date: 2014-10-03 07:36:29 +0000 (Fri, 03 Oct 2014)
New Revision: 29226

Modified:
   lib/python/security_db.py
Log:
Sort issues consistently in proper release+subrelease order. (Closes: #761889)

Modified: lib/python/security_db.py
===================================================================
--- lib/python/security_db.py	2014-10-03 07:27:08 UTC (rev 29225)
+++ lib/python/security_db.py	2014-10-03 07:36:29 UTC (rev 29226)
@@ -424,6 +424,26 @@
                 return 999
         self.db.createscalarfunction("urgency_to_number", urgency_to_number, 1)
 
+        def releasepart_to_number(r):
+            # expects a string in the form "wheezy (security)"
+            try:
+                u=r.split()[0]
+                return release_to_number(u)
+            except ValueError:
+                return -1
+        self.db.createscalarfunction("releasepart_to_number", releasepart_to_number, 1)
+
+        def subreleasepart_to_number(r):
+            # expects a string in the form "wheezy (security)"
+            try:
+                if not "(" in r:
+                    return 0
+                u=r.split('(', 1)[1].split(')')[0]
+                return subrelease_to_number(u)
+            except ValueError:
+                return -1
+        self.db.createscalarfunction("subreleasepart_to_number", subreleasepart_to_number, 1)
+
         releases = ['potato', 'woody', 'sarge', 'etch', 'lenny', 'squeeze', 'wheezy', 'jessie', 'sid']
         def release_to_number(u):
             try:
@@ -1596,7 +1616,8 @@
             AS release, version FROM source_packages
             WHERE name = ?
             AND release IN ('squeeze', 'wheezy', 'jessie', 'sid')
-            ORDER BY release_to_number(release), subrelease_to_number(subrelease)""", (pkg,)):
+            GROUP BY release, version
+            ORDER BY release_to_number(release), subrelease_to_number(subrelease), version COLLATE version""", (pkg,)):
             yield release, version
 
     def getBinaryPackageVersions(self, cursor, pkg):
@@ -1629,7 +1650,7 @@
             FROM binary_packages
             WHERE source = ?
             GROUP BY name, release, subrelease, archive, version
-            ORDER BY release_to_number(release), subrelease)
+            ORDER BY release_to_number(release), subrelease_to_number(subrelease))
             GROUP BY package, version, archs
             ORDER BY package)
             GROUP BY releases, version, archs
@@ -1649,10 +1670,9 @@
             p.version AS version, s.vulnerable AS vulnerable
             FROM source_package_status AS s, source_packages AS p
             WHERE s.bug_name = ? AND p.rowid = s.package
-            AND release in ('squeeze', 'wheezy', 'jessie', 'sid')
-            ORDER BY release_to_number(p.release), p.subrelease)
+            AND release in ('squeeze', 'wheezy', 'jessie', 'sid'))
             GROUP BY package, version, vulnerable
-            ORDER BY package, version COLLATE version""",
+            ORDER BY releasepart_to_number(release), subreleasepart_to_number(release), package, version COLLATE version""",
             (bug,)):
             yield package, releases.split(', '), version, vulnerable
 
@@ -1706,7 +1726,7 @@
             AND (bugs.name LIKE 'CVE-%' OR bugs.name LIKE 'TEMP-%')
             GROUP BY bugs.name, bugs.description, sp.name)
             WHERE vulnerable = ? AND unimportant = ?
-            ORDER BY name""", (pkg, vulnerable, unimportant))
+            ORDER BY name DESC""", (pkg, vulnerable, unimportant))
 
     def getDSAsForSourcePackage(self, cursor, package):
         return cursor.execute(




More information about the Secure-testing-commits mailing list