]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote-tracking branch 'ansgar/pu/multiarchive-2'
authorJoerg Jaspert <joerg@debian.org>
Sun, 12 Aug 2012 14:10:46 +0000 (16:10 +0200)
committerJoerg Jaspert <joerg@debian.org>
Sun, 12 Aug 2012 14:10:46 +0000 (16:10 +0200)
* ansgar/pu/multiarchive-2:
  daklib/archive.py: use target suite as source_suite when installing to build queues
  daklib/archive.py: doc: only subqueries are accepted
  daklib/archive.py: use only enhanced suites as default source_suites
  don't send mails about accepted buildd uploads to maintainer
  dak/process_upload.py: include full changes file with signature

Signed-off-by: Joerg Jaspert <joerg@debian.org>
dak/process_policy.py
dak/process_upload.py
daklib/archive.py

index 695751c457de1e2bf46684fb6381fb866ca22b48..98c4c2981e4ba310233a5dd309a668620f6c53e8 100755 (executable)
@@ -278,7 +278,10 @@ def subst_for_upload(upload):
     cnf = Config()
 
     maintainer_field = upload.changes.changedby or upload.changes.maintainer
-    addresses = utils.mail_addresses_for_upload(upload.changes.maintainer, maintainer_field, upload.changes.fingerprint)
+    if upload.source is not None:
+        addresses = utils.mail_addresses_for_upload(upload.changes.maintainer, maintainer_field, upload.changes.fingerprint)
+    else:
+        addresses = utils.mail_addresses_for_upload(upload.changes.maintainer, upload.changes.maintainer, upload.changes.fingerprint)
 
     changes_path = os.path.join(upload.policy_queue.path, upload.changes.changesname)
     changes_contents = open(changes_path, 'r').read()
index bea8a10ec49a01988e71068b6dbca0db716b340e..23a2036407b1c30c410e85f8b0ff481fb0054d50 100755 (executable)
@@ -237,9 +237,13 @@ def subst_for_upload(upload):
                 suite_names.append(suite.suite_name)
         suite_name = ','.join(suite_names)
 
-    maintainer_field = control.get('Changed-By', control.get('Maintainer', cnf['Dinstall::MyEmailAddress']))
-    maintainer = fix_maintainer(maintainer_field)
-    addresses = utils.mail_addresses_for_upload(control.get('Maintainer', cnf['Dinstall::MyEmailAddress']), maintainer_field, changes.primary_fingerprint)
+    maintainer_field = control.get('Maintainer', cnf['Dinstall::MyEmailAddress'])
+    changed_by_field = control.get('Changed-By', maintainer_field)
+    maintainer = fix_maintainer(changed_by_field)
+    if upload.changes.source is not None:
+        addresses = utils.mail_addresses_for_upload(maintainer_field, changed_by_field, changes.primary_fingerprint)
+    else:
+        addresses = utils.mail_addresses_for_upload(maintainer_field, maintainer_field, changes.primary_fingerprint)
 
     bcc = 'X-DAK: dak process-upload'
     if 'Dinstall::Bcc' in cnf:
@@ -260,15 +264,12 @@ def subst_for_upload(upload):
         '__DAK_ADDRESS__': cnf['Dinstall::MyEmailAddress'],
         '__MAINTAINER_FROM__': maintainer[1],
         '__MAINTAINER_TO__': ", ".join(addresses),
-        '__MAINTAINER__': maintainer_field,
+        '__MAINTAINER__': changed_by_field,
         '__BCC__': bcc,
 
         '__BUG_SERVER__': cnf.get('Dinstall::BugServer'),
 
-        # TODO: don't use private member
-        '__FILE_CONTENTS__': upload.changes._signed_file.contents,
-
-        # __REJECT_MESSAGE__
+        '__FILE_CONTENTS__': open(upload.changes.path, 'r').read(),
         }
 
     override_maintainer = cnf.get('Dinstall::OverrideMaintainer')
index 2aaf86fd436d3cc6bb6ce9da2f4491d2c84be8ff..9bb0106967e2e803ae844cce06f937cd7f34e82f 100644 (file)
@@ -125,11 +125,10 @@ class ArchiveTransaction(object):
         @type  fingerprint: L{daklib.dbconn.Fingerprint}
         @param fingerprint: optional fingerprint
 
-        @type  source_suites: list of L{daklib.dbconn.Suite} or C{True}
+        @type  source_suites: SQLAlchemy subquery for C{daklib.dbconn.Suite} or C{True}
         @param source_suites: suites to copy the source from if they are not
                               in C{suite} or C{True} to allow copying from any
                               suite.
-                              This can also be a SQLAlchemy (sub)query object.
 
         @type  extra_source_archives: list of L{daklib.dbconn.Archive}
         @param extra_source_archives: extra archives to copy Built-Using sources from
@@ -913,7 +912,7 @@ class ArchiveUpload(object):
         changed_by = get_or_set_maintainer(control.get('Changed-By', control['Maintainer']), self.session)
 
         if source_suites is None:
-            source_suites = self.session.query(Suite).join((VersionCheck, VersionCheck.reference_id == Suite.suite_id)).filter(VersionCheck.suite == suite).subquery()
+            source_suites = self.session.query(Suite).join((VersionCheck, VersionCheck.reference_id == Suite.suite_id)).filter(VersionCheck.check == 'Enhances').filter(VersionCheck.suite == suite).subquery()
 
         source = self.changes.source
         if source is not None:
@@ -1129,8 +1128,9 @@ class ArchiveUpload(object):
 
             # copy to build queues
             if policy_queue is None or policy_queue.send_to_build_queues:
+                source_suites = session.query(Suite).filter_by(suite_id=suite.suite_id).subquery()
                 for build_queue in suite.copy_queues:
-                    self._install_to_suite(build_queue.suite, source_component_func, binary_component_func, extra_source_archives=[suite.archive])
+                    self._install_to_suite(build_queue.suite, source_component_func, binary_component_func, source_suites=source_suites, extra_source_archives=[suite.archive])
 
         self._do_bts_versiontracking()