]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/queue.py
Clean up boolean logic
[dak.git] / daklib / queue.py
index ef781f19e6c24fcdad659349e6669f6d231b0596..c5cd4a68b8595992bfeeafd2ebdd2fc30bdf12cb 100755 (executable)
@@ -288,10 +288,10 @@ class TarTime(object):
         self.future_files = {}
         self.ancient_files = {}
 
-    def callback(self, Kind, Name, Link, Mode, UID, GID, Size, MTime, Major, Minor):
-        if MTime > self.future_cutoff:
+    def callback(self, member, data):
+        if member.mtime > self.future_cutoff:
             self.future_files[Name] = MTime
-        if MTime < self.past_cutoff:
+        if member.mtime < self.past_cutoff:
             self.ancient_files[Name] = MTime
 
 ###############################################################################
@@ -443,7 +443,8 @@ class Upload(object):
         cnf = Config()
         self.Subst = {}
         self.Subst["__ADMIN_ADDRESS__"] = cnf["Dinstall::MyAdminAddress"]
-        self.Subst["__BUG_SERVER__"] = cnf["Dinstall::BugServer"]
+        if cnf.has_key("Dinstall::BugServer"):
+            self.Subst["__BUG_SERVER__"] = cnf["Dinstall::BugServer"]
         self.Subst["__DISTRO__"] = cnf["Dinstall::MyDistribution"]
         self.Subst["__DAK_ADDRESS__"] = cnf["Dinstall::MyEmailAddress"]
 
@@ -750,7 +751,7 @@ class Upload(object):
             self.rejects.append("%s: invalid version number '%s'." % (f, version))
 
         # Ensure the architecture of the .deb is one we know about.
-        default_suite = cnf.get("Dinstall::DefaultSuite", "Unstable")
+        default_suite = cnf.get("Dinstall::DefaultSuite", "unstable")
         architecture = control.Find("Architecture")
         upload_suite = self.pkg.changes["distribution"].keys()[0]
 
@@ -1107,7 +1108,7 @@ class Upload(object):
             if not has_source:
                 self.rejects.append("no source found and Architecture line in changes mention source.")
 
-            if not has_binaries and cnf.FindB("Dinstall::Reject::NoSourceOnly"):
+            if (not has_binaries) and (not cnf.FindB("Dinstall::AllowSourceOnlyUploads")):
                 self.rejects.append("source only uploads are not supported.")
 
     ###########################################################################
@@ -1264,7 +1265,7 @@ class Upload(object):
 
         session.close()
 
-        return True
+        return (len(self.rejects) == 0)
 
     ###########################################################################
 
@@ -1620,19 +1621,8 @@ class Upload(object):
             if entry["type"] == "deb":
                 tar.reset()
                 try:
-                    deb_file = utils.open_file(filename)
-                    apt_inst.debExtract(deb_file, tar.callback, "control.tar.gz")
-                    deb_file.seek(0)
-                    try:
-                        apt_inst.debExtract(deb_file, tar.callback, "data.tar.gz")
-                    except SystemError, e:
-                        # If we can't find a data.tar.gz, look for data.tar.bz2 instead.
-                        if not re.search(r"Cannot f[ui]nd chunk data.tar.gz$", str(e)):
-                            raise
-                        deb_file.seek(0)
-                        apt_inst.debExtract(deb_file,tar.callback,"data.tar.bz2")
-
-                    deb_file.close()
+                    deb = apt_inst.DebFile(filename)
+                    deb.control.go(tar.callback)
 
                     future_files = tar.future_files.keys()
                     if future_files:
@@ -2038,7 +2028,7 @@ distribution."""
 
                 del self.Subst["__ANNOUNCE_LIST_ADDRESS__"]
 
-        if cnf.FindB("Dinstall::CloseBugs"):
+        if cnf.FindB("Dinstall::CloseBugs") and cnf.has_key("Dinstall::BugServer"):
             summary = self.close_bugs(summary, action)
 
         del self.Subst["__SHORT_SUMMARY__"]
@@ -2191,7 +2181,7 @@ distribution."""
         utils.move(self.pkg.changes_file,
                    os.path.join(donedir, os.path.basename(self.pkg.changes_file)))
 
-        if self.pkg.changes["architecture"].has_key("source") and cnf.get("Dir::UrgencyLog"):
+        if self.pkg.changes["architecture"].has_key("source"):
             UrgencyLog().log(self.pkg.dsc["source"], self.pkg.dsc["version"], self.pkg.changes["urgency"])
 
         self.update_subst()
@@ -2451,6 +2441,8 @@ distribution."""
         if self.logger:
             self.logger.log(["rejected", self.pkg.changes_file])
 
+        stats = SummaryStats()
+        stats.reject_count += 1
         return 0
 
     ################################################################################
@@ -2547,6 +2539,12 @@ distribution."""
 
         # Check versions for each target suite
         for target_suite in self.pkg.changes["distribution"].keys():
+            # Check we can find the target suite
+            ts = get_suite(target_suite)
+            if ts is None:
+                self.rejects.append("Cannot find target suite %s to perform version checks" % target_suite)
+                continue
+
             must_be_newer_than = [ vc.reference.suite_name for vc in get_version_checks(target_suite, "MustBeNewerThan") ]
             must_be_older_than = [ vc.reference.suite_name for vc in get_version_checks(target_suite, "MustBeOlderThan") ]