import config
from common import noarchcachedir, tmpdir
from baseftptree import BaseFtpTree, BasePkg
+cval=config.value
def log(msg):
print msg
else:
return content[:-4]
-ftptree=BaseFtpTree(config.value['default_to'])
+ftptree=BaseFtpTree(cval['default_to'])
for uploadinfo in findfiles(incoming_dir+'SRPMS'):
content=getcontent(incoming_dir+'SRPMS/'+uploadinfo)
rm(incoming_dir+'SRPMS/'+uploadinfo)
-def send_noarch_msg(files_differ, reqs_differ):
- pass
+def send_noarch_msg(files_differ, reqs_differ, pkg, rpm, arch):
+ req_email=pkg.build[pkg.lastbid].requester_email
+ req_bid=pkg.lastbid
+ cc_list=[]
+ m_subject="Noarch error: %s files differ among builders" % rpm
+ bids=pkg.build.keys()
+ if len(bids)>1:
+ for bid in bids:
+ newcc=pkg.build[bid].requester_email
+ if req_email!=newcc and newcc not in cc_list:
+ cc_list.append(newcc)
+
+ msg="From: %s\nTo: %s\n" % (cval['from_field'], req_email)
+ if cc_list:
+ msg=msg+"Cc: %s\n" % ", ".join(cc_list)
+ msg=msg+"""X-PLD-Builder: %s
+References: <%s@pld.src.builder>
+In-Reply-To: <%s@pld.src.builder>
+Subject: %s
+
+""" % (cval['xpldbuilder'], req_bid, req_bid, m_subject)
+
+ sm = os.popen("/usr/sbin/sendmail -t", "w")
+
+ sm.write(msg)
+
+ if files_differ:
+ f=open("%s/files.diff" % tmpdir, 'r')
+ sm.write("Difference between %s (currently in %s) and %s FILES\n" %
+ (pkg.noarch_arch[rpm], `ftptree`, arch)),
+ for line in f.readlines(True)[2:]:
+ sm.write(line)
+ f.close()
+
+ sm.write('\n')
+
+ if reqs_differ:
+ f=open("%s/reqs.diff" % tmpdir, 'r')
+ sm.write("Difference between %s (currently in %s) and %s REQS\n" %
+ (pkg.noarch_arch[rpm], `ftptree`, arch)),
+ for line in f.readlines(True)[2:]:
+ sm.write(line)
+ f.close()
+
+ sm.close()
+
+
def move_noarch(f, arch, rpm, dstpkg):
if dstpkg.noarch_arch.has_key(rpm):
reqs_differ=True
if files_differ or reqs_differ:
- # TODO: sending this thing will be a little more problematic
- # than I originally thought
- #send_noarch_msg(files_differ, reqs_differ)
- print 'files or reqs differ'
+ send_noarch_msg(files_differ, reqs_differ, dstpkg, rpm, arch)
rm(incoming_dir+arch+'/'+rpm)
else: