[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