]> git.decadent.org.uk Git - dak.git/blobdiff - daklib/queue.py
Display changes in ACCEPTED mails (Closes: #261096)
[dak.git] / daklib / queue.py
index fa4a95f4b33354ab2d47a8b03baeb20dd02b1e4e..ccb806e939193f792cb4bce4495a1651386304ba 100755 (executable)
@@ -51,7 +51,7 @@ from holding import Holding
 from urgencylog import UrgencyLog
 from dbconn import *
 from summarystats import SummaryStats
-from utils import parse_changes, check_dsc_files, build_package_set
+from utils import parse_changes, check_dsc_files, build_package_list
 from textutils import fix_maintainer
 from lintian import parse_lintian_output, generate_reject_messages
 from contents import UnpackedSource
@@ -133,8 +133,8 @@ def determine_new(filename, changes, files, warn=1, session = None, dsc = None,
 
     # Try to get the Package-Set field from an included .dsc file (if possible).
     if dsc:
-        for package, entry in build_package_set(dsc, session).items():
-            if not new.has_key(package):
+        for package, entry in build_package_list(dsc, session).items():
+            if package not in new:
                 new[package] = entry
 
     # Build up a list of potentially new things
@@ -290,9 +290,9 @@ class TarTime(object):
 
     def callback(self, member, data):
         if member.mtime > self.future_cutoff:
-            self.future_files[Name] = MTime
+            self.future_files[Name] = member.mtime
         if member.mtime < self.past_cutoff:
-            self.ancient_files[Name] = MTime
+            self.ancient_files[Name] = member.mtime
 
 ###############################################################################
 
@@ -714,7 +714,7 @@ class Upload(object):
         try:
             control = apt_pkg.ParseSection(apt_inst.debExtractControl(deb_file))
         except:
-            self.rejects.append("%s: debExtractControl() raised %s." % (f, sys.exc_type))
+            self.rejects.append("%s: debExtractControl() raised %s." % (f, sys.exc_info()[0]))
             deb_file.close()
             # Can't continue, none of the checks on control would work.
             return
@@ -1654,9 +1654,12 @@ class Upload(object):
                         self.rejects.append("%s: has %s file(s) with a time stamp too ancient (e.g. %s [%s])."
                                % (filename, num_ancient_files, ancient_file, time.ctime(ancient_date)))
                 except:
-                    self.rejects.append("%s: deb contents timestamp check failed [%s: %s]" % (filename, sys.exc_type, sys.exc_value))
+                    self.rejects.append("%s: deb contents timestamp check failed [%s: %s]" % (filename, sys.exc_info()[0], sys.exc_info()[1]))
 
     def check_if_upload_is_sponsored(self, uid_email, uid_name):
+        for key in "maintaineremail", "changedbyemail", "maintainername", "changedbyname":
+            if not self.pkg.changes.has_key(key):
+                return False
         uid_email = '@'.join(uid_email.split('@')[:2])
         if uid_email in [self.pkg.changes["maintaineremail"], self.pkg.changes["changedbyemail"]]:
             sponsored = False
@@ -1930,8 +1933,7 @@ transition is done."""
         # This is for direport's benefit...
         f = re_fdnic.sub("\n .\n", self.pkg.changes.get("changes", ""))
 
-        if byhand or new:
-            summary += "Changes: " + f
+        summary += "\n\nChanges:\n" + f
 
         summary += "\n\nOverride entries for your package:\n" + override_summary + "\n"
 
@@ -2422,11 +2424,15 @@ distribution."""
 
         reason_filename = self.pkg.changes_file[:-8] + ".reason"
         reason_filename = os.path.join(cnf["Dir::Reject"], reason_filename)
+        changesfile = os.path.join(cnf["Dir::Reject"], self.pkg.changes_file)
 
         # Move all the files into the reject directory
         reject_files = self.pkg.files.keys() + [self.pkg.changes_file]
         self.force_reject(reject_files)
 
+        # Change permissions of the .changes file to be world readable
+        os.chmod(changesfile, os.stat(changesfile).st_mode | stat.S_IROTH)
+
         # If we fail here someone is probably trying to exploit the race
         # so let's just raise an exception ...
         if os.path.exists(reason_filename):