aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2018-05-01 10:01:47 +0000
committerMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>2018-05-01 10:03:29 +0000
commit0d3d218cb7820c85f4f4bc2289dae04f05846eb6 (patch)
treea8f0e6bfcc4942c622c7fcd6f8281bd9d839dd34
parent95035bfe8cb95a2a88f12d27d33d1a4ae4c965eb (diff)
parent82287d9c0d2a25f529d242a1385d5bc791523fbd (diff)
downloaddockerfiles-tcwg-llvmprod.tar.gz
Merge branch 'tcwg-staging' into tcwg-llvmprodtcwg-llvmprod
Change-Id: I9fb0f6835cc68de62081910a4aaed4b8cc9423f3
-rw-r--r--LICENSE21
-rw-r--r--ci-amd64-llp-alpine/Dockerfile10
-rwxr-xr-xci-amd64-llp-alpine/docker_run.sh3
-rw-r--r--jessie-amd64-jenkins-master/Dockerfile8
-rw-r--r--jessie-amd64-jenkins-master/plugins.txt59
-rw-r--r--lava/dispatcher/production/stretch-amd64/Dockerfile46
-rwxr-xr-xlava/dispatcher/production/stretch-amd64/build.sh19
-rwxr-xr-xlava/dispatcher/production/stretch-amd64/entrypoint.sh115
-rw-r--r--tcwg-base/Dockerfile.in23
-rwxr-xr-xtcwg-base/build.sh4
-rw-r--r--tcwg-base/postfix-main.cf.in50
-rw-r--r--tcwg-base/postfix-sasl_password.in1
-rw-r--r--tcwg-base/tcwg-build/Dockerfile.in17
-rw-r--r--tcwg-base/tcwg-build/tcwg-buildslave/.mailrc1
-rw-r--r--tcwg-base/tcwg-dev/Dockerfile.in1
-rwxr-xr-xtcwg-base/tcwg-dev/build.sh6
-rwxr-xr-xtcwg-base/tcwg-dev/run.sh (renamed from tcwg-base/tcwg-dev/run.sh.tmpl)2
-rwxr-xr-xtcwg-base/tcwg-dev/start.sh119
-rwxr-xr-xtcwg-base/tcwg-dev/start.sh.tmpl42
-rw-r--r--tcwg-base/tcwg-llvmbot/Dockerfile.in22
-rwxr-xr-xtcwg-base/tcwg-llvmbot/build.sh6
-rw-r--r--tcwg-base/tcwg-llvmbot/gerrit-branches1
-rwxr-xr-xtcwg-base/tcwg-llvmbot/run.sh158
-rwxr-xr-xtcwg-base/tcwg-llvmbot/run.sh.tmpl35
-rwxr-xr-xtcwg-base/tcwg-llvmbot/start.sh (renamed from tcwg-base/tcwg-llvmbot/start.sh.tmpl)74
-rw-r--r--trusty-amd64-tcwg-base/Dockerfile19
-rw-r--r--trusty-amd64-tcwg-base/trusty-amd64-tcwg-build/Dockerfile15
-rw-r--r--trusty-amd64-tcwg-base/trusty-amd64-tcwg-dev/Dockerfile3
-rw-r--r--trusty-arm64-tcwg-base/Dockerfile16
-rw-r--r--trusty-arm64-tcwg-base/trusty-arm64-tcwg-build/Dockerfile3
-rw-r--r--trusty-arm64-tcwg-base/trusty-arm64-tcwg-dev/Dockerfile3
-rw-r--r--trusty-armhf-tcwg-base/Dockerfile16
-rw-r--r--trusty-armhf-tcwg-base/trusty-armhf-tcwg-build/Dockerfile3
-rw-r--r--trusty-armhf-tcwg-base/trusty-armhf-tcwg-dev/Dockerfile3
-rw-r--r--trusty-i386-tcwg-base/Dockerfile18
-rw-r--r--trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile14
-rw-r--r--xenial-amd64-tcwg-base/Dockerfile19
-rw-r--r--xenial-amd64-tcwg-base/xenial-amd64-tcwg-build/Dockerfile15
-rw-r--r--xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev/Dockerfile3
-rw-r--r--xenial-amd64/Dockerfile1
-rw-r--r--xenial-arm64-tcwg-base/Dockerfile16
-rw-r--r--xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile3
-rw-r--r--xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile3
-rw-r--r--xenial-arm64-tcwg-base/xenial-arm64-tcwg-llvmbot/Dockerfile20
-rw-r--r--xenial-armhf-tcwg-base/Dockerfile16
-rw-r--r--xenial-armhf-tcwg-base/xenial-armhf-tcwg-build/Dockerfile3
-rw-r--r--xenial-armhf-tcwg-base/xenial-armhf-tcwg-dev/Dockerfile3
-rw-r--r--xenial-armhf-tcwg-base/xenial-armhf-tcwg-llvmbot/Dockerfile20
-rw-r--r--xenial-i386-tcwg-base/Dockerfile18
-rw-r--r--xenial-i386-tcwg-base/xenial-i386-tcwg-build/Dockerfile14
-rw-r--r--xenial-i386-tcwg-base/xenial-i386-tcwg-dev/Dockerfile (renamed from zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/Dockerfile)5
l---------xenial-i386-tcwg-base/xenial-i386-tcwg-dev/build.sh (renamed from zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/build.sh)0
l---------xenial-i386-tcwg-base/xenial-i386-tcwg-dev/gerrit-branches (renamed from zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/gerrit-branches)0
-rw-r--r--zesty-arm64-tcwg-base/Dockerfile102
l---------zesty-arm64-tcwg-base/build.sh1
l---------zesty-arm64-tcwg-base/gerrit-branches1
-rw-r--r--zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/Dockerfile18
l---------zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/build.sh1
l---------zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/gerrit-branches1
-rw-r--r--zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/Dockerfile9
l---------zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/build.sh1
l---------zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/gerrit-branches1
-rw-r--r--zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/Dockerfile50
-rw-r--r--zesty-armhf-tcwg-base/Dockerfile102
l---------zesty-armhf-tcwg-base/build.sh1
l---------zesty-armhf-tcwg-base/gerrit-branches1
-rw-r--r--zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/Dockerfile18
l---------zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/build.sh1
l---------zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/gerrit-branches1
-rw-r--r--zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/Dockerfile9
l---------zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/build.sh1
l---------zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/gerrit-branches1
l---------zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/build.sh1
l---------zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/gerrit-branches1
74 files changed, 882 insertions, 555 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..1f1f9d6
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2015-2018 Linaro
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/ci-amd64-llp-alpine/Dockerfile b/ci-amd64-llp-alpine/Dockerfile
index 5d4fc2d..ee804cd 100644
--- a/ci-amd64-llp-alpine/Dockerfile
+++ b/ci-amd64-llp-alpine/Dockerfile
@@ -7,17 +7,17 @@ ENV PORT=8080
ENV LLP_APP=linaro-license-protection.wsgi_production
ENV DJANGO_SETTINGS_MODULE=settings_production
-# Setup flask application
+# Setup django application
RUN mkdir -p $APPDIR
WORKDIR $APPDIR
-RUN apk --update --no-cache add python2 py2-pip mysql-client git py-gunicorn sqlite postgresql-dev && \
- apk --no-cache add gcc g++ python2-dev musl-dev && \
+RUN apk --update --no-cache add python2 py2-pip mysql-client git py-gunicorn sqlite && \
+ apk --no-cache add gcc g++ python2-dev musl-dev libffi-dev postgresql-dev && \
git clone https://git.linaro.org/infrastructure/linaro-license-protection.git/ $APPDIR && \
pip2 install --upgrade pip setuptools six && \
- pip2 install -r $APPDIR/requirements.txt && \
- apk del gcc g++ python3-dev musl-dev
+ pip2 install -U -r $APPDIR/requirements.txt && \
+ apk del gcc g++ python3-dev musl-dev libffi-dev
EXPOSE $PORT
diff --git a/ci-amd64-llp-alpine/docker_run.sh b/ci-amd64-llp-alpine/docker_run.sh
index 43ab62d..52c27ae 100755
--- a/ci-amd64-llp-alpine/docker_run.sh
+++ b/ci-amd64-llp-alpine/docker_run.sh
@@ -22,4 +22,5 @@ if [ -z "$DJANGO_DEBUG" ] ; then
exec /usr/bin/gunicorn -w4 -b 0.0.0.0:$PORT $LLP_APP
fi
-exec python $APPDIR/manage.py runserver
+python $APPDIR/manage.py migrate --noinput --settings=settings
+exec python $APPDIR/manage.py runserver 0.0.0.0:8080 --settings=settings
diff --git a/jessie-amd64-jenkins-master/Dockerfile b/jessie-amd64-jenkins-master/Dockerfile
index 4620aaa..85abad5 100644
--- a/jessie-amd64-jenkins-master/Dockerfile
+++ b/jessie-amd64-jenkins-master/Dockerfile
@@ -1,4 +1,4 @@
-FROM jenkinsci/jenkins:2.89.2
+FROM jenkins/jenkins:2.107.2
ENV JENKINS_JAVA_PARAMETERS="-server -XX:+AlwaysPreTouch -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jenkins/heapdump.log -verbose:gc -Xloggc:/var/log/jenkins/gc-%t.log -XX:NumberOfGCLogFiles=2 -XX:+UseGCLogFileRotation -XX:GCLogFileSize=100m -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintHeapAtGC -XX:+PrintGCCause -XX:+PrintTenuringDistribution -XX:+PrintReferenceGC -XX:+PrintAdaptiveSizePolicy -XX:+UseG1GC -XX:+UseStringDeduplication -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+UnlockDiagnosticVMOptions -XX:G1SummarizeRSetStatsPeriod=1 -XX:MaxMetaspaceExpansion=64M -Djenkins.model.Jenkins.logStartupPerformance=true"
ENV JAVA_OPTS="-Xms4g -Xmx8g $JENKINS_JAVA_PARAMETERS -Djava.awt.headless=true -Dhudson.slaves.WorkspaceList='_' -Dhudson.model.ParametersAction.keepUndefinedParameters=true -Dorg.jenkinsci.plugins.gitclient.Git.timeOut=30 -Dorg.eclipse.jetty.server.Request.maxFormContentSize=1000000"
@@ -10,7 +10,7 @@ USER root
RUN wget -q https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py \
&& python /tmp/get-pip.py \
&& rm -f /tmp/get-pip.py \
- && pip install jenkins-job-builder==1.6.2 pyyaml==3.12 jinja2==2.9.6 python-jenkins==0.4.15 \
+ && pip install jenkins-job-builder==2.0.5 pyyaml==3.12 jinja2==2.9.6 python-jenkins==0.4.15 \
&& git clone --depth 1 https://git.linaro.org/infrastructure/jjb-linaro-plugin.git \
&& cd jjb-linaro-plugin && python setup.py install \
&& cd .. && rm -rf jjb-linaro-plugin \
@@ -24,14 +24,18 @@ RUN wget -q https://bootstrap.pypa.io/get-pip.py -O /tmp/get-pip.py \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ansible \
+ build-essential \
debian-keyring \
devscripts \
dirmngr \
dput \
jq \
+ moreutils \
python-future \
python-paramiko \
python-requests \
+ python3-setuptools \
+ python3-wheel \
sshpass \
virtualenv \
&& wget -q https://launchpad.net/ubuntu/+archive/primary/+files/dput_0.9.6.4ubuntu3_all.deb \
diff --git a/jessie-amd64-jenkins-master/plugins.txt b/jessie-amd64-jenkins-master/plugins.txt
index 775a44d..a8f30a5 100644
--- a/jessie-amd64-jenkins-master/plugins.txt
+++ b/jessie-amd64-jenkins-master/plugins.txt
@@ -1,64 +1,69 @@
ansicolor:0.5.2
-ant:1.7
+ant:1.8
antisamy-markup-formatter:1.5
+apache-httpcomponents-client-4-api:4.5.3-2.1
+bouncycastle-api:2.16.2
build-blocker:1.7.3
-build-monitor-plugin:1.10+build.201611041949
-build-name-setter:1.6.7
+build-monitor-plugin:1.12+build.201708172343
+build-name-setter:1.6.9
build-timeout:1.19
+command-launcher:1.2
copy-to-slave:1.4.4
-copyartifact:1.39
-coverity:1.10.0
+copyartifact:1.39.1
+coverity:1.11.0
crowd2:1.8
-cvs:2.13
+cvs:2.14
docker-build-publish:1.3.2
docker-plugin:1.0.0
docker-slaves:1.0.7
dropdown-viewstabbar-plugin:1.7
dynamic-axis:1.0.3
-ec2:1.38
-email-ext:2.61
+ec2:1.39
+email-ext:2.62
embeddable-build-status:1.9
extended-read-permission:2.0
external-monitor-job:1.7
-ghprb:1.39.0
-gerrit-trigger:2.27.1
+ghprb:1.40.0
+gerrit-trigger:2.27.5
github-organization-folder:1.6
greenballs:1.15
-groovy-postbuild:1.10
+groovy-postbuild:2.4
heavy-job:1.1
-htmlpublisher:1.14
+htmlpublisher:1.16
ircbot:2.30
jira:2.5
-jenkins-multijob-plugin:1.28
+jenkins-multijob-plugin:1.29
jobConfigHistory:2.18
-ldap:1.18
-leastload:1.0.3
+ldap:1.20
+leastload:2.0.1
log-parser:2.0
matrix-auth:2.2
+matrix-combinations-parameter:1.3.0
matrixtieparent:1.2
mercurial:1.61
-metrics:3.1.2.10
-monitoring:1.70.0
+metrics:3.1.2.11
+monitoring:1.72.0
multiple-scms:0.6
naginator:1.17.2
nodelabelparameter:1.7.2
pam-auth:1.3
-pipeline-utility-steps:1.5.1
+pipeline-utility-steps:2.0.2
plot:1.11
-PrioritySorter:3.5.1
-publish-over-ssh:1.17
-rebuild:1.27
+PrioritySorter:3.6.0
+publish-over-ssh:1.19.1
+rebuild:1.28
repo:1.10.7
-simple-theme-plugin:0.3
+simple-theme-plugin:0.4
ssh-agent:1.15
-subversion:2.10.1
+subversion:2.10.5
+tap:2.2.1
throttle-concurrents:2.0.1
-timestamper:1.8.8
-translation:1.15
+timestamper:1.8.9
+translation:1.16
urltrigger:0.41
-warnings:4.64
+warnings:4.66
windows-slaves:1.3.1
workflow-aggregator:2.5
ws-cleanup:0.34
xvfb:1.1.3
-yet-another-docker-plugin:0.1.0-rc46
+yet-another-docker-plugin:0.1.0-rc47
diff --git a/lava/dispatcher/production/stretch-amd64/Dockerfile b/lava/dispatcher/production/stretch-amd64/Dockerfile
new file mode 100644
index 0000000..c555a9b
--- /dev/null
+++ b/lava/dispatcher/production/stretch-amd64/Dockerfile
@@ -0,0 +1,46 @@
+FROM debian:stretch
+
+# Docker image for LAVA dispatcher with production release.
+
+MAINTAINER Senthil Kumaran S <senthil.kumaran@linaro.org>
+
+# Install the required dependencies
+RUN echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections && \
+ echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections && \
+ export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get -y upgrade && \
+ apt-get -y install ntp git tftpd-hpa openbsd-inetd ser2net qemu-kvm \
+ qemu-system-x86 qemu-system-arm qemu-user-static libguestfs-tools \
+ nfs-kernel-server rpcbind u-boot-tools unzip xz-utils debootstrap \
+ bridge-utils dfu-util img2simg emacs-nox vim gnupg2 sed expect grep wget \
+ openssh-server
+
+# Add LAVA stretch-backports production repo
+RUN wget -qO - http://images.validation.linaro.org/production-repo/production-repo.key.asc | apt-key add - && \
+ echo "deb http://images.validation.linaro.org/production-repo stretch-backports main" >/etc/apt/sources.list.d/linaro.list
+
+RUN echo 'locales locales/locales_to_be_generated multiselect C.UTF-8 UTF-8, en_US.UTF-8 UTF-8 ' | debconf-set-selections && \
+ echo 'locales locales/default_environment_locale select en_US.UTF-8' | debconf-set-selections && \
+ export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get -y upgrade && \
+ apt-get -y -t stretch-backports install lava-dispatcher \
+ lava-lxc-mocker && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
+
+# Expose services ports
+EXPOSE 22
+
+# Set entrypoint script
+COPY entrypoint.sh /entrypoint.sh
+ENTRYPOINT [ "/entrypoint.sh" ]
+
+# Following is a sample docker run command to use this image
+#
+# sudo docker run -v /boot:/boot -v /lib/modules:/lib/modules \
+# -v /var/run/docker.sock:/var/run/docker.sock -itd -e HOSTNAME='worker-1' \
+# -e MASTER='tcp://192.168.1.2:5556' -e SOCKET_ADDR='tcp://192.168.1.2:5555' \
+# -e LOG_LEVEL='DEBUG' -p 2222:22 --privileged \
+# --name ld-2017.12 stylesen/lava-dispatcher:2017.12
diff --git a/lava/dispatcher/production/stretch-amd64/build.sh b/lava/dispatcher/production/stretch-amd64/build.sh
new file mode 100755
index 0000000..d7f69b3
--- /dev/null
+++ b/lava/dispatcher/production/stretch-amd64/build.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+set -e
+
+export LANG=C
+
+DISTRIBUTION=$(basename ${PWD} | cut -f1 -d '-')
+ARCHITECTURE=$(basename ${PWD} | cut -f2 -d '-')
+REPO=$(basename $(dirname ${PWD}))
+
+# Get version by parsing Packages file from respective repo.
+VERSION=$(wget -qO - http://images.validation.linaro.org/${REPO}-repo/dists/${DISTRIBUTION}-backports/main/binary-${ARCHITECTURE}/Packages \
+ | grep -A5 '^Package: lava-dispatcher' | grep '^Version: ' \
+ | awk '{ print $2 }' \
+ | sed 's/[~|+].*//')
+
+image=linaro/lava-dispatcher-debian-${DISTRIBUTION}-${ARCHITECTURE}:${VERSION}
+docker build --no-cache --pull --tag=$image .
+echo $image > .docker-tag
diff --git a/lava/dispatcher/production/stretch-amd64/entrypoint.sh b/lava/dispatcher/production/stretch-amd64/entrypoint.sh
new file mode 100755
index 0000000..74bc9c7
--- /dev/null
+++ b/lava/dispatcher/production/stretch-amd64/entrypoint.sh
@@ -0,0 +1,115 @@
+#!/usr/bin/env bash
+#
+# entrypoint.sh
+#
+# This is the default entrypoint for this image.
+#
+# By default, it starts lava-slave service with the values set in environment
+# variable.
+#
+# The following environment values can be set:
+#
+# HOSTNAME Name of the slave
+#
+# MASTER Main master socket
+# Example: MASTER='tcp://192.168.1.2:5556'
+#
+# SOCKET_ADDR Log socket
+# Example: SOCKET_ADDR='tcp://192.168.1.2:5555'
+#
+# LOG_FILE Log file for the slave logs
+# Example: LOG_FILE='/tmp/lava-slave.log'
+#
+# LOG_LEVEL Log level (DEBUG, ERROR, INFO, WARN); default to INFO
+# Example: LOG_LEVEL='DEBUG'
+#
+# TIMEOUT Socket connection timeout in seconds; default to 5
+# Example: TIMEOUT=10
+#
+# IPV6 Enable IPv6
+# Example: IPV6=True
+#
+# ENCRYPT Encrypt messages
+# Example: ENCRYPT=True
+#
+# MASTER_CERT Master certificate file
+# Example: MASTER_CERT='/etc/lava/certs/master.key'
+#
+# SLAVE_CERT Slave certificate file
+# Example: SLAVE_CERT='/etc/lava/certs/slave.key_secret'
+#
+# Usages:
+# /entrypoint.sh : starts the lava-slave service with environment variable
+# values in place.
+
+if [[ -z "${HOSTNAME}" ]];
+then
+ HOSTNAME=`hostname`
+fi
+
+if [[ -z "${MASTER}" ]];
+then
+ MASTER='tcp://localhost:5556'
+fi
+
+if [[ -z "${SOCKET_ADDR}" ]];
+then
+ SOCKET_ADDR='tcp://localhost:5555'
+fi
+
+if [[ -z "${LOG_FILE}" ]];
+then
+ LOG_FILE=''
+else
+ LOG_FILE='--log-file '${LOG_FILE}
+fi
+
+if [ -z "${LOG_LEVEL}" ]
+then
+ LOG_LEVEL='INFO'
+fi
+
+if [ -z "${TIMEOUT}" ]
+then
+ TIMEOUT=5
+fi
+
+if [ -z "${ENCRYPT}" ]
+then
+ ENCRYPT=''
+else
+ ENCRYPT='--encrypt'
+fi
+
+if [ -z "${IPV6}" ]
+then
+ IPV6=''
+else
+ IPV6='--ipv6'
+fi
+
+if [ -z "${MASTER_CERT}" ]
+then
+ MASTER_CERT=''
+else
+ MASTER_CERT='--master-cert '${MASTER_CERT}
+fi
+
+if [ -z "${SLAVE_CERT}" ]
+then
+ SLAVE_CERT=''
+else
+ SLAVE_CERT='--slave-cert '${SLAVE_CERT}
+fi
+
+echo "Starting lava-slave with the following command:"
+
+echo "/usr/bin/python /usr/bin/lava-slave --hostname ${HOSTNAME} \
+--master ${MASTER} --socket-addr ${SOCKET_ADDR} ${LOG_FILE} \
+--level ${LOG_LEVEL} --timeout ${TIMEOUT} ${ENCRYPT} ${IPV6} \
+${MASTER_CERT} ${SLAVE_CERT}"
+
+/usr/bin/python /usr/bin/lava-slave --hostname ${HOSTNAME} \
+--master ${MASTER} --socket-addr ${SOCKET_ADDR} ${LOG_FILE} \
+--level ${LOG_LEVEL} --timeout ${TIMEOUT} ${ENCRYPT} ${IPV6} \
+${MASTER_CERT} ${SLAVE_CERT}
diff --git a/tcwg-base/Dockerfile.in b/tcwg-base/Dockerfile.in
index 70237be..9efe3d6 100644
--- a/tcwg-base/Dockerfile.in
+++ b/tcwg-base/Dockerfile.in
@@ -18,9 +18,6 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
done; \
echo; \
done) > /etc/apt/sources.list \
-#if ARCH_amd64
- && dpkg --add-architecture i386 \
-#endif
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
#if ARCH_i386
@@ -39,6 +36,7 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
#endif
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -54,15 +52,13 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
emacs \
fakeroot \
flex \
-#if ARCH_amd64 || ARCH_i386
- g++-multilib \
-#endif
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
#if ARCH_amd64 || ARCH_i386
libglib2.0-dev \
@@ -102,7 +98,9 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
#if DISTRO_trusty
python-virtualenv \
#endif
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -118,9 +116,6 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
virtualenv \
#endif
wget \
-#if ARCH_amd64 || ARCH_i386
- wine \
-#endif
xz-utils \
zip \
zlib1g-dev \
@@ -135,10 +130,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
#if ARCH_amd64 || ARCH_i386
RUN mkdir /tmp/docker-install-qemu.$$ \
&& cd /tmp/docker-install-qemu.$$ \
diff --git a/tcwg-base/build.sh b/tcwg-base/build.sh
index 1475184..24ede18 100755
--- a/tcwg-base/build.sh
+++ b/tcwg-base/build.sh
@@ -6,7 +6,7 @@ trap cleanup_exit INT TERM EXIT
cleanup_exit()
{
- rm -rf tcwg-buildslave
+ rm -rf postfix*.in
}
export LANG=C
@@ -17,6 +17,8 @@ name=$(basename ${PWD} | cut -f3- -d '-')
image=linaro/ci-${arch}-${name}-ubuntu:${distro}
baseimage=$(grep "^FROM" Dockerfile | head -n 1 | cut -d" " -f 2)
+cp $top/tcwg-base/postfix*.in .
+
"$top"/tcwg-base/validate-dockerfile.sh Dockerfile
docker pull $baseimage 2>/dev/null || true
docker pull $image 2>/dev/null || true
diff --git a/tcwg-base/postfix-main.cf.in b/tcwg-base/postfix-main.cf.in
new file mode 100644
index 0000000..78a9b69
--- /dev/null
+++ b/tcwg-base/postfix-main.cf.in
@@ -0,0 +1,50 @@
+# See /usr/share/postfix/main.cf.dist for a commented, more complete version
+
+
+# Debian specific: Specifying a file name will cause the first
+# line of that file to be used as the name. The Debian default
+# is /etc/mailname.
+#myorigin = /etc/mailname
+
+smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
+biff = no
+
+# appending .domain is the MUA's job.
+append_dot_mydomain = no
+
+# Uncomment the next line to generate "delayed mail" warnings
+#delay_warning_time = 4h
+
+readme_directory = no
+
+# TLS parameters
+smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
+smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
+smtpd_use_tls=yes
+smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
+smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
+
+# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
+# information on enabling SSL in the smtp client.
+
+smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
+myhostname = @@MYHOSTNAME@@
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+myorigin = /etc/mailname
+mydestination = @@MYHOSTNAME@@, localhost.localdomain, localhost
+relayhost = [@@MAILHOST@@]:@@MAILPORT@@
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+mailbox_size_limit = 0
+recipient_delimiter = +
+inet_interfaces = loopback-only
+inet_protocols = all
+
+smtp_sasl_auth_enable = yes
+smtp_sasl_security_options = noanonymous
+smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
+smtp_use_tls = yes
+smtp_tls_security_level = encrypt
+smtp_tls_note_starttls_offer = yes
+
+smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
diff --git a/tcwg-base/postfix-sasl_password.in b/tcwg-base/postfix-sasl_password.in
new file mode 100644
index 0000000..580f5cf
--- /dev/null
+++ b/tcwg-base/postfix-sasl_password.in
@@ -0,0 +1 @@
+[@@MAILHOST@@]:@@MAILPORT@@ @@MAILUSER@@:@@MAILPASSWORD@@
diff --git a/tcwg-base/tcwg-build/Dockerfile.in b/tcwg-base/tcwg-build/Dockerfile.in
index 9810a86..5d620d2 100644
--- a/tcwg-base/tcwg-build/Dockerfile.in
+++ b/tcwg-base/tcwg-build/Dockerfile.in
@@ -14,3 +14,20 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
+
+#if ARCH_amd64 || ARCH_i386
+# Install wine. On amd64 arch we need to enable i386, otherwise wine
+# won't meet dependencies (this is the case at least for trusty and xenial).
+RUN \
+#if ARCH_amd64
+ dpkg --add-architecture i386 && \
+#endif
+ apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ wine \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+#endif
diff --git a/tcwg-base/tcwg-build/tcwg-buildslave/.mailrc b/tcwg-base/tcwg-build/tcwg-buildslave/.mailrc
new file mode 100644
index 0000000..cae73d9
--- /dev/null
+++ b/tcwg-base/tcwg-build/tcwg-buildslave/.mailrc
@@ -0,0 +1 @@
+set from="LINARO TCWG <tcwg-buildslave@linaro.org>"
diff --git a/tcwg-base/tcwg-dev/Dockerfile.in b/tcwg-base/tcwg-dev/Dockerfile.in
index 370466d..ecc23f2 100644
--- a/tcwg-base/tcwg-dev/Dockerfile.in
+++ b/tcwg-base/tcwg-dev/Dockerfile.in
@@ -16,7 +16,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
#if DISTRO_trusty
# if !ARCH_arm64
diff --git a/tcwg-base/tcwg-dev/build.sh b/tcwg-base/tcwg-dev/build.sh
index 8729547..69c4d29 100755
--- a/tcwg-base/tcwg-dev/build.sh
+++ b/tcwg-base/tcwg-dev/build.sh
@@ -16,11 +16,7 @@ name=$(basename ${PWD} | cut -f3- -d '-')
image=linaro/ci-${arch}-${name}-ubuntu:${distro}
top=$(git rev-parse --show-toplevel)
-cat $top/tcwg-base/tcwg-dev/start.sh.tmpl \
- | sed -e "s#@IMAGE@#$image#g" \
- -e "s#@DISTRO@#$distro#g" > start.sh
-chmod +x start.sh
-cp $top/tcwg-base/tcwg-dev/run.sh.tmpl run.sh
+cp $top/tcwg-base/tcwg-dev/start.sh $top/tcwg-base/tcwg-dev/run.sh ./
(cd ..; ./build.sh)
"$top"/tcwg-base/validate-dockerfile.sh Dockerfile
diff --git a/tcwg-base/tcwg-dev/run.sh.tmpl b/tcwg-base/tcwg-dev/run.sh
index 53bc630..8029a32 100755
--- a/tcwg-base/tcwg-dev/run.sh.tmpl
+++ b/tcwg-base/tcwg-dev/run.sh
@@ -2,7 +2,7 @@
set -e
-if [ x"$@" = x"start.sh" ]; then
+if [ x"$1" = x"start.sh" ]; then
cat /start.sh
exit 0
fi
diff --git a/tcwg-base/tcwg-dev/start.sh b/tcwg-base/tcwg-dev/start.sh
new file mode 100755
index 0000000..e36c851
--- /dev/null
+++ b/tcwg-base/tcwg-dev/start.sh
@@ -0,0 +1,119 @@
+#!/bin/bash
+
+set -e
+
+usage ()
+{
+ cat <<EOF
+$0 [OPTIONS] -- IMAGE
+
+Options:
+ --getent DATA
+ User data from "getent passwd"
+
+ --group NAME
+ Primary group name
+
+ --name CONTAINER_NAME
+ Name of the container
+
+ --pubkey KEY
+ SSH public key to install inside container
+
+ --user USER
+ Username to create inside the container
+
+ --verbose true/false
+ Whether to run in verbose mode
+EOF
+ exit 1
+}
+
+getent="default"
+group="default"
+name="default"
+pubkey="ldap"
+user="$USER"
+verbose=false
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ --getent) getent="$2"; shift ;;
+ --group) group="$2"; shift ;;
+ --name) name="$2"; shift ;;
+ --pubkey) pubkey="$2"; shift ;;
+ --user) user="$2"; shift ;;
+ --verbose) verbose="$2"; shift ;;
+ --) shift; break ;;
+ *) echo "ERROR: Wrong option: $1"; usage ;;
+ esac
+ shift
+done
+
+image="$1"
+
+if $verbose; then
+ set -x
+fi
+
+if groups tcwg-buildslave 2>/dev/null | grep -q docker; then
+ # If tcwg-buildslave user is present, use it to start the container
+ # to have [sudo] log record of container startups.
+ DOCKER="sudo -u tcwg-buildslave docker"
+elif [ x"$(id -u)" = x"0" ] || groups 2>/dev/null | grep -q docker; then
+ # Run docker straight up if $USER is root or in "docker" group.
+ DOCKER="docker"
+else
+ # Fallback to sudo otherwise.
+ DOCKER="sudo docker"
+fi
+
+if [ x"$name" = x"default" ]; then
+ name="$user-$(echo "$image" | tr "/:" "_")"
+fi
+
+mounts=""
+if [ -d "/home/$user" ]; then
+ # Bind-mount $HOME
+ mounts="$mounts -v /home/$user:/home/$user"
+else
+ # Create/re-use docker volume and mount it as user's home
+ mounts="$mounts -v home-$user:/home"
+fi
+
+if [ -d "/home/tcwg-buildslave" ]; then
+ # Bind-mount /home/tcwg-buildslave read-only to get access to
+ # /home/tcwg-buildslave/snapshots-ref/
+ mounts="$mounts -v /home/tcwg-buildslave:/home/tcwg-buildslave:ro"
+fi
+
+# Use at most half of all available RAM.
+memlimit=$(($(free -g | awk '/^Mem/ { print $2 }') / 2))G
+# IPC_LOCK is required for some implementations of ssh-agent (e.g., MATE's).
+# SYS_PTRACE is required for debugger work.
+caps="--cap-add=IPC_LOCK --cap-add=SYS_PTRACE"
+
+if [ x"$getent" = x"default" ]; then
+ getent=$(getent passwd $user)
+fi
+
+if [ x"$group" = x"default" ]; then
+ group=$(id -gn $user)
+fi
+
+if [ x"$pubkey" = x"ldap" ]; then
+ # Fetch ssh public key from LDAP.
+ pubkey=$(/etc/ssh/ssh_keys.py $user 2>/dev/null || sss_ssh_authorizedkeys $user 2>/dev/null)
+fi
+
+$DOCKER run --name=$name -dt -p 22 $mounts --memory=$memlimit --pids-limit=5000 $caps $image "$getent" "$group" "$pubkey"
+
+port=$($DOCKER port $name 22 | cut -d: -f 2)
+
+set +x
+echo "NOTE: the warning about kernel not supporting swap memory limit is expected"
+echo "To connect to container run \"ssh -p $port localhost\""
+echo "To stop container run \"docker stop $name\""
+echo "To restart container run \"docker start $name\""
+echo "To remove container run \"docker rm -fv $name\""
+echo "See https://collaborate.linaro.org/display/TCWG/How+to+setup+personal+dev+environment+using+docker for additional info"
diff --git a/tcwg-base/tcwg-dev/start.sh.tmpl b/tcwg-base/tcwg-dev/start.sh.tmpl
deleted file mode 100755
index 9a3b395..0000000
--- a/tcwg-base/tcwg-dev/start.sh.tmpl
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-set -e
-set -x
-
-if groups tcwg-buildslave 2>/dev/null | grep -q docker; then
- # If tcwg-buildslave user is present, use it to start the container
- # to have [sudo] log record of container startups.
- DOCKER="sudo -u tcwg-buildslave docker"
-elif groups 2>/dev/null | grep -q docker; then
- # Run docker straight up if $USER is in "docker" group.
- DOCKER="docker"
-else
- # Fallback to sudo otherwise.
- DOCKER="sudo docker"
-fi
-
-image=@IMAGE@
-name=$USER-@DISTRO@
-# Bind-mount $HOME and /home/tcwg-buildslave (to get access to
-# /home/tcwg-buildslave/snapshots-ref/)
-mounts="-v $HOME:$HOME -v /home/tcwg-buildslave:/home/tcwg-buildslave:ro"
-# Use at most half of all available RAM.
-memlimit=$(($(free -g | awk '/^Mem/ { print $2 }') / 2))G
-# IPC_LOCK is required for some implementations of ssh-agent (e.g., MATE's).
-# SYS_PTRACE is required for debugger work.
-caps="--cap-add=IPC_LOCK --cap-add=SYS_PTRACE"
-# Fetch ssh public key from LDAP.
-pubkey="$(/etc/ssh/ssh_keys.py $USER 2>/dev/null || sss_ssh_authorizedkeys $USER 2>/dev/null)"
-
-$DOCKER pull $image
-$DOCKER run --name=$name -dt -p 22 $mounts --memory=$memlimit --pids-limit=5000 $caps $image "$(getent passwd $USER)" "$(id -gn)" "$pubkey"
-
-port=$($DOCKER port $name 22 | cut -d: -f 2)
-
-set +x
-echo "NOTE: the warning about kernel not supporting swap memory limit is expected"
-echo "To connect to container run \"ssh -p $port localhost\""
-echo "To stop container run \"docker stop $name\""
-echo "To restart container run \"docker start $name\""
-echo "To remove container run \"docker rm -fv $name\""
-echo "See https://collaborate.linaro.org/display/TCWG/How+to+setup+personal+dev+environment+using+docker for additional info"
diff --git a/tcwg-base/tcwg-llvmbot/Dockerfile.in b/tcwg-base/tcwg-llvmbot/Dockerfile.in
index 265892f..1d0d65d 100644
--- a/tcwg-base/tcwg-llvmbot/Dockerfile.in
+++ b/tcwg-base/tcwg-llvmbot/Dockerfile.in
@@ -21,7 +21,27 @@ RUN cd ./llvm-config-buildslave/ \
/var/tmp/* \
&& sudo -i -u buildslave mkdir /home/buildslave/buildslave
-VOLUME /home/buildslave/buildslave
+# Add ninja with support for memory-threshold job limitation.
+RUN git clone -b master https://github.com/maxim-kuvyrkov/ninja.git \
+ && cd ninja \
+ && ./configure.py --bootstrap && ./ninja all && ./ninja_test \
+ && mv ninja /usr/local/bin/ninja.bin \
+ && cd .. \
+ && rm -rf ninja
+
+# Add current clang for libcxx bots.
+RUN \
+#if ARCH_arm64
+ clang_ver=clang+llvm-5.0.1-aarch64-linux-gnu \
+#else /* ARCH_armhf */
+ clang_ver=clang+llvm-5.0.1-armv7a-linux-gnueabihf \
+#endif
+ && cd /usr/local \
+ && wget --progress=dot:giga http://releases.llvm.org/5.0.1/$clang_ver.tar.xz \
+ && tar xf $clang_ver.tar.xz \
+ && rm $clang_ver.tar.xz
+
+VOLUME /home
COPY run.sh .
COPY start.sh .
diff --git a/tcwg-base/tcwg-llvmbot/build.sh b/tcwg-base/tcwg-llvmbot/build.sh
index bbc64dd..9181795 100755
--- a/tcwg-base/tcwg-llvmbot/build.sh
+++ b/tcwg-base/tcwg-llvmbot/build.sh
@@ -16,11 +16,7 @@ name=$(basename ${PWD} | cut -f3- -d '-')
image=linaro/ci-${arch}-${name}-ubuntu:${distro}
top=$(git rev-parse --show-toplevel)
-cat $top/tcwg-base/$name/start.sh.tmpl \
- | sed -e "s#@IMAGE@#$image#g" \
- -e "s#@DISTRO@#$distro#g" > start.sh
-chmod +x start.sh
-cp $top/tcwg-base/$name/run.sh.tmpl run.sh
+cp $top/tcwg-base/$name/start.sh $top/tcwg-base/$name/run.sh ./
# llvm-config repo is hosted on [secure] dev-private-git.l.o, so we
# can't clone it in here or in "RUN" command. The docker image
diff --git a/tcwg-base/tcwg-llvmbot/gerrit-branches b/tcwg-base/tcwg-llvmbot/gerrit-branches
index 6499512..fb49cdf 100644
--- a/tcwg-base/tcwg-llvmbot/gerrit-branches
+++ b/tcwg-base/tcwg-llvmbot/gerrit-branches
@@ -1,4 +1,3 @@
master
tcwg-staging
tcwg-llvmprod
-
diff --git a/tcwg-base/tcwg-llvmbot/run.sh b/tcwg-base/tcwg-llvmbot/run.sh
new file mode 100755
index 0000000..e22b1fd
--- /dev/null
+++ b/tcwg-base/tcwg-llvmbot/run.sh
@@ -0,0 +1,158 @@
+#!/bin/bash
+
+set -e
+
+bare_metal_bot_p ()
+{
+ case "$1" in
+ "linaro-tk1-"*) return 0 ;;
+ "linaro-apm-02"|"linaro-apm-05") return 1 ;;
+ "linaro-apm-"*) return 0 ;;
+ *) return 1 ;;
+ esac
+}
+
+if [ x"$1" = x"start.sh" ]; then
+ cat /start.sh
+ exit 0
+fi
+
+if ! [ -f ~buildslave/buildslave/buildbot.tac ]; then
+ # Connect to silent master.
+ # Reconnecting to main master should be done by hand.
+ sudo -i -u buildslave buildslave create-slave --umask=022 ~buildslave/buildslave "$@"
+fi
+
+case "$(uname -m)" in
+ aarch64)
+ clang_ver=clang+llvm-5.0.1-aarch64-linux-gnu
+ ;;
+ *)
+ clang_ver=clang+llvm-5.0.1-armv7a-linux-gnueabihf
+ ;;
+esac
+
+if bare_metal_bot_p "$2"; then
+ # Download and install clang+llvm into /usr/local for bare-metal
+ # bots.
+ (
+ cd /usr/local
+ wget -c --progress=dot:giga http://releases.llvm.org/5.0.1/$clang_ver.tar.xz
+ tar xf $clang_ver.tar.xz
+ )
+fi
+
+case "$2" in
+ *-libcxx*|linaro-tk1-01|linaro-apm-03)
+ # Libcxx bots need to be compiled with *recent* clang.
+ cc=/usr/local/$clang_ver/bin/clang
+ cxx=/usr/local/$clang_ver/bin/clang++
+ ;;
+ *-lld|linaro-apm-04)
+ # LLD bots need to be compiled with clang.
+ # ??? Adding testStage1=False to LLD bot might enable it to not depend on clang.
+ cc=/usr/bin/clang
+ cxx=/usr/bin/clang++
+ ;;
+ *-arm-quick|linaro-tk1-06)
+ cc=/usr/bin/clang
+ cxx=/usr/bin/clang++
+ ;;
+ *-arm-full-selfhost|linaro-tk1-05)
+ # ??? *-arm-full-selfhost bot doesn't look like it depends on clang.
+ cc=/usr/bin/clang
+ cxx=/usr/bin/clang++
+ ;;
+ *-arm-full|linaro-tk1-08)
+ # ??? For now we preserve host compiler configuration from non-docker bots.
+ cc=/usr/bin/clang
+ cxx=/usr/bin/clang++
+ ;;
+ *-arm-global-isel|linaro-tk1-09)
+ # ??? For now we preserve host compiler configuration from non-docker bots.
+ cc=/usr/bin/clang
+ cxx=/usr/bin/clang++
+ ;;
+ *)
+ cc=gcc
+ cxx=g++
+ ;;
+esac
+
+# With default PATH /usr/local/bin/cc and /usr/local/bin/c++ are detected as
+# system compilers. No danger in ccaching results of system compiler since
+# we always start with a clean cache in a new container.
+cat > /usr/local/bin/cc <<EOF
+#!/bin/sh
+exec ccache $cc "\$@"
+EOF
+chmod +x /usr/local/bin/cc
+cat > /usr/local/bin/c++ <<EOF
+#!/bin/sh
+exec ccache $cxx "\$@"
+EOF
+chmod +x /usr/local/bin/c++
+
+case "$2" in
+ *-lld|linaro-apm-04)
+ # LLD buildbot needs to find ld.lld for stage1 build.
+ ln -f -s /usr/bin/ld.bfd /usr/local/bin/ld.lld
+ ;;
+ *)
+ rm -f /usr/local/bin/ld.lld
+ ;;
+esac
+
+cat <<EOF | sudo -i -u buildslave tee ~buildslave/buildslave/info/admin
+Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
+EOF
+
+n_cores=$(nproc --all)
+case "$2" in
+ linaro-apm-*) hw="APM Mustang ${n_cores}-core X-Gene" ;;
+ linaro-armv8-*) hw="${n_cores}-core ARMv8 provided by Packet.net (Type 2A2)" ;;
+ linaro-tk1-*) hw="NVIDIA TK1 ${n_cores}-core Cortex-A15" ;;
+esac
+
+if [ -f /sys/fs/cgroup/memory/memory.limit_in_bytes ]; then
+ mem_limit=$((($(cat /sys/fs/cgroup/memory/memory.limit_in_bytes) + 512*1024*1024) / (1024*1024*1024)))
+else
+ mem_limit=$((($(cat /proc/meminfo | grep MemTotal | sed -e "s/[^0-9]\+\([0-9]\+\)[^0-9]\+/\1/") + 512*1024) / (1024*1024)))
+fi
+cat <<EOF | sudo -i -u buildslave tee ~buildslave/buildslave/info/host
+$hw; RAM ${mem_limit}GB
+
+OS: $(lsb_release -ds)
+Kernel: $(uname -rv)
+Compiler: $(cc --version | head -n 1)
+Linker: $(ld --version | head -n 1)
+C Library: $(ldd --version | head -n 1)
+EOF
+
+if bare_metal_bot_p "$2"; then
+ # TK1s have CPU hot-plug, so ninja might detect smaller number of cores
+ # available for parallelism. Explicitly set "default" parallelism.
+ cat > /usr/local/bin/ninja <<EOF
+#!/bin/sh
+exec /usr/bin/ninja -j$n_cores "\$@"
+EOF
+else
+ # Throttle ninja on system load, system memory and container memory limit.
+ # When running with "-l 2*N_CORES -m 50 -M 50" ninja will not start new jobs
+ # if system or container memory utilization is beyond 50% or when load is
+ # above double the core count. Ninja will also stall up to 5 seconds (-D 5000)
+ # before starting a new job to avoid rapid increase of resource usage.
+ cat > /usr/local/bin/ninja <<EOF
+#!/bin/sh
+exec /usr/local/bin/ninja.bin -j$n_cores -l $((2*$n_cores)) -m 50 -M 50 -D 5000 "\$@"
+EOF
+fi
+chmod +x /usr/local/bin/ninja
+
+sudo -i -u buildslave buildslave restart ~buildslave/buildslave
+
+if bare_metal_bot_p "$2"; then
+ exit 0
+fi
+
+exec /usr/sbin/sshd -D
diff --git a/tcwg-base/tcwg-llvmbot/run.sh.tmpl b/tcwg-base/tcwg-llvmbot/run.sh.tmpl
deleted file mode 100755
index 2afc30a..0000000
--- a/tcwg-base/tcwg-llvmbot/run.sh.tmpl
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/bin/bash
-
-set -e
-
-if [ x"$@" = x"start.sh" ]; then
- cat /start.sh
- exit 0
-fi
-
-if ! [ -f ~buildslave/buildslave/buildbot.tac ]; then
- # Connect to silent master.
- # Reconnecting to main master should be done by hand.
- sudo -i -u buildslave buildslave create-slave --umask=022 ~buildslave/buildslave "$@"
-fi
-
-cat <<EOF | sudo -i -u buildslave tee ~buildslave/buildslave/info/admin
-Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
-EOF
-case "$2" in
- linaro-apm-*) hw="APM XGene 1" ;;
- linaro-tk1-*) hw="NVIDIA TK1" ;;
-esac
-cat <<EOF | sudo -i -u buildslave tee ~buildslave/buildslave/info/host
-$hw $(($(free -g | awk '/^Mem/ { print $2 }') + 1))GB
-
-OS: $(lsb_release -ds)
-Kernel: $(uname -rv)
-Compiler: $(cc --version | head -n 1)
-Linker: $(ld --version | head -n 1)
-C Library: $(ldd --version | head -n 1)
-EOF
-
-sudo -i -u buildslave buildslave start ~buildslave/buildslave
-
-exec /usr/sbin/sshd -D
diff --git a/tcwg-base/tcwg-llvmbot/start.sh.tmpl b/tcwg-base/tcwg-llvmbot/start.sh
index 968dbe8..2cf585a 100755
--- a/tcwg-base/tcwg-llvmbot/start.sh.tmpl
+++ b/tcwg-base/tcwg-llvmbot/start.sh
@@ -2,8 +2,10 @@
set -ex
-buildmaster="$1"
-slavename="$2"
+image="$1"
+buildmaster="$2"
+slavename="$3"
+password="$4"
usage ()
{
@@ -23,54 +25,58 @@ else
DOCKER="sudo docker"
fi
-image=@IMAGE@
-# Use at most 15G or 90% of all RAM.
-memlimit=$(($(free -g | awk '/^Mem/ { print $2 }') * 9 / 10))
-if [ "$memlimit" -gt "15" ]; then
- memlimit="15"
-fi
-# IPC_LOCK is required for some implementations of ssh-agent (e.g., MATE's).
-# SYS_PTRACE is required for debugger work.
-# seccomp:unconfined is required to disable ASLR for sanitizer tests.
-caps="--cap-add=IPC_LOCK --cap-add=SYS_PTRACE --security-opt seccomp:unconfined"
-
case "$buildmaster" in
- "lab.llvm.org:9990")
+ "normal")
mastername="normal"
+ masterurl="lab.llvm.org:9990"
;;
- "lab.llvm.org:9994")
+ "silent")
mastername="silent"
+ masterurl="lab.llvm.org:9994"
;;
*)
- usage "ERROR: Wrong buildmaster URL: $buildmaster"
+ mastername="custom"
+ masterurl="$buildmaster"
esac
# CXX, LLD and LNT bots need additional configuration, and
# are not supported yet.
case "$mastername:$slavename:$(hostname):$image" in
+ # No restrictions for custom masters:
+ custom:*:*:*) ;;
# Almost no restrictions for the silent master:
+ silent:*:linaro-armv8-*:*) ;;
silent:*:r*-a*:*) ;;
- silent:linaro-tk1-*:llvm-tk1-*:*-armhf-*) ;;
# Restrictions for the normal master:
- normal:linaro-apm-01:r1-a22:*-arm64-*) ;;
- normal:linaro-apm-02:r1-a21:*-arm64-*) ;;
- #normal:linaro-apm-03:r1-a20:*-arm64-*) ;;
- #normal:linaro-apm-04:r2-a26:*-arm64-*) ;;
- normal:linaro-apm-05:r2-a27:*-arm64-*) ;;
- normal:linaro-apm-06:r2-a28:*-arm64-*) ;;
- #normal:linaro-tk1-01:llvm-tk1-01:*-armhf-*) ;;
- #normal:linaro-tk1-02:llvm-tk1-02:*-armhf-*) ;;
- #normal:linaro-tk1-03:llvm-tk1-03:*-armhf-*) ;;
- normal:linaro-tk1-04:llvm-tk1-04:*-armhf-*) ;;
- normal:linaro-tk1-05:llvm-tk1-05:*-armhf-*) ;;
- normal:linaro-tk1-06:llvm-tk1-06:*-armhf-*) ;;
- normal:linaro-tk1-07:llvm-tk1-07:*-armhf-*) ;;
- normal:linaro-tk1-08:llvm-tk1-08:*-armhf-*) ;;
- normal:linaro-tk1-09:llvm-tk1-09:*-armhf-*) ;;
+ normal:*:linaro-armv8-*:*) ;;
+ normal:*:r*-a*:*-arm64-*) ;;
*)
usage "ERROR: Wrong mastername:slavename:hostname:image combination: $mastername:$slavename:$(hostname):$image"
;;
esac
-$DOCKER pull $image
-$DOCKER run --name=$mastername-$slavename --hostname=$mastername-$slavename --restart=unless-stopped -dt -p 22 --memory=${memlimit}G --pids-limit=5000 $caps $image "$@"
+case "$slavename" in
+ linaro-armv8-*)
+ # Use 64G out of 128G.
+ memlimit="64"
+ ;;
+ *)
+ # Use at most 30G or 90% of all RAM.
+ memlimit=$(($(free -g | awk '/^Mem/ { print $2 }') * 9 / 10))
+ if [ "$memlimit" -gt "30" ]; then
+ memlimit="30"
+ fi
+ ;;
+esac
+
+case "$slavename" in
+ *-lld) pids_limit="15000" ;;
+ *) pids_limit="5000" ;;
+esac
+
+# IPC_LOCK is required for some implementations of ssh-agent (e.g., MATE's).
+# SYS_PTRACE is required for debugger work.
+# seccomp:unconfined is required to disable ASLR for sanitizer tests.
+caps="--cap-add=IPC_LOCK --cap-add=SYS_PTRACE --security-opt seccomp:unconfined"
+
+$DOCKER run --name=$mastername-$slavename --hostname=$mastername-$slavename --restart=unless-stopped -dt -p 22 --memory=${memlimit}G --pids-limit=$pids_limit $caps "$image" "$masterurl" "$slavename" "$password"
diff --git a/trusty-amd64-tcwg-base/Dockerfile b/trusty-amd64-tcwg-base/Dockerfile
index d432a9b..8f491ed 100644
--- a/trusty-amd64-tcwg-base/Dockerfile
+++ b/trusty-amd64-tcwg-base/Dockerfile
@@ -9,7 +9,6 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
done; \
echo; \
done) > /etc/apt/sources.list \
- && dpkg --add-architecture i386 \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts \
@@ -22,6 +21,7 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
bison \
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -37,13 +37,13 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
emacs \
fakeroot \
flex \
- g++-multilib \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
libglib2.0-dev \
liblzma-dev \
@@ -67,7 +67,9 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
pkg-config \
python-dev \
python-virtualenv \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -80,7 +82,6 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
valgrind \
vim \
wget \
- wine \
xz-utils \
zip \
zlib1g-dev \
@@ -95,10 +96,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
RUN mkdir /tmp/docker-install-qemu.$$ \
&& cd /tmp/docker-install-qemu.$$ \
&& qemu_ver=2.8.0 && wget --progress=dot:giga http://download.qemu-project.org/qemu-${qemu_ver}.tar.xz \
@@ -117,4 +124,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
-# checksum: c714ff9be105ededda64dd83de2238bb
+# checksum: af7e4ca6d6d6f9e6cb0d1eb355552d2b
diff --git a/trusty-amd64-tcwg-base/trusty-amd64-tcwg-build/Dockerfile b/trusty-amd64-tcwg-base/trusty-amd64-tcwg-build/Dockerfile
index 38ea264..3963ce4 100644
--- a/trusty-amd64-tcwg-base/trusty-amd64-tcwg-build/Dockerfile
+++ b/trusty-amd64-tcwg-base/trusty-amd64-tcwg-build/Dockerfile
@@ -15,4 +15,17 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 9ce6e312f075378dc2980f5a8431ac7a
+
+# Install wine. On amd64 arch we need to enable i386, otherwise wine
+# won't meet dependencies (this is the case at least for trusty and xenial).
+RUN \
+ dpkg --add-architecture i386 && \
+ apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ wine \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+# checksum: e043d076e8a7fca8b61124ede2bd2461
diff --git a/trusty-amd64-tcwg-base/trusty-amd64-tcwg-dev/Dockerfile b/trusty-amd64-tcwg-base/trusty-amd64-tcwg-dev/Dockerfile
index df02224..2294e57 100644
--- a/trusty-amd64-tcwg-base/trusty-amd64-tcwg-dev/Dockerfile
+++ b/trusty-amd64-tcwg-base/trusty-amd64-tcwg-dev/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
gnat \
less \
@@ -47,4 +46,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["/run.sh"]
CMD ["start.sh"]
-# checksum: b016433b7daa3bdc5839ef8798775167
+# checksum: 6ebcfe89f577b9b89996da9aace4394f
diff --git a/trusty-arm64-tcwg-base/Dockerfile b/trusty-arm64-tcwg-base/Dockerfile
index 93630c0..13caa85 100644
--- a/trusty-arm64-tcwg-base/Dockerfile
+++ b/trusty-arm64-tcwg-base/Dockerfile
@@ -19,6 +19,7 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
automake \
bc \
bison \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -37,9 +38,10 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
liblzma-dev \
libncurses5-dev \
@@ -58,7 +60,9 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
openssh-server \
python-dev \
python-virtualenv \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -85,10 +89,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
# We use ssh multiplexing, which creates sockets in /tmp. Overlayfs,
# which docker is using, can't host sockets, so we use a scratch mount
# for /tmp. This requires that we add --rm option to "docker run"
@@ -98,4 +108,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
-# checksum: 625db6cc3f45805ccaa4ba1c9d153799
+# checksum: e5c75d721eaaad378dfe783d822bc457
diff --git a/trusty-arm64-tcwg-base/trusty-arm64-tcwg-build/Dockerfile b/trusty-arm64-tcwg-base/trusty-arm64-tcwg-build/Dockerfile
index 0f672b1..b75535f 100644
--- a/trusty-arm64-tcwg-base/trusty-arm64-tcwg-build/Dockerfile
+++ b/trusty-arm64-tcwg-base/trusty-arm64-tcwg-build/Dockerfile
@@ -15,4 +15,5 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 5de8c4d4fdc7b8b350210c347928cfee
+
+# checksum: 599fae0a5672c9f658bf2b0af0ab31e3
diff --git a/trusty-arm64-tcwg-base/trusty-arm64-tcwg-dev/Dockerfile b/trusty-arm64-tcwg-base/trusty-arm64-tcwg-dev/Dockerfile
index b9ecff8..1f2e2d0 100644
--- a/trusty-arm64-tcwg-base/trusty-arm64-tcwg-dev/Dockerfile
+++ b/trusty-arm64-tcwg-base/trusty-arm64-tcwg-dev/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
less \
locales \
@@ -46,4 +45,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["/run.sh"]
CMD ["start.sh"]
-# checksum: 0830f0dbf3e82463877d6613c03af70e
+# checksum: df2f7edfa6eb02b085cac309faf50ad3
diff --git a/trusty-armhf-tcwg-base/Dockerfile b/trusty-armhf-tcwg-base/Dockerfile
index 35a9704..3c0712a 100644
--- a/trusty-armhf-tcwg-base/Dockerfile
+++ b/trusty-armhf-tcwg-base/Dockerfile
@@ -19,6 +19,7 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
automake \
bc \
bison \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -37,9 +38,10 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
liblzma-dev \
libncurses5-dev \
@@ -58,7 +60,9 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
openssh-server \
python-dev \
python-virtualenv \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -85,10 +89,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
# We use ssh multiplexing, which creates sockets in /tmp. Overlayfs,
# which docker is using, can't host sockets, so we use a scratch mount
# for /tmp. This requires that we add --rm option to "docker run"
@@ -98,4 +108,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# checksum: d0a52cc9dd2e1108a346050263cb0591
+# checksum: 5dbfe6c719dd6703289bbd58fa3aad86
diff --git a/trusty-armhf-tcwg-base/trusty-armhf-tcwg-build/Dockerfile b/trusty-armhf-tcwg-base/trusty-armhf-tcwg-build/Dockerfile
index 1c9e64d..91557ee 100644
--- a/trusty-armhf-tcwg-base/trusty-armhf-tcwg-build/Dockerfile
+++ b/trusty-armhf-tcwg-base/trusty-armhf-tcwg-build/Dockerfile
@@ -15,4 +15,5 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: e601ad462d4a4a23f9e950d78de0aa5d
+
+# checksum: 16c7b81789c72e4ca4703f9e020406a8
diff --git a/trusty-armhf-tcwg-base/trusty-armhf-tcwg-dev/Dockerfile b/trusty-armhf-tcwg-base/trusty-armhf-tcwg-dev/Dockerfile
index 91cc09e..6f5af07 100644
--- a/trusty-armhf-tcwg-base/trusty-armhf-tcwg-dev/Dockerfile
+++ b/trusty-armhf-tcwg-base/trusty-armhf-tcwg-dev/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
gnat \
less \
@@ -47,4 +46,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["linux32", "/run.sh"]
CMD ["start.sh"]
-# checksum: 2c41757bc0074ae69d9520efa2e12ab9
+# checksum: 3ebcf08c631348a6ee99ee7b0a574c23
diff --git a/trusty-i386-tcwg-base/Dockerfile b/trusty-i386-tcwg-base/Dockerfile
index f74f2ca..772b886 100644
--- a/trusty-i386-tcwg-base/Dockerfile
+++ b/trusty-i386-tcwg-base/Dockerfile
@@ -23,6 +23,7 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
bison \
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -38,13 +39,13 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
emacs \
fakeroot \
flex \
- g++-multilib \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
libglib2.0-dev \
liblzma-dev \
@@ -67,7 +68,9 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
pkg-config \
python-dev \
python-virtualenv \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -80,7 +83,6 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
valgrind \
vim \
wget \
- wine \
xz-utils \
zip \
zlib1g-dev \
@@ -95,10 +97,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
RUN mkdir /tmp/docker-install-qemu.$$ \
&& cd /tmp/docker-install-qemu.$$ \
&& qemu_ver=2.8.0 && wget --progress=dot:giga http://download.qemu-project.org/qemu-${qemu_ver}.tar.xz \
@@ -117,4 +125,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# checksum: e91ba0275be782d3b02618ef81a100b7
+# checksum: 9cc4a9abc883fa7442bd3e05926e6c5a
diff --git a/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile b/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile
index dd271c4..74c8557 100644
--- a/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile
+++ b/trusty-i386-tcwg-base/trusty-i386-tcwg-build/Dockerfile
@@ -15,4 +15,16 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: d1a93f00cce488976b44c87865c32888
+
+# Install wine. On amd64 arch we need to enable i386, otherwise wine
+# won't meet dependencies (this is the case at least for trusty and xenial).
+RUN \
+ apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ wine \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+# checksum: 50b70f6f0b7cf04d865d6a472c00f215
diff --git a/xenial-amd64-tcwg-base/Dockerfile b/xenial-amd64-tcwg-base/Dockerfile
index 13395ee..689ce9f 100644
--- a/xenial-amd64-tcwg-base/Dockerfile
+++ b/xenial-amd64-tcwg-base/Dockerfile
@@ -9,7 +9,6 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
done; \
echo; \
done) > /etc/apt/sources.list \
- && dpkg --add-architecture i386 \
&& apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts \
@@ -22,6 +21,7 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
bison \
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -37,13 +37,13 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
emacs \
fakeroot \
flex \
- g++-multilib \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
libglib2.0-dev \
liblzma-dev \
@@ -65,7 +65,9 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
openssh-server \
pkg-config \
python-dev \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -79,7 +81,6 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
vim \
virtualenv \
wget \
- wine \
xz-utils \
zip \
zlib1g-dev \
@@ -94,10 +95,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
RUN mkdir /tmp/docker-install-qemu.$$ \
&& cd /tmp/docker-install-qemu.$$ \
&& qemu_ver=2.8.0 && wget --progress=dot:giga http://download.qemu-project.org/qemu-${qemu_ver}.tar.xz \
@@ -116,4 +123,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
-# checksum: a6af61eda71da453c370a3407c5cdd50
+# checksum: d381fae7ceb3f0bd3c0b2db9b11d68df
diff --git a/xenial-amd64-tcwg-base/xenial-amd64-tcwg-build/Dockerfile b/xenial-amd64-tcwg-base/xenial-amd64-tcwg-build/Dockerfile
index 8106b7b..23b8fb7 100644
--- a/xenial-amd64-tcwg-base/xenial-amd64-tcwg-build/Dockerfile
+++ b/xenial-amd64-tcwg-base/xenial-amd64-tcwg-build/Dockerfile
@@ -15,4 +15,17 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 710acbfdcccff739b76435ef75be994e
+
+# Install wine. On amd64 arch we need to enable i386, otherwise wine
+# won't meet dependencies (this is the case at least for trusty and xenial).
+RUN \
+ dpkg --add-architecture i386 && \
+ apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ wine \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+# checksum: 0f60af30bf7b204b2997d062f2291e04
diff --git a/xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev/Dockerfile b/xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev/Dockerfile
index c9f3cbc..618500a 100644
--- a/xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev/Dockerfile
+++ b/xenial-amd64-tcwg-base/xenial-amd64-tcwg-dev/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
gnat-5 \
less \
@@ -47,4 +46,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["/run.sh"]
CMD ["start.sh"]
-# checksum: 3246f36e9ff5a59e3cbd381af631a33c
+# checksum: dcc5804aedae03114b28d305dcbc2904
diff --git a/xenial-amd64/Dockerfile b/xenial-amd64/Dockerfile
index ecb5843..84acbc3 100644
--- a/xenial-amd64/Dockerfile
+++ b/xenial-amd64/Dockerfile
@@ -55,6 +55,7 @@ RUN dpkg --add-architecture i386 \
python-mako \
python-networkx \
python-requests \
+ pxz \
qemu-user-static \
rsync \
scons \
diff --git a/xenial-arm64-tcwg-base/Dockerfile b/xenial-arm64-tcwg-base/Dockerfile
index e3f0916..ae57aac 100644
--- a/xenial-arm64-tcwg-base/Dockerfile
+++ b/xenial-arm64-tcwg-base/Dockerfile
@@ -19,6 +19,7 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
automake \
bc \
bison \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -37,9 +38,10 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
liblzma-dev \
libncurses5-dev \
@@ -58,7 +60,9 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
openjdk-8-jdk \
openssh-server \
python-dev \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -86,10 +90,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
# We use ssh multiplexing, which creates sockets in /tmp. Overlayfs,
# which docker is using, can't host sockets, so we use a scratch mount
# for /tmp. This requires that we add --rm option to "docker run"
@@ -99,4 +109,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
-# checksum: 40397c18fc66ea4780a088b64ff6bb9f
+# checksum: 664a02e76943616cb7d23c836accbae2
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile
index e6e943c..05baa4f 100644
--- a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-build/Dockerfile
@@ -15,4 +15,5 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 32a27b3b729064776a076ccd5199b8e2
+
+# checksum: 50d4c4360a7ee4779da324ce515f04de
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile
index 1e4231a..4534b5c 100644
--- a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-dev/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
gnat-5 \
less \
@@ -47,4 +46,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["/run.sh"]
CMD ["start.sh"]
-# checksum: b696da1932a5d731c66720c3fb02bfcd
+# checksum: 0e9607cbb3dd157d553ffebd26d6a411
diff --git a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-llvmbot/Dockerfile b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-llvmbot/Dockerfile
index 708e0c5..a532773 100644
--- a/xenial-arm64-tcwg-base/xenial-arm64-tcwg-llvmbot/Dockerfile
+++ b/xenial-arm64-tcwg-base/xenial-arm64-tcwg-llvmbot/Dockerfile
@@ -22,11 +22,27 @@ RUN cd ./llvm-config-buildslave/ \
/var/tmp/* \
&& sudo -i -u buildslave mkdir /home/buildslave/buildslave
-VOLUME /home/buildslave/buildslave
+# Add ninja with support for memory-threshold job limitation.
+RUN git clone -b master https://github.com/maxim-kuvyrkov/ninja.git \
+ && cd ninja \
+ && ./configure.py --bootstrap && ./ninja all && ./ninja_test \
+ && mv ninja /usr/local/bin/ninja.bin \
+ && cd .. \
+ && rm -rf ninja
+
+# Add current clang for libcxx bots.
+RUN \
+ clang_ver=clang+llvm-5.0.1-aarch64-linux-gnu \
+ && cd /usr/local \
+ && wget --progress=dot:giga http://releases.llvm.org/5.0.1/$clang_ver.tar.xz \
+ && tar xf $clang_ver.tar.xz \
+ && rm $clang_ver.tar.xz
+
+VOLUME /home
COPY run.sh .
COPY start.sh .
ENTRYPOINT ["/run.sh"]
CMD ["start.sh"]
-# checksum: 35f5912062e53723d726e21c5fad4ba8
+# checksum: e518582a2a434e66d9c9388c0bd2fa91
diff --git a/xenial-armhf-tcwg-base/Dockerfile b/xenial-armhf-tcwg-base/Dockerfile
index c572d94..38ebf84 100644
--- a/xenial-armhf-tcwg-base/Dockerfile
+++ b/xenial-armhf-tcwg-base/Dockerfile
@@ -19,6 +19,7 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
automake \
bc \
bison \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -37,9 +38,10 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
liblzma-dev \
libncurses5-dev \
@@ -58,7 +60,9 @@ RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
openjdk-8-jdk \
openssh-server \
python-dev \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -86,10 +90,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
# We use ssh multiplexing, which creates sockets in /tmp. Overlayfs,
# which docker is using, can't host sockets, so we use a scratch mount
# for /tmp. This requires that we add --rm option to "docker run"
@@ -99,4 +109,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# checksum: d283098edd802f108f8c5d4dd0f007bf
+# checksum: 32595bbead434c67c37058718d33e771
diff --git a/xenial-armhf-tcwg-base/xenial-armhf-tcwg-build/Dockerfile b/xenial-armhf-tcwg-base/xenial-armhf-tcwg-build/Dockerfile
index 958c936..b53f1ad 100644
--- a/xenial-armhf-tcwg-base/xenial-armhf-tcwg-build/Dockerfile
+++ b/xenial-armhf-tcwg-base/xenial-armhf-tcwg-build/Dockerfile
@@ -15,4 +15,5 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 484fd5849721dbc7371264157f143624
+
+# checksum: ee083c05a3f3b2c07c38fb1dd87df413
diff --git a/xenial-armhf-tcwg-base/xenial-armhf-tcwg-dev/Dockerfile b/xenial-armhf-tcwg-base/xenial-armhf-tcwg-dev/Dockerfile
index fb67fcb..1bbdba7 100644
--- a/xenial-armhf-tcwg-base/xenial-armhf-tcwg-dev/Dockerfile
+++ b/xenial-armhf-tcwg-base/xenial-armhf-tcwg-dev/Dockerfile
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
gnat-5 \
less \
@@ -47,4 +46,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["linux32", "/run.sh"]
CMD ["start.sh"]
-# checksum: 2b54e74895af47e79944eecf9065792d
+# checksum: ece1982cfb0a9675f6cb4af314a31779
diff --git a/xenial-armhf-tcwg-base/xenial-armhf-tcwg-llvmbot/Dockerfile b/xenial-armhf-tcwg-base/xenial-armhf-tcwg-llvmbot/Dockerfile
index 36773b1..00ed72e 100644
--- a/xenial-armhf-tcwg-base/xenial-armhf-tcwg-llvmbot/Dockerfile
+++ b/xenial-armhf-tcwg-base/xenial-armhf-tcwg-llvmbot/Dockerfile
@@ -22,11 +22,27 @@ RUN cd ./llvm-config-buildslave/ \
/var/tmp/* \
&& sudo -i -u buildslave mkdir /home/buildslave/buildslave
-VOLUME /home/buildslave/buildslave
+# Add ninja with support for memory-threshold job limitation.
+RUN git clone -b master https://github.com/maxim-kuvyrkov/ninja.git \
+ && cd ninja \
+ && ./configure.py --bootstrap && ./ninja all && ./ninja_test \
+ && mv ninja /usr/local/bin/ninja.bin \
+ && cd .. \
+ && rm -rf ninja
+
+# Add current clang for libcxx bots.
+RUN \
+ clang_ver=clang+llvm-5.0.1-armv7a-linux-gnueabihf \
+ && cd /usr/local \
+ && wget --progress=dot:giga http://releases.llvm.org/5.0.1/$clang_ver.tar.xz \
+ && tar xf $clang_ver.tar.xz \
+ && rm $clang_ver.tar.xz
+
+VOLUME /home
COPY run.sh .
COPY start.sh .
ENTRYPOINT ["linux32", "/run.sh"]
CMD ["start.sh"]
-# checksum: d99498f2fd3cc3b07ea0afc9fb073df2
+# checksum: 478e345cb93c7e7a70535a26606fb9ed
diff --git a/xenial-i386-tcwg-base/Dockerfile b/xenial-i386-tcwg-base/Dockerfile
index 379d444..4bb386b 100644
--- a/xenial-i386-tcwg-base/Dockerfile
+++ b/xenial-i386-tcwg-base/Dockerfile
@@ -23,6 +23,7 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
bison \
binutils-aarch64-linux-gnu \
binutils-arm-linux-gnueabihf \
+ bsd-mailx \
build-essential \
byacc \
ccache \
@@ -38,13 +39,13 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
emacs \
fakeroot \
flex \
- g++-multilib \
gawk \
gdb \
gdbserver \
- qemu-system-arm \
git \
+ git-review \
groff \
+ less \
libexpat1-dev \
libglib2.0-dev \
liblzma-dev \
@@ -66,7 +67,9 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
openssh-server \
pkg-config \
python-dev \
+ postfix \
pxz \
+ qemu-system-arm \
qemu-user \
rsync \
subversion \
@@ -80,7 +83,6 @@ RUN (url="http://archive.ubuntu.com/ubuntu/"; \
vim \
virtualenv \
wget \
- wine \
xz-utils \
zip \
zlib1g-dev \
@@ -95,10 +97,16 @@ RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr
&& mkdir -p /var/run/sshd \
&& sed -i \
-e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
+ -e "/.*MaxSessions.*/d" /etc/ssh/sshd_config \
&& echo "MaxStartups 256" >> /etc/ssh/sshd_config \
&& echo "MaxSessions 256" >> /etc/ssh/sshd_config
+COPY postfix-main.cf.in /etc/postfix/main.cf
+COPY postfix-sasl_password.in /etc/postfix/sasl_password
+
+RUN chown root:root /etc/postfix/sasl_password \
+ && chmod 600 /etc/postfix/sasl_password
+
RUN mkdir /tmp/docker-install-qemu.$$ \
&& cd /tmp/docker-install-qemu.$$ \
&& qemu_ver=2.8.0 && wget --progress=dot:giga http://download.qemu-project.org/qemu-${qemu_ver}.tar.xz \
@@ -117,4 +125,4 @@ VOLUME /tmp
EXPOSE 22
CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# checksum: 43a72d3b8206755710aead004d63323b
+# checksum: 1968f52549a5f3844adbd1d98a8ad7da
diff --git a/xenial-i386-tcwg-base/xenial-i386-tcwg-build/Dockerfile b/xenial-i386-tcwg-base/xenial-i386-tcwg-build/Dockerfile
index e2354ab..0d926f9 100644
--- a/xenial-i386-tcwg-base/xenial-i386-tcwg-build/Dockerfile
+++ b/xenial-i386-tcwg-base/xenial-i386-tcwg-build/Dockerfile
@@ -15,4 +15,16 @@ RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
&& chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
&& chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
&& chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: d3ad0282af3e17dd2bc7562dcf7c3bd9
+
+# Install wine. On amd64 arch we need to enable i386, otherwise wine
+# won't meet dependencies (this is the case at least for trusty and xenial).
+RUN \
+ apt-get update \
+ && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ wine \
+ && apt-get clean \
+ && rm -rf \
+ /var/lib/apt/lists/* \
+ /tmp/* \
+ /var/tmp/*
+# checksum: dca3033a9d14f6f55c1ec182817af115
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/Dockerfile b/xenial-i386-tcwg-base/xenial-i386-tcwg-dev/Dockerfile
index 89e9f1f..d060379 100644
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/Dockerfile
+++ b/xenial-i386-tcwg-base/xenial-i386-tcwg-dev/Dockerfile
@@ -1,5 +1,5 @@
# Auto generated from tcwg-base/tcwg-dev/Dockerfile.in. Do not edit.
-FROM linaro/ci-armhf-tcwg-base-ubuntu:zesty
+FROM linaro/ci-i386-tcwg-base-ubuntu:xenial
COPY run.sh .
COPY start.sh .
@@ -17,7 +17,6 @@ RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y \
apt-file \
git-gui \
- git-review \
git-svn \
gnat-5 \
less \
@@ -47,4 +46,4 @@ RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
ENTRYPOINT ["linux32", "/run.sh"]
CMD ["start.sh"]
-# checksum: 2774b63a7140bd9bce9d862788c3e172
+# checksum: d4713d03be137a74e7d172adec5fd118
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/build.sh b/xenial-i386-tcwg-base/xenial-i386-tcwg-dev/build.sh
index e8571a3..e8571a3 120000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/build.sh
+++ b/xenial-i386-tcwg-base/xenial-i386-tcwg-dev/build.sh
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/gerrit-branches b/xenial-i386-tcwg-base/xenial-i386-tcwg-dev/gerrit-branches
index cd14822..cd14822 120000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/gerrit-branches
+++ b/xenial-i386-tcwg-base/xenial-i386-tcwg-dev/gerrit-branches
diff --git a/zesty-arm64-tcwg-base/Dockerfile b/zesty-arm64-tcwg-base/Dockerfile
deleted file mode 100644
index b9304de..0000000
--- a/zesty-arm64-tcwg-base/Dockerfile
+++ /dev/null
@@ -1,102 +0,0 @@
-# Auto generated from tcwg-base/Dockerfile.in. Do not edit.
-FROM snapcraft/zesty-arm64:latest
-
-RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
- ubuntu=zesty; \
- for i in $ubuntu $ubuntu-updates $ubuntu-backports $ubuntu-security; do \
- for j in deb deb-src; do \
- echo "$j $url $i main restricted universe multiverse"; \
- done; \
- echo; \
- done) > /etc/apt/sources.list \
- && apt-get update \
- && DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- alien \
- autoconf \
- autogen \
- automake \
- bc \
- bison \
- build-essential \
- byacc \
- ccache \
- ccrypt \
- chrpath \
- clang \
- cmake \
- debhelper \
- dejagnu \
- dh-autoreconf \
- dh-translations \
- distro-info-data \
- emacs \
- fakeroot \
- flex \
- gawk \
- gdb \
- gdbserver \
- qemu-system-arm \
- git \
- groff \
- libexpat1-dev \
- liblzma-dev \
- libncurses5-dev \
- libpython2.7-dev \
- libreadline-dev \
- libssl-dev \
- libtcnative-1 \
- libtool \
- linux-tools-generic \
- lzop \
- make \
- net-tools \
- netcat \
- nfs-kernel-server \
- ninja-build \
- openjdk-8-jdk \
- openssh-server \
- python-dev \
- pxz \
- qemu-user \
- rsync \
- subversion \
- sudo \
- tclsh \
- texinfo \
- texlive-fonts-recommended \
- texlive-latex-recommended \
- time \
- valgrind \
- vim \
- virtualenv \
- wget \
- xz-utils \
- zip \
- zlib1g-dev \
- && apt-get clean \
- && rm -rf \
- /var/lib/apt/lists/* \
- /tmp/* \
- /var/tmp/*
-
-RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr/local/bin/git-new-workdir \
- && sed -i -e 's:^session *required *pam_loginuid.so:# session required pam_loginuid.so:' /etc/pam.d/sshd \
- && mkdir -p /var/run/sshd \
- && sed -i \
- -e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
- && echo "MaxStartups 256" >> /etc/ssh/sshd_config \
- && echo "MaxSessions 256" >> /etc/ssh/sshd_config
-
-# We use ssh multiplexing, which creates sockets in /tmp. Overlayfs,
-# which docker is using, can't host sockets, so we use a scratch mount
-# for /tmp. This requires that we add --rm option to "docker run"
-# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
-# cleanup host directories used for the scratch mounts.
-VOLUME /tmp
-
-EXPOSE 22
-CMD ["/usr/sbin/sshd", "-D"]
-# checksum: 5f33eaaf0b3ef31474c148c4e5f67e2b
diff --git a/zesty-arm64-tcwg-base/build.sh b/zesty-arm64-tcwg-base/build.sh
deleted file mode 120000
index 67d8934..0000000
--- a/zesty-arm64-tcwg-base/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../tcwg-base/build.sh \ No newline at end of file
diff --git a/zesty-arm64-tcwg-base/gerrit-branches b/zesty-arm64-tcwg-base/gerrit-branches
deleted file mode 120000
index 3cbaca1..0000000
--- a/zesty-arm64-tcwg-base/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../tcwg-base/gerrit-branches \ No newline at end of file
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/Dockerfile b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/Dockerfile
deleted file mode 100644
index 2908f9f..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-# Auto generated from tcwg-base/tcwg-build/Dockerfile.in. Do not edit.
-FROM linaro/ci-arm64-tcwg-base-ubuntu:zesty
-
-RUN groupadd -g 9000 tcwg-infra \
- && useradd -m -g tcwg-infra -G kvm -u 11827 tcwg-buildslave \
- && useradd -m -g tcwg-infra -G kvm -u 12326 tcwg-benchmark \
- && echo '%tcwg-infra ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins \
- && chmod 0440 /etc/sudoers.d/jenkins \
- && mkdir -p /home/tcwg-buildslave/workspace
-
-COPY tcwg-buildslave /home/tcwg-buildslave
-COPY tcwg-benchmark /home/tcwg-benchmark
-
-RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
- && chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
- && chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
- && chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 13fb54b757062912c232e16738978027
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/build.sh b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/build.sh
deleted file mode 120000
index 50162e0..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../tcwg-base/tcwg-build/build.sh \ No newline at end of file
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/gerrit-branches b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/gerrit-branches
deleted file mode 120000
index 628350a..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../../tcwg-base/tcwg-build/gerrit-branches \ No newline at end of file
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/Dockerfile b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/Dockerfile
deleted file mode 100644
index 71e96ee..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-# Auto generated from tcwg-base/tcwg-build/tcwg-test/Dockerfile.in. Do not edit.
-FROM linaro/ci-arm64-tcwg-build-ubuntu:zesty
-
-COPY tcwg-buildslave/.ssh /root/.ssh
-
-RUN chmod 0700 /root/.ssh/ \
- && sed -i -e "/.*PermitRootLogin.*/d" /etc/ssh/sshd_config \
- && echo "PermitRootLogin without-password" >> /etc/ssh/sshd_config
-# checksum: 55db116aeb8f6c31fb8ef4187b1ee250
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/build.sh b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/build.sh
deleted file mode 120000
index 44bceb1..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../../tcwg-base/tcwg-build/tcwg-test/build.sh \ No newline at end of file
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/gerrit-branches b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/gerrit-branches
deleted file mode 120000
index 4bcb423..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-build/zesty-arm64-tcwg-test/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../../../tcwg-base/tcwg-build/tcwg-test/gerrit-branches \ No newline at end of file
diff --git a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/Dockerfile b/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/Dockerfile
deleted file mode 100644
index 924c888..0000000
--- a/zesty-arm64-tcwg-base/zesty-arm64-tcwg-dev/Dockerfile
+++ /dev/null
@@ -1,50 +0,0 @@
-# Auto generated from tcwg-base/tcwg-dev/Dockerfile.in. Do not edit.
-FROM linaro/ci-arm64-tcwg-base-ubuntu:zesty
-
-COPY run.sh .
-COPY start.sh .
-
-RUN apt-get update \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y \
- software-properties-common \
- && apt-get clean \
- && rm -rf \
- /var/lib/apt/lists/* \
- /tmp/* \
- /var/tmp/*
-
-RUN apt-get update \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y \
- apt-file \
- git-gui \
- git-review \
- git-svn \
- gnat-5 \
- less \
- locales \
- libgmp-dev \
- libmpc-dev \
- libmpfr-dev \
- mc \
- screen \
- stgit \
- tmux \
- unifdef \
- && apt-get clean \
- && rm -rf \
- /var/lib/apt/lists/* \
- /tmp/* \
- /var/tmp/*
-
-RUN sed -i -e '/.*AuthorizedKeysFile/ d' /etc/ssh/sshd_config \
- && echo "AuthorizedKeysFile %h/.ssh/authorized_keys.docker" >> /etc/ssh/sshd_config \
- && locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8 \
- && apt-file update
-
-# Create directories required for X11.
-RUN mkdir -p /tmp/.X11-unix /tmp/.ICE-unix \
- && chmod 1777 /tmp/.X11-unix /tmp/.ICE-unix
-
-ENTRYPOINT ["/run.sh"]
-CMD ["start.sh"]
-# checksum: 959367045c9c472785e5055af06f4f6e
diff --git a/zesty-armhf-tcwg-base/Dockerfile b/zesty-armhf-tcwg-base/Dockerfile
deleted file mode 100644
index 91f38e0..0000000
--- a/zesty-armhf-tcwg-base/Dockerfile
+++ /dev/null
@@ -1,102 +0,0 @@
-# Auto generated from tcwg-base/Dockerfile.in. Do not edit.
-FROM snapcraft/zesty-armhf:latest
-
-RUN (url="http://ports.ubuntu.com/ubuntu-ports/"; \
- ubuntu=zesty; \
- for i in $ubuntu $ubuntu-updates $ubuntu-backports $ubuntu-security; do \
- for j in deb deb-src; do \
- echo "$j $url $i main restricted universe multiverse"; \
- done; \
- echo; \
- done) > /etc/apt/sources.list \
- && apt-get update \
- && DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y devscripts \
- && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
- alien \
- autoconf \
- autogen \
- automake \
- bc \
- bison \
- build-essential \
- byacc \
- ccache \
- ccrypt \
- chrpath \
- clang \
- cmake \
- debhelper \
- dejagnu \
- dh-autoreconf \
- dh-translations \
- distro-info-data \
- emacs \
- fakeroot \
- flex \
- gawk \
- gdb \
- gdbserver \
- qemu-system-arm \
- git \
- groff \
- libexpat1-dev \
- liblzma-dev \
- libncurses5-dev \
- libpython2.7-dev \
- libreadline-dev \
- libssl-dev \
- libtcnative-1 \
- libtool \
- linux-tools-generic \
- lzop \
- make \
- net-tools \
- netcat \
- nfs-kernel-server \
- ninja-build \
- openjdk-8-jdk \
- openssh-server \
- python-dev \
- pxz \
- qemu-user \
- rsync \
- subversion \
- sudo \
- tclsh \
- texinfo \
- texlive-fonts-recommended \
- texlive-latex-recommended \
- time \
- valgrind \
- vim \
- virtualenv \
- wget \
- xz-utils \
- zip \
- zlib1g-dev \
- && apt-get clean \
- && rm -rf \
- /var/lib/apt/lists/* \
- /tmp/* \
- /var/tmp/*
-
-RUN install -D -p -m0755 /usr/share/doc/git/contrib/workdir/git-new-workdir /usr/local/bin/git-new-workdir \
- && sed -i -e 's:^session *required *pam_loginuid.so:# session required pam_loginuid.so:' /etc/pam.d/sshd \
- && mkdir -p /var/run/sshd \
- && sed -i \
- -e "/.*MaxStartups.*/d" \
- -e "/.*MaxSesssions.*/d" /etc/ssh/sshd_config \
- && echo "MaxStartups 256" >> /etc/ssh/sshd_config \
- && echo "MaxSessions 256" >> /etc/ssh/sshd_config
-
-# We use ssh multiplexing, which creates sockets in /tmp. Overlayfs,
-# which docker is using, can't host sockets, so we use a scratch mount
-# for /tmp. This requires that we add --rm option to "docker run"
-# invocations (e.g., mark "Remove volumes" checkbox in docker plugin) to
-# cleanup host directories used for the scratch mounts.
-VOLUME /tmp
-
-EXPOSE 22
-CMD ["linux32", "/usr/sbin/sshd", "-D"]
-# checksum: d37abaf40232732ae1f4128b8e885093
diff --git a/zesty-armhf-tcwg-base/build.sh b/zesty-armhf-tcwg-base/build.sh
deleted file mode 120000
index 67d8934..0000000
--- a/zesty-armhf-tcwg-base/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../tcwg-base/build.sh \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/gerrit-branches b/zesty-armhf-tcwg-base/gerrit-branches
deleted file mode 120000
index 3cbaca1..0000000
--- a/zesty-armhf-tcwg-base/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../tcwg-base/gerrit-branches \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/Dockerfile b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/Dockerfile
deleted file mode 100644
index 7ffd17d..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/Dockerfile
+++ /dev/null
@@ -1,18 +0,0 @@
-# Auto generated from tcwg-base/tcwg-build/Dockerfile.in. Do not edit.
-FROM linaro/ci-armhf-tcwg-base-ubuntu:zesty
-
-RUN groupadd -g 9000 tcwg-infra \
- && useradd -m -g tcwg-infra -G kvm -u 11827 tcwg-buildslave \
- && useradd -m -g tcwg-infra -G kvm -u 12326 tcwg-benchmark \
- && echo '%tcwg-infra ALL = NOPASSWD: ALL' > /etc/sudoers.d/jenkins \
- && chmod 0440 /etc/sudoers.d/jenkins \
- && mkdir -p /home/tcwg-buildslave/workspace
-
-COPY tcwg-buildslave /home/tcwg-buildslave
-COPY tcwg-benchmark /home/tcwg-benchmark
-
-RUN chown -R tcwg-buildslave:tcwg-infra /home/tcwg-buildslave/ \
- && chown -R tcwg-benchmark:tcwg-infra /home/tcwg-benchmark/ \
- && chmod 0700 /home/tcwg-buildslave/.ssh/ /home/tcwg-benchmark/.ssh/ \
- && chmod 0600 /home/tcwg-buildslave/.ssh/* /home/tcwg-benchmark/.ssh/*
-# checksum: 77302f65407ca1a2a4b87352c8347c60
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/build.sh b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/build.sh
deleted file mode 120000
index 50162e0..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../tcwg-base/tcwg-build/build.sh \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/gerrit-branches b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/gerrit-branches
deleted file mode 120000
index 628350a..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../../tcwg-base/tcwg-build/gerrit-branches \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/Dockerfile b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/Dockerfile
deleted file mode 100644
index 90a81d1..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/Dockerfile
+++ /dev/null
@@ -1,9 +0,0 @@
-# Auto generated from tcwg-base/tcwg-build/tcwg-test/Dockerfile.in. Do not edit.
-FROM linaro/ci-armhf-tcwg-build-ubuntu:zesty
-
-COPY tcwg-buildslave/.ssh /root/.ssh
-
-RUN chmod 0700 /root/.ssh/ \
- && sed -i -e "/.*PermitRootLogin.*/d" /etc/ssh/sshd_config \
- && echo "PermitRootLogin without-password" >> /etc/ssh/sshd_config
-# checksum: 97645d9dd266629322e5413847db65e6
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/build.sh b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/build.sh
deleted file mode 120000
index 44bceb1..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../../tcwg-base/tcwg-build/tcwg-test/build.sh \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/gerrit-branches b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/gerrit-branches
deleted file mode 120000
index 4bcb423..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-build/zesty-armhf-tcwg-test/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../../../tcwg-base/tcwg-build/tcwg-test/gerrit-branches \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/build.sh b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/build.sh
deleted file mode 120000
index e8571a3..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/build.sh
+++ /dev/null
@@ -1 +0,0 @@
-../../tcwg-base/tcwg-dev/build.sh \ No newline at end of file
diff --git a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/gerrit-branches b/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/gerrit-branches
deleted file mode 120000
index cd14822..0000000
--- a/zesty-armhf-tcwg-base/zesty-armhf-tcwg-dev/gerrit-branches
+++ /dev/null
@@ -1 +0,0 @@
-../../tcwg-base/tcwg-dev/gerrit-branches \ No newline at end of file