]> git.decadent.org.uk Git - dak.git/blobdiff - jennifer
cron.unchecked lockfile udpates
[dak.git] / jennifer
index 0abbfa7e68b1d345acf129d17d9122c3196a2f14..c19e1ec545a0b9a5d739b8a9a30d738f8ad2f45c 100755 (executable)
--- a/jennifer
+++ b/jennifer
@@ -2,7 +2,7 @@
 
 # Checks Debian packages from Incoming
 # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005  James Troup <james@nocrew.org>
-# $Id: jennifer,v 1.56 2005-01-18 22:18:31 troup Exp $
+# $Id: jennifer,v 1.58 2005-11-24 15:40:16 ajt Exp $
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -45,7 +45,7 @@ re_strip_revision = re.compile(r"-([^-]+)$");
 ################################################################################
 
 # Globals
-jennifer_version = "$Revision: 1.56 $";
+jennifer_version = "$Revision: 1.58 $";
 
 Cnf = None;
 Options = None;
@@ -201,7 +201,7 @@ def check_changes():
 
     # Check for mandatory fields
     for i in ("source", "binary", "architecture", "version", "distribution",
-              "maintainer", "files", "changes"):
+              "maintainer", "files", "changes", "description"):
         if not changes.has_key(i):
             reject("%s: Missing mandatory field `%s'." % (filename, i));
             return 0    # Avoid <undef> errors during later tests
@@ -230,6 +230,9 @@ def check_changes():
          changes["changedbyname"], changes["changedbyemail"]) = \
          utils.fix_maintainer (changes.get("changed-by", ""));
     except utils.ParseMaintError, msg:
+        (changes["changedby822"], changes["changedby2047"],
+         changes["changedbyname"], changes["changedbyemail"]) = \
+        ("", "", "", "")
         reject("%s: Changed-By field ('%s') failed to parse: %s" \
                % (filename, changes["changed-by"], msg));
 
@@ -299,7 +302,7 @@ def check_distributions():
             # give these as "uploaded-to(non-mapped) suites-to-add-when-upload-obsoletes"
             #
             # changes["distribution-version"] looks like: {'testing': 'testing-proposed-updates'}
-            if args[1] in changes["distribution"]:
+            if changes["distribution"].has_key(args[1]):
                 changes.setdefault("distribution-version", {})
                 for suite in args[2:]: changes["distribution-version"][suite]=suite
 
@@ -667,6 +670,7 @@ def check_dsc():
 
     # If there isn't one, we have nothing to do. (We have reject()ed the upload already)
     if not dsc_filename:
+        reject("source uploads must contain a dsc file");
         return 0;
 
     # Parse the .dsc file
@@ -1241,7 +1245,7 @@ def main():
 
     # Check that we aren't going to clash with the daily cron job
 
-    if not Options["No-Action"] and os.path.exists("%s/Archive_Maintenance_In_Progress" % (Cnf["Dir::Root"])) and not Options["No-Lock"]:
+    if not Options["No-Action"] and os.path.exists("%s/daily.lock" % (Cnf["Dir::Lock"])) and not Options["No-Lock"]:
         utils.fubar("Archive maintenance in progress.  Try again later.");
 
     # Obtain lock if not in no-action mode and initialize the log