Skip to content

Commit 8c08678

Browse files
authored
Images for OpenSSL 3.0.8 and gcc-12 (#496)
* Add Alpine:3.17 build image with g++-12 and OpenSSL 3.0 * Add Alpine:3.17 build image with g++-12 and OpenSSL 3.0: followup 1 * Fix grep of OpenSSL from ArangoDB * Added Ubuntu build image with g++-12, OpenSSL 3.0.8 and clang-15 * Fix for sccache 0.3.1 * Fix build scripts * Temp USE_FAIL_ON_WARNINGS=Off * Revert "Temp USE_FAIL_ON_WARNINGS=Off" This reverts commit 71d06fb. * Fix ARM build * Fix dirs * Use OpenSSL 3.0 with gcc-11 also * Fix * Fix typo * Small adjustments * Fix findRequiredOpenSSL of macOS and Windows for OpenSSL 3 * Fix lib path for OpenSSL 3 * Fixrs * Fix * Try to reduce OpenSSL build on Windows using oskar * Fix * Fix San build * Revert * Update helper.psm1
1 parent 3cebd08 commit 8c08678

27 files changed

+563
-35
lines changed

Diff for: containers/buildAlpine6.docker/Dockerfile

+6
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@ RUN [ "/tools/install-openssl.sh", "1.1.1", "t" ]
1919
COPY ./tools/install-openldap.sh /tools/
2020
RUN [ "/tools/install-openldap.sh", "1.1.1t" ]
2121

22+
COPY ./tools/install-openssl.sh /tools/
23+
RUN [ "/tools/install-openssl.sh", "3.0", ".8" ]
24+
25+
COPY ./tools/install-openldap.sh /tools/
26+
RUN [ "/tools/install-openldap.sh", "3.0.8" ]
27+
2228
RUN curl -L https://github.com/mozilla/sccache/releases/download/v0.2.15/sccache-v0.2.15-${ARCH}-unknown-linux-musl.tar.gz | tar xvz -C /tmp && mv /tmp/sccache-v0.2.15-${ARCH}-unknown-linux-musl/sccache /usr/bin/sccache && chmod +x /usr/bin/sccache && rm -rf /tmp/sccache-v0.2.15-${ARCH}-unknown-linux-musl
2329

2430
RUN apk add py3-pip && pip install gcovr==5 && apk del py3-pip

Diff for: containers/buildAlpine6.docker/tools/install-openldap.sh

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ set -e
33

44
export OPENSSLVERSION=$1
55
test -n "$OPENSSLVERSION"
6-
export OPENSSLPATH=`echo $OPENSSLVERSION | tr -d "a-zA-Z"`
6+
export OPENSSLPATH=`echo $OPENSSLVERSION | sed 's/\([a-zA-Z]$\|\.[0-9]$\)//g'`
77

88
# Compile openldap library:
99
export OPENLDAPVERSION=2.6.4
@@ -12,8 +12,9 @@ curl -O ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-$OPENLDAPV
1212
tar xzf openldap-$OPENLDAPVERSION.tgz
1313
cd openldap-$OPENLDAPVERSION
1414
# cp -a /tools/config.* ./build
15+
[ "$ARCH" = "x86_64" -a "${OPENSSLPATH:0:1}" = "3" ] && X86_64_SUFFIX="64"
1516
CPPFLAGS=-I/opt/openssl-$OPENSSLPATH/include \
16-
LDFLAGS=-L/opt/openssl-$OPENSSLPATH/lib \
17+
LDFLAGS=-L/opt/openssl-$OPENSSLPATH/lib$X86_64_SUFFIX \
1718
./configure --prefix=/opt/openssl-$OPENSSLPATH --with-threads --with-tls=openssl --enable-static --disable-shared
1819
make depend && make -j64
1920
make install

Diff for: containers/buildAlpine6.docker/tools/install-openssl.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@ set -e
44
# Compile openssl library:
55
export OPENSSLBRANCH=$1
66
export OPENSSLREVISION=$2
7-
export OPENSSLVERSION=${OPENSSLBRANCH}${OPENSSLREVISION}
7+
export OPENSSLVERSION="${OPENSSLBRANCH}${OPENSSLREVISION}"
88

99
echo $OPENSSLBRANCH
1010

11-
if [ "$OPENSSLBRANCH" != "1.1.1" ]; then
11+
if [ "$OPENSSLBRANCH" != "1.1.1" -a "$OPENSSLBRANCH" != "3.0" ]; then
1212
OLD="old/${OPENSSLBRANCH}/"
1313
fi;
1414

1515
echo "https://www.openssl.org/source/${OLD}openssl-$OPENSSLVERSION.tar.gz"
1616

1717
test -n "$OPENSSLVERSION"
18-
export OPENSSLPATH=`echo $OPENSSLVERSION | tr -d "a-zA-Z"`
18+
export OPENSSLPATH=`echo $OPENSSLVERSION | sed 's/\([a-zA-Z]$\|\.[0-9]$\)//g'`
1919
cd /tmp
2020
curl -O https://www.openssl.org/source/${OLD}openssl-$OPENSSLVERSION.tar.gz
2121
tar xzvf openssl-$OPENSSLVERSION.tar.gz

Diff for: containers/buildAlpine7.docker/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
scripts

Diff for: containers/buildAlpine7.docker/Dockerfile

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM alpine:3.17
2+
MAINTAINER Max Neunhoeffer <[email protected]>
3+
4+
ARG ARCH "x86_64"
5+
6+
RUN apk update && \
7+
apk add groff bison flex make cmake ccache python3 git linux-headers vim boost-dev ctags mandoc gdb fish openssh db-dev file libltdl zlib-dev curl coreutils texinfo gcovr py-setuptools valgrind libtool nodejs npm && apk add g++ prometheus bash
8+
9+
RUN apk add py3-pip && pip3 install PyYAML && apk del py3-pip
10+
11+
COPY ./tools/install-poll.sh /tools/
12+
RUN /tools/install-poll.sh
13+
14+
COPY ./tools/install-openssl.sh /tools/
15+
RUN [ "/tools/install-openssl.sh", "3.0", "8" ]
16+
17+
COPY ./tools/install-openldap.sh /tools/
18+
RUN [ "/tools/install-openldap.sh", "3.0.8" ]
19+
20+
RUN curl -L https://github.com/mozilla/sccache/releases/download/v0.3.1/sccache-v0.3.1-${ARCH}-unknown-linux-musl.tar.gz | tar xvz -C /tmp && mv /tmp/sccache-v0.3.1-${ARCH}-unknown-linux-musl/sccache /usr/bin/sccache && chmod +x /usr/bin/sccache && rm -rf /tmp/sccache-v0.3.1-${ARCH}-unknown-linux-musl
21+
22+
RUN apk add py3-pip && pip install gcovr==5 && apk del py3-pip
23+
24+
COPY ./scripts /scripts
25+
COPY ./tools/gcc /tools/
26+
COPY ./tools/g++ /tools/
27+
28+
RUN git config --global --add safe.directory '*'
29+
30+
CMD [ "/usr/bin/fish" ]

Diff for: containers/buildAlpine7.docker/scripts/dummy

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A dummy file to have the directory.

Diff for: containers/buildAlpine7.docker/tools/g++

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec /usr/bin/sccache g++ "$@"

Diff for: containers/buildAlpine7.docker/tools/gcc

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec /usr/bin/sccache gcc "$@"
+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/bin/sh
2+
set -e
3+
4+
export OPENSSLVERSION=$1
5+
test -n "$OPENSSLVERSION"
6+
export OPENSSLPATH=`echo $OPENSSLVERSION | sed 's/\([a-zA-Z]$\|\.[0-9]$\)//g'`
7+
8+
# Compile openldap library:
9+
export OPENLDAPVERSION=2.6.4
10+
cd /tmp
11+
curl -O ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-$OPENLDAPVERSION.tgz
12+
tar xzf openldap-$OPENLDAPVERSION.tgz
13+
cd openldap-$OPENLDAPVERSION
14+
# cp -a /tools/config.* ./build
15+
[ "$ARCH" -eq "x86_64" ] && X86_64_SUFFIX="64"
16+
CPPFLAGS=-I/opt/openssl-$OPENSSLPATH/include \
17+
LDFLAGS=-L/opt/openssl-$OPENSSLPATH/lib$X86_64_SUFFIX \
18+
./configure --prefix=/opt/openssl-$OPENSSLPATH --with-threads --with-tls=openssl --enable-static --disable-shared
19+
make depend && make -j64
20+
make install
21+
cd /tmp
22+
rm -rf openldap-$OPENLDAPVERSION.tgz openldap-$OPENLDAPVERSION
23+
+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/bin/sh
2+
set -e
3+
4+
# Compile openssl library:
5+
export OPENSSLBRANCH=$1
6+
export OPENSSLPATCH=$2
7+
export OPENSSLVERSION="${OPENSSLBRANCH}.${OPENSSLPATCH}"
8+
9+
echo $OPENSSLBRANCH
10+
11+
if [ "$OPENSSLBRANCH" != "3.0" ]; then
12+
OLD="old/${OPENSSLBRANCH}/"
13+
fi;
14+
15+
echo "https://www.openssl.org/source/${OLD}openssl-$OPENSSLVERSION.tar.gz"
16+
17+
test -n "$OPENSSLVERSION"
18+
export OPENSSLPATH=`echo $OPENSSLVERSION | sed 's/\.[0-9]$//g'`
19+
cd /tmp
20+
curl -O https://www.openssl.org/source/${OLD}openssl-$OPENSSLVERSION.tar.gz
21+
tar xzvf openssl-$OPENSSLVERSION.tar.gz
22+
cd openssl-$OPENSSLVERSION
23+
./config --prefix=/opt/openssl-$OPENSSLPATH no-async no-shared
24+
make build_libs
25+
make install_dev
26+
cd /tmp
27+
rm -rf openssl-$OPENSSLVERSION.tar.gz openssl-$OPENSSLVERSION

Diff for: containers/buildAlpine7.docker/tools/install-poll.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/sh
2+
set -e
3+
4+
# Make some warnings go away:
5+
echo "#include <poll.h>" > /usr/include/sys/poll.h

Diff for: containers/buildUbuntu6.docker/Dockerfile

+2
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ COPY ./tools/* /tools/
2222

2323
RUN [ "/tools/install.sh", "1.1.1", "t" ]
2424

25+
RUN [ "/tools/install.sh", "3.0", ".8" ]
26+
2527
COPY ./scripts /scripts
2628

2729
RUN export LC_ALL="C" && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && add-apt-repository -s "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${CLANG_VERSION} main" && apt install -y clang-${CLANG_VERSION} lldb-${CLANG_VERSION} lld-${CLANG_VERSION} libc++-${CLANG_VERSION}-dev libc++abi-${CLANG_VERSION}-dev libclang-common-${CLANG_VERSION}-dev libclang-rt-${CLANG_VERSION}-dev

Diff for: containers/buildUbuntu6.docker/tools/install.sh

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ update-alternatives --set c++ /usr/bin/g++
1818
# Compile openssl library:
1919
export OPENSSLBRANCH=$1
2020
export OPENSSLREVISION=$2
21-
export OPENSSLVERSION=${OPENSSLBRANCH}${OPENSSLREVISION}
21+
export OPENSSLVERSION="${OPENSSLBRANCH}${OPENSSLREVISION}"
2222

23-
if [ "$OPENSSLBRANCH" != "1.1.1" ]; then
23+
if [ "$OPENSSLBRANCH" != "1.1.1" -a "$OPENSSLBRANCH" != "3.0" ]; then
2424
OLD="old/${OPENSSLBRANCH}/"
2525
fi;
2626

27-
export OPENSSLPATH=`echo $OPENSSLVERSION | tr -d "a-zA-Z"`
27+
export OPENSSLPATH=`echo $OPENSSLVERSION | sed 's/\([a-zA-Z]$\|\.[0-9]$\)//g'`
2828
cd /tmp
2929
curl -O https://www.openssl.org/source/openssl-$OPENSSLVERSION.tar.gz
3030
tar xzf openssl-$OPENSSLVERSION.tar.gz

Diff for: containers/buildUbuntu7.docker/Dockerfile

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
FROM ubuntu:22.04
2+
MAINTAINER Max Neunhoeffer <[email protected]>
3+
4+
ARG ARCH "x86_64"
5+
6+
ENV COMPILER_VERSION 12
7+
8+
ENV CLANG_VERSION 15
9+
10+
RUN apt-get update --fix-missing && \
11+
apt-get install -y software-properties-common && \
12+
apt-get update && \
13+
apt-get upgrade -y
14+
15+
ENV DEBIAN_FRONTEND=noninteractive
16+
17+
RUN apt-get update --fix-missing && apt-get install -y build-essential gcc-${COMPILER_VERSION} g++-${COMPILER_VERSION} cmake make bison flex python3 ccache git libjemalloc-dev vim exuberant-ctags gdb fish psmisc sudo debhelper debconf jq wget libdb-dev curl gnupg2 gcovr prometheus bc tcpdump && apt-get clean
18+
19+
RUN curl -L https://github.com/mozilla/sccache/releases/download/v0.3.1/sccache-v0.3.1-${ARCH}-unknown-linux-musl.tar.gz | tar xvz -C /tmp && mv /tmp/sccache-v0.3.1-${ARCH}-unknown-linux-musl/sccache /usr/bin/sccache && chmod +x /usr/bin/sccache && rm -rf /tmp/sccache-v0.2.15-${ARCH}-unknown-linux-musl
20+
21+
COPY ./tools/* /tools/
22+
23+
RUN [ "/tools/install.sh", "3.0", "8" ]
24+
25+
COPY ./scripts /scripts
26+
27+
RUN export LC_ALL="C" && wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && add-apt-repository -s "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${CLANG_VERSION} main" && apt install -y clang-${CLANG_VERSION} lldb-${CLANG_VERSION} lld-${CLANG_VERSION} libc++-${CLANG_VERSION}-dev libc++abi-${CLANG_VERSION}-dev libclang-common-${CLANG_VERSION}-dev libclang-rt-${CLANG_VERSION}-dev
28+
29+
RUN update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-${CLANG_VERSION} 100 && update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${CLANG_VERSION} 100
30+
31+
RUN LC_ALL="C" update-ccache-symlinks
32+
33+
RUN git config --global --add safe.directory '*'
34+
35+
RUN apt-get install -y python3-pip && pip3 install py7zr psutil
36+
37+
CMD [ "/usr/bin/fish" ]

Diff for: containers/buildUbuntu7.docker/scripts/dummy

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
A file to keep the directory.

Diff for: containers/buildUbuntu7.docker/tools/clang

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec /usr/bin/sccache clang "$@"

Diff for: containers/buildUbuntu7.docker/tools/clang++

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec /usr/bin/sccache clang++ "$@"

Diff for: containers/buildUbuntu7.docker/tools/g++

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec /usr/bin/sccache g++ "$@"

Diff for: containers/buildUbuntu7.docker/tools/gcc

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#!/bin/sh
2+
exec /usr/bin/sccache gcc "$@"

Diff for: containers/buildUbuntu7.docker/tools/install.sh

+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
#!/bin/sh
2+
3+
# Set links for GCC
4+
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${COMPILER_VERSION} 10 \
5+
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-${COMPILER_VERSION} \
6+
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-${COMPILER_VERSION} \
7+
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-${COMPILER_VERSION} \
8+
--slave /usr/bin/gcov gcov /usr/bin/gcov-${COMPILER_VERSION}
9+
10+
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${COMPILER_VERSION} 10
11+
12+
update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
13+
update-alternatives --set cc /usr/bin/gcc
14+
15+
update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
16+
update-alternatives --set c++ /usr/bin/g++
17+
18+
# Compile openssl library:
19+
export OPENSSLBRANCH=$1
20+
export OPENSSLPATCH=$2
21+
export OPENSSLVERSION="${OPENSSLBRANCH}.${OPENSSLPATCH}"
22+
23+
if [ "$OPENSSLBRANCH" != "3.0" ]; then
24+
OLD="old/${OPENSSLBRANCH}/"
25+
fi;
26+
27+
export OPENSSLPATH=`echo $OPENSSLVERSION | sed 's/\.[0-9]$//g'`
28+
cd /tmp
29+
curl -O https://www.openssl.org/source/openssl-$OPENSSLVERSION.tar.gz
30+
tar xzf openssl-$OPENSSLVERSION.tar.gz
31+
cd openssl-$OPENSSLVERSION
32+
./config --prefix=/opt/openssl-$OPENSSLPATH no-async no-dso
33+
make
34+
make install_dev
35+
cd /tmp
36+
rm -rf openssl-$OPENSSLVERSION.tar.gz openssl-$OPENSSLVERSION
37+
38+
# Compile openldap library:
39+
export OPENLDAPVERSION=2.6.4
40+
cd /tmp
41+
curl -O ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-$OPENLDAPVERSION.tgz
42+
tar xzf openldap-$OPENLDAPVERSION.tgz
43+
cd openldap-$OPENLDAPVERSION
44+
CPPFLAGS=-I/opt/openssl-$OPENSSLPATH/include \
45+
LDFLAGS=-L/opt/openssl-$OPENSSLPATH/lib64 \
46+
./configure -prefix=/opt/openssl-$OPENSSLPATH --enable-static
47+
make depend && make -j64
48+
make install
49+
cd /tmp
50+
rm -rf openldap-$OPENLDAPVERSION.tgz openldap-$OPENLDAPVERSION
51+
52+
# Clean up any strange cores
53+
rm -rf /core.*

0 commit comments

Comments
 (0)