]> TLD Linux GIT Repositories - TLD.git/blobdiff - pld-builder.new/PLD_Builder/srpm_builder.py
- moved to separate repo
[TLD.git] / pld-builder.new / PLD_Builder / srpm_builder.py
diff --git a/pld-builder.new/PLD_Builder/srpm_builder.py b/pld-builder.new/PLD_Builder/srpm_builder.py
deleted file mode 100644 (file)
index 5762711..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-# vi: encoding=utf-8 ts=8 sts=4 sw=4 et
-
-import email
-import string
-import time
-import os
-import StringIO
-import sys
-import re
-import shutil
-import atexit
-import tempfile
-
-import gpg
-import request
-import log
-import path
-import util
-import loop
-import chroot
-import ftp
-import buildlogs
-import notify
-import status
-import build
-import report
-
-from lock import lock
-from bqueue import B_Queue
-from config import config, init_conf
-
-def pick_request(q):
-    def mycmp(r1, r2):
-        if r1.kind != 'group' or r2.kind != 'group':
-            raise Exception, "non-group requests"
-        pri_diff = cmp(r1.priority, r2.priority)
-        if pri_diff == 0:
-            return cmp(r1.time, r2.time)
-        else:
-            return pri_diff
-    q.requests.sort(mycmp)
-    ret = q.requests[0]
-    q.requests = q.requests[1:]
-    return ret
-
-def store_binary_request(r):
-    new_b = []
-    for b in r.batches:
-        if not b.build_failed: new_b.append(b)
-    if new_b == []:
-        return
-    r.batches = new_b
-    # store new queue and max_req_no for binary builders
-    num = int(string.strip(open(path.max_req_no_file, "r").read())) + 1
-
-    r.no = num
-    q = B_Queue(path.req_queue_file)
-    q.lock(0)
-    q.read()
-    q.add(r)
-    q.write()
-    q.dump(path.queue_stats_file)
-    q.dump_html(path.queue_html_stats_file)
-    q.write_signed(path.req_queue_signed_file)
-    q.unlock()
-
-    (fdno, tmpfname) = tempfile.mkstemp(dir=os.path.dirname(path.max_req_no_file))
-    cnt_f = os.fdopen(fdno, "w")
-    cnt_f.seek(0)
-    cnt_f.write("%d\n" % num)
-    cnt_f.flush()
-    os.fsync(cnt_f.fileno())
-    cnt_f.close()
-    os.chmod(tmpfname, 0644)
-    os.rename(tmpfname, path.max_req_no_file)
-
-def transfer_file(r, b):
-    local = path.srpms_dir + '/' + r.id + "/" + b.src_rpm
-    f = b.src_rpm_file
-    # export files from chroot
-    chroot.cp(f, outfile = local, rm = True)
-    os.chmod(local, 0644)
-    ftp.add(local)
-
-    if config.gen_upinfo and 'test-build' not in r.flags:
-        fname = path.srpms_dir + '/' + r.id + "/" + b.src_rpm + ".uploadinfo"
-        f = open(fname, "w")
-        f.write("info:build:%s:requester:%s\ninfo:build:%s:requester_email:%s\nfile:SRPMS:%s\nEND\n" % (b.gb_id, b.requester, b.gb_id, b.requester_email, b.src_rpm))
-        f.close()
-        ftp.add(fname, "uploadinfo")
-
-def build_srpm(r, b):
-    if len(b.spec) == 0:
-        # should not really get here
-        util.append_to(b.logfile, "error: No .spec given but build src.rpm wanted")
-        return "FAIL"
-
-    status.push("building %s" % b.spec)
-
-    b.src_rpm = ""
-    builder_opts = "-nu -nm --nodeps --http"
-    if ("test-build" in r.flags) or b.branch and b.branch.startswith(config.tag_prefixes[0]):
-                    tag_test=""
-    else:
-                    tag_test=" -Tp %s -tt" % (config.tag_prefixes[0],)
-    cmd = ("cd rpm/packages; nice -n %s ./builder %s -bs %s -r %s %s %s %s 2>&1" %
-             (config.nice, builder_opts, b.bconds_string(), b.branch,
-              tag_test, b.kernel_string(), b.spec))
-    util.append_to(b.logfile, "request from: %s" % r.requester)
-    util.append_to(b.logfile, "started at: %s" % time.asctime())
-    util.append_to(b.logfile, "building SRPM using: %s\n" % cmd)
-    res = chroot.run(cmd, logfile = b.logfile)
-    util.append_to(b.logfile, "exit status %d" % res)
-    files = util.collect_files(b.logfile)
-    if len(files) > 0:
-        if len(files) > 1:
-            util.append_to(b.logfile, "error: More than one file produced: %s" % files)
-            res = "FAIL_TOOMANYFILES"
-        last = files[len(files) - 1]
-        b.src_rpm_file = last
-        b.src_rpm = os.path.basename(last)
-        r.chroot_files.extend(files)
-    else:
-        util.append_to(b.logfile, "error: No files produced.")
-        res = "FAIL"
-    if res == 0 and not "test-build" in r.flags:
-        for pref in config.tag_prefixes:
-            util.append_to(b.logfile, "Tagging with prefix: %s" % pref)
-            res = chroot.run("cd rpm/packages; ./builder -r %s -Tp %s -Tv %s" % \
-                        (b.branch, pref, b.spec), logfile = b.logfile)
-    if res == 0:
-        transfer_file(r, b)
-
-    packagedir = "rpm/packages/%s" % b.spec[:-5]
-    packagename = b.spec[:-5]
-    chroot.run("rpm/packages/builder -m %s" % \
-            (b.spec,), logfile = b.logfile)
-    chroot.run("rm -rf %s" % packagedir, logfile = b.logfile)
-    status.pop()
-
-    if res:
-        res = "FAIL"
-    return res
-
-def handle_request(r):
-    os.mkdir(path.srpms_dir + '/' + r.id)
-    os.chmod(path.srpms_dir + '/' + r.id, 0755)
-    ftp.init(r)
-    buildlogs.init(r)
-    build.build_all(r, build_srpm)
-    report.send_report(r, is_src = True)
-    report.send_cia_report(r, is_src = True)
-    store_binary_request(r)
-    ftp.flush()
-    notify.send(r)
-
-def main():
-    init_conf("src")
-    if lock("building-srpm", non_block = 1) == None:
-        return
-    while True:
-        status.push("srpm: processing queue")
-        q = B_Queue(path.queue_file)
-        if not q.lock(1):
-            status.pop()
-            return
-        q.read()
-        if q.requests == []:
-            q.unlock()
-            status.pop()
-            return
-        r = pick_request(q)
-        q.write()
-        q.unlock()
-        status.pop()
-        status.push("srpm: handling request from %s" % r.requester)
-        handle_request(r)
-        status.pop()
-
-if __name__ == '__main__':
-    loop.run_loop(main)