docker-scripts/linux/ecosystem/epicmorg/debian/sid/develop/Dockerfile

1057 lines
38 KiB
Docker
Raw Normal View History

2024-08-19 16:16:51 +03:00
FROM epicmorg/debian:sid
LABEL maintainer="EpicMorg DevTeam, developer@epicm.org"
ARG DEBIAN_FRONTEND=noninteractive
##################################################################
# ARGuments
##################################################################
# /etc/ld.so.conf.d/
ARG LD_CONF_DIR=/etc/ld.so.conf.d/
2024-08-25 21:24:33 +03:00
# steam runtime sdk
ENV STEAM_RUNTIME_SDK_DIR=${EMG_LOCAL_BASE_DIR}/valve/steam/runtime-sdk/latest
ARG STEAM_RUNTIME_SDK_BIN_DIR=${STEAM_RUNTIME_SDK_DIR}/bin
ARG STEAM_RUNTIME_SDK_URL=http://media.steampowered.com/client/runtime/steam-runtime-sdk_latest.tar.xz
ARG STEAM_RUNTIME_SDK_TEMP=/tmp/steam-runtime-sdk_latest.tar.xz
2024-08-19 16:16:51 +03:00
# cmake compiller
ENV CMAKE_VERSION=3.30.2
ENV CMAKE_DIR=${EMG_LOCAL_BASE_DIR}/cmake/${CMAKE_VERSION}
ARG CMAKE_BIN_DIR=${CMAKE_DIR}/bin
ARG CMAKE_DOWNLOAD_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
ARG CMAKE_TEMP=/tmp/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
# flutter source tarball
ENV FLUTTER_VERSION=3.22.3
ENV FLUTTER_CHANNEL=stable
ENV FLUTTER_DIR=${EMG_LOCAL_BASE_DIR}/flutter/${FLUTTER_VERSION}
ARG FLUTTER_BIN_DIR=${FLUTTER_DIR}/bin
ARG FLUTTER_DOWNLOAD_URL=https://storage.googleapis.com/flutter_infra_release/releases/${FLUTTER_CHANNEL}/linux/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz
ARG FLUTTER_TEMP=/tmp/flutter_linux_${FLUTTER_VERSION}-${FLUTTER_CHANNEL}.tar.xz
# ninja source tarball
ENV NINJA_VERSION=1.12.1
ENV NINJA_DIR=${EMG_LOCAL_BASE_DIR}/ninja/${NINJA_VERSION}
ARG NINJA_BIN_DIR=${NINJA_DIR}/bin
ARG NINJA_DOWNLOAD_URL=https://github.com/ninja-build/ninja/releases/download/v${NINJA_VERSION}/ninja-linux.zip
ARG NINJA_TEMP=/tmp/ninja-linux.zip
# GO source tarball
ENV GO_VERSION=1.22.5
ENV GO_DIR=${EMG_LOCAL_BASE_DIR}/go/${GO_VERSION}
ARG GO_BIN_DIR=${GO_DIR}/bin
ARG GO_DOWNLOAD_URL=https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz
ARG GO_TEMP=/tmp/go${GO_VERSION}.linux-amd64.tar.gz
# PCRE source tarball
ENV PCRE_VERSION=10.44
ENV PCRE_DIR=${EMG_LOCAL_BASE_DIR}/pcre2/${PCRE_VERSION}
ENV PCRE_BIN_DIR=${PCRE_DIR}/bin
ENV PCRE_LIB_DIR=${PCRE_DIR}/lib
ENV PCRE_INC_DIR=${PCRE_DIR}/include
ENV PCRE_SRC_DIR=/usr/local/src/pcre2/${PCRE_VERSION}
ARG PCRE_DOWNLOAD_URL=https://github.com/PCRE2Project/pcre2/releases/download/pcre2-${PCRE_VERSION}/pcre2-${PCRE_VERSION}.tar.gz
ARG PCRE_TEMP=/tmp/pcre2-${PCRE_VERSION}.tar.gz
ARG PCRE_TEMP_SRC=/tmp/pcre2-${PCRE_VERSION}
# luajit2-openresty source tarball
ENV LUAJIT2OR_VERSION=2.1
ENV LUAJIT2OR_DIR=${EMG_LOCAL_BASE_DIR}/luajit2/${LUAJIT2OR_VERSION}
ENV LUAJIT2OR_BIN_DIR=${PCRE_DIR}/bin
ENV LUAJIT2OR_LIB_DIR=${LUAJIT2OR_DIR}/lib
ENV LUAJIT2OR_INC_DIR=${LUAJIT2OR_DIR}/include
ENV LUAJIT2OR_SRC_DIR=/usr/local/src/luajit2/${LUAJIT2OR_VERSION}
ARG LUAJIT2OR_DOWNLOAD_URL=https://github.com/openresty/luajit2.git
ARG LUAJIT2OR_TEMP_SRC=/tmp/luajit2
# zlib source tarball
ENV ZLIB_VERSION=1.3.1
ENV ZLIB_DIR=${EMG_LOCAL_BASE_DIR}/zlib/${ZLIB_VERSION}
ENV ZLIB_INC_DIR=${ZLIB_DIR}/include
ENV ZLIB_LIB_DIR=${ZLIB_DIR}/lib
ENV ZLIB_SRC_DIR=/usr/local/src/zlib/${ZLIB_VERSION}
ARG ZLIB_DOWNLOAD_URL=https://zlib.net/fossils/zlib-${ZLIB_VERSION}.tar.gz
ARG ZLIB_TEMP=/tmp/zlib-${ZLIB_VERSION}.tar.gz
ARG ZLIB_TEMP_SRC=/tmp/zlib-${ZLIB_VERSION}
# zstd source tarball
ENV ZSTD_VERSION=1.5.6
ENV ZSTD_DIR=${EMG_LOCAL_BASE_DIR}/zstd/${ZLIB_VERSION}
ENV ZSTD_BIN_DIR=${ZSTD_DIR}/bin
ENV ZSTD_INC_DIR=${ZSTD_DIR}/include
ENV ZSTD_LIB_DIR=${ZSTD_DIR}/lib
ENV ZSTD_SRC_DIR=/usr/local/src/zstd/${ZSTD_VERSION}
ARG ZSTD_DOWNLOAD_URL=https://github.com/facebook/zstd/releases/download/v${ZSTD_VERSION}/zstd-${ZSTD_VERSION}.tar.gz
ARG ZSTD_TEMP=/tmp/zstd-${ZSTD_VERSION}.tar.gz
ARG ZSTD_TEMP_SRC=/tmp/zstd-${ZSTD_VERSION}
# IP2Location-C-Library source tarball
ENV IP2LOC_VERSION=8.7.0
ENV IP2LOC_DIR=${EMG_LOCAL_BASE_DIR}/ip2location/${IP2LOC_VERSION}
ENV IP2LOC_BIN_DIR=${IP2LOC_DIR}/bin
ENV IP2LOC_INC_DIR=${IP2LOC_DIR}/include
ENV IP2LOC_LIB_DIR=${IP2LOC_DIR}/lib
ENV IP2LOC_SRC_DIR=/usr/local/src/ip2location/${IP2LOC_VERSION}
ARG IP2LOC_DOWNLOAD_URL=https://github.com/chrislim2888/IP2Location-C-Library/archive/refs/heads/master.tar.gz
ARG IP2LOC_TEMP=/tmp/master.tar.gz
ARG IP2LOC_TEMP_SRC=/tmp/IP2Location-C-Library-master
# libatomic_ops source tarball
ENV LIBATOMICOPS_VERSION=7.8.2
ENV LIBATOMICOPS_DIR=${EMG_LOCAL_BASE_DIR}/libatomic_ops/${LIBATOMICOPS_VERSION}
ENV LIBATOMICOPS_INC_DIR=${LIBATOMICOPS_DIR}/include
ENV LIBATOMICOPS_LIB_DIR=${LIBATOMICOPS_DIR}/lib
ENV LIBATOMICOPS_SRC_DIR=/usr/local/src/libatomic_ops/${LIBATOMICOPS_VERSION}
ARG LIBATOMICOPS_DOWNLOAD_URL=https://github.com/ivmai/libatomic_ops/releases/download/v${LIBATOMICOPS_VERSION}/libatomic_ops-${LIBATOMICOPS_VERSION}.tar.gz
ARG LIBATOMICOPS_TEMP=/tmp/libatomic_ops-${LIBATOMICOPS_VERSION}.tar.gz
ARG LIBATOMICOPS_TEMP_SRC=/tmp/libatomic_ops-${LIBATOMICOPS_VERSION}
# libimagequant source
ENV LIBIMAGEQUANT_VERSION=4.3.1
ARG LIBIMAGEQUANT_DOWNLOAD_URL=https://github.com/ImageOptim/libimagequant
ENV LIBIMAGEQUANT_DIR=${EMG_LOCAL_BASE_DIR}/libimagequant
ENV LIBIMAGEQUANT_SRC_DIR=/usr/local/src/libimagequant/${LIBIMAGEQUANT_VERSION}
ARG LIBIMAGEQUANT_TEMP_SRC=/tmp/libimagequant
# libraqm source
ENV LIBRAQM_VERSION=0.10.1
ARG LIBRAQM_DOWNLOAD_URL=https://github.com/HOST-Oman/libraqm
ENV LIBRAQM_DIR=${EMG_LOCAL_BASE_DIR}/libraqm
ENV LIBRAQM_SRC_DIR=/usr/local/src/libraqm/${LIBRAQM_VERSION}
ARG LIBRAQM_TEMP_SRC=/tmp/libraqm
# libgd source tarball
ENV LIBGD_VERSION=2.3.3
ENV LIBGD_DIR=${EMG_LOCAL_BASE_DIR}/libgd/${LIBGD_VERSION}
ENV LIBGD_BIN_DIR=${LIBGD_DIR}/bin
ENV LIBGD_INC_DIR=${LIBGD_DIR}/include
ENV LIBGD_LIB_DIR=${LIBGD_DIR}/lib
ENV LIBGD_SRC_DIR=/usr/local/src/libgd/${LIBGD_VERSION}
ARG LIBGD_DOWNLOAD_URL=https://github.com/libgd/libgd/releases/download/gd-${LIBGD_VERSION}/libgd-${LIBGD_VERSION}.tar.gz
ARG LIBGD_TEMP=/tmp/libgd-${LIBGD_VERSION}.tar.gz
ARG LIBGD_TEMP_SRC=/tmp/libgd-${LIBGD_VERSION}
# libxml2 source tarball
ENV LIBXML2_VERSION=2.13.2
ENV LIBXML2_DIR=${EMG_LOCAL_BASE_DIR}/libxml2/${LIBXML2_VERSION}
ENV LIBXML2_BIN_DIR=${LIBXML2_DIR}/bin
ENV LIBXML2_INC_DIR=${LIBXML2_DIR}/include
ENV LIBXML2_LIB_DIR=${LIBXML2_DIR}/lib
ENV LIBXML2_SRC_DIR=/usr/local/src/libxml2/${LIBXML2_VERSION}
ARG LIBXML2_DOWNLOAD_URL=https://gitlab.gnome.org/GNOME/libxml2/-/archive/v${LIBXML2_VERSION}/libxml2-v${LIBXML2_VERSION}.tar.gz
ARG LIBXML2_TEMP=/tmp/libxml2-v${LIBXML2_VERSION}.tar.gz
ARG LIBXML2_TEMP_SRC=/tmp/libxml2-v${LIBXML2_VERSION}
# libxslt source tarball
ENV LIBXSLT_VERSION=1.1.42
ENV LIBXSLT_DIR=${EMG_LOCAL_BASE_DIR}/libxslt/${LIBXSLT_VERSION}
ENV LIBXSLT_BIN_DIR=${LIBXSLT_DIR}/bin
ENV LIBXSLT_INC_DIR=${LIBXSLT_DIR}/include
ENV LIBXSLT_LIB_DIR=${LIBXSLT_DIR}/lib
ENV LIBXSLT_SRC_DIR=/usr/local/src/libxslt/${LIBXSLT_VERSION}
ARG LIBXSLT_DOWNLOAD_URL=https://gitlab.gnome.org/GNOME/libxslt/-/archive/v${LIBXSLT_VERSION}/libxslt-v${LIBXSLT_VERSION}.tar.gz
ARG LIBXSLT_TEMP=/tmp/libxslt-v${LIBXSLT_VERSION}.tar.gz
ARG LIBXSLT_TEMP_SRC=/tmp/libxslt-v${LIBXSLT_VERSION}
# maxmind geoip
ENV MM_GEOIP_VERSION=1.6.12
ENV MM_GEOIP_DIR=${EMG_LOCAL_BASE_DIR}/geoip/${MM_GEOIP_VERSION}
ENV MM_GEOIP_BIN_DIR=${MM_GEOIP_DIR}/bin
ENV MM_GEOIP_INC_DIR=${MM_GEOIP_DIR}/include
ENV MM_GEOIP_LIB_DIR=${MM_GEOIP_DIR}/lib
ENV MM_GEOIP_SRC_DIR=/usr/local/src/geoip/${MM_GEOIP_VERSION}
ARG MM_GEOIP_DOWNLOAD_URL=https://github.com/maxmind/geoip-api-c/releases/download/v${MM_GEOIP_VERSION}/GeoIP-${MM_GEOIP_VERSION}.tar.gz
ARG MM_GEOIP_TEMP=/tmp/GeoIP-${MM_GEOIP_VERSION}.tar.gz
ARG MM_GEOIP_TEMP_SRC=/tmp/GeoIP-${MM_GEOIP_VERSION}
# Google perftools
ENV GPERFTOOLS_VERSION=2.15
ENV GPERFTOOLS_DIR=${EMG_LOCAL_BASE_DIR}/gperftools/${GPERFTOOLS_VERSION}
ENV GPERFTOOLS_BIN_DIR=${GPERFTOOLS_DIR}/bin
ENV GPERFTOOLS_INC_DIR=${GPERFTOOLS_DIR}/include
ENV GPERFTOOLS_LIB_DIR=${GPERFTOOLS_DIR}/lib
ENV GPERFTOOLS_SRC_DIR=/usr/local/src/gperftools/${GPERFTOOLS_VERSION}
ARG GPERFTOOLS_DOWNLOAD_URL=https://github.com/gperftools/gperftools/releases/download/gperftools-${GPERFTOOLS_VERSION}/gperftools-${GPERFTOOLS_VERSION}.tar.gz
ARG GPERFTOOLS_TEMP=/tmp/gperftools-${GPERFTOOLS_VERSION}.tar.gz
ARG GPERFTOOLS_TEMP_SRC=/tmp/gperftools-${GPERFTOOLS_VERSION}
# OpenSSL 1.1.1
ENV OPENSSL_111_VERSION=1.1.1
ENV OPENSSL_111_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_111_VERSION}
ENV OPENSSL_111_BIN_DIR=${OPENSSL_111_DIR}/bin
ENV OPENSSL_111_INC_DIR=${OPENSSL_111_DIR}/include
ENV OPENSSL_111_LIB_DIR=${OPENSSL_111_DIR}/lib
ENV OPENSSL_111_SRC_DIR=/usr/local/src/openssl/${OPENSSL_111_VERSION}
ARG OPENSSL_111_DOWNLOAD_URL=https://www.openssl.org/source/old/${OPENSSL_111_VERSION}/openssl-${OPENSSL_111_VERSION}w.tar.gz
ARG OPENSSL_111_TEMP=/tmp/openssl-${OPENSSL_111_VERSION}w.tar.gz
ARG OPENSSL_111_TEMP_SRC=/tmp/openssl-${OPENSSL_111_VERSION}w
# OpenSSL 3.0.14
ENV OPENSSL_30_VERSION=3.0.14
ENV OPENSSL_30_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_30_VERSION}
ENV OPENSSL_30_BIN_DIR=${OPENSSL_30_DIR}/bin
ENV OPENSSL_30_INC_DIR=${OPENSSL_30_DIR}/include
ENV OPENSSL_30_LIB_DIR=${OPENSSL_30_DIR}/lib64
ENV OPENSSL_30_SRC_DIR=/usr/local/src/openssl/${OPENSSL_30_VERSION}
ARG OPENSSL_30_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_30_VERSION}.tar.gz
ARG OPENSSL_30_TEMP=/tmp/openssl-${OPENSSL_30_VERSION}.tar.gz
ARG OPENSSL_30_TEMP_SRC=/tmp/openssl-${OPENSSL_30_VERSION}
# OpenSSL 3.1.6
ENV OPENSSL_31_VERSION=3.1.6
ENV OPENSSL_31_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_31_VERSION}
ENV OPENSSL_31_BIN_DIR=${OPENSSL_31_DIR}/bin
ENV OPENSSL_31_INC_DIR=${OPENSSL_31_DIR}/include
ENV OPENSSL_31_LIB_DIR=${OPENSSL_31_DIR}/lib64
ENV OPENSSL_31_SRC_DIR=/usr/local/src/openssl/${OPENSSL_31_VERSION}
ARG OPENSSL_31_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_31_VERSION}.tar.gz
ARG OPENSSL_31_TEMP=/tmp/openssl-${OPENSSL_31_VERSION}.tar.gz
ARG OPENSSL_31_TEMP_SRC=/tmp/openssl-${OPENSSL_31_VERSION}
# OpenSSL 3.2.2
ENV OPENSSL_32_VERSION=3.2.2
ENV OPENSSL_32_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_32_VERSION}
ENV OPENSSL_32_BIN_DIR=${OPENSSL_32_DIR}/bin
ENV OPENSSL_32_INC_DIR=${OPENSSL_32_DIR}/include
ENV OPENSSL_32_LIB_DIR=${OPENSSL_32_DIR}/lib64
ENV OPENSSL_32_SRC_DIR=/usr/local/src/openssl/${OPENSSL_32_VERSION}
ARG OPENSSL_32_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_32_VERSION}.tar.gz
ARG OPENSSL_32_TEMP=/tmp/openssl-${OPENSSL_32_VERSION}.tar.gz
ARG OPENSSL_32_TEMP_SRC=/tmp/openssl-${OPENSSL_32_VERSION}
# OpenSSL 3.3.1
ENV OPENSSL_33_VERSION=3.3.1
ENV OPENSSL_33_DIR=${EMG_LOCAL_BASE_DIR}/openssl/${OPENSSL_33_VERSION}
ENV OPENSSL_33_BIN_DIR=${OPENSSL_33_DIR}/bin
ENV OPENSSL_33_INC_DIR=${OPENSSL_33_DIR}/include
ENV OPENSSL_33_LIB_DIR=${OPENSSL_33_DIR}/lib64
ENV OPENSSL_33_SRC_DIR=/usr/local/src/openssl/${OPENSSL_33_VERSION}
ARG OPENSSL_33_DOWNLOAD_URL=https://www.openssl.org/source/openssl-${OPENSSL_33_VERSION}.tar.gz
ARG OPENSSL_33_TEMP=/tmp/openssl-${OPENSSL_33_VERSION}.tar.gz
ARG OPENSSL_33_TEMP_SRC=/tmp/openssl-${OPENSSL_33_VERSION}
# LibreSSL
ENV LIBRESSL_VERSION=3.9.2
ENV LIBRESSL_DIR=${EMG_LOCAL_BASE_DIR}/libressl/${LIBRESSL_VERSION}
ENV LIBRESSL_INC_DIR=${LIBRESSL_DIR}/include
ENV LIBRESSL_LIB_DIR=${LIBRESSL_DIR}/lib
ENV LIBRESSL_SRC_DIR=/usr/local/src/libressl/${LIBRESSL_VERSION}
ARG LIBRESSL_DOWNLOAD_URL=https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${LIBRESSL_VERSION}.tar.gz
ARG LIBRESSL_TEMP=/tmp/libressl-${LIBRESSL_VERSION}.tar.gz
ARG LIBRESSL_TEMP_SRC=/tmp/libressl-${LIBRESSL_VERSION}
# BoringSSL
ENV BORINGSSL_VERSION=master
ENV BORINGSSL_DIR=${EMG_LOCAL_BASE_DIR}/boringssl/${BORINGSSL_VERSION}
ENV BORINGSSL_INC_DIR=${BORINGSSL_DIR}/include
ENV BORINGSSL_LIB_DIR=${BORINGSSL_DIR}/lib
ENV BORINGSSL_SRC_DIR=/usr/local/src/boringssl/${BORINGSSL_VERSION}
ARG BORINGSSL_DOWNLOAD_URL=https://boringssl.googlesource.com/boringssl
ARG BORINGSSL_TEMP_SRC=/tmp/boringssl
##################################################################
# sid sources list
##################################################################
RUN apt-get update && \
apt-get dist-upgrade -y
##################################################################
# installing
##################################################################
RUN apt-get update && \
apt-get install -y --allow-unauthenticated --no-install-recommends --no-install-suggests --allow-downgrades \
build-essential \
autoconf-archive \
gnu-standards \
cmake \
meson \
libunwind-dev \
at \
autopkgtest \
gcc-multilib \
g++-multilib \
libxkbcommon-dev \
libsqlite3-dev \
liblzma-dev \
libgtk-3-dev \
zlib1g-dev \
libfreetype6-dev \
libegl1-mesa-dev \
libgles2-mesa-dev \
libgbm-dev \
uuid-dev \
nvidia-cg-toolkit \
nvidia-cg-dev \
libavutil-dev \
libavcodec-dev \
libxvidcore-dev \
libtwolame-dev \
libmp3lame-dev \
libopus-dev \
libavcodec-extra \
libtheora-dev \
libvorbis-dev \
libflac-dev \
libx264-dev \
libx265-dev \
libaom-dev \
libdav1d-dev \
libaio-dev \
libsdl2-dev \
libsdl-image1.2-dev \
libxml2-dev \
yasm \
devscripts \
automake \
libtool \
autotools-dev \
dpkg-dev \
fakeroot \
checkinstall \
dh-make \
zlib1g \
zlib1g-dev \
libssl-dev \
libxslt-dev \
libgd-dev \
libpcre2-dev \
libgeoip-dev \
libxml++*-dev \
libkrb5-dev \
libperl-dev \
krb5-user \
luajit \
liblua5.1-0-dev \
libmaxminddb-dev \
libpam0g-dev \
libldap2-dev \
libavformat-dev \
libavfilter-dev \
2024-08-19 21:03:55 +03:00
libavif-dev \
2024-08-19 16:16:51 +03:00
libswscale-dev \
libavcodec-dev \
libz-dev \
libhiredis-dev \
libzip-dev \
libcrypto++-dev \
libbz2-dev \
libvpx-dev \
libsasl2-dev \
tcl \
g++ \
gcc \
libc6-dev \
make \
pkg-config \
python3-all-dev \
g++-multilib \
autoconf \
automake \
libtool \
gdb \
strace \
libbsd-dev \
libedit-dev \
libmd-dev \
valgrind \
# valgrind-dbg \
valgrind-if-available \
valgrind-mpi \
gcovr \
lcov \
libsctp-dev \
libharfbuzz-dev \
libfribidi-dev \
libpng-dev \
libjpeg-dev \
libfreetype6-dev
##################################################################
# Rust compillers
##################################################################
ENV CARGO_HOME=${EMG_LOCAL_BASE_DIR}/cargo
ENV RUSTUP_HOME=${EMG_LOCAL_BASE_DIR}/rustup
ARG CARGO_BIN=${CARGO_HOME}/bin
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path --profile complete --default-toolchain stable --verbose
ENV PATH="$CARGO_HOME/bin:${PATH}"
RUN echo "=============================================" && \
echo cargo $(cargo --version) && \
echo rustc $(rustc --version) && \
echo rustup $(rustup --version) && \
echo "============================================="
##################################################################
# CMake
##################################################################
RUN mkdir -p ${CMAKE_DIR}
ADD ${CMAKE_DOWNLOAD_URL} /tmp
RUN tar -xf ${CMAKE_TEMP} --directory ${CMAKE_DIR} --strip-components=1 && \
chmod +x ${CMAKE_BIN_DIR}/ccmake && \
chmod +x ${CMAKE_BIN_DIR}/cmake && \
chmod +x ${CMAKE_BIN_DIR}/cmake-gui && \
chmod +x ${CMAKE_BIN_DIR}/cpack && \
chmod +x ${CMAKE_BIN_DIR}/ctest
ENV PATH="${CMAKE_BIN_DIR}:${PATH}"
RUN echo "=============================================" && \
echo $(cmake --version) && \
echo "============================================="
2024-08-25 21:24:33 +03:00
##################################################################
# steam runtime and ssdk
##################################################################
RUN mkdir -p ${STEAM_RUNTIME_SDK_DIR}
ADD ${STEAM_RUNTIME_SDK_URL} /tmp
RUN tar -xf ${STEAM_RUNTIME_SDK_TEMP} --directory ${STEAM_RUNTIME_SDK_DIR} --strip-components=1 && \
chmod +x ${STEAM_RUNTIME_SDK_BIN_DIR} -R && \
chmod +x ${STEAM_RUNTIME_SDK_DIR}/setup.sh && \
chmod +x ${STEAM_RUNTIME_SDK_DIR}/shell.sh && \
chmod +x ${STEAM_RUNTIME_SDK_DIR}/shell-amd64.sh && \
chmod +x ${STEAM_RUNTIME_SDK_DIR}/shell-i386.sh
# printf '%s\n' 3 1 Y Y Y | ./setup.sh
2024-08-19 16:16:51 +03:00
##################################################################
# Flutter SDK
##################################################################
RUN mkdir -p ${FLUTTER_DIR}
ADD ${FLUTTER_DOWNLOAD_URL} /tmp
RUN tar -xf ${FLUTTER_TEMP} --directory ${FLUTTER_DIR} --strip-components=1 && \
chmod +x ${FLUTTER_BIN_DIR}/dart && \
chmod +x ${FLUTTER_BIN_DIR}/flutter && \
chmod +x ${FLUTTER_BIN_DIR}/internal/shared.sh && \
chmod +x ${FLUTTER_BIN_DIR}/internal/update_dart_sdk.sh
ENV PATH="${FLUTTER_BIN_DIR}:${PATH}"
RUN git config --global --add safe.directory ${FLUTTER_DIR} && \
flutter precache && \
flutter config --no-analytics && \
dart --disable-analytics
RUN echo "=============================================" && \
echo dart $(dart --version) && \
echo flutter $(flutter --version) && \
echo "============================================="
##################################################################
# GO compillers
##################################################################
RUN mkdir -p ${GO_DIR}
ADD ${GO_DOWNLOAD_URL} /tmp
RUN tar -xzf ${GO_TEMP} --directory ${GO_DIR} --strip-components=1 && \
chmod +x ${GO_BIN_DIR}/go && \
chmod +x ${GO_BIN_DIR}/gofmt
ENV GOPATH=${GO_DIR}
ENV PATH="${GO_BIN_DIR}:${PATH}"
RUN echo "=============================================" && \
echo go $(go version) && \
echo "============================================="
##################################################################
# Get NINJA binary
##################################################################
RUN mkdir -p ${NINJA_BIN_DIR}
ADD ${NINJA_DOWNLOAD_URL} /tmp
RUN 7zz x ${NINJA_TEMP} -o${NINJA_BIN_DIR} -y && \
chmod +x ${NINJA_BIN_DIR}/ninja
ENV PATH="${NINJA_BIN_DIR}:${PATH}"
RUN echo "=============================================" && \
echo ninja $(ninja --version) && \
echo "============================================="
##################################################################
# ZLIB library
##################################################################
RUN mkdir -p ${ZLIB_DIR} ${ZLIB_SRC_DIR}
ADD ${ZLIB_DOWNLOAD_URL} /tmp
RUN tar -xzf ${ZLIB_TEMP} --directory /tmp && \
cp -rfv ${ZLIB_TEMP_SRC}/* ${ZLIB_SRC_DIR} && \
ln -sf ${ZLIB_SRC_DIR} ${ZLIB_DIR}/src && \
cd ${ZLIB_TEMP_SRC} && \
./configure \
# --static \
--prefix=${ZLIB_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# ZLIB support" >> ${LD_CONF_DIR}/ZLIB.conf && \
echo ${ZLIB_LIB_DIR} >> ${LD_CONF_DIR}/ZLIB.conf && \
ldconfig
##################################################################
# ZSTD library
##################################################################
RUN mkdir -p ${ZSTD_DIR} ${ZSTD_SRC_DIR}
ADD ${ZSTD_DOWNLOAD_URL} /tmp
RUN tar -xzf ${ZSTD_TEMP} --directory /tmp && \
cp -rfv ${ZSTD_TEMP_SRC}/* ${ZSTD_SRC_DIR} && \
ln -sf ${ZSTD_SRC_DIR} ${ZSTD_DIR}/src && \
cd ${ZSTD_TEMP_SRC} && \
mkdir -p ${ZSTD_TEMP_SRC}/build/cmake/builddir && \
cd ${ZSTD_TEMP_SRC}/build/cmake/builddir && \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${ZSTD_DIR} -DZSTD_BUILD_STATIC=ON -DZSTD_BUILD_SHARED=ON .. && \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# ZSTD support" >> ${LD_CONF_DIR}/ZSTD.conf && \
echo ${ZSTD_LIB_DIR} >> ${LD_CONF_DIR}/ZSTD.conf && \
ldconfig
ENV PATH="${ZSTD_BIN_DIR}:${PATH}"
##################################################################
# PRCE2 static library
##################################################################
RUN mkdir -p ${PCRE_BIN_DIR} ${PCRE_SRC_DIR}
ADD ${PCRE_DOWNLOAD_URL} /tmp
RUN tar -xzf ${PCRE_TEMP} --directory /tmp && \
cp -rfv ${PCRE_TEMP_SRC}/* ${PCRE_SRC_DIR} && \
ln -sf ${PCRE_SRC_DIR} ${PCRE_DIR}/src && \
cd ${PCRE_TEMP_SRC} && \
./configure --prefix=${PCRE_DIR} \
--disable-silent-rules \
--enable-shared \
--enable-static \
--enable-rebuild-chartables \
--enable-pcre2-8 \
--enable-pcre2-16 \
--enable-pcre2-32 \
--enable-jit \
--enable-newline-is-cr \
--enable-newline-is-lf \
--enable-newline-is-anycrlf \
--enable-newline-is-any \
--enable-newline-is-nul \
--enable-bsr-anycrlf \
--enable-pcre2grep-libz \
--enable-pcre2grep-libbz2 \
--enable-pcre2test-libedit \
--enable-unicode \
--enable-valgrind \
# --enable-fuzz-support \
# --enable-diff-fuzz-support \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# PRCE2 support" >> ${LD_CONF_DIR}/PRCE2.conf && \
echo ${PCRE_LIB_DIR} >> ${LD_CONF_DIR}/PRCE2.conf && \
ldconfig
ENV PATH="${PCRE_BIN_DIR}:${PATH}"
RUN echo "=============================================" && \
echo pcre2 $(pcre2-config --version) && \
echo "============================================="
##################################################################
# LuaJIT2 OpenResty 2.1
##################################################################
RUN mkdir -p ${LUAJIT2OR_DIR} ${LUAJIT2OR_SRC_DIR} && \
git clone ${LUAJIT2OR_DOWNLOAD_URL} ${LUAJIT2OR_TEMP_SRC} && \
cp -rfv ${LUAJIT2OR_TEMP_SRC}/* ${LUAJIT2OR_SRC_DIR} && \
ln -sf ${LUAJIT2OR_SRC_DIR} ${LUAJIT2OR_DIR}/src && \
cd ${LUAJIT2OR_TEMP_SRC} && \
# make -j$(nproc) XCFLAGS='-DLUAJIT_ENABLE_GC64' BUILDMODE=static && \
make -j$(nproc) XCFLAGS='-DLUAJIT_ENABLE_GC64' BUILDMODE=mixed && \
make -j$(nproc) install PREFIX=${LUAJIT2OR_DIR} && \
echo "# LuaJIT2 support" >> ${LD_CONF_DIR}/LuaJIT2.conf && \
echo ${LUAJIT2OR_LIB_DIR} >> ${LD_CONF_DIR}/LuaJIT2.conf && \
ldconfig
ENV PATH="${LUAJIT2OR_BIN_DIR}:${PATH}"
RUN echo "=============================================" && \
echo luajit $(luajit -v) && \
echo "============================================="
##################################################################
# IP2Location
##################################################################
RUN mkdir -p ${IP2LOC_DIR} ${IP2LOC_SRC_DIR}
ADD ${IP2LOC_DOWNLOAD_URL} /tmp
RUN tar -xzf ${IP2LOC_TEMP} --directory /tmp && \
cp -rfv ${IP2LOC_TEMP_SRC}/* ${IP2LOC_SRC_DIR} && \
ln -sf ${IP2LOC_SRC_DIR} ${IP2LOC_DIR}/src && \
cd ${IP2LOC_TEMP_SRC} && \
autoreconf -i -v --force && \
aclocal && \
automake --gnu --add-missing && \
autoconf && \
autoreconf -i -v --force && \
./configure \
--prefix=${IP2LOC_DIR} \
--disable-silent-rules \
--enable-shared \
--enable-static \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# IP2Location support" >> ${LD_CONF_DIR}/IP2Location.conf && \
echo ${IP2LOC_LIB_DIR} >> ${LD_CONF_DIR}/IP2Location.conf && \
ldconfig
ENV PATH="${IP2LOC_BIN_DIR}:${PATH}"
##################################################################
# libatomic_ops
##################################################################
RUN mkdir -p ${LIBATOMICOPS_DIR} ${LIBATOMICOPS_SRC_DIR}
ADD ${LIBATOMICOPS_DOWNLOAD_URL} /tmp
RUN tar -xzf ${LIBATOMICOPS_TEMP} --directory /tmp && \
cp -rfv ${LIBATOMICOPS_TEMP_SRC}/* ${LIBATOMICOPS_SRC_DIR} && \
ln -sf ${LIBATOMICOPS_SRC_DIR} ${LIBATOMICOPS_DIR}/src && \
cd ${LIBATOMICOPS_TEMP_SRC} && \
./autogen.sh && \
./configure \
--prefix=${LIBATOMICOPS_DIR} \
--disable-silent-rules \
--enable-shared \
--enable-static \
--enable-assertions \
--with-aix-soname=both \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
ln -sfv ${LIBATOMICOPS_SRC_DIR} ${LIBATOMICOPS_SRC_DIR}/src && \
echo "# libatomic_ops support" >> ${LD_CONF_DIR}/libatomic_ops.conf && \
echo ${LIBATOMICOPS_LIB_DIR} >> ${LD_CONF_DIR}/libatomic_ops.conf && \
ldconfig
##################################################################
# libimagequant
##################################################################
RUN mkdir -p ${LIBIMAGEQUANT_DIR} ${LIBIMAGEQUANT_SRC_DIR}
RUN git clone ${LIBIMAGEQUANT_DOWNLOAD_URL} ${LIBIMAGEQUANT_TEMP_SRC} && \
cp -rfv ${LIBIMAGEQUANT_TEMP_SRC}/* ${LIBIMAGEQUANT_SRC_DIR} && \
ln -sf ${LIBIMAGEQUANT_SRC_DIR} ${LIBIMAGEQUANT_DIR}/src && \
cd ${LIBIMAGEQUANT_TEMP_SRC} && \
cargo build --release && \
cd ${LIBIMAGEQUANT_TEMP_SRC}/imagequant-sys && \
cargo build --release && \
make -j$(nproc) && \
make -j$(nproc) install
##################################################################
# libraqm
##################################################################
RUN mkdir -p ${LIBRAQM_DIR} ${LIBRAQM_SRC_DIR}
RUN git clone ${LIBRAQM_DOWNLOAD_URL} ${LIBRAQM_TEMP_SRC} && \
cp -rfv ${LIBRAQM_TEMP_SRC}/* ${LIBRAQM_SRC_DIR} && \
ln -sf ${LIBRAQM_SRC_DIR} ${LIBRAQM_DIR}/src && \
cd ${LIBRAQM_TEMP_SRC} && \
meson build && \
ninja -C build && \
ninja -C build install
##################################################################
# libgd
##################################################################
RUN mkdir -p ${LIBGD_DIR} ${LIBGD_SRC_DIR}
ADD ${LIBGD_DOWNLOAD_URL} /tmp
RUN tar -xzf ${LIBGD_TEMP} --directory /tmp && \
cp -rfv ${LIBGD_TEMP_SRC}/* ${LIBGD_SRC_DIR} && \
ln -sf ${LIBGD_SRC_DIR} ${LIBGD_DIR}/src && \
cd ${LIBGD_TEMP_SRC} && \
./bootstrap.sh && \
./configure \
--prefix=${LIBGD_DIR} \
--disable-silent-rules \
--enable-static \
--enable-shared \
--with-aix-soname=both \
--with-libiconv-prefix \
--with-zlib=${ZSTD_SRC_DIR} \
--with-png --with-freetype \
--with-raqm=${LIBRAQM_SRC_DIR} \
--with-fontconfig \
--with-jpeg \
--with-liq=${LIBIMAGEQUANT_SRC_DIR} \
--with-xpm \
--with-gd \
--enable-gd-formats \
--with-tiff \
--with-webp \
--with-heif \
--with-avif \
--with-x \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# libgd support" >> ${LD_CONF_DIR}/libgd.conf && \
echo ${LIBGD_LIB_DIR} >> ${LD_CONF_DIR}/libgd.conf && \
ldconfig
ENV PATH="${LIBGD_BIN_DIR}:${PATH}"
##################################################################
# libxml2
##################################################################
RUN mkdir -p ${LIBXML2_DIR} ${LIBXML2_SRC_DIR}
ADD ${LIBXML2_DOWNLOAD_URL} /tmp
RUN tar -xzf ${LIBXML2_TEMP} --directory /tmp && \
cp -rfv ${LIBXML2_TEMP_SRC}/* ${LIBXML2_SRC_DIR} && \
ln -sf ${LIBXML2_SRC_DIR} ${LIBXML2_DIR}/src && \
cd ${LIBXML2_TEMP_SRC} && \
./autogen.sh && \
./configure \
--prefix=${LIBXML2_DIR} \
--disable-silent-rules \
--enable-static \
--enable-shared \
--with-aix-soname=both \
--with-c14n \
--with-catalog \
--with-debug \
--with-ftp \
--with-history \
--with-html \
--with-http \
--with-iconv \
--with-readline \
--with-http \
--with-icu \
--with-iso8859x \
--with-output \
--with-pattern \
--with-push \
--with-python \
--with-reader \
--with-regexps \
--with-sax1 \
--with-schemas \
--with-schematron \
--with-threads \
--with-thread-alloc \
--with-tree \
--with-valid \
--with-writer \
--with-xinclude \
--with-xpath \
--with-xptr \
--with-xptr-locs \
--with-lzma \
--with-zlib=${ZSTD_DIR} \
--with-legacy \
--with-tls \
--with-python-sys-prefix \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# libxslt support" >> ${LD_CONF_DIR}/libxml2.conf && \
echo ${LIBXML2_LIB_DIR} >> ${LD_CONF_DIR}/libxml2.conf && \
ldconfig
ENV PATH="${LIBXML2_BIN_DIR}:${PATH}"
##################################################################
# libxslt
##################################################################
RUN mkdir -p ${LIBXSLT_DIR} ${LIBXSLT_SRC_DIR}
ADD ${LIBXSLT_DOWNLOAD_URL} /tmp
RUN tar -xzf ${LIBXSLT_TEMP} --directory /tmp && \
cp -rfv ${LIBXSLT_TEMP_SRC}/* ${LIBXSLT_SRC_DIR} && \
ln -sf ${LIBXSLT_SRC_DIR} ${LIBXSLT_DIR}/src && \
cd ${LIBXSLT_TEMP_SRC} && \
./autogen.sh && \
./configure \
--prefix=${LIBXSLT_DIR} \
--disable-silent-rules \
--enable-static \
--enable-shared \
--with-aix-soname=both \
--with-python-sys-prefix \
--with-crypto \
--with-debug \
--with-debugger \
--with-profiler \
--with-plugins \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# libxslt support" >> ${LD_CONF_DIR}/libxslt.conf && \
echo ${LIBXSLT_LIB_DIR} >> ${LD_CONF_DIR}/libxslt.conf && \
ldconfig
ENV PATH="${LIBXSLT_BIN_DIR}:${PATH}"
##################################################################
# MAxMind GeoIP
##################################################################
RUN mkdir -p ${MM_GEOIP_DIR} ${MM_GEOIP_SRC_DIR}
ADD ${MM_GEOIP_DOWNLOAD_URL} /tmp
RUN tar -xzf ${MM_GEOIP_TEMP} --directory /tmp && \
cp -rfv ${MM_GEOIP_TEMP_SRC}/* ${MM_GEOIP_SRC_DIR} && \
ln -sf ${MM_GEOIP_SRC_DIR} ${MM_GEOIP_DIR}/src && \
cd ${MM_GEOIP_TEMP_SRC} && \
./bootstrap && \
aclocal && \
autoconf && \
automake --add-missing && \
./configure \
--prefix=${MM_GEOIP_DIR} \
--disable-silent-rules \
--enable-shared \
--enable-static \
--enable-assertions \
--with-aix-soname=both \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# GeoIP support" >> ${LD_CONF_DIR}/GeoIP.conf && \
echo ${MM_GEOIP_LIB_DIR} >> ${LD_CONF_DIR}/GeoIP.conf && \
ldconfig
ENV PATH="${MM_GEOIP_BIN_DIR}:${PATH}"
##################################################################
# Google perftools
##################################################################
RUN mkdir -p ${GPERFTOOLS_DIR} ${GPERFTOOLS_SRC_DIR}
ADD ${GPERFTOOLS_DOWNLOAD_URL} /tmp
RUN tar -xzf ${GPERFTOOLS_TEMP} --directory /tmp && \
cp -rfv ${GPERFTOOLS_TEMP_SRC}/* ${GPERFTOOLS_SRC_DIR} && \
ln -sf ${GPERFTOOLS_SRC_DIR} ${GPERFTOOLS_DIR}/src && \
cd ${GPERFTOOLS_TEMP_SRC} && \
./configure \
--prefix=${GPERFTOOLS_DIR} \
--disable-silent-rules \
--enable-shared \
--enable-static \
--enable-libunwind \
--with-aix-soname=both \
--enable-large-alloc-report \
--enable-aggressive-decommit-by-default \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# Google perftools support" >> ${LD_CONF_DIR}/Googleperftools.conf && \
echo ${GPERFTOOLS_LIB_DIR} >> ${LD_CONF_DIR}/Googleperftools.conf && \
ldconfig
ENV PATH="${GPERFTOOLS_BIN_DIR}:${PATH}"
##################################################################
# OpenSSL 1.1.1.1
##################################################################
RUN mkdir -p ${OPENSSL_111_DIR} ${OPENSSL_111_SRC_DIR}
ADD ${OPENSSL_111_DOWNLOAD_URL} /tmp
RUN tar -xzf ${OPENSSL_111_TEMP} --directory /tmp && \
cp -rfv ${OPENSSL_111_TEMP_SRC}/* ${OPENSSL_111_SRC_DIR} && \
ln -sf ${OPENSSL_111_SRC_DIR} ${OPENSSL_111_DIR}/src && \
cd ${OPENSSL_111_TEMP_SRC} && \
./config \
zlib \
--with-zlib-include=${ZLIB_DIR}/include \
--with-zlib-lib=${ZLIB_DIR}/lib \
enable-ec_nistp_64_gcc_128 \
enable-egd \
enable-ssl-trace \
threads \
sctp \
--release \
--prefix=${OPENSSL_111_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install
##################################################################
# OpenSSL 3.0.14
##################################################################
RUN mkdir -p ${OPENSSL_30_DIR} ${OPENSSL_30_SRC_DIR}
ADD ${OPENSSL_30_DOWNLOAD_URL} /tmp
RUN tar -xzf ${OPENSSL_30_TEMP} --directory /tmp && \
cp -rfv ${OPENSSL_30_TEMP_SRC}/* ${OPENSSL_30_SRC_DIR} && \
ln -sf ${OPENSSL_30_SRC_DIR} ${OPENSSL_30_DIR}/src && \
cd ${OPENSSL_30_TEMP_SRC} && \
./config \
zlib \
--with-zlib-include=${ZLIB_DIR}/include \
--with-zlib-lib=${ZLIB_DIR}/lib \
enable-ktls \
enable-ec_nistp_64_gcc_128 \
enable-egd \
enable-fips \
enable-ssl-trace\
enable-trace \
threads \
sctp \
--release \
--prefix=${OPENSSL_30_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install
##################################################################
# OpenSSL 3.1.6
##################################################################
RUN mkdir -p ${OPENSSL_31_DIR} ${OPENSSL_31_SRC_DIR}
ADD ${OPENSSL_31_DOWNLOAD_URL} /tmp
RUN tar -xzf ${OPENSSL_31_TEMP} --directory /tmp && \
cp -rfv ${OPENSSL_31_TEMP_SRC}/* ${OPENSSL_31_SRC_DIR} && \
ln -sf ${OPENSSL_31_SRC_DIR} ${OPENSSL_31_DIR}/src && \
cd ${OPENSSL_31_TEMP_SRC} && \
./config \
zlib \
--with-zlib-include=${ZLIB_DIR}/include \
--with-zlib-lib=${ZLIB_DIR}/lib \
enable-ktls \
enable-ec_nistp_64_gcc_128 \
enable-egd \
enable-fips \
enable-ssl-trace\
enable-trace \
threads \
sctp \
--release \
--prefix=${OPENSSL_31_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install
##################################################################
# OpenSSL 3.2.2
##################################################################
RUN mkdir -p ${OPENSSL_32_DIR} ${OPENSSL_32_SRC_DIR}
ADD ${OPENSSL_32_DOWNLOAD_URL} /tmp
RUN tar -xzf ${OPENSSL_32_TEMP} --directory /tmp && \
cp -rfv ${OPENSSL_32_TEMP_SRC}/* ${OPENSSL_32_SRC_DIR} && \
ln -sf ${OPENSSL_32_SRC_DIR} ${OPENSSL_32_DIR}/src && \
cd ${OPENSSL_32_TEMP_SRC} && \
./config \
zlib \
--with-zlib-include=${ZLIB_DIR}/include \
--with-zlib-lib=${ZLIB_DIR}/lib \
--with-zstd-include=${ZSTD_DIR}/include \
--with-zstd-lib=${ZSTD_DIR}/lib \
enable-ktls \
enable-ec_nistp_64_gcc_128 \
enable-egd \
enable-fips \
enable-ssl-trace\
enable-trace \
threads \
sctp \
--release \
--prefix=${OPENSSL_32_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install
##################################################################
# OpenSSL 3.3.1
##################################################################
RUN mkdir -p ${OPENSSL_33_DIR} ${OPENSSL_33_SRC_DIR}
ADD ${OPENSSL_33_DOWNLOAD_URL} /tmp
RUN tar -xzf ${OPENSSL_33_TEMP} --directory /tmp && \
cp -rfv ${OPENSSL_33_TEMP_SRC}/* ${OPENSSL_33_SRC_DIR} && \
ln -sf ${OPENSSL_33_SRC_DIR} ${OPENSSL_33_DIR}/src && \
cd ${OPENSSL_33_TEMP_SRC} && \
./config \
zlib \
--with-zlib-include=${ZLIB_DIR}/include \
--with-zlib-lib=${ZLIB_DIR}/lib \
--with-zstd-include=${ZSTD_DIR}/include \
--with-zstd-lib=${ZSTD_DIR}/lib \
enable-ktls \
enable-ec_nistp_64_gcc_128 \
enable-egd \
enable-fips \
enable-ssl-trace\
enable-trace \
threads \
sctp \
--release \
--prefix=${OPENSSL_33_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
echo "# OpenSSL support" >> ${LD_CONF_DIR}/OpenSSL.conf && \
echo ${OPENSSL_33_LIB_DIR} >> ${LD_CONF_DIR}/OpenSSL.conf && \
ldconfig
##################################################################
# LibreSSL
##################################################################
RUN mkdir -p ${LIBRESSL_DIR} ${LIBRESSL_SRC_DIR}
ADD ${LIBRESSL_DOWNLOAD_URL} /tmp
RUN tar -xzf ${LIBRESSL_TEMP} --directory /tmp && \
cp -rfv ${LIBRESSL_TEMP_SRC}/* ${LIBRESSL_SRC_DIR} && \
ln -sfv ${LIBRESSL_SRC_DIR} ${LIBRESSL_DIR}/src && \
cd ${LIBRESSL_TEMP_SRC} && \
./config \
--enable-static \
--enable-shared \
--disable-silent-rules \
--prefix=${LIBRESSL_DIR} \
&& \
make -j$(nproc) && \
make -j$(nproc) install && \
# echo "# LibreSSL support" >> ${LD_CONF_DIR}/LibreSSL.conf && \
# echo ${LIBRESSL_LIB_DIR} >> ${LD_CONF_DIR}/LibreSSL.conf && \
ldconfig
##################################################################
# BoringSSL
##################################################################
RUN mkdir -p ${BORINGSSL_DIR} ${BORINGSSL_SRC_DIR} && \
git clone -b ${BORINGSSL_VERSION} ${BORINGSSL_DOWNLOAD_URL} ${BORINGSSL_TEMP_SRC} && \
cp -rfv ${BORINGSSL_TEMP_SRC}/* ${BORINGSSL_SRC_DIR} && \
ln -sf ${BORINGSSL_SRC_DIR} ${BORINGSSL_DIR}/src && \
cd ${BORINGSSL_TEMP_SRC} && \
mkdir ${BORINGSSL_TEMP_SRC}/build && \
# cmake -GNinja -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DBUILD_SHARED_LIBS=1 -DCMAKE_INSTALL_PREFIX=${BORINGSSL_DIR} && \
# ninja -C build && \
cd ${BORINGSSL_TEMP_SRC}/build && \
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DBUILD_SHARED_LIBS=1 -DCMAKE_INSTALL_PREFIX=${BORINGSSL_DIR} .. && \
make -j$(if [ $(nproc) -gt 8 ]; then echo $(( $(nproc) / 2 )); else echo $(nproc); fi) && \
make -j$(nproc) install && \
# echo "# BoringSSL support" >> ${LD_CONF_DIR}/BoringSSL.conf && \
# echo ${BORINGSSL_LIB_DIR} >> ${LD_CONF_DIR}/BoringSSL.conf && \
ldconfig
##################################################################
# other customisations
##################################################################
##################################################################
# cleanup
##################################################################
RUN echo "clean up" && \
apt-get clean -y && \
apt-get autoclean -y && \
rm -rfv /var/lib/apt/lists/* && \
rm -rfv /tmp/* && \
rm -rfv /var/cache/apt/archives/*.deb
RUN updatedb