diff --git a/.travis.yml b/.travis.yml index 1b79c5b0..e8d89347 100644 --- a/.travis.yml +++ b/.travis.yml @@ -72,6 +72,8 @@ matrix: packages: - gcc-multilib + # LibreSSL + - env: BUILD_LIBRESSL_VERSION=2.5.0 before_install: - ./openssl/test/build.sh @@ -83,4 +85,5 @@ script: cache: cargo: true directories: + - $HOME/libressl - $HOME/openssl diff --git a/openssl/test/build.sh b/openssl/test/build.sh index 106a38d3..cd740895 100755 --- a/openssl/test/build.sh +++ b/openssl/test/build.sh @@ -3,21 +3,29 @@ set -ex MAX_REDIRECTS=5 -OPENSSL=openssl-$BUILD_OPENSSL_VERSION.tar.gz -OUT=/tmp/$OPENSSL -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 +if [ -n "${BUILD_LIBRESSL_VERSION}" ]; then + NAME=libressl + URL1="http://ftp3.usa.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${BUILD_LIBRESSL_VERSION}.tar.gz" + URL2="http://ftp.eu.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${BUILD_LIBRESSL_VERSION}.tar.gz" + OUT="/tmp/libressl-${BUILD_OPENSSL_VERSION}.tar.gz" +elif [ -n "${BUILD_OPENSSL_VERSION}" ]; then + NAME=openssl + URL1="https://openssl.org/source/openssl-${BUILD_OPENSSL_VERSION}.tar.gz" + URL2="http://mirrors.ibiblio.org/openssl/source/openssl-${BUILD_OPENSSL_VERSION}.tar.gz" + OUT="/tmp/openssl-${BUILD_OPENSSL_VERSION}.tar.gz" +else exit 0 fi -if [ "$BUILD_OPENSSL_VERSION" == "" ]; then +me=$0 +myname=`basename ${me}` + +cmp --silent ${me} ${HOME}/${NAME}/${myname} && exit 0 || echo "cache is busted" + +rm -rf "${HOME}/${NAME}" + +if [ "${TRAVIS_OS_NAME}" == "osx" ]; then exit 0 fi @@ -32,17 +40,21 @@ else OS_COMPILER=linux-x86_64 fi -mkdir -p /tmp/openssl -cp $me /tmp/openssl/$myname -cd /tmp/openssl +mkdir -p /tmp/build +cp ${me} /tmp/build/${myname} +cd /tmp/build -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 +curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} ${URL1} \ + || curl -o ${OUT} -L --max-redirs ${MAX_REDIRECTS} ${URL2} -tar --strip-components=1 -xzf $OUT +tar --strip-components=1 -xzf ${OUT} -./Configure --prefix=$HOME/openssl $OS_COMPILER -fPIC $OS_FLAGS +if [ -n "${BUILD_LIBRESSL_VERSION}" ]; then + ./configure --prefix=${HOME}/libressl +else + ./Configure --prefix=${HOME}/openssl ${OS_COMPILER} -fPIC ${OS_FLAGS} +fi make -j$(nproc) make install -cp $myname $HOME/openssl/$myname +cp ${myname} ${HOME}/${NAME}/${myname} diff --git a/openssl/test/run.sh b/openssl/test/run.sh index 4d3397a6..b07b8e4b 100755 --- a/openssl/test/run.sh +++ b/openssl/test/run.sh @@ -12,15 +12,21 @@ esac echo Using features: $FEATURES -if [ -d "$HOME/openssl/lib" ]; then - export OPENSSL_DIR=$HOME/openssl - export PATH=$HOME/openssl/bin:$PATH +if [ -n "${BUILD_LIBRESSL_VERSION}" -a -d "$HOME/libressl/lib" ]; then + echo "Testing build libressl-${BUILD_LIBRESSL_VERSION}" + export OPENSSL_DIR=${HOME}/libressl + export PATH="${HOME}/libressl/bin:${PATH}" + +elif [ -n "${BUILD_OPENSSL_VERSION}" -a -d "$HOME/openssl/lib" ]; then + echo "Testing build openssl-${BUILD_LIBRESSL_VERSION}" + export OPENSSL_DIR="${HOME}/openssl" + export PATH="${HOME}/openssl/bin:${PATH}" fi if [ "$TARGET" == "arm-unknown-linux-gnueabihf" ]; then FLAGS="--no-run" fi -cargo run --manifest-path systest/Cargo.toml --target $TARGET +cargo run --manifest-path systest/Cargo.toml --target $TARGET -v exec cargo test --manifest-path openssl/Cargo.toml --target $TARGET \ - --features "$FEATURES" $FLAGS + --features "$FEATURES" -v $FLAGS