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.