[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