Author: fw
Date: 2005-09-13 14:43:16 +0000 (Tue, 13 Sep 2005)
New Revision: 1952
Modified:
lib/python/bugs.py
Log:
Add support for release annotations of the form "[woody] - PACKAGE
VERSION". (Currently not used in any input file.)
lib/python/bugs.py (PackageNote.writeDB):
Convert release objects to strings.
(PackageNoteParsed):
Pass in release information. Do not extract it from the
package-specific notes.
(FileBase.re_package_required, FileBase.re_package):
Detect release annotations.
(FileBase.__iter__):
Extract them.
(DSAFile):
Moved "!" hack to base class.
Modified: lib/python/bugs.py
==================================================================---
lib/python/bugs.py 2005-09-13 14:08:22 UTC (rev 1951)
+++ lib/python/bugs.py 2005-09-13 14:43:16 UTC (rev 1952)
@@ -112,10 +112,14 @@
v = str(self.fixed_version)
else:
v = None
+ if self.release:
+ r = str(self.release)
+ else:
+ r = ''''
cursor.execute("""INSERT INTO package_notes
(bug_name, package, fixed_version, release, urgency)
VALUES (?, ?, ?, ?, ?)""",
- (bug_name, self.package, v, self.release or
'''',
+ (bug_name, self.package, v, r,
str(self.urgency)))
for (rowid,) in cursor.execute(''SELECT
last_insert_rowid()''):
self.id = rowid
@@ -151,8 +155,7 @@
re_bug = re.compile(r''^bug #(\d+)$'')
re_notes_split = re.compile(r''\s*;\s+'')
- def __init__(self, package, version, notes):
- rel = None
+ def __init__(self, package, version, notes, release=None):
bugs = []
urgency = "unknown"
if notes is not None:
@@ -162,11 +165,6 @@
urgency = u
continue
- r = debian_support.internRelease(n)
- if r:
- rel = r
- continue
-
match = self.re_bug.match(n)
if match:
(bug,) = match.groups()
@@ -178,7 +176,7 @@
continue
raise SyntaxError , ''unknown package note
%s\n'' % `n`
- PackageNote.__init__(self, package, version, rel, urgency)
+ PackageNote.__init__(self, package, version, release, urgency)
self.bugs = bugs
class BugBase:
@@ -345,8 +343,9 @@
+ r''|VU#\d{6}''
+
r''|DSA-\d+(?:-\d+)?|DTSA-\d+-\d+)$'')
- re_package_required = re.compile(r''^-'')
- re_package = re.compile(r''^- ([A-Za-z0-9:.+-]+)''
+ # temporary hack, until we know what "!" actually means.
+ re_package_required = re.compile(r''^(?:\[.*\]\s*)?[-!]'')
+ re_package = re.compile(r''^(?:\[([a-z]+)\] )?[-!]
([A-Za-z0-9:.+-]+)''
+
r''(?:\s+([A-Za-z0-9:.+-]+))?\s*(?:\((.*)\))?$'')
re_not_for_us_required =
re.compile(r''^NOTE:\s+not?e?-fo?r-u'')
re_not_for_us =
re.compile(r''^NOTE:\s+not-for-us(?:\s+\((.*)\))?\s*$'')
@@ -465,7 +464,7 @@
if self.re_package_required.match(r):
match = self.re_package.match(r)
if match:
- (p, v, d) = match.groups()
+ (release, p, v, d) = match.groups()
if v is None and d is None and \
self.no_version_needs_note:
raise SyntaxError, \
@@ -473,11 +472,12 @@
if v == ''not-affected'':
# ''0'' is the minimum version
number possible.
- pkg_notes.append(PackageNoteParsed(p,
''0'', None))
+ pkg_notes.append(PackageNoteParsed
+ (p, ''0'', None,
release=release))
# ''d'' is a free-form field in
this case.
comments.append((''NOTE'', d))
else:
- x = PackageNoteParsed(p, v, d)
+ x = PackageNoteParsed(p, v, d, release=release)
pkg_notes.append(x)
if first_bug == 0 and len(x.bugs) > 0:
first_bug = x.bugs[0]
@@ -623,10 +623,6 @@
''Nov'': 11,
''Dec'': 12}
- # temporary hack, until we know what "!" actually means.
- re_package_required = re.compile(r''^[-!]'')
- re_package = re.compile(r''^[-!] ([A-Za-z0-9:.+-]+)''
- +
r''(?:\s+([A-Za-z0-9:.+-]+))?\s*(?:\((.*)\))?$'')
def matchHeader(self, line):
match = self.re_dsa.match(line)
if not match: