FROM debian:bullseye-slim AS builder ENV LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib ENV SSL_CERT_DIR=/etc/ssl/certs/ COPY openssl1.1.0-*.patch /tmp/ RUN apt-get update \ && apt-get install -y build-essential zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl llvm libncursesw5-dev xz-utils libxml2-dev libffi-dev liblzma-dev \ && rm -rf /var/lib/apt/lists/* ARG OPENSSL_VERSION=3.0.7 ARG OPENSSL_SHA256=missing # OpenSSL 1.0.2 must be compiled with -fPIC and does not support parallel builds (make -j) RUN mkdir -p /tmp/src \ && cd /tmp/src \ && curl -sSL https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz -o openssl.tar.gz \ && if [ "${OPENSSL_SHA256}" = "missing" ]; then \ if [ "${OPENSSL_VERSION}" = "1.0.2u" ]; then OPENSSL_SHA256=ecd0c6ffb493dd06707d38b14bb4d8c2288bb7033735606569d8f90f89669d16; \ elif [ "${OPENSSL_VERSION}" = "1.1.0l" ]; then OPENSSL_SHA256=74a2f756c64fd7386a29184dc0344f4831192d61dc2481a93a4c5dd727f41148; \ elif [ "${OPENSSL_VERSION}" = "1.1.1q" ]; then OPENSSL_SHA256=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca; \ elif [ "${OPENSSL_VERSION}" = "3.0.7" ]; then OPENSSL_SHA256=83049d042a260e696f62406ac5c08bf706fd84383f945cf21bd61e9ed95c396e; \ else echo "Error: OPENSSL_SHA256 missing and OPENSSL_VERSION is not one of the built-in versions" && exit 1; \ fi \ fi \ && echo "${OPENSSL_SHA256} openssl.tar.gz" | sha256sum -c \ && tar -xvf openssl.tar.gz \ && rm openssl.tar.gz \ && cd openssl-${OPENSSL_VERSION} \ && case "${OPENSSL_VERSION}" in 1.1.0*) patch -p1