From 43c951f743e68fac5f45119eda7c994882a1d489 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 30 Sep 2016 00:43:05 -0700 Subject: Add support for OpenSSL 1.1.0 This commit is relatively major refactoring of the `openssl-sys` crate as well as the `openssl` crate itself. The end goal here was to support OpenSSL 1.1.0, and lots of other various tweaks happened along the way. The major new features are: * OpenSSL 1.1.0 is supported * OpenSSL 0.9.8 is no longer supported (aka all OSX users by default) * All FFI bindings are verified with the `ctest` crate (same way as the `libc` crate) * CI matrixes are vastly expanded to include 32/64 of all platforms, more OpenSSL version coverage, as well as ARM coverage on Linux * The `c_helpers` module is completely removed along with the `gcc` dependency. * The `openssl-sys` build script was completely rewritten * Now uses `OPENSSL_DIR` to find the installation, not include/lib env vars. * Better error messages for mismatched versions. * Better error messages for failing to find OpenSSL on a platform (more can be done here) * Probing of OpenSSL build-time configuration to inform the API of the `*-sys` crate. * Many Cargo features have been removed as they're now enabled by default. As this is a breaking change to both the `openssl` and `openssl-sys` crates this will necessitate a major version bump of both. There's still a few more API questions remaining but let's hash that out on a PR! Closes #452 --- openssl/test/build.sh | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'openssl/test/build.sh') diff --git a/openssl/test/build.sh b/openssl/test/build.sh index 2c38f3a3..106a38d3 100755 --- a/openssl/test/build.sh +++ b/openssl/test/build.sh @@ -1,33 +1,48 @@ #!/bin/bash -set -e + +set -ex MAX_REDIRECTS=5 -OPENSSL=openssl-1.0.2h.tar.gz +OPENSSL=openssl-$BUILD_OPENSSL_VERSION.tar.gz OUT=/tmp/$OPENSSL -SHA1="577585f5f5d299c44dd3c993d3c0ac7a219e4949" + +me=$0 +myname=`basename $me` + +cmp --silent $me $HOME/openssl/$myname && exit 0 || echo "cache is busted" + +rm -rf $HOME/openssl if [ "$TRAVIS_OS_NAME" == "osx" ]; then exit 0 fi -if [ "$TARGET" == "arm-unknown-linux-gnueabihf" ]; then - export C_INCLUDE_PATH=/usr/arm-linux-gnueabihf/include - CROSS=arm-linux-gnueabihf- +if [ "$BUILD_OPENSSL_VERSION" == "" ]; then + exit 0 +fi + +if [ "$TARGET" == "i686-unknown-linux-gnu" ]; then + OS_COMPILER=linux-elf + OS_FLAGS=-m32 +elif [ "$TARGET" == "arm-unknown-linux-gnueabihf" ]; then OS_COMPILER=linux-armv4 + export AR=arm-linux-gnueabihf-ar + export CC=arm-linux-gnueabihf-gcc else OS_COMPILER=linux-x86_64 fi mkdir -p /tmp/openssl +cp $me /tmp/openssl/$myname cd /tmp/openssl curl -o $OUT -L --max-redirs $MAX_REDIRECTS https://openssl.org/source/$OPENSSL \ || curl -o $OUT -L --max-redirs ${MAX_REDIRECTS} http://mirrors.ibiblio.org/openssl/source/$OPENSSL -echo "$SHA1 $OUT" | sha1sum -c - - tar --strip-components=1 -xzf $OUT -./Configure --prefix=$HOME/openssl shared --cross-compile-prefix=$CROSS $OS_COMPILER -make +./Configure --prefix=$HOME/openssl $OS_COMPILER -fPIC $OS_FLAGS + +make -j$(nproc) make install +cp $myname $HOME/openssl/$myname -- cgit v1.2.3