Add Travis build against LibreSSL

This commit is contained in:
Sébastien Marie 2016-12-20 20:07:41 +01:00
parent b3526cbd2b
commit a70e27ae64
3 changed files with 45 additions and 24 deletions

View File

@ -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

View File

@ -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}

View File

@ -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