]> err.no Git - dak/commitdiff
utils, parse_changes
authorJoerg Jaspert <joerg@debian.org>
Sat, 30 Jan 2010 13:44:51 +0000 (14:44 +0100)
committerJoerg Jaspert <joerg@debian.org>
Sat, 30 Jan 2010 13:44:51 +0000 (14:44 +0100)
reject in case we are missing mandantory fields in .changes file

Signed-off-by: Joerg Jaspert <joerg@debian.org>
daklib/utils.py [changed mode: 0644->0755]

old mode 100644 (file)
new mode 100755 (executable)
index 37b542d..8c96dc0
@@ -268,7 +268,21 @@ def parse_changes(filename, signing_rules=0):
         unicode(content, 'utf-8')
     except UnicodeError:
         raise ChangesUnicodeError, "Changes file not proper utf-8"
-    return parse_deb822(content, signing_rules)
+    changes = parse_deb822(content, signing_rules)
+
+    # Finally ensure that everything needed is there
+    must_keywords = ('Format', 'Date', 'Source', 'Binary', 'Architecture', 'Version',
+                     'Distribution', 'Maintainer', 'Description', 'Changes', 'Files')
+
+    missingfields=[]
+    for keyword in must_keywords:
+        if not changes.has_key(keyword.lower()):
+            missingfields.append(keyword)
+
+    if len(missingfields):
+        raise ParseChangesError, "Missing mandantory field(s) in changes file (policy 5.5): %s" % (missingfields)
+
+    return changes
 
 ################################################################################