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:
'__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')
for suite in upload.final_suites:
accepted_to_real_suite = accepted_to_real_suite or suite.policy_queue is None
+ sourceful_upload = 'source' in upload.changes.architectures
+
control = upload.changes.changes
- if 'source' in upload.changes.architectures and not Options['No-Action']:
+ if sourceful_upload and not Options['No-Action']:
urgency = control.get('Urgency')
if urgency not in cnf.value_list('Urgency::Valid'):
urgency = cnf['Urgency::Default']
utils.send_mail(message)
# send mail to announce lists and tracking server
- subst = subst_for_upload(upload)
- announce = set()
- for suite in upload.final_suites:
- if suite.policy_queue is None:
- continue
- announce.update(suite.announce or [])
- announce_address = ", ".join(announce)
- tracking = cnf.get('Dinstall::TrackingServer')
- if tracking and 'source' in upload.changes.architectures:
- announce_address = '{0}\nBcc: {1}@{2}'.format(announce_address, control['Source'], tracking)
- message = utils.TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce'))
- utils.send_mail(message)
+ if accepted_to_real_suite and sourceful_upload:
+ subst = subst_for_upload(upload)
+ announce = set()
+ for suite in upload.final_suites:
+ if suite.policy_queue is not None:
+ continue
+ announce.update(suite.announce or [])
+ announce_address = ", ".join(announce)
+
+ tracking = cnf.get('Dinstall::TrackingServer')
+ if tracking and 'source' in upload.changes.architectures:
+ announce_address = '{0}\nBcc: {1}@{2}'.format(announce_address, control['Source'], tracking)
+
+ subst['__ANNOUNCE_LIST_ADDRESS__'] = announce_address
+
+ message = utils.TemplateSubst(subst, os.path.join(cnf['Dir::Templates'], 'process-unchecked.announce'))
+ utils.send_mail(message)
# Only close bugs for uploads that were not redirected to a policy queue.
# process-policy will close bugs for those once they are accepted.
subst = subst_for_upload(upload)
- if accepted_to_real_suite and cnf.find_b('Dinstall::CloseBugs') and upload.changes.source is not None:
+ if accepted_to_real_suite and cnf.find_b('Dinstall::CloseBugs') and sourceful_upload:
for bugnum in upload.changes.closed_bugs:
subst['__BUG_NUMBER__'] = str(bugnum)
for fn in files:
src = os.path.join(upload.directory, fn)
dst = utils.find_next_free(os.path.join(rejectdir, fn))
+ if not os.path.exists(src):
+ continue
fs.copy(src, dst)
if upload.reject_reasons is not None: