Author: fw Date: 2005-12-16 09:23:57 +0000 (Fri, 16 Dec 2005) New Revision: 3069 Modified: bin/tracker_service.py lib/python/security_db.py Log: lib/python/security_db.py (DB): Bump schema version. Add oldstable_status view. bin/tracker_service.py (TrackerService): Add oldstable page. Modified: bin/tracker_service.py ==================================================================--- bin/tracker_service.py 2005-12-16 08:45:10 UTC (rev 3068) +++ bin/tracker_service.py 2005-12-16 09:23:57 UTC (rev 3069) @@ -84,6 +84,8 @@ self.register(''redirect/*'', self.page_redirect) self.register(''source-package/*'', self.page_source_package) self.register(''binary-package/*'', self.page_binary_package) + self.register(''status/release/oldstable'', + self.page_status_release_oldstable) self.register(''status/release/stable'', self.page_status_release_stable) self.register(''status/release/testing'', self.page_status_release_testing) @@ -497,7 +499,9 @@ replacement="""No known issues which do not affect this package, but still reference it.""")]) - def page_status_release_stable(self, path, params, url): + def page_status_release_stable_oldstable(self, release, params, url): + assert release in (''stable'', ''oldstable'') + bf = BugFilter(params) def gen(): @@ -505,7 +509,7 @@ for (pkg_name, bug_name, archive, urgency, remote) in \ self.db.cursor().execute( """SELECT package, bug, section, urgency, remote - FROM stable_status"""): + FROM %s_status""" % release): if bf.urgencyFiltered(urgency): continue if bf.remoteFiltered(remote): @@ -533,10 +537,16 @@ yield pkg_name, self.make_xref(url, bug_name), urgency, remote return self.create_page( - url, ''Vulnerable source packages in the stable suite'', + url, ''Vulnerable source packages in the %s suite'' % release, [bf.actions(url), make_table(gen(), caption=("Package", "Bug", "Urgency", "Remote"))]) + + def page_status_release_stable(self, path, params, url): + return self.page_status_release_stable_oldstable(''stable'', params, url) + def page_status_release_oldstable(self, path, params, url): + return self.page_status_release_stable_oldstable(''oldstable'', + params, url) def page_status_release_testing(self, path, params, url): bf = BugFilter(params) Modified: lib/python/security_db.py ==================================================================--- lib/python/security_db.py 2005-12-16 08:45:10 UTC (rev 3068) +++ lib/python/security_db.py 2005-12-16 09:23:57 UTC (rev 3069) @@ -113,7 +113,7 @@ self.db = apsw.Connection(name) self.verbose = verbose - self.schema_version = 18 + self.schema_version = 19 self._initFunctions() c = self.cursor() @@ -341,24 +341,26 @@ AND sp.subrelease = '''' ORDER BY sp.name, urgency_to_number(st.urgency), st.bug_name""") - cursor.execute( - """CREATE VIEW stable_status AS - SELECT DISTINCT sp.name AS package, st.bug_name AS bug, - sp.archive AS section, st.urgency AS urgency, - (SELECT range_remote FROM nvd_data - WHERE cve_name = st.bug_name) AS remote - FROM source_package_status AS st, source_packages AS sp - WHERE st.vulnerable AND st.urgency <> ''unimportant'' - AND sp.rowid = st.package AND sp.release = ''sarge'' - AND sp.subrelease = '''' - AND NOT COALESCE((SELECT NOT vulnerable - FROM source_packages AS secp, source_package_status AS secst - WHERE secp.name = sp.name - AND secp.release = ''sarge'' AND secp.subrelease = ''security'' - AND secp.archive = sp.archive - AND secst.bug_name = st.bug_name - AND secst.package = secp.rowid), 0) - ORDER BY sp.name, urgency_to_number(urgency), st.bug_name""") + for (name, nickname) in ((''stable'', ''sarge''), (''oldstable'', ''woody'')): + cursor.execute( + """CREATE VIEW %s_status AS + SELECT DISTINCT sp.name AS package, st.bug_name AS bug, + sp.archive AS section, st.urgency AS urgency, + (SELECT range_remote FROM nvd_data + WHERE cve_name = st.bug_name) AS remote + FROM source_package_status AS st, source_packages AS sp + WHERE st.vulnerable AND st.urgency <> ''unimportant'' + AND sp.rowid = st.package AND sp.release = ''%s'' + AND sp.subrelease = '''' + AND NOT COALESCE((SELECT NOT vulnerable + FROM source_packages AS secp, source_package_status AS secst + WHERE secp.name = sp.name + AND secp.release = ''%s'' AND secp.subrelease = ''security'' + AND secp.archive = sp.archive + AND secst.bug_name = st.bug_name + AND secst.package = secp.rowid), 0) + ORDER BY sp.name, urgency_to_number(urgency), st.bug_name""" + % (name, nickname, nickname)) cursor.execute("PRAGMA user_version = %d" % self.schema_version)