[dak/master 1/2] utils, parse_changes
reject in case we are missing mandantory fields in .changes file
Signed-off-by: Joerg Jaspert <joerg@debian.org>
---
daklib/utils.py | 16 +++++++++++++++-
1 files changed, 15 insertions(+), 1 deletions(-)
mode change 100644 => 100755 daklib/utils.py
diff --git a/daklib/utils.py b/daklib/utils.py
old mode 100644
new mode 100755
index 37b542d..8c96dc0
--- a/daklib/utils.py
+++ b/daklib/utils.py
@@ -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
################################################################################
--
1.6.5
Reply to: