mirror of
https://github.com/EpicMorg/docker-scripts.git
synced 2024-12-28 15:45:44 +03:00
1059 lines
38 KiB
Docker
1059 lines
38 KiB
Docker
FROM epicmorg/debian:bullseye
|
|
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/
|
|
|
|
# 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
|
|
|
|
# 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
|
|
|
|
##################################################################
|
|
# bullseye 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 \
|
|
libheif-dev \
|
|
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 \
|
|
libavif-dev \
|
|
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-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 "============================================="
|
|
|
|
##################################################################
|
|
# 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
|
|
|
|
##################################################################
|
|
# 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}"
|
|
|
|
# TO FIX
|
|
# ##################################################################
|
|
# # 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}"
|
|
|
|
# TO FIX
|
|
# ##################################################################
|
|
# # 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
|