This is an automated email from the ASF dual-hosted git repository.
bneradt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/trafficserver-ci.git
The following commit(s) were added to refs/heads/main by this push:
new b92fee8 Branch image updates for cmake (#253)
b92fee8 is described below
commit b92fee81c3847a8d6b1164025c889e146bfc1d46
Author: Brian Neradt <[email protected]>
AuthorDate: Mon Oct 23 15:11:07 2023 -0500
Branch image updates for cmake (#253)
Updates the following images for cmake:
* ubuntu:20.04
* debian:11
* rockylinux:9
---
docker/{debian => debian11}/Dockerfile | 2 +-
docker/{debian => debian12}/Dockerfile | 0
docker/rockylinux9/Dockerfile | 182 ++++++++++++++++---------
docker/rockylinux9/build_h3_tools.sh | 195 +++++++++++++++++++++------
docker/ubuntu/Dockerfile | 15 ---
docker/{ubuntu2204 => ubuntu2004}/Dockerfile | 9 +-
docker/ubuntu2204/Dockerfile | 3 +-
7 files changed, 276 insertions(+), 130 deletions(-)
diff --git a/docker/debian/Dockerfile b/docker/debian11/Dockerfile
similarity index 97%
copy from docker/debian/Dockerfile
copy to docker/debian11/Dockerfile
index 02bf7ed..5c9c809 100644
--- a/docker/debian/Dockerfile
+++ b/docker/debian11/Dockerfile
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
-FROM debian:12
+FROM debian:11
RUN <<EOT /bin/bash
set -ex
diff --git a/docker/debian/Dockerfile b/docker/debian12/Dockerfile
similarity index 100%
rename from docker/debian/Dockerfile
rename to docker/debian12/Dockerfile
diff --git a/docker/rockylinux9/Dockerfile b/docker/rockylinux9/Dockerfile
index 418c775..3209387 100644
--- a/docker/rockylinux9/Dockerfile
+++ b/docker/rockylinux9/Dockerfile
@@ -1,90 +1,142 @@
FROM rockylinux:9
-RUN dnf -y install epel-release dnf-plugins-core ; \
- dnf config-manager --set-enabled crb ; \
- dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm ; \
- dnf repolist ; \
- dnf -y update ; \
- # Compilers
- dnf -y install ccache make pkgconfig bison flex gcc-c++ clang \
- # Autoconf
+RUN <<EOF
+ set -e
+ dnf -y install epel-release dnf-plugins-core
+ dnf config-manager --set-enabled crb
+ dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm
+ dnf repolist
+ dnf -y update
+
+ # Compilers
+ dnf -y install \
+ ccache make pkgconfig bison flex gcc-c++ clang cmake ninja-build \
autoconf automake libtool \
- # Various other tools
- sudo git rpm-build file wget openssl hwloc nghttp2 libnghttp2-devel ; \
- # Devel packages that ATS needs
- dnf -y install openssl-devel expat-devel pcre-devel libcap-devel \
- hwloc-devel libunwind-devel xz-devel libcurl-devel ncurses-devel \
- jemalloc-devel GeoIP-devel luajit-devel brotli-devel \
- ImageMagick-devel ImageMagick-c++-devel hiredis-devel \
- zlib-devel libmaxminddb-devel perl-ExtUtils-MakeMaker \
- perl-Digest-SHA perl-URI perl-FindBin curl tcl-devel java; \
- # autest stuff
- dnf -y install python3 httpd-tools procps-ng nmap-ncat python3-pip \
- python3-gunicorn python3-requests python3-devel python3-psutil \
- telnet golang;
-
-RUN pip3 install --upgrade pip
-RUN pip3 install pipenv httpbin
-#RUN dnf -y install gcc-toolset-11 gcc-toolset-11-libasan-devel
-RUN dnf -y install go-toolset llvm-toolset
-
-# Install openssl-quic
-#RUN dnf install -y python38-devel
-#RUN alternatives --set python /usr/bin/python3.8
-RUN dnf -y install libev-devel jemalloc-devel libxml2-devel \
+ sudo git rpm-build file wget openssl hwloc nghttp2 libnghttp2-devel \
+ go-toolset llvm-toolset
+
+ # Devel packages that ATS needs.
+ #
+ # --alowerasing for cur. See:
+ # https://bugs.launchpad.net/tripleo/+bug/1953156
+ dnf -y install --allowerasing \
+ openssl-devel expat-devel pcre-devel libcap-devel hwloc-devel
libunwind-devel \
+ xz-devel libcurl-devel ncurses-devel jemalloc-devel GeoIP-devel
luajit-devel brotli-devel \
+ ImageMagick-devel ImageMagick-c++-devel hiredis-devel zlib-devel
libmaxminddb-devel \
+ perl-ExtUtils-MakeMaker perl-Digest-SHA perl-URI perl-IPC-Cmd
perl-Pod-Html perl-FindBin \
+ curl tcl-devel java
+
+ # autest stuff
+ dnf -y install \
+ python3 httpd-tools procps-ng nmap-ncat python3-pip \
+ python3-gunicorn python3-requests python3-devel python3-psutil telnet
golang
+EOF
+
+RUN <<EOF
+ set -e
+ pip3 install --upgrade pip
+ pip3 install pipenv httpbin
+EOF
+
+#-------------------------------------------------------------------------------
+# Install some custom build tools.
+#-------------------------------------------------------------------------------
+
+WORKDIR /root
+
+# We put our custom packages in /opt.
+RUN <<EOF
+ set -e
+ mkdir -p /opt/bin
+ chmod 755 /opt/bin
+ echo 'PATH=/opt/bin:$PATH' | tee -a /etc/profile.d/opt_bin.sh
+EOF
+ARG PATH=/opt/bin:$PATH
+
+#-------------------------------------------------------------------------------
+# Install the HTTP/3 build tools, including openssl-quic.
+#-------------------------------------------------------------------------------
+RUN <<EOF
+ set -e
+ dnf -y install libev-devel jemalloc-devel libxml2-devel \
c-ares-devel libevent-devel jansson-devel zlib-devel systemd-devel \
libpsl-devel libgsasl-devel libidn-devel openldap-devel
+EOF
-#ARG h3_tools_dir=/root/build_h3_tools
-#RUN mkdir -p ${h3_tools_dir}
-#WORKDIR ${h3_tools_dir}
-#COPY /build_h3_tools.sh ${h3_tools_dir}/build_h3_tools.sh
+# go and rust will be installed by build_h3_tools.
+RUN dnf remove -y golang rust
+RUN dnf install -y cargo
+ARG h3_tools_dir=/root/build_h3_tools
+RUN mkdir -p ${h3_tools_dir}
+COPY /build_h3_tools.sh ${h3_tools_dir}/build_h3_tools.sh
# This will install OpenSSL QUIC and related tools in /opt.
-#RUN bash ${h3_tools_dir}/build_h3_tools.sh; rm -rf ${h3_tools_dir}
/root/.rustup
-WORKDIR /root
+RUN <<EOF
+ set -e
+ cd ${h3_tools_dir}
+ bash ${h3_tools_dir}/build_h3_tools.sh
+
+ # Removing the build dir is crucial to keeping the Docker image size
+ # reasonable.
+ rm -rf ${h3_tools_dir} /root/.rustup
+EOF
+
+#-------------------------------------------------------------------------------
+# Various CI Job and Test Requirements.
+#-------------------------------------------------------------------------------
+
+# Autests require some go applications.
+RUN <<EOF
+ set -e
+ echo 'export PATH=$PATH:/opt/go/bin' | tee -a /etc/profile.d/go.sh
+ echo 'export GOBIN=/opt/go/bin' | tee -a /etc/profile.d/go.sh
-# Make sure we pick up this built version of curl, which is in /opt/bin.
-#RUN echo 'PATH=/opt/bin:$PATH' | tee -a /etc/profile.d/curl_http3.sh
+ /opt/go/bin/go install github.com/summerwind/h2spec/cmd/h2spec@latest
+ cp /root/go/bin/h2spec /opt/go/bin/
+
+ /opt/go/bin/go install
github.com/mccutchen/go-httpbin/v2/cmd/[email protected]
+ cp /root/go/bin/go-httpbin /opt/go/bin/
+EOF
RUN update-crypto-policies --set LEGACY
-RUN echo 'export GOROOT=/usr/local/go' | tee -a /etc/profile
-RUN echo 'export PATH=$PATH:/usr/local/go/bin' | tee -a /etc/profile
-RUN source /etc/profile
-RUN wget
https://github.com/summerwind/h2spec/releases/download/v2.6.0/h2spec_linux_amd64.tar.gz
-RUN tar xf h2spec_linux_amd64.tar.gz
-RUN cp --force h2spec /usr/local/bin/h2spec
-RUN dnf clean all
-
-# Add the CI's test user. N.B: 1200 is the uid that our jenkins user is
-# configured with, so that has to be used. Otherwise there will be permissions
-# issues.
+
+# Add the CI's jenkins user.
+# N.B: 1200 is the uid that our jenkins user is configured with, so that has to
+# be used. Otherwise there will be permissions issues.
ARG username=jenkins
ARG uid=1200
-RUN useradd \
+RUN <<EOF
+ set -e
+ useradd \
--home-dir /home/${username} \
--groups users,wheel \
--uid ${uid} \
--shell /bin/bash \
--create-home \
${username}
-RUN echo "${username} ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
-RUN chown -R ${username} /home/${username}
+ echo "${username} ALL=(ALL:ALL) NOPASSWD:ALL" >> /etc/sudoers
+ chown -R ${username} /home/${username}
+EOF
-# Install lcov requirements.
-RUN dnf install -y perl-IO-Compress
+# Install lcov.
+RUN yum install -y perl-IO-Compress
ARG lcov_build_dir=/var/tmp/lcov_build_dir
RUN mkdir -p ${lcov_build_dir}
-WORKDIR ${lcov_build_dir}
-RUN git clone https://github.com/linux-test-project/lcov.git; \
- cd lcov; \
- # v1.15 is required for g++ version 9 compiled files.
- git checkout v1.15; \
- make install
-WORKDIR /root
-RUN rm -rf ${lcov_build_dir}
-RUN dnf clean all
+RUN <<EOF
+ set -e
+ cd ${lcov_build_dir}
+ git clone https://github.com/linux-test-project/lcov.git
+ cd lcov
+ # v1.15 is required for g++ version 9 compiled files.
+ git checkout v1.15
+ make install
+ cd /root
+ rm -rf ${lcov_build_dir}
+EOF
# Install ABI checking tools.
-RUN dnf install -y ctags elfutils-libelf-devel wdiff
+RUN yum install -y ctags elfutils-libelf-devel wdiff
COPY /install_abi_tools.sh /root/install_abi_tools.sh
RUN bash /root/install_abi_tools.sh
+
+# Keep this at the end to clean up the yum cache.
+RUN yum clean all
diff --git a/docker/rockylinux9/build_h3_tools.sh
b/docker/rockylinux9/build_h3_tools.sh
index a4ac962..5e2e463 100644
--- a/docker/rockylinux9/build_h3_tools.sh
+++ b/docker/rockylinux9/build_h3_tools.sh
@@ -19,6 +19,7 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+set -e
# This is a slightly modified version of:
@@ -31,12 +32,12 @@
# versions of these over time.
#
# * It also doesn't run sudo since the Dockerfile will run this as root.
-
-
-set -e
+#
+# * It also doesn't use a mktemp since the caller sets up a temporary directory
+# that it later removes.
# Update this as the draft we support updates.
-OPENSSL_BRANCH=${OPENSSL_BRANCH:-"OpenSSL_1_1_1o+quic"}
+OPENSSL_BRANCH=${OPENSSL_BRANCH:-"openssl-3.1.2+quic"}
# Set these, if desired, to change these to your preferred installation
# directory
@@ -45,117 +46,221 @@ OPENSSL_BASE=${OPENSSL_BASE:-"${BASE}/openssl-quic"}
OPENSSL_PREFIX=${OPENSSL_PREFIX:-"${OPENSSL_BASE}-${OPENSSL_BRANCH}"}
MAKE="make"
-# These are for Linux like systems, specially the LDFLAGS, also depends on
dirs above
CFLAGS=${CFLAGS:-"-O3 -g"}
CXXFLAGS=${CXXFLAGS:-"-O3 -g"}
-LDFLAGS=${LDFLAGS:-"-Wl,-rpath=${OPENSSL_PREFIX}/lib"}
if [ -e /etc/redhat-release ]; then
MAKE="gmake"
+ TMP_QUICHE_BSSL_PATH="${BASE}/boringssl/lib64"
echo
"+-------------------------------------------------------------------------+"
echo "| You probably need to run this, or something like this, for your
system: |"
echo "|
|"
echo "| sudo yum -y install libev-devel jemalloc-devel python2-devel
|"
echo "| sudo yum -y install libxml2-devel c-ares-devel libevent-devel
|"
- echo "| sudo yum -y install jansson-devel zlib-devel systemd-devel
|"
+ echo "| sudo yum -y install jansson-devel zlib-devel systemd-devel cargo
|"
+ echo "|
|"
+ echo "| Rust may be needed too, see https://rustup.rs for the details
|"
echo
"+-------------------------------------------------------------------------+"
echo
echo
elif [ -e /etc/debian_version ]; then
+ TMP_QUICHE_BSSL_PATH="${BASE}/boringssl/lib"
echo
"+-------------------------------------------------------------------------+"
echo "| You probably need to run this, or something like this, for your
system: |"
echo "|
|"
echo "| sudo apt -y install libev-dev libjemalloc-dev python2-dev
libxml2-dev |"
echo "| sudo apt -y install libpython2-dev libc-ares-dev libsystemd-dev
|"
- echo "| sudo apt -y install libevent-dev libjansson-dev zlib1g-dev
|"
+ echo "| sudo apt -y install libevent-dev libjansson-dev zlib1g-dev cargo
|"
+ echo "|
|"
+ echo "| Rust may be needed too, see https://rustup.rs for the details
|"
echo
"+-------------------------------------------------------------------------+"
echo
echo
fi
+if [ `uname -s` = "Darwin" ]; then
+ echo
"+-------------------------------------------------------------------------+"
+ echo "| When building on a Mac, be aware that the Apple version of clang
may |"
+ echo "| fail to build curl due to the issue described here:
|"
+ echo "| https://github.com/curl/curl/issues/11391#issuecomment-1623890325
|"
+ echo
"+-------------------------------------------------------------------------+"
+fi
+
+if [ -z ${QUICHE_BSSL_PATH+x} ]; then
+ QUICHE_BSSL_PATH=${TMP_QUICHE_BSSL_PATH:-"${BASE}/boringssl/lib"}
+fi
+
set -x
+if [ `uname -s` = "Linux" ]
+then
+ num_threads=$(nproc)
+elif [ `uname -s` = "FreeBSD" ]
+then
+ num_threads=$(sysctl -n hw.ncpu)
+else
+ # MacOS.
+ num_threads=$(sysctl -n hw.logicalcpu)
+fi
+
+# boringssl
+echo "Building boringssl..."
+
+# We need this go version.
+mkdir -p ${BASE}/go
+
+if [ `uname -m` = "arm64" -o `uname -m` = "aarch64" ]; then
+ ARCH="arm64"
+else
+ ARCH="amd64"
+fi
+
+if [ `uname -s` = "Darwin" ]; then
+ OS="darwin"
+elif [ `uname -s` = "FreeBSD" ]; then
+ OS="freebsd"
+else
+ OS="linux"
+fi
+
+wget https://go.dev/dl/go1.21.0.${OS}-${ARCH}.tar.gz
+rm -rf ${BASE}/go && tar -C ${BASE} -xf go1.21.0.${OS}-${ARCH}.tar.gz
+rm go1.21.0.${OS}-${ARCH}.tar.gz
+chmod -R a+rX ${BASE}
+
+GO_BINARY_PATH=${BASE}/go/bin/go
+if [ ! -d boringssl ]; then
+ git clone https://boringssl.googlesource.com/boringssl
+ cd boringssl
+ git checkout e4f60679caa293c047be69f57fc48b46c7452327
+ cd ..
+fi
+cd boringssl
+cmake \
+ -B build \
+ -DGO_EXECUTABLE=${GO_BINARY_PATH} \
+ -DCMAKE_INSTALL_PREFIX=${BASE}/boringssl \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_CXX_FLAGS='-Wno-error=ignored-attributes' \
+ -DBUILD_SHARED_LIBS=1
+cmake --build build -j ${num_threads}
+cmake --install build
+chmod -R a+rX ${BASE}
+cd ..
+
+# Build quiche
+# Steps borrowed from:
https://github.com/apache/trafficserver-ci/blob/main/docker/rockylinux8/Dockerfile
+echo "Building quiche"
+QUICHE_BASE="${BASE:-/opt}/quiche"
+[ ! -d quiche ] && git clone --recursive
https://github.com/cloudflare/quiche.git
+cd quiche
+# Latest quiche commits breaks our code so we build from the last commit
+# we know it works, in this case this commit includes the rpath fix commit
+# for quiche. https://github.com/cloudflare/quiche/pull/1508
+# Why does the latest break our code? ->
https://github.com/cloudflare/quiche/pull/1537
+git checkout a1b212761c6cc0b77b9121cdc313e507daf6deb3
+QUICHE_BSSL_PATH=${QUICHE_BSSL_PATH} QUICHE_BSSL_LINK_KIND=dylib cargo build
-j4 --package quiche --release --features ffi,pkg-config-meta,qlog
+mkdir -p ${QUICHE_BASE}/lib/pkgconfig
+mkdir -p ${QUICHE_BASE}/include
+cp target/release/libquiche.a ${QUICHE_BASE}/lib/
+[ -f target/release/libquiche.so ] && cp target/release/libquiche.so
${QUICHE_BASE}/lib/
+cp quiche/include/quiche.h ${QUICHE_BASE}/include/
+cp target/release/quiche.pc ${QUICHE_BASE}/lib/pkgconfig
+chmod -R a+rX ${BASE}
+cd ..
-# OpenSSL needs special hackery ... Only grabbing the branch we need here...
Bryan has shit for network.
echo "Building OpenSSL with QUIC support"
-[ ! -d openssl-quic ] && git clone -b ${OPENSSL_BRANCH}
https://github.com/quictls/openssl.git openssl-quic
+[ ! -d openssl-quic ] && git clone -b ${OPENSSL_BRANCH} --depth 1
https://github.com/quictls/openssl.git openssl-quic
cd openssl-quic
-git checkout ca2e0784d2c38edcefd5d68028f4d954bd8faddb
-./config --prefix=${OPENSSL_PREFIX}
-${MAKE} -j $(nproc)
+./config enable-tls1_3 --prefix=${OPENSSL_PREFIX}
+${MAKE} -j ${num_threads}
${MAKE} install_sw
+chmod -R a+rX ${BASE}
# The symlink target provides a more convenient path for the user while also
# providing, in the symlink source, the precise branch of the OpenSSL build.
ln -sf ${OPENSSL_PREFIX} ${OPENSSL_BASE}
+chmod -R a+rX ${BASE}
cd ..
+# OpenSSL will install in /lib or lib64 depending upon the architecture.
+if [ -d "${OPENSSL_PREFIX}/lib" ]; then
+ OPENSSL_LIB="${OPENSSL_PREFIX}/lib"
+elif [ -d "${OPENSSL_PREFIX}/lib64" ]; then
+ OPENSSL_LIB="${OPENSSL_PREFIX}/lib64"
+else
+ echo "Could not find the OpenSSL install library directory."
+ exit 1
+fi
+LDFLAGS=${LDFLAGS:-"-Wl,-rpath,${OPENSSL_LIB}"}
+
# Then nghttp3
echo "Building nghttp3..."
-[ ! -d nghttp3 ] && git clone https://github.com/ngtcp2/nghttp3.git
+[ ! -d nghttp3 ] && git clone --depth 1 -b v0.13.0
https://github.com/ngtcp2/nghttp3.git
cd nghttp3
-git checkout 9b771ad0adc407b3faa8b6b2203ce7a699c5620b
autoreconf -if
./configure \
--prefix=${BASE} \
- PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_PREFIX}/lib/pkgconfig \
+ PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_LIB}/pkgconfig \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
- LDFLAGS="${LDFLAGS}"
-# --enable-lib-only
-${MAKE} -j $(nproc)
+ LDFLAGS="${LDFLAGS}" \
+ --enable-lib-only
+${MAKE} -j ${num_threads}
${MAKE} install
+chmod -R a+rX ${BASE}
cd ..
# Now ngtcp2
echo "Building ngtcp2..."
-[ ! -d ngtcp2 ] && git clone https://github.com/ngtcp2/ngtcp2.git
+[ ! -d ngtcp2 ] && git clone --depth 1 -b v0.17.0
https://github.com/ngtcp2/ngtcp2.git
cd ngtcp2
-git checkout f65399b545f934b615a8d6d91e262b613456b204
autoreconf -if
./configure \
--prefix=${BASE} \
- PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_PREFIX}/lib/pkgconfig \
+ PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_LIB}/pkgconfig \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}" \
--enable-lib-only
-${MAKE} -j $(nproc)
+${MAKE} -j ${num_threads}
${MAKE} install
+chmod -R a+rX ${BASE}
cd ..
# Then nghttp2, with support for H3
echo "Building nghttp2 ..."
-[ ! -d nghttp2 ] && git clone https://github.com/tatsuhiro-t/nghttp2.git
+[ ! -d nghttp2 ] && git clone --depth 1 -b v1.55.1
https://github.com/tatsuhiro-t/nghttp2.git
cd nghttp2
-
-# This commit will be removed whenever the nghttp2 author rebases origin/quic.
-# For reference, this commit is currently described as:
-#
-# commit 25f29e7634a2c8c5ba5c63432e5d94217a6535ef
-# Author: Tatsuhiro Tsujikawa <[email protected]>
-# Date: Mon Aug 16 16:58:11 2021 +0900
-#
-# Compile with the latest ngtcp2
-git checkout 08676d23f964ac9aa1f9317ad30f0b7d78eb5a5a
-
autoreconf -if
+if [ `uname -s` = "Darwin" ] || [ `uname -s` = "FreeBSD" ]
+then
+ # --enable-app requires systemd which is not available on Mac/FreeBSD.
+ ENABLE_APP=""
+else
+ ENABLE_APP="--enable-app"
+fi
+
+# Note for FreeBSD: This will not build h2load. h2load can be run on a remote
machine.
./configure \
--prefix=${BASE} \
- PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_PREFIX}/lib/pkgconfig \
+ PKG_CONFIG_PATH=${BASE}/lib/pkgconfig:${OPENSSL_LIB}/pkgconfig \
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
- LDFLAGS="${LDFLAGS}" \
- --enable-lib-only
-${MAKE} -j $(nproc)
+ LDFLAGS="${LDFLAGS} -L${OPENSSL_LIB}" \
+ --enable-http3 \
+ ${ENABLE_APP}
+${MAKE} -j ${num_threads}
${MAKE} install
+chmod -R a+rX ${BASE}
cd ..
-# And finally curl
+# Then curl
echo "Building curl ..."
-[ ! -d curl ] && git clone https://github.com/curl/curl.git
+[ ! -d curl ] && git clone --depth 1 -b curl-8_2_1
https://github.com/curl/curl.git
cd curl
-git checkout 45ac4d019475df03562fe0ac54eb67e1d1de0ca7
-autoreconf -i
+# On mac autoreconf fails on the first attempt with an issue finding ltmain.sh.
+# The second runs fine.
+autoreconf -fi || autoreconf -fi
./configure \
--prefix=${BASE} \
--with-ssl=${OPENSSL_PREFIX} \
@@ -165,5 +270,7 @@ autoreconf -i
CFLAGS="${CFLAGS}" \
CXXFLAGS="${CXXFLAGS}" \
LDFLAGS="${LDFLAGS}"
-${MAKE} -j $(nproc)
+${MAKE} -j ${num_threads}
${MAKE} install
+chmod -R a+rX ${BASE}
+cd ..
diff --git a/docker/ubuntu/Dockerfile b/docker/ubuntu/Dockerfile
deleted file mode 100644
index 2ad7d7b..0000000
--- a/docker/ubuntu/Dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-FROM ubuntu:20.04
-
-RUN apt-get update; \
- DEBIAN_FRONTEND=noninteractive apt-get -y install build-essential llvm
ccache \
- make pkgconf bison flex g++ clang gettext libc++-dev autoconf automake \
- libtool autotools-dev git distcc file wget openssl hwloc intltool-debian
clang-tools-10 clang-10; \
-
- DEBIAN_FRONTEND=noninteractive apt-get -y install libssl-dev libexpat1-dev
\
- libpcre3-dev libcap-dev libhwloc-dev libunwind8 libunwind-dev zlib1g-dev \
- tcl-dev tcl8.6-dev libjemalloc-dev libluajit-5.1-dev liblzma-dev \
- libhiredis-dev libbrotli-dev libncurses-dev libgeoip-dev libmagick++-dev \
- libmaxminddb-dev libcjose-dev libcjose0 libjansson-dev; \
-
- DEBIAN_FRONTEND=noninteractive apt-get autoremove; apt-get clean;
-
diff --git a/docker/ubuntu2204/Dockerfile b/docker/ubuntu2004/Dockerfile
similarity index 85%
copy from docker/ubuntu2204/Dockerfile
copy to docker/ubuntu2004/Dockerfile
index f891f3b..3c0a8d7 100644
--- a/docker/ubuntu2204/Dockerfile
+++ b/docker/ubuntu2004/Dockerfile
@@ -1,4 +1,4 @@
-FROM ubuntu:22.04
+FROM ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
@@ -10,15 +10,16 @@ RUN <<EOF
apt-get -y install build-essential llvm lld ccache \
make pkgconf bison flex g++ clang gettext libc++-dev autoconf automake \
libtool autotools-dev git distcc file wget openssl hwloc intltool-debian \
- clang-tools-14 clang-14 cmake ninja-build
+ clang-tools-10 clang-10 cmake ninja-build
apt-get -y install libssl-dev libexpat1-dev \
libpcre3-dev libcap-dev libhwloc-dev libunwind8 libunwind-dev zlib1g-dev \
- libjemalloc-dev libluajit-5.1-dev liblzma-dev \
+ tcl-dev tcl8.6-dev libjemalloc-dev libluajit-5.1-dev liblzma-dev \
libhiredis-dev libbrotli-dev libncurses-dev libgeoip-dev libmagick++-dev \
libmaxminddb-dev libcjose-dev libcjose0 libjansson-dev
- apt-get -y autoremove; apt-get -y clean
+ apt-get -y autoremove
+ apt-get -y clean
EOF
# Add the CI's test user. N.B: 1200 is the uid that our jenkins user is
diff --git a/docker/ubuntu2204/Dockerfile b/docker/ubuntu2204/Dockerfile
index f891f3b..d5dc2ac 100644
--- a/docker/ubuntu2204/Dockerfile
+++ b/docker/ubuntu2204/Dockerfile
@@ -18,7 +18,8 @@ RUN <<EOF
libhiredis-dev libbrotli-dev libncurses-dev libgeoip-dev libmagick++-dev \
libmaxminddb-dev libcjose-dev libcjose0 libjansson-dev
- apt-get -y autoremove; apt-get -y clean
+ apt-get -y autoremove
+ apt-get -y clean
EOF
# Add the CI's test user. N.B: 1200 is the uid that our jenkins user is