Author: gilbert-guest
Date: 2010-02-07 22:10:57 +0000 (Sun, 07 Feb 2010)
New Revision: 14059
Modified:
bin/tracker_service.py
Log:
new pages for undetermined and unimportant issues
Modified: bin/tracker_service.py
==================================================================---
bin/tracker_service.py 2010-02-07 22:10:53 UTC (rev 14058)
+++ bin/tracker_service.py 2010-02-07 22:10:57 UTC (rev 14059)
@@ -146,6 +146,8 @@
self.register(''status/dtsa-candidates'',
self.page_status_dtsa_candidates)
self.register(''status/todo'', self.page_status_todo)
+ self.register(''status/undetermined'',
self.page_status_undetermined)
+ self.register(''status/unimportant'',
self.page_status_unimportant)
self.register(''status/itp'', self.page_status_itp)
self.register(''data/unknown-packages'',
self.page_data_unknown_packages)
self.register(''data/missing-epochs'',
self.page_data_missing_epochs)
@@ -204,6 +206,8 @@
''Vulnerable packages in backports for
oldstable''),
(''status/dtsa-candidates'', "Candidates for
DTSAs"),
(''status/todo'', ''TODO items''),
+ (''status/undetermined'', ''Packages that
may be vulnerable but need to be checked (undetermined issues)''),
+ (''status/unimportant'', ''Packages that
have open unimportant issues''),
(''status/itp'', ''ITPs with potential
security issues''),
(''data/unknown-packages'',
''Packages names not found in the archive''),
@@ -913,10 +917,96 @@
yield self.make_xref(url, bug), description
return self.create_page(
url, "Bugs with TODO items",
- [P(flags),
- make_table(gen(),
- caption=("Bug", "Description"))])
+ [P(flags), make_table(gen(), caption=("Bug",
"Description"))])
+ def page_status_undetermined(self, path, params, url):
+ def gen():
+ outrel = []
+ old_bug = ''''
+ old_pkg = ''''
+ old_dsc = ''''
+ last_displayed = ''''
+ releases = (''sid'', ''squeeze'',
''lenny'', ''etch'')
+ for (pkg_name, bug_name, release, desc) in
self.db.cursor().execute(
+ """SELECT DISTINCT sp.name, st.bug_name,
sp.release,
+ bugs.description
+ FROM source_package_status AS st, source_packages AS sp,
bugs
+ WHERE st.vulnerable == 2 AND sp.rowid = st.package
+ AND ( sp.release = ? OR sp.release = ? OR sp.release = ?
+ OR sp.release = ? )
+ AND sp.subrelease = '''' AND st.bug_name ==
bugs.name
+ ORDER BY sp.name, st.bug_name""", releases):
+
+ if old_bug == '''':
+ old_bug = bug_name
+ old_pkg = pkg_name
+ old_dsc = desc
+ elif old_bug != bug_name:
+ if old_pkg == last_displayed:
+ to_display = ''''
+ else:
+ to_display = old_pkg
+ yield to_display, self.make_xref(url, old_bug), old_dsc,
'', ''.join(outrel)
+ last_displayed = old_pkg
+ old_bug = bug_name
+ old_pkg = pkg_name
+ old_dsc = desc
+ outrel = []
+ outrel.append( release )
+ yield old_pkg, self.make_xref(url, old_bug), old_dsc, '',
''.join(outrel)
+
+ return self.create_page(url, ''Packages that may be vulnerable
but need to be checked (undetermined issues)'',
+ [P("""This page lists packages that may or may not
be affected
+ by known issues. This means that some additional work needs to
+ be done to determined whether the package is actually
+ vulnerable or not. This list is a good area for new
+ contributors to make quick and meaningful
contributions."""),
+ make_table(gen(), caption=(''Package'',
''Bug'', ''Description'',
''Releases''))])
+
+ def page_status_unimportant(self, path, params, url):
+ def gen():
+ outrel = []
+ old_bug = ''''
+ old_pkg = ''''
+ old_dsc = ''''
+ old_name = ''''
+ last_displayed = ''''
+ releases = (''sid'', ''squeeze'',
''lenny'', ''etch'')
+ for (pkg_name, bug_name, release, desc) in
self.db.cursor().execute(
+ """SELECT DISTINCT sp.name, st.bug_name,
sp.release,
+ bugs.description
+ FROM source_package_status AS st, source_packages AS sp,
bugs
+ WHERE st.vulnerable > 0 AND sp.rowid = st.package
+ AND ( sp.release = ? OR sp.release = ? OR sp.release = ?
+ OR sp.release = ? ) AND st.urgency ==
''unimportant''
+ AND sp.subrelease = '''' AND st.bug_name ==
bugs.name
+ ORDER BY sp.name, st.bug_name""", releases):
+
+ if old_bug == '''':
+ old_bug = bug_name
+ old_pkg = pkg_name
+ old_dsc = desc
+ elif old_bug != bug_name:
+ if old_pkg == last_displayed:
+ to_display = ''''
+ else:
+ to_display = old_pkg
+ yield to_display, self.make_xref(url, old_bug), old_dsc,
'', ''.join(outrel)
+ last_displayed = old_pkg
+ old_bug = bug_name
+ old_pkg = pkg_name
+ old_dsc = desc
+ outrel = []
+ outrel.append( release )
+ yield old_pkg, self.make_xref(url, old_bug), old_dsc, '',
''.join(outrel)
+
+ return self.create_page(url, ''Packages that have open
unimportant issues'',
+ [P("""This page lists packages that are affected by
issues
+ that are considered unimportant from a security perspective.
+ These issues are thought to be unexploitable or uneffective
+ in most situations (for example, browser
denial-of-services)."""),
+ make_table(gen(), caption=(''Package'',
''Bug'', ''Description'',
''Releases''))])
+
def page_status_itp(self, path, params, url):
def gen():
old_pkg = ''''