[Secure-testing-commits] r14600 - lib/python
Florian Weimer
fw at alioth.debian.org
Tue May 4 15:05:59 UTC 2010
Author: fw
Date: 2010-05-04 15:05:57 +0000 (Tue, 04 May 2010)
New Revision: 14600
Modified:
lib/python/security_db.py
Log:
lib/python/security_db.py: remove binary_package_status table
We no longer track binary packages.
Modified: lib/python/security_db.py
===================================================================
--- lib/python/security_db.py 2010-05-04 09:15:11 UTC (rev 14599)
+++ lib/python/security_db.py 2010-05-04 15:05:57 UTC (rev 14600)
@@ -291,17 +291,7 @@
"""CREATE INDEX source_package_status_package
ON source_package_status(package)""")
- cursor.execute("""CREATE TABLE binary_package_status
- (bug_name TEXT NOT NULL,
- package INTEGER NOT NULL,
- vulnerable INTEGER NOT NULL,
- urgency TEXT NOT NULL,
- PRIMARY KEY (bug_name, package))""")
cursor.execute(
- """CREATE INDEX binary_package_status_package
- ON binary_package_status(package)""")
-
- cursor.execute(
"CREATE TABLE removed_packages (name TEXT NOT NULL PRIMARY KEY)")
cursor.execute(
@@ -1025,7 +1015,6 @@
if self.verbose:
print " remove old status"
cursor.execute("DELETE FROM source_package_status")
- cursor.execute("DELETE FROM binary_package_status")
cursor.execute("DELETE FROM bug_status")
if self.verbose:
@@ -1060,86 +1049,6 @@
WHERE p.name = n.package
AND p.release = n.release""")
- if self.verbose:
- print " binary packages (from source packages)"
- cursor.execute(
- """INSERT INTO binary_package_status
- SELECT n.bug_name, p.rowid,
- CASE WHEN n.fixed_version == 'undetermined' THEN 2
- ELSE CASE WHEN n.fixed_version IS NULL THEN 1
- ELSE CASE WHEN p.version_id < n.fixed_version_id THEN 1
- ELSE 0 END END END,
- n.urgency
- FROM package_notes AS n, binary_packages AS p
- WHERE n.release = '' AND p.source = n.package""")
-
- cursor.execute(
- """INSERT OR REPLACE INTO binary_package_status
- SELECT n.bug_name, p.rowid,
- CASE WHEN n.fixed_version == 'undetermined' THEN 2
- ELSE CASE WHEN n.fixed_version IS NULL THEN 1
- ELSE CASE WHEN p.version_id < n.fixed_version_id THEN 1
- ELSE 0 END END END,
- n.urgency
- FROM package_notes AS n, binary_packages AS p
- WHERE p.source = n.package AND p.release = n.release""")
-
- # Almost the same for binary packages. We prefer interpreting
- # package names as source packages, so we only process the
- # notes which refer to binary packages. (Of course, we do not
- # have to add status information for binary package
- # separately.)
-
- if self.verbose:
- print " binary packages (unqualified)"
- cursor.execute(
- """INSERT INTO binary_package_status
- SELECT n.bug_name, p.rowid,
- CASE WHEN n.fixed_version == 'undetermined' THEN 2
- ELSE CASE WHEN n.fixed_version IS NULL THEN 1
- ELSE CASE WHEN p.version_id < n.fixed_version_id THEN 1
- ELSE 0 END END END,
- n.urgency
- FROM package_notes AS n, binary_packages AS p
- WHERE n.release = '' AND p.name = n.package
- AND n.package_kind = 'binary'""")
-
- if self.verbose:
- print " binary packages (qualified)"
- cursor.execute(
- """INSERT OR REPLACE INTO binary_package_status
- SELECT n.bug_name, p.rowid,
- CASE WHEN n.fixed_version == 'undetermined' THEN 2
- ELSE CASE WHEN n.fixed_version IS NULL THEN 1
- ELSE CASE WHEN p.version_id < n.fixed_version_id THEN 1
- ELSE 0 END END END,
- n.urgency
- FROM package_notes AS n, binary_packages AS p
- WHERE p.name = n.package AND p.release = n.release
- AND n.package_kind = 'binary'""")
-
- if self.verbose:
- print " source packages (from binary packages)"
- cursor.execute(
- """INSERT INTO source_package_status
- SELECT n.bug_name, s.rowid,
- MAX( CASE WHEN n.fixed_version == 'undetermined' THEN 2
- ELSE CASE WHEN n.fixed_version IS NULL THEN 1
- ELSE CASE WHEN b.version_id < n.fixed_version_id THEN 1
- ELSE 0 END END END ),
- MAX(n.urgency)
- FROM package_notes AS n, binary_packages AS b,
- source_packages AS s
- WHERE n.package_kind = 'binary' AND b.name = n.package
- AND s.name = b.source
- AND s.release = b.release AND s.subrelease = b.subrelease
- AND s.archive = b.archive
- GROUP BY n.bug_name, s.rowid, s.release""")
- # The "GROUP BY" is needed because we we might have multiple
- # rows in the binary_packages table for different
- # architectures.
- # FIXME: MAX(n.urgency) is wrong.
-
# assign nvd urgencies to those that have not yet been assigned
if self.verbose:
print " insert nvd urgencies"
@@ -1154,16 +1063,6 @@
WHERE s.bug_name == n.cve_name
AND s.urgency == 'not yet assigned'""")
cursor.execute(
- """REPLACE INTO binary_package_status
- SELECT b.bug_name, b.package, b.vulnerable,
- CASE WHEN n.severity == 'Medium' THEN 'medium**'
- ELSE CASE WHEN n.severity == 'High' THEN 'high**'
- ELSE CASE WHEN n.severity == 'Low' THEN 'low**'
- ELSE 'not yet assigned' END END END
- FROM nvd_data AS n, binary_package_status AS b
- WHERE b.bug_name == n.cve_name
- AND b.urgency == 'not yet assigned'""")
- cursor.execute(
"""REPLACE INTO package_notes
SELECT p.id, p.bug_name, p.package, p.fixed_version,
p.fixed_version_id, p.release, p.package_kind,
@@ -1406,15 +1305,6 @@
AND st.bug_name = ?
AND st.package = p.rowid
ORDER BY p.version COLLATE version DESC"""
- elif kind == 'binary':
- fix_available_sql = """SELECT st.vulnerable
- FROM binary_packages AS p, binary_package_status AS st
- WHERE p.name = ?
- AND p.release = ?
- AND p.subrelease IN ('', 'security')
- AND st.bug_name = ?
- AND st.package = p.rowid
- ORDER BY p.version COLLATE version DESC"""
else:
fix_available_sql = ''
@@ -1766,33 +1656,6 @@
(bug,)):
yield package, releases.split(', '), version, vulnerable
- def getBinaryPackages(self, cursor, bug):
- """A generator which returns tuples (BINARY-PACKAGE-LIST,
- RELEASE-LIST, VERSION, ARCH-LIST, VULNERABLE-FLAG) of binary
- packages which are related to the given bug."""
-
- for (packages, releases, version, archs, vulnerable) in cursor.execute(
- """SELECT string_list(package) AS packages, releases,
- version, archs, vulnerable
- FROM (SELECT package, string_set(release) AS releases,
- version, archs, vulnerable
- FROM (SELECT p.name AS package,
- release_name(p.release, p.subrelease, p.archive) AS release,
- p.version AS version, string_set(archs) AS archs,
- s.vulnerable AS vulnerable
- FROM binary_package_status AS s, binary_packages AS p
- WHERE s.bug_name = ? AND p.rowid = s.package
- GROUP BY p.name, p.release, p.subrelease, p.archive,
- p.version, vulnerable
- ORDER BY release_to_number(p.release), p.subrelease)
- GROUP BY package, version, vulnerable, archs
- ORDER BY package)
- GROUP BY releases, version, vulnerable, archs
- ORDER BY packages, version COLLATE version""",
- (bug,)):
- yield (packages.split(', '), releases.split(','), version,
- archs.split(','), vulnerable)
-
def getBugsFromDebianBug(self, cursor, number):
"""A generator which returns a list of tuples
(BUG-NAME, URGENCY, DESCRIPTION)."""
@@ -1843,35 +1706,6 @@
WHERE vulnerable = ?
ORDER BY name""", (pkg, vulnerable))
- def getBugsForBinaryPackage(self, cursor, pkg, vulnerable):
- """Returns a generator for a list of (BUG, DESCRIPTION) pairs
- which have the requested status."""
- return cursor.execute(
- """SELECT name, description
- FROM (SELECT bugs.name AS name, bugs.description AS description,
- MAX(st.vulnerable) AS vulnerable
- FROM binary_packages AS bp, binary_package_status AS st, bugs
- WHERE bp.name = ?
- AND bp.release <> 'woody'
- AND st.package = bp.rowid
- AND st.urgency <> 'unimportant'
- AND bugs.name = st.bug_name
- GROUP BY bugs.name, bugs.description)
- WHERE vulnerable = ?
- ORDER BY name""", (pkg, vulnerable))
-
- def getNonBugsForBinaryPackage(self, cursor, pkg):
- """Returns a generator for a list of (BUG, DESCRIPTION) pairs
- which have the requested status."""
-
- return cursor.execute(
- """SELECT DISTINCT bugs.name, bugs.description
- FROM binary_packages AS bp, binary_package_status AS st, bugs
- WHERE bp.name = ? AND st.package = bp.rowid
- AND st.urgency = 'unimportant'
- AND bugs.name = st.bug_name
- ORDER BY bugs.name""", (pkg,))
-
def getTODOs(self, cursor=None, hide_check=False):
"""Returns a list of pairs (BUG-NAME, DESCRIPTION)."""
if cursor is None:
More information about the Secure-testing-commits
mailing list