BUILD: extend travis-ci matrix
added openssl-1.0.2, 1.1.0, 1.1.1, libressl-2.7.5, 2.8.3, 2.9.1
added linux-ppc64le image
diff --git a/.travis.yml b/.travis.yml
index f689fe9..4dd7e9a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,12 @@
language: c
+env:
+ global:
+ - FLAGS="USE_ZLIB=1 USE_PCRE=1 USE_LUA=1 USE_OPENSSL=1"
+ - SSL_LIB=${HOME}/opt/lib
+ - SSL_INC=${HOME}/opt/include
+
addons:
apt:
packages: [ liblua5.3-dev ]
@@ -12,15 +18,33 @@
- os: linux
compiler: gcc
env: TARGET=linux2628 FLAGS=
+ - os: linux-ppc64le
+ compiler: gcc
+ env: TARGET=linux2628 OPENSSL_VERSION=1.1.1b LABEL="linux-ppc64le"
+ - os: linux
+ compiler: gcc
+ env: TARGET=linux2628 OPENSSL_VERSION=1.1.1b
+ - os: linux
+ compiler: gcc
+ env: TARGET=linux2628 OPENSSL_VERSION=1.1.0j
- os: linux
compiler: gcc
- env: TARGET=linux2628 FLAGS="USE_ZLIB=1 USE_PCRE=1 USE_LUA=1 USE_OPENSSL=1"
+ env: TARGET=linux2628 OPENSSL_VERSION=1.0.2r
+ - os: linux
+ compiler: gcc
+ env: TARGET=linux2628 LIBRESSL_VERSION=2.9.1
+ - os: linux
+ compiler: gcc
+ env: TARGET=linux2628 LIBRESSL_VERSION=2.8.3
+ - os: linux
+ compiler: gcc
+ env: TARGET=linux2628 LIBRESSL_VERSION=2.7.5
- os: linux
compiler: clang
env: TARGET=linux2628 FLAGS=
- os: osx
compiler: clang
- env: TARGET=generic FLAGS=
+ env: TARGET=generic FLAGS="USE_OPENSSL=1" OPENSSL_VERSION=1.1.1b
install:
- git clone https://github.com/VTest/VTest.git ../vtest
@@ -32,10 +56,15 @@
# the unix socket path names exceed the maximum allowed
# length.
- sed -i'.original' '/TESTDIR=.*haregtests/s/haregtests-.*XXXXXX/regtest.XXX/' scripts/run-regtests.sh
+ - scripts/build-ssl.sh > build-ssl.log 2>&1 || (cat build-ssl.log && exit 1)
script:
- make CC=$CC V=1 TARGET=$TARGET $FLAGS
+ - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then export LD_LIBRARY_PATH="${HOME}/opt/lib:${LD_LIBRARY_PATH:-}"; fi
+ - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export DYLD_LIBRARY_PATH="${HOME}/opt/lib:${DYLD_LIBRARY_PATH:-}"; fi
- ./haproxy -vv
+ - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then ldd haproxy; fi
+ - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then otool -L haproxy; fi
- env VTEST_PROGRAM=../vtest/vtest make reg-tests
after_failure:
diff --git a/scripts/build-ssl.sh b/scripts/build-ssl.sh
new file mode 100755
index 0000000..4898724
--- /dev/null
+++ b/scripts/build-ssl.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+set -eux
+
+download_openssl () {
+ if [ ! -f "download-cache/openssl-${OPENSSL_VERSION}.tar.gz" ]; then
+ wget -P download-cache/ \
+ "https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz"
+ fi
+}
+
+build_openssl_linux () {
+ (
+ cd "openssl-${OPENSSL_VERSION}/"
+ ./config shared --prefix="${HOME}/opt" --openssldir="${HOME}/opt" -DPURIFY
+ make all install_sw
+ )
+}
+
+build_openssl_osx () {
+ (
+ cd "openssl-${OPENSSL_VERSION}/"
+ ./Configure darwin64-x86_64-cc shared \
+ --prefix="${HOME}/opt" --openssldir="${HOME}/opt" -DPURIFY
+ make depend all install_sw
+ )
+}
+
+build_openssl () {
+ if [ "$(cat ${HOME}/opt/.openssl-version)" != "${OPENSSL_VERSION}" ]; then
+ tar zxf "download-cache/openssl-${OPENSSL_VERSION}.tar.gz"
+ if [ "${TRAVIS_OS_NAME}" = "osx" ]; then
+ build_openssl_osx
+ elif [ "${TRAVIS_OS_NAME}" = "linux" ]; then
+ build_openssl_linux
+ fi
+ echo "${OPENSSL_VERSION}" > "${HOME}/opt/.openssl-version"
+ fi
+}
+
+download_libressl () {
+ if [ ! -f "download-cache/libressl-${LIBRESSL_VERSION}.tar.gz" ]; then
+ wget -P download-cache/ \
+ "https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/libressl-${LIBRESSL_VERSION}.tar.gz"
+ fi
+}
+
+build_libressl() {
+ (
+ cd "libressl-${LIBRESSL_VERSION}/"
+ ./configure --prefix="${HOME}/opt"
+ make all install
+ )
+}
+
+build_libressl () {
+ if [ "$(cat ${HOME}/opt/.libressl-version)" != "${LIBRESSL_VERSION}" ]; then
+ tar zxf "download-cache/libressl-${LIBRESSL_VERSION}.tar.gz"
+ (
+ cd "libressl-${LIBRESSL_VERSION}/"
+ ./configure --prefix="${HOME}/opt"
+ make all install
+ )
+ echo "${LIBRESSL_VERSION}" > "${HOME}/opt/.libressl-version"
+ fi
+}
+
+if [ ! -z ${LIBRESSL_VERSION+x} ]; then
+ download_libressl
+ build_libressl
+fi
+
+if [ ! -z ${OPENSSL_VERSION+x} ]; then
+ download_openssl
+ build_openssl
+fi
+
+