Attempt to kludge a fix for OpenSSL 1.1 "engine"

This is needed to build `cargo audit` and other programs that use
OpenSSL 1.1's "engine" component.
This commit is contained in:
Eric Kidd 2019-04-27 21:32:09 -04:00
parent 58098af689
commit e58507e1aa

View file

@ -29,6 +29,7 @@ RUN apt-get update && \
libpq-dev \ libpq-dev \
libsqlite-dev \ libsqlite-dev \
libssl-dev \ libssl-dev \
linux-libc-dev \
pkgconf \ pkgconf \
sudo \ sudo \
xutils-dev \ xutils-dev \
@ -73,15 +74,27 @@ ADD cargo-config.toml /home/rust/.cargo/config
ADD git-credential-ghtoken /usr/local/bin ADD git-credential-ghtoken /usr/local/bin
RUN git config --global credential.https://github.com.helper ghtoken RUN git config --global credential.https://github.com.helper ghtoken
# Build a static library version of OpenSSL using musl-libc. This is # Build a static library version of OpenSSL using musl-libc. This is needed by
# needed by the popular Rust `hyper` crate. # the popular Rust `hyper` crate.
#
# We point /usr/local/musl/include/linux at some Linux kernel headers (not
# necessarily the right ones) in an effort to compile OpenSSL 1.1's "engine"
# component. It's possible that this will cause bizarre and terrible things to
# happen. There may be "sanitized" header
RUN echo "Building OpenSSL" && \ RUN echo "Building OpenSSL" && \
ls /usr/include/linux && \
sudo mkdir -p /usr/local/musl/include && \
sudo ln -s /usr/include/linux /usr/local/musl/include/linux && \
sudo ln -s /usr/include/x86_64-linux-gnu/asm /usr/local/musl/include/asm && \
sudo ln -s /usr/include/asm-generic /usr/local/musl/include/asm-generic && \
cd /tmp && \ cd /tmp && \
curl -LO "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" && \ curl -LO "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" && \
tar xvzf "openssl-$OPENSSL_VERSION.tar.gz" && cd "openssl-$OPENSSL_VERSION" && \ tar xvzf "openssl-$OPENSSL_VERSION.tar.gz" && cd "openssl-$OPENSSL_VERSION" && \
env CC=musl-gcc ./Configure no-shared no-zlib -fPIC --prefix=/usr/local/musl -DOPENSSL_NO_SECURE_MEMORY linux-x86_64 && \ env CC=musl-gcc ./Configure no-shared no-zlib -fPIC --prefix=/usr/local/musl -DOPENSSL_NO_SECURE_MEMORY linux-x86_64 && \
env C_INCLUDE_PATH=/usr/local/musl/include/ make depend && \ env C_INCLUDE_PATH=/usr/local/musl/include/ make depend && \
make && sudo make install && \ env C_INCLUDE_PATH=/usr/local/musl/include/ make && \
sudo make install && \
sudo rm /usr/local/musl/include/linux /usr/local/musl/include/asm /usr/local/musl/include/asm-generic && \
rm -r /tmp/* rm -r /tmp/*
RUN echo "Building zlib" && \ RUN echo "Building zlib" && \