]> git.decadent.org.uk Git - dak.git/commitdiff
[rmurray] Handle 'Source (Version)' in Source: in .changes files.
authorJames Troup <james@nocrew.org>
Tue, 13 Feb 2007 01:02:35 +0000 (01:02 +0000)
committerJames Troup <james@nocrew.org>
Tue, 13 Feb 2007 01:02:35 +0000 (01:02 +0000)
ChangeLog
daklib/utils.py

index 4b704de33fdc46a05bc966e885893aa2bd0c8d62..7e9723c358f15771fefcfd6c60ea3d78687a601e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-02-08  Ryan Murray  <rmurray@debian.org>
 
+       * daklib/utils.py (re_srchasver): new regex.
+       (parse_changes): use regex to split 'Source (Version)' style
+       Source fields into 'source' and 'source-version'.
+
        * config/debian/cron.daily: use $base instead of hardcoding path
        name.
 
index 527f76b0b585cb1b42754560de9d2f1923ba2185..4e048d3ccccff4f90f827b47995d0d080684f5f1 100644 (file)
@@ -42,6 +42,8 @@ re_taint_free = re.compile(r"^[-+~/\.\w]+$")
 
 re_parse_maintainer = re.compile(r"^\s*(\S.*\S)\s*\<([^\>]+)\>")
 
+re_srchasver = re.compile(r"^(\S+)\s+\((\S+)\)$")
+
 changes_parse_error_exc = "Can't parse line in .changes file"
 invalid_dsc_format_exc = "Invalid .dsc file"
 nk_format_exc = "Unknown Format: in .changes file"
@@ -223,6 +225,14 @@ The rules for (signing_rules == 1)-mode are:
     changes_in.close()
     changes["filecontents"] = "".join(lines)
 
+    if changes.has_key("source"):
+        # Strip the source version in brackets from the source field,
+       # put it in the "source-version" field instead.
+        srcver = re_srchasver.search(changes["source"])
+       if srcver:
+            changes["source"] = srcver.group(1)
+           changes["source-version"] = srcver.group(2)
+
     if error:
        raise changes_parse_error_exc, error