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:
parent
58098af689
commit
e58507e1aa
19
Dockerfile
19
Dockerfile
|
@ -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" && \
|
||||||
|
|
Loading…
Reference in a new issue