Hi, attached is an updated patch I'd like to commit to svn. Backports is treated as a subrelease like lts or security now. cheers, Holger
From f10dd6719ee2eabcdc77bdbed1fcd7abdacff75f Mon Sep 17 00:00:00 2001 From: Holger Levsen <holger@layer-acht.org> Date: Tue, 16 Sep 2014 01:08:08 +0200 Subject: [PATCH] Include squeeze- and wheezy-backports in issue and package views. (Closes: #664866) --- bin/tracker_service.py | 15 +++++++++------ lib/python/security_db.py | 34 ++++++++++++++++++++++++---------- 2 files changed, 33 insertions(+), 16 deletions(-) diff --git a/bin/tracker_service.py b/bin/tracker_service.py index 9685f25..11bfa63 100644 --- a/bin/tracker_service.py +++ b/bin/tracker_service.py @@ -744,7 +744,7 @@ to improve our documentation and procedures, so feedback is welcome.""")])]) self.nvd_text]) def page_status_release_unstable_like(self, path, params, url, - rel, title): + rel, subrel, title): bf = BugFilter(params) def gen(): @@ -757,8 +757,8 @@ to improve our documentation and procedures, so feedback is welcome.""")])]) WHERE cve_name = st.bug_name) FROM source_package_status AS st, source_packages AS sp WHERE st.vulnerable AND sp.rowid = st.package - AND sp.release = ? AND sp.subrelease = '' - ORDER BY sp.name, st.bug_name""", (rel,)): + AND sp.release = ? AND sp.subrelease = ? + ORDER BY sp.name, st.bug_name""", (rel,subrel)): if bf.urgencyFiltered(urgency, vulnerable): continue if bf.remoteFiltered(remote): @@ -802,19 +802,22 @@ to improve our documentation and procedures, so feedback is welcome.""")])]) return self.page_status_release_unstable_like( path, params, url, title='Vulnerable source packages in the unstable suite', - rel='sid') + rel='sid', + subrel='') def page_status_release_stable_backports(self, path, params, url): return self.page_status_release_unstable_like( path, params, url, title='Vulnerable source packages among backports for stable', - rel='wheezy-backports') + rel='wheezy', + subrel='backports') def page_status_release_oldstable_backports(self, path, params, url): return self.page_status_release_unstable_like( path, params, url, title='Vulnerable source packages among backports for oldstable', - rel='squeeze-backports') + rel='squeeze', + subrel='backports') def page_status_dtsa_candidates(self, path, params, url): bf = BugFilter(params) diff --git a/lib/python/security_db.py b/lib/python/security_db.py index ea6a436..09aeddd 100644 --- a/lib/python/security_db.py +++ b/lib/python/security_db.py @@ -385,7 +385,7 @@ class DB: 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' OR secp.subrelease = 'lts' ) + AND secp.release = '%s' AND ( secp.subrelease = 'security' OR secp.subrelease = 'lts' OR secp.subrelease = 'backports' ) AND secp.archive = sp.archive AND secst.bug_name = st.bug_name AND secst.package = secp.rowid), 0) @@ -432,7 +432,7 @@ class DB: return -1 self.db.createscalarfunction("release_to_number", release_to_number, 1) - subreleases = ['', 'security', 'lts'] + subreleases = ['', 'security', 'lts', 'backports'] def subrelease_to_number(u): try: return subreleases.index(u) @@ -566,6 +566,12 @@ class DB: if release == 'squeeze-lts': release = 'squeeze' subrelease = 'lts' + elif release == 'squeeze-backports': + release = 'squeeze' + subrelease = 'backports' + elif release == 'wheezy-backports': + release = 'wheezy' + subrelease = 'backports' cursor.execute( """DELETE FROM source_packages WHERE release = ? AND subrelease = ? AND archive = ?""", @@ -629,6 +635,12 @@ class DB: if release == 'squeeze-lts': release = 'squeeze' subrelease = 'lts' + elif release == 'squeeze-backports': + release = 'squeeze' + subrelease = 'backports' + elif release == 'wheezy-backports': + release = 'wheezy' + subrelease = 'backports' (unch, parsed) = self._parseFile(cursor, filename) unchanged = unchanged and unch for name in parsed.keys(): @@ -1154,14 +1166,14 @@ class DB: # note/release/subrelease triple, but we should check that # here. - status = {'' : {}, 'security' : {}, 'lts' : {}} + status = {'' : {}, 'security' : {}, 'lts' : {}, 'backports' : {}} for (package, note, subrelease, vulnerable, urgency) in cursor.execute( """SELECT DISTINCT sp.name, n.id, sp.subrelease, st.vulnerable, n.urgency FROM source_package_status AS st, source_packages AS sp, package_notes AS n WHERE st.bug_name = ? AND sp.rowid = st.package - AND sp.release = ? AND sp.subrelease IN ('', 'security', 'lts') + AND sp.release = ? AND sp.subrelease IN ('', 'security', 'lts', 'backports') AND n.bug_name = st.bug_name AND n.package = sp.name ORDER BY sp.name""", (bug_name, nickname)): @@ -1183,6 +1195,8 @@ class DB: fixed_in_security = False elif status['lts'].get((package, note), True): fixed_in_security = False + elif status['backports'].get((package, note), True): + fixed_in_security = False elif vulnerable == 2: undet_pkgs[package] = True @@ -1294,7 +1308,7 @@ class DB: FROM source_packages AS p, source_package_status AS st WHERE p.name = ? AND p.release = ? - AND p.subrelease IN ('', 'security', 'lts') + AND p.subrelease IN ('', 'security', 'lts', 'backports') AND st.bug_name = ? AND st.package = p.rowid ORDER BY p.version COLLATE version DESC""" @@ -1455,10 +1469,10 @@ class DB: # covers binary-only NMUs. for (v,) in c.execute("""SELECT version FROM source_packages WHERE name = ?1 - AND release = ?2 AND subrelease IN ('', 'security', 'lts') + AND release = ?2 AND subrelease IN ('', 'security', 'lts', 'backports') UNION ALL SELECT source_version FROM binary_packages WHERE source = ?1 - AND release = ?2 AND subrelease IN ('', 'security', 'lts')""", + AND release = ?2 AND subrelease IN ('', 'security', 'lts', 'backports')""", (package, release)): if debian_support.Version(v) >= v_ref: other_versions[v] = True @@ -1528,7 +1542,7 @@ class DB: store_value('release/1/' + release, '\n'.join(result)) - for release in ('sid', 'squeeze', 'wheezy', 'jessie'): + for release in ('sid', 'jessie', 'wheezy', 'squeeze'): gen_release(release) result = result_start @@ -1676,14 +1690,14 @@ class DB: AND COALESCE((SELECT st2.vulnerable FROM source_packages AS sp2, source_package_status AS st2 WHERE sp2.name = sp.name AND sp2.release = sp.release - AND ( sp2.subrelease = 'security' OR sp2.subrelease = 'lts' ) AND sp2.archive = sp.archive + AND ( sp2.subrelease = 'security' OR sp2.subrelease = 'lts' OR sp2.subrelease = 'backports' ) AND sp2.archive = sp.archive AND st2.package = sp2.rowid AND st2.bug_name = st.bug_name ORDER BY st2.vulnerable DESC), 1)) AS vulnerable, st.urgency = 'unimportant' OR NOT vulnerable AS unimportant FROM source_packages AS sp, source_package_status AS st, bugs WHERE sp.name = ? AND sp.release IN ('squeeze', 'wheezy', 'jessie', 'sid') - AND sp.subrelease <> 'security' AND sp.subrelease <> 'lts' + AND sp.subrelease <> 'security' AND sp.subrelease <> 'lts' AND sp.subrelease <> 'backports' AND st.package = sp.rowid AND bugs.name = st.bug_name AND (bugs.name LIKE 'CVE-%' OR bugs.name LIKE 'TEMP-%') -- 2.1.0
Attachment:
signature.asc
Description: This is a digitally signed message part.