Commit a70e27ae authored by Sébastien Marie's avatar Sébastien Marie
Browse files

Add Travis build against LibreSSL

parent b3526cbd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+30 −18
Original line number Diff line number Diff line
@@ -3,21 +3,29 @@
set -ex

MAX_REDIRECTS=5
OPENSSL=openssl-$BUILD_OPENSSL_VERSION.tar.gz
OUT=/tmp/$OPENSSL

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

me=$0
myname=`basename $me`
myname=`basename ${me}`

cmp --silent $me $HOME/openssl/$myname && exit 0 || echo "cache is busted"
cmp --silent ${me} ${HOME}/${NAME}/${myname} && exit 0 || echo "cache is busted"

rm -rf $HOME/openssl
rm -rf "${HOME}/${NAME}"

if [ "$TRAVIS_OS_NAME" == "osx" ]; then
    exit 0
fi

if [ "$BUILD_OPENSSL_VERSION" == "" ]; then
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}
+11 −5
Original line number Diff line number Diff line
@@ -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