[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