[Pkg-debile-commits] [debile-slave] 26/28: Multi compiler support

Sylvestre Ledru sylvestre at alioth.debian.org
Mon Aug 19 14:55:23 UTC 2013


This is an automated email from the git hooks/post-receive script.

sylvestre pushed a commit to branch master
in repository debile-slave.

commit ec3564379f4cb206fdb3389dd76e08c0b2364e0e
Author: Léo Cavaillé <leo at cavaille.net>
Date:   Sat Aug 17 14:13:22 2013 +0200

    Multi compiler support
---
 ethel/commands/build.py |    7 +++--
 ethel/runners/sbuild.py |   77 +++++++++++++++++++++++++++++++++++++----------
 2 files changed, 65 insertions(+), 19 deletions(-)

diff --git a/ethel/commands/build.py b/ethel/commands/build.py
index 9edc94a..f3418c2 100644
--- a/ethel/commands/build.py
+++ b/ethel/commands/build.py
@@ -8,8 +8,9 @@ import os
 def run(dsc, package, job, firehose):
     suite = job['suite']
     arch = job['arch']
+    compiler = job['subtype']
 
-    info, out, ftbfs = sbuild(dsc, suite, arch)
+    firehose, out, ftbfs = sbuild(dsc, suite, arch, compiler, firehose)
 
     changes = "{source}*{arch}.changes".format(
         source=package['name'],
@@ -24,9 +25,9 @@ def run(dsc, package, job, firehose):
 
     if not ftbfs:
         changes = changes[0]
-        upload(changes, job['id'])
+        upload(changes, job['id'], package)
 
-    return (info, out, ftbfs)
+    return (firehose, out, ftbfs)
 
 def get_version():
     return version()
diff --git a/ethel/runners/sbuild.py b/ethel/runners/sbuild.py
index 5ac819f..fbc5771 100644
--- a/ethel/runners/sbuild.py
+++ b/ethel/runners/sbuild.py
@@ -14,7 +14,7 @@ import os
 STATS = re.compile("Build needed (?P<time>.*), (?P<space>.*) dis(c|k) space")
 VERSION = re.compile("sbuild \(Debian sbuild\) (?P<version>)")
 
-def parse_sbuild_log(log, sut):
+def parse_sbuild_log(log, sut, compiler):
     gccversion = None
     stats = None
 
@@ -51,7 +51,7 @@ def parse_sbuild_log(log, sut):
     return obj
 
 
-def sbuild(package, suite, arch):
+def sbuild(package, suite, arch, compiler, analysis):
     chroot = "%s-%s" % (suite, arch)
 
     dsc = os.path.basename(package)
@@ -65,24 +65,69 @@ def sbuild(package, suite, arch):
         version, local = version.rsplit("-", 1)
 
     suite, arch = chroot.split("-", 1)
-    sut = DebianBinary(source, version, local, arch)
 
-    out, err, ret = run_command([
-        "sbuild",
-        "-A",
-        "-c", chroot,
-        "-v",
-        "-d", suite,
-        "-j", "8",
-        package,
-    ])
+    if compiler == "gcc-4.8":
+        out, err, ret = run_command([
+            "sbuild",
+            "-A",
+            "-c", chroot,
+            "-v",
+            "-d", suite,
+            "-j", "8",
+            package,
+        ])
+    elif compiler == "clang-3.3":
+        with schroot(chroot_name) as chroot:
+            out = ""
+            out_, err, ret = chroot.run([
+                'apt-get', 'update'
+            ], user='root')
+            out += out_
+            out_, err, ret = chroot.run([
+                'apt-get', 'dist-upgrade'
+            ], user='root')
+            out += out_
+            out_, err, ret = chroot.run([
+                'apt-get', 'install', '-y', '--no-install-recommends', 'cpp', 'g++', 'gcc', 'clang-3.3'
+            ], user='root')
+            out += out_
+            versions = ['4.6', '4.7', '4.8']
+            for v in versions:
+                out, err, ret = chroot.run([
+                    'rm', '-f', '/usr/bin/g++-%s' % v, '/usr/bin/gcc-%s' % v, '/usr/bin/cpp-%s' % v
+                ], user='root')
+                out += out_
+                out_, err, ret = chroot.run([
+                    'ln', '-s', '/usr/bin/clang++', '/usr/bin/g++-%s' % v
+                ], user='root')
+                out += out_
+                out_, err, ret = chroot.run([
+                    'ln', '-s', '/usr/bin/clang', '/usr/bin/gcc-%s' % v
+                ], user='root')
+                out += out_
+                out_, err, ret = chroot.run([
+                    'ln', '-s', '/usr/bin/clang', '/usr/bin/cpp-%s' % v
+                ], user='root')
+                out += out_
+            out_, err, ret = run_command([
+                "sbuild",
+                "-A",
+                "--use-schroot-session", chroot.session,
+                "-v",
+                "-d", suite,
+                "-j", "8",
+                '--no-apt-update',
+                '--no-apt-upgrade',
+                '--no-apt-dist-upgrade',
+                package,
+            ])
+            out += out_
+        # TODO : we don't have a parser for clang output !!
+
     ftbfs = ret != 0
-    info = parse_sbuild_log(out, sut=sut)
 
-    return info, out, ftbfs
+    return analysis, out, ftbfs
 
-# FIXME: do we want to use sbuild version and/or compiler version
-# see gcc version in parse_sbuild_log
 def version():
     out, err, ret = run_command([
         "sbuild", '--version'

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-debile/debile-slave.git



More information about the Pkg-debile-commits mailing list