From a8153577fec40c83193dddc69a0adc829dd57c7e Mon Sep 17 00:00:00 2001 From: Oliver Smith Date: Fri, 20 Sep 2019 10:43:03 +0200 Subject: gerrit, master builds: use stretch, not jessie Debian jessie (8) is EOL already, so switch to stretch (9). This is required to build all Osmocom projects in docker, because at least libosmocore fails to build with the old image (tests won't build with GCC-4.9.x from jessie unless -Werror is disabled). Do not build the jessie image anymore, and update the shared dockerfile. Remove everything jessie specific, and make it work with stretch by installing asciidoc-dblatex. Otherwise we get this error when building manuals: a2x: ERROR: missing configuration file: /etc/asciidoc/dblatex/asciidoc-dblatex.xsl Add '--cap-add SYS_PTRACE' argument to the docker run command, because otherwise the address sanitizer isn't working anymore with stretch (which makes the OsmoPCU tests fail). I've tried to split this patch up into multiple ones, but since there is no asciidoc-dblatex package in jessie, we must add the dependency and switch the image at the same time. Related: OS#3726 Change-Id: I61fe93863d5367e3b9c01ab4726bb95bd16d891d --- docker/Dockerfile_osmocom_jenkins.amd64 | 9 ++++----- docker/rebuild_osmocom_jenkins_image.sh | 3 +-- jobs/gerrit-verifications.yml | 4 +++- jobs/master-builds.yml | 4 +++- 4 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docker/Dockerfile_osmocom_jenkins.amd64 b/docker/Dockerfile_osmocom_jenkins.amd64 index 3f499ad..897db15 100644 --- a/docker/Dockerfile_osmocom_jenkins.amd64 +++ b/docker/Dockerfile_osmocom_jenkins.amd64 @@ -1,10 +1,9 @@ -ARG DEBIAN_VERSION=jessie +ARG DEBIAN_VERSION=stretch FROM debian:${DEBIAN_VERSION} RUN \ - echo "deb http://archive.debian.org/debian jessie-backports main" >> /etc/apt/sources.list && \ dpkg --add-architecture i386 && \ - DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Check-Valid-Until=false update && \ + DEBIAN_FRONTEND=noninteractive apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get upgrade -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends wget make @@ -29,7 +28,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fl RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libortp-dev libpcsclite-dev libsctp-dev libfftw3-dev libsnmp-dev libusb-1.0-0-dev libtalloc-dev libgnutls28-dev # OsmocomBB -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev/jessie-backports +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc-arm-none-eabi liblua5.3-dev # building RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libtool pkg-config automake autoconf @@ -38,7 +37,7 @@ RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends li RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3-setuptools python-setuptools python3-pip python-pip # for osmo-gsm-manuals -RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends xsltproc dblatex docbook5-xml graphviz python-pychart python-nwdiag libxml2-utils +RUN DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends xsltproc dblatex docbook5-xml graphviz python-pychart python-nwdiag libxml2-utils asciidoc-dblatex # Linux kernel RUN DEBIAN_FRONTEND=noninteractive apt-get install -y bc diff --git a/docker/rebuild_osmocom_jenkins_image.sh b/docker/rebuild_osmocom_jenkins_image.sh index c4e3b10..60c516b 100755 --- a/docker/rebuild_osmocom_jenkins_image.sh +++ b/docker/rebuild_osmocom_jenkins_image.sh @@ -22,6 +22,5 @@ function build_container() { build_once "-t" "${tag_name}" "--build-arg" DEBIAN_VERSION="${debian_version}" } -# Create containers using jessie (Debian 8.0) and stretch (Debian 9.0) as base. -build_container osmocom:amd64 jessie +# Create containers using stretch (Debian 9.0) as base. build_container osmocom:deb9_amd64 stretch diff --git a/jobs/gerrit-verifications.yml b/jobs/gerrit-verifications.yml index 0f97c23..693d3c3 100644 --- a/jobs/gerrit-verifications.yml +++ b/jobs/gerrit-verifications.yml @@ -20,10 +20,12 @@ combination_filter: '' sequential: false # most common build invocation + # SYS_PTRACE is needed for ASAN (https://github.com/google/sanitizers/issues/764) docker_run: | ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" mkdir -p "$ARTIFACT_STORE" docker run --rm=true \ + --cap-add SYS_PTRACE \ -e ARTIFACT_STORE=/artifact_store \ -e ASCIIDOC_WARNINGS_CHECK="1" \ -e HOME=/build \ @@ -36,7 +38,7 @@ -w /build -i -u build \ -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ -v "$ARTIFACT_STORE:/artifact_store" \ - docker_img: 'osmocom:amd64' + docker_img: 'osmocom:deb9_amd64' cmd: ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh repos_url: 'ssh://jenkins@gerrit.osmocom.org:29418/{repos}' gerrit_project: '{repos}' diff --git a/jobs/master-builds.yml b/jobs/master-builds.yml index 8651337..5a47028 100644 --- a/jobs/master-builds.yml +++ b/jobs/master-builds.yml @@ -19,10 +19,12 @@ combination_filter: '' sequential: false # most common build invocation (PUBLISH=1 is prepended to publish manual PDFs) + # SYS_PTRACE is needed for ASAN (https://github.com/google/sanitizers/issues/764) docker_run: | ARTIFACT_STORE="$HOME/jenkins_build_artifact_store" mkdir -p "$ARTIFACT_STORE" docker run --rm=true \ + --cap-add SYS_PTRACE \ -e ARTIFACT_STORE=/artifact_store \ -e ASCIIDOC_WARNINGS_CHECK="1" \ -e HOME=/build \ @@ -37,7 +39,7 @@ -v "$PWD:/build" -v "$HOME/bin:/build_bin" \ -v "$ARTIFACT_STORE:/artifact_store" \ -v "$HOME/.ssh:/home/build/.ssh:ro" \ - docker_img: 'osmocom:amd64' + docker_img: 'osmocom:deb9_amd64' cmd: ASCIIDOC_WARNINGS_CHECK=1 ./contrib/jenkins.sh wrappers: [] trigger: -- cgit v1.2.3