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 = ''''