[Openvpn-devel,v3] travis-ci: add arm64, s390x builds.

Message ID 20200322123521.17710-1-chipitsine@gmail.com
State Accepted
Headers show
Series
  • [Openvpn-devel,v3] travis-ci: add arm64, s390x builds.
Related show

Commit Message

Илья Шипицин March 22, 2020, 12:35 p.m.
From: Ilya Shipitsin <chipitsine@gmail.com>

as described on https://docs.travis-ci.com/user/multi-cpu-architectures travis-ci
now supports amd64, ppcle, arm64, s390 architectures. Add arm64 and s390x.

travis-ci images were upgraded to bionic.

"sudo" is deprecated, let us remove it, also "matrix" is deprecated in favour of "jobs".

LD_LIBRARY_PATH was replaced by using "rpath" in LDFLAGS, which is more elegant way of linking.

also, dependencies were upgraded to the latest versions.

travis_wait was added for long openssl builds.

cmocka was added to linux and osx builds.
---
v3 resolved travis_wait output redirection issue, now it works as expected. I had to specify "names" for jobs,
without names travis puts secure variable as job name

v2 rebased against proper commit


 .travis.yml               | 87 +++++++++++++++++++++++++--------------
 .travis/build-check.sh    | 10 +----
 .travis/build-deps.sh     | 10 +++--
 .travis/run-build-deps.sh | 10 -----
 4 files changed, 62 insertions(+), 55 deletions(-)
 delete mode 100755 .travis/run-build-deps.sh

Comments

Илья Шипицин March 22, 2020, 12:39 p.m. | #1
sorry, I sent it twice.

the last one is good, please ignore previous "v2"

I've managed to resolve "travis_wait" issue. it was non trivial output
redirection  issue.
the rest is just fine.


patch itself is important it re-enables cmocka tests in travis (they are
not running now, after cmocka git submodule was removed)

вс, 22 мар. 2020 г. в 17:35, <chipitsine@gmail.com>:

> From: Ilya Shipitsin <chipitsine@gmail.com>
>
> as described on https://docs.travis-ci.com/user/multi-cpu-architectures
> travis-ci
> now supports amd64, ppcle, arm64, s390 architectures. Add arm64 and s390x.
>
> travis-ci images were upgraded to bionic.
>
> "sudo" is deprecated, let us remove it, also "matrix" is deprecated in
> favour of "jobs".
>
> LD_LIBRARY_PATH was replaced by using "rpath" in LDFLAGS, which is more
> elegant way of linking.
>
> also, dependencies were upgraded to the latest versions.
>
> travis_wait was added for long openssl builds.
>
> cmocka was added to linux and osx builds.
> ---
> v3 resolved travis_wait output redirection issue, now it works as
> expected. I had to specify "names" for jobs,
> without names travis puts secure variable as job name
>
> v2 rebased against proper commit
>
>
>  .travis.yml               | 87 +++++++++++++++++++++++++--------------
>  .travis/build-check.sh    | 10 +----
>  .travis/build-deps.sh     | 10 +++--
>  .travis/run-build-deps.sh | 10 -----
>  4 files changed, 62 insertions(+), 55 deletions(-)
>  delete mode 100755 .travis/run-build-deps.sh
>
> diff --git a/.travis.yml b/.travis.yml
> index 40296d87..925d09ea 100644
> --- a/.travis.yml
> +++ b/.travis.yml
> @@ -1,5 +1,4 @@
> -sudo: required
> -dist: xenial
> +dist: bionic
>
>  os: linux
>
> @@ -11,86 +10,111 @@ env:
>      - PREFIX="${HOME}/opt"
>      - TAP_WINDOWS_VERSION=9.23.3
>      - LZO_VERSION=2.10
> -    - PKCS11_HELPER_VERSION=1.25.1
> -    - MBEDTLS_VERSION=2.16.1
> +    - PKCS11_HELPER_VERSION=1.26
> +    - MBEDTLS_VERSION=2.16.4
>      - MBEDTLS_CFLAGS="-I${PREFIX}/include"
>      - MBEDTLS_LIBS="-L${PREFIX}/lib -lmbedtls -lmbedx509 -lmbedcrypto"
> -    - OPENSSL_VERSION=1.0.2s
> +    - OPENSSL_VERSION=1.0.2u
>      - OPENSSL_CFLAGS="-I${PREFIX}/include"
>      - OPENSSL_LIBS="-L${PREFIX}/lib -lssl -lcrypto"
>      # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
>      #   via the "travis encrypt" command using the project repo's public
> key
>      - secure:
> "l9mSnEW4LJqjxftH5i1NdDaYfGmQB1mPXnSB3DXnsjzkCWZ+yJLfBemfQ0tx/wS7chBYxqUaUIMT0hw4zJVp/LANFJo2vfh//ymTS6h0uApRY1ofg9Pp1BFcV1laG6/u8pwSZ2EBy/GhCd3DS436oE8sYBRaFM9FU62L/oeQBfJ7r4ID/0eB1b8bqlbD4paty9MHui2P8EZJwR+KAD84prtfpZOcrSMxPh9OUhJxzxUvvVoP4s4+lZ5Kgg1bBQ3yzKGDqe8VOgK2BWCEuezqhMMc8oeKmAe7CUkoz5gsGYH++k3I9XzP9Z4xeJKoQnC/82qi4xkJmlaOxdionej9bHIcjfRt7D8j1J0U+wOj4p8VrDy7yHaxuN2fi0K5MGa/CaXQSrkna8dePniCng+xQ2MY/zxuRX2gA6xPNLUyQLU9LqIug7wj4z84Hk9iWib4L20MoPjeEo+vAUNq8FtjOPxMuHNpv4iGGx6kgJm7RXl5vC5hxfK6MprrnYe2U5Mcd8jpzagKBaKHL3zV2FxX9k0jRO9Mccz7M2WnaV0MQ6zcngzTN4+s0kCjhfGKd2F2ANT2Gkhj3Me36eNHfuE0dBbvYCMh4b3Mgd7b/OuXwQWdJ8PjJ1WHXjSOw5sHw1suaV6cEO2Meyz5j1tOkyOi0M9QF+LFenQ9vLH4sBCww8U="
>
> -matrix:
> +jobs:
>    include:
> -    - env:
> +    - name: cl
> +      env:
>        - SSLLIB="openssl"
>        - OPENSSL_VERSION="1.1.1d"
>        - P7Z="c:\Program Files\7-Zip\7z.exe"
>        - CC="cl"
>        os: windows
>        compiler: cl
> -    - env: SSLLIB="openssl" RUN_COVERITY="1"
> +    - name: Coverity scan
> +      env: SSLLIB="openssl" RUN_COVERITY="1"
>        os: linux
>        compiler: gcc
> -    - env: SSLLIB="openssl" OPENSSL_VERSION="1.0.1u"
> +    - name: gcc | openssl-1.0.1u
> +      env: SSLLIB="openssl" OPENSSL_VERSION="1.0.1u"
>        os: linux
>        compiler: gcc
> -    - env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1c"
> +    - name: gcc | openssl-1.1.1d
> +      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
>        os: linux
> +      arch: amd64
>        compiler: gcc
> -    - env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1c" LABEL="linux-ppc64le"
> -      os: linux-ppc64le
> +    - name: gcc | openssl-1.1.1d
> +      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
> +      os: linux
> +      arch: ppc64le
> +      compiler: gcc
> +    - name: gcc | openssl-1.1.1d
> +      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
> +      os: linux
> +      arch: arm64
> +      compiler: gcc
> +    - name: gcc | openssl-1.1.1d
> +      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
> +      os: linux
> +      arch: s390x
>        compiler: gcc
> -    - env: SSLLIB="openssl" EXTRA_CONFIG="--enable-iproute2"
> +    - name: gcc | openssl-1.0.2u | iproute2
> +      env: SSLLIB="openssl" EXTRA_CONFIG="--enable-iproute2"
>        os: linux
>        compiler: gcc
> -    - env: SSLLIB="openssl" CFLAGS="-fsanitize=address" CC=clang-9
> +    - name: clang+asan | openssl-1.0.2u
> +      env: SSLLIB="openssl" CFLAGS="-fsanitize=address" CC=clang-9
>        os: linux
>        compiler: clang
> -    - env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1c" CC=clang-9
> +    - name: clang | openssl-1.1.1d
> +      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d" CC=clang-9
>        os: linux
>        compiler: clang
> -    - env: SSLLIB="mbedtls"
> +    - name: gcc | mbedtls
> +      env: SSLLIB="mbedtls"
>        os: linux
>        compiler: gcc
> -    - env: SSLLIB="mbedtls" CFLAGS="-fsanitize=address" CC=clang-9
> +    - name: clang+asan | mbedtls
> +      env: SSLLIB="mbedtls" CFLAGS="-fsanitize=address" CC=clang-9
>        os: linux
>        compiler: clang
> -    - env: SSLLIB="openssl"
> +    - name: clang | openssl-1.0.2u
> +      env: SSLLIB="openssl"
>        os: osx
>        compiler: clang
> -    - env: SSLLIB="mbedtls"
> +    - name: clang | mbedtls
> +      env: SSLLIB="mbedtls"
>        os: osx
>        compiler: clang
> -    - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32
> OPENSSL_VERSION="1.0.1u"
> +    - name: mingw64 | openssl-1.0.1u
> +      env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32
> OPENSSL_VERSION="1.0.1u"
>        os: linux
>        compiler: ": Win64 build only"
> -    - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32
> OPENSSL_VERSION="1.1.1c"
> +    - name: mingw64 | openssl-1.1.1d
> +      env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32
> OPENSSL_VERSION="1.1.1d"
>        os: linux
>        compiler: ": Win64 build only"
> -    - env: SSLLIB="openssl" CHOST=i686-w64-mingw32
> +    - name: mingw32 | openssl-1.0.2u
> +      env: SSLLIB="openssl" CHOST=i686-w64-mingw32
>        os: linux
>        compiler: ": Win32 build only"
> -    - env: SSLLIB="openssl" EXTRA_CONFIG="--disable-lzo"
> EXTRA_SCRIPT="make distcheck" CC=clang-9
> +    - name: clang | openssl-1.0.2u | disable-lzo | distcheck
> +      env: SSLLIB="openssl" EXTRA_CONFIG="--disable-lzo"
> EXTRA_SCRIPT="make distcheck" CC=clang-9
>        os: linux
>        compiler: clang
> -    - env: SSLLIB="openssl" EXTRA_CONFIG="--enable-small" CC=clang-9
> +    - name: clang | openssl-1.0.2u | enable-small
> +      env: SSLLIB="openssl" EXTRA_CONFIG="--enable-small" CC=clang-9
>        os: linux
>        compiler: clang
>
>  addons:
>    apt:
> -    sources:
> -      - ubuntu-toolchain-r-test
> -      - sourceline: 'deb https://apt.llvm.org/xenial/
> llvm-toolchain-xenial-9 main'
> -        key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
>      update: true
> -    packages: [ liblzo2-dev, libpam0g-dev, liblz4-dev, linux-libc-dev,
> man2html, mingw-w64 ]
> +    packages: [ liblzo2-dev, libpam0g-dev, liblz4-dev, linux-libc-dev,
> man2html, mingw-w64, clang-9, libcmocka-dev ]
>    homebrew:
>      update: true
> -    packages: [ lzo ]
> +    packages: [ lzo, lz4, cmocka ]
>
>  cache:
>    directories:
> @@ -99,9 +123,8 @@ cache:
>    - ${HOME}/Library/Caches/Homebrew
>
>  install:
> -  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_CPU_ARCH" !=
> "ppc64le" ]; then sudo apt-get install clang-9; fi
>    - if [ ! -z "${CHOST}" ]; then unset CC; fi
> -  - .travis/run-build-deps.sh
> +  - travis_wait 30 bash -c '.travis/build-deps.sh > build-deps.log 2>&1'
> || (cat build-deps.log && exit 1)
>
>  before_script:
>    - .travis/coverity.sh
> diff --git a/.travis/build-check.sh b/.travis/build-check.sh
> index f794704c..4e1b7243 100755
> --- a/.travis/build-check.sh
> +++ b/.travis/build-check.sh
> @@ -6,14 +6,6 @@ if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
>         MSBuild.exe openvpn.sln //p:Platform=x64 && exit 0
>  fi
>
> -if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
> -       export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH:-}"
> -fi
> -
> -if [ "${TRAVIS_OS_NAME}" = "osx"   ]; then
> -       export DYLD_LIBRARY_PATH="${PREFIX}/lib:${DYLD_LIBRARY_PATH:-}"
> -fi
> -
>  autoreconf -vi
>
>  if [ -z ${CHOST+x} ]; then
> @@ -21,7 +13,7 @@ if [ -z ${CHOST+x} ]; then
>                 export EXTRA_CONFIG="${EXTRA_CONFIG:-} --enable-werror"
>         fi
>         ./configure --with-crypto-library="${SSLLIB}" ${EXTRA_CONFIG:-} ||
> (cat config.log && exit 1)
> -       make -j$JOBS
> +       make LDFLAGS="-Wl,-rpath,${PREFIX}/lib" -j$JOBS
>         src/openvpn/openvpn --version || true
>         if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
>                 ldd src/openvpn/openvpn;
> diff --git a/.travis/build-deps.sh b/.travis/build-deps.sh
> index 4c5cb05e..0c8d69b8 100755
> --- a/.travis/build-deps.sh
> +++ b/.travis/build-deps.sh
> @@ -44,17 +44,19 @@ build_lzo () {
>  }
>
>  download_pkcs11_helper () {
> -    if [ ! -f "pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2" ]; then
> +    if [ ! -f "pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz" ]; then
>          wget -P download-cache/ \
> -            "
> https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-${PKCS11_HELPER_VERSION}/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2
> "
> +            "
> https://github.com/OpenSC/pkcs11-helper/archive/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz
> "
>      fi
>  }
>
>  build_pkcs11_helper () {
>      if [ "$(cat ${PREFIX}/.pkcs11_helper-version)" !=
> "${PKCS11_HELPER_VERSION}" ]; then
> -        tar jxf
> download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2
> +        tar xf
> download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz
>          (
> -            cd "pkcs11-helper-${PKCS11_HELPER_VERSION}"
> +            cd "pkcs11-helper-pkcs11-helper-${PKCS11_HELPER_VERSION}"
> +
> +            autoreconf -iv
>
>              ./configure --host=${CHOST} --program-prefix=''
> --libdir=${PREFIX}/lib \
>                   --prefix=${PREFIX} --build=x86_64-pc-linux-gnu \
> diff --git a/.travis/run-build-deps.sh b/.travis/run-build-deps.sh
> deleted file mode 100755
> index b8eb41c5..00000000
> --- a/.travis/run-build-deps.sh
> +++ /dev/null
> @@ -1,10 +0,0 @@
> -#!/bin/sh
> -set -eux
> -
> -if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
> -    # for windows we need to print output since openssl build
> -    # might take more than 10 minutes, which causes build abort
> -    .travis/build-deps.sh
> -else
> -    .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log &&
> exit 1)
> -fi
> --
> 2.25.1
>
>
<div dir="ltr"><div>sorry, I sent it twice.</div><div><br></div><div>the last one is good, please ignore previous &quot;v2&quot;</div><div><br></div><div>I&#39;ve managed to resolve &quot;travis_wait&quot; issue. it was non trivial output redirection  issue.</div><div>the rest is just fine.</div><div><br></div><div><br></div><div>patch itself is important it re-enables cmocka tests in travis (they are not running now, after cmocka git submodule was removed)<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вс, 22 мар. 2020 г. в 17:35, &lt;<a href="mailto:chipitsine@gmail.com">chipitsine@gmail.com</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Ilya Shipitsin &lt;<a href="mailto:chipitsine@gmail.com" target="_blank">chipitsine@gmail.com</a>&gt;<br>
<br>
as described on <a href="https://docs.travis-ci.com/user/multi-cpu-architectures" rel="noreferrer" target="_blank">https://docs.travis-ci.com/user/multi-cpu-architectures</a> travis-ci<br>
now supports amd64, ppcle, arm64, s390 architectures. Add arm64 and s390x.<br>
<br>
travis-ci images were upgraded to bionic.<br>
<br>
&quot;sudo&quot; is deprecated, let us remove it, also &quot;matrix&quot; is deprecated in favour of &quot;jobs&quot;.<br>
<br>
LD_LIBRARY_PATH was replaced by using &quot;rpath&quot; in LDFLAGS, which is more elegant way of linking.<br>
<br>
also, dependencies were upgraded to the latest versions.<br>
<br>
travis_wait was added for long openssl builds.<br>
<br>
cmocka was added to linux and osx builds.<br>
---<br>
v3 resolved travis_wait output redirection issue, now it works as expected. I had to specify &quot;names&quot; for jobs,<br>
without names travis puts secure variable as job name<br>
<br>
v2 rebased against proper commit<br>
<br>
<br>
 .travis.yml               | 87 +++++++++++++++++++++++++--------------<br>
 .travis/build-check.sh    | 10 +----<br>
 .travis/build-deps.sh     | 10 +++--<br>
 .travis/run-build-deps.sh | 10 -----<br>
 4 files changed, 62 insertions(+), 55 deletions(-)<br>
 delete mode 100755 .travis/run-build-deps.sh<br>
<br>
diff --git a/.travis.yml b/.travis.yml<br>
index 40296d87..925d09ea 100644<br>
--- a/.travis.yml<br>
+++ b/.travis.yml<br>
@@ -1,5 +1,4 @@<br>
-sudo: required<br>
-dist: xenial<br>
+dist: bionic<br>
<br>
 os: linux<br>
<br>
@@ -11,86 +10,111 @@ env:<br>
     - PREFIX=&quot;${HOME}/opt&quot;<br>
     - TAP_WINDOWS_VERSION=9.23.3<br>
     - LZO_VERSION=2.10<br>
-    - PKCS11_HELPER_VERSION=1.25.1<br>
-    - MBEDTLS_VERSION=2.16.1<br>
+    - PKCS11_HELPER_VERSION=1.26<br>
+    - MBEDTLS_VERSION=2.16.4<br>
     - MBEDTLS_CFLAGS=&quot;-I${PREFIX}/include&quot;<br>
     - MBEDTLS_LIBS=&quot;-L${PREFIX}/lib -lmbedtls -lmbedx509 -lmbedcrypto&quot;<br>
-    - OPENSSL_VERSION=1.0.2s<br>
+    - OPENSSL_VERSION=1.0.2u<br>
     - OPENSSL_CFLAGS=&quot;-I${PREFIX}/include&quot;<br>
     - OPENSSL_LIBS=&quot;-L${PREFIX}/lib -lssl -lcrypto&quot;<br>
     # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created<br>
     #   via the &quot;travis encrypt&quot; command using the project repo&#39;s public key<br>
     - secure: &quot;l9mSnEW4LJqjxftH5i1NdDaYfGmQB1mPXnSB3DXnsjzkCWZ+yJLfBemfQ0tx/wS7chBYxqUaUIMT0hw4zJVp/LANFJo2vfh//ymTS6h0uApRY1ofg9Pp1BFcV1laG6/u8pwSZ2EBy/GhCd3DS436oE8sYBRaFM9FU62L/oeQBfJ7r4ID/0eB1b8bqlbD4paty9MHui2P8EZJwR+KAD84prtfpZOcrSMxPh9OUhJxzxUvvVoP4s4+lZ5Kgg1bBQ3yzKGDqe8VOgK2BWCEuezqhMMc8oeKmAe7CUkoz5gsGYH++k3I9XzP9Z4xeJKoQnC/82qi4xkJmlaOxdionej9bHIcjfRt7D8j1J0U+wOj4p8VrDy7yHaxuN2fi0K5MGa/CaXQSrkna8dePniCng+xQ2MY/zxuRX2gA6xPNLUyQLU9LqIug7wj4z84Hk9iWib4L20MoPjeEo+vAUNq8FtjOPxMuHNpv4iGGx6kgJm7RXl5vC5hxfK6MprrnYe2U5Mcd8jpzagKBaKHL3zV2FxX9k0jRO9Mccz7M2WnaV0MQ6zcngzTN4+s0kCjhfGKd2F2ANT2Gkhj3Me36eNHfuE0dBbvYCMh4b3Mgd7b/OuXwQWdJ8PjJ1WHXjSOw5sHw1suaV6cEO2Meyz5j1tOkyOi0M9QF+LFenQ9vLH4sBCww8U=&quot;<br>
<br>
-matrix:<br>
+jobs:<br>
   include:<br>
-    - env:<br>
+    - name: cl<br>
+      env:<br>
       - SSLLIB=&quot;openssl&quot;<br>
       - OPENSSL_VERSION=&quot;1.1.1d&quot;<br>
       - P7Z=&quot;c:\Program Files\7-Zip\7z.exe&quot;<br>
       - CC=&quot;cl&quot;<br>
       os: windows<br>
       compiler: cl<br>
-    - env: SSLLIB=&quot;openssl&quot; RUN_COVERITY=&quot;1&quot;<br>
+    - name: Coverity scan<br>
+      env: SSLLIB=&quot;openssl&quot; RUN_COVERITY=&quot;1&quot;<br>
       os: linux<br>
       compiler: gcc<br>
-    - env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.0.1u&quot;<br>
+    - name: gcc | openssl-1.0.1u<br>
+      env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.0.1u&quot;<br>
       os: linux<br>
       compiler: gcc<br>
-    - env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1c&quot;<br>
+    - name: gcc | openssl-1.1.1d<br>
+      env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1d&quot;<br>
       os: linux<br>
+      arch: amd64<br>
       compiler: gcc<br>
-    - env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1c&quot; LABEL=&quot;linux-ppc64le&quot;<br>
-      os: linux-ppc64le<br>
+    - name: gcc | openssl-1.1.1d<br>
+      env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1d&quot;<br>
+      os: linux<br>
+      arch: ppc64le<br>
+      compiler: gcc<br>
+    - name: gcc | openssl-1.1.1d<br>
+      env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1d&quot;<br>
+      os: linux<br>
+      arch: arm64<br>
+      compiler: gcc<br>
+    - name: gcc | openssl-1.1.1d<br>
+      env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1d&quot;<br>
+      os: linux<br>
+      arch: s390x<br>
       compiler: gcc<br>
-    - env: SSLLIB=&quot;openssl&quot; EXTRA_CONFIG=&quot;--enable-iproute2&quot;<br>
+    - name: gcc | openssl-1.0.2u | iproute2<br>
+      env: SSLLIB=&quot;openssl&quot; EXTRA_CONFIG=&quot;--enable-iproute2&quot;<br>
       os: linux<br>
       compiler: gcc<br>
-    - env: SSLLIB=&quot;openssl&quot; CFLAGS=&quot;-fsanitize=address&quot; CC=clang-9<br>
+    - name: clang+asan | openssl-1.0.2u<br>
+      env: SSLLIB=&quot;openssl&quot; CFLAGS=&quot;-fsanitize=address&quot; CC=clang-9<br>
       os: linux<br>
       compiler: clang<br>
-    - env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1c&quot; CC=clang-9<br>
+    - name: clang | openssl-1.1.1d<br>
+      env: SSLLIB=&quot;openssl&quot; OPENSSL_VERSION=&quot;1.1.1d&quot; CC=clang-9<br>
       os: linux<br>
       compiler: clang<br>
-    - env: SSLLIB=&quot;mbedtls&quot;<br>
+    - name: gcc | mbedtls<br>
+      env: SSLLIB=&quot;mbedtls&quot;<br>
       os: linux<br>
       compiler: gcc<br>
-    - env: SSLLIB=&quot;mbedtls&quot; CFLAGS=&quot;-fsanitize=address&quot; CC=clang-9<br>
+    - name: clang+asan | mbedtls<br>
+      env: SSLLIB=&quot;mbedtls&quot; CFLAGS=&quot;-fsanitize=address&quot; CC=clang-9<br>
       os: linux<br>
       compiler: clang<br>
-    - env: SSLLIB=&quot;openssl&quot;<br>
+    - name: clang | openssl-1.0.2u<br>
+      env: SSLLIB=&quot;openssl&quot;<br>
       os: osx<br>
       compiler: clang<br>
-    - env: SSLLIB=&quot;mbedtls&quot;<br>
+    - name: clang | mbedtls<br>
+      env: SSLLIB=&quot;mbedtls&quot;<br>
       os: osx<br>
       compiler: clang<br>
-    - env: SSLLIB=&quot;openssl&quot; CHOST=x86_64-w64-mingw32 OPENSSL_VERSION=&quot;1.0.1u&quot;<br>
+    - name: mingw64 | openssl-1.0.1u<br>
+      env: SSLLIB=&quot;openssl&quot; CHOST=x86_64-w64-mingw32 OPENSSL_VERSION=&quot;1.0.1u&quot;<br>
       os: linux<br>
       compiler: &quot;: Win64 build only&quot;<br>
-    - env: SSLLIB=&quot;openssl&quot; CHOST=x86_64-w64-mingw32 OPENSSL_VERSION=&quot;1.1.1c&quot;<br>
+    - name: mingw64 | openssl-1.1.1d<br>
+      env: SSLLIB=&quot;openssl&quot; CHOST=x86_64-w64-mingw32 OPENSSL_VERSION=&quot;1.1.1d&quot;<br>
       os: linux<br>
       compiler: &quot;: Win64 build only&quot;<br>
-    - env: SSLLIB=&quot;openssl&quot; CHOST=i686-w64-mingw32<br>
+    - name: mingw32 | openssl-1.0.2u<br>
+      env: SSLLIB=&quot;openssl&quot; CHOST=i686-w64-mingw32<br>
       os: linux<br>
       compiler: &quot;: Win32 build only&quot;<br>
-    - env: SSLLIB=&quot;openssl&quot; EXTRA_CONFIG=&quot;--disable-lzo&quot; EXTRA_SCRIPT=&quot;make distcheck&quot; CC=clang-9<br>
+    - name: clang | openssl-1.0.2u | disable-lzo | distcheck<br>
+      env: SSLLIB=&quot;openssl&quot; EXTRA_CONFIG=&quot;--disable-lzo&quot; EXTRA_SCRIPT=&quot;make distcheck&quot; CC=clang-9<br>
       os: linux<br>
       compiler: clang<br>
-    - env: SSLLIB=&quot;openssl&quot; EXTRA_CONFIG=&quot;--enable-small&quot; CC=clang-9<br>
+    - name: clang | openssl-1.0.2u | enable-small<br>
+      env: SSLLIB=&quot;openssl&quot; EXTRA_CONFIG=&quot;--enable-small&quot; CC=clang-9<br>
       os: linux<br>
       compiler: clang<br>
<br>
 addons:<br>
   apt:<br>
-    sources:<br>
-      - ubuntu-toolchain-r-test<br>
-      - sourceline: &#39;deb <a href="https://apt.llvm.org/xenial/" rel="noreferrer" target="_blank">https://apt.llvm.org/xenial/</a> llvm-toolchain-xenial-9 main&#39;<br>
-        key_url: &#39;<a href="https://apt.llvm.org/llvm-snapshot.gpg.key" rel="noreferrer" target="_blank">https://apt.llvm.org/llvm-snapshot.gpg.key</a>&#39;<br>
     update: true<br>
-    packages: [ liblzo2-dev, libpam0g-dev, liblz4-dev, linux-libc-dev, man2html, mingw-w64 ]<br>
+    packages: [ liblzo2-dev, libpam0g-dev, liblz4-dev, linux-libc-dev, man2html, mingw-w64, clang-9, libcmocka-dev ]<br>
   homebrew:<br>
     update: true<br>
-    packages: [ lzo ]<br>
+    packages: [ lzo, lz4, cmocka ]<br>
<br>
 cache:<br>
   directories:<br>
@@ -99,9 +123,8 @@ cache:<br>
   - ${HOME}/Library/Caches/Homebrew<br>
<br>
 install:<br>
-  - if [ &quot;$TRAVIS_OS_NAME&quot; = &quot;linux&quot; ] &amp;&amp; [ &quot;$TRAVIS_CPU_ARCH&quot; != &quot;ppc64le&quot; ]; then sudo apt-get install clang-9; fi<br>
   - if [ ! -z &quot;${CHOST}&quot; ]; then unset CC; fi<br>
-  - .travis/run-build-deps.sh<br>
+  - travis_wait 30 bash -c &#39;.travis/build-deps.sh &gt; build-deps.log 2&gt;&amp;1&#39; || (cat build-deps.log &amp;&amp; exit 1)<br>
<br>
 before_script:<br>
   - .travis/coverity.sh<br>
diff --git a/.travis/build-check.sh b/.travis/build-check.sh<br>
index f794704c..4e1b7243 100755<br>
--- a/.travis/build-check.sh<br>
+++ b/.travis/build-check.sh<br>
@@ -6,14 +6,6 @@ if [ &quot;${TRAVIS_OS_NAME}&quot; = &quot;windows&quot; ]; then<br>
        MSBuild.exe openvpn.sln //p:Platform=x64 &amp;&amp; exit 0<br>
 fi<br>
<br>
-if [ &quot;${TRAVIS_OS_NAME}&quot; = &quot;linux&quot; ]; then<br>
-       export LD_LIBRARY_PATH=&quot;${PREFIX}/lib:${LD_LIBRARY_PATH:-}&quot;<br>
-fi<br>
-<br>
-if [ &quot;${TRAVIS_OS_NAME}&quot; = &quot;osx&quot;   ]; then<br>
-       export DYLD_LIBRARY_PATH=&quot;${PREFIX}/lib:${DYLD_LIBRARY_PATH:-}&quot;<br>
-fi<br>
-<br>
 autoreconf -vi<br>
<br>
 if [ -z ${CHOST+x} ]; then<br>
@@ -21,7 +13,7 @@ if [ -z ${CHOST+x} ]; then<br>
                export EXTRA_CONFIG=&quot;${EXTRA_CONFIG:-} --enable-werror&quot;<br>
        fi<br>
        ./configure --with-crypto-library=&quot;${SSLLIB}&quot; ${EXTRA_CONFIG:-} || (cat config.log &amp;&amp; exit 1)<br>
-       make -j$JOBS<br>
+       make LDFLAGS=&quot;-Wl,-rpath,${PREFIX}/lib&quot; -j$JOBS<br>
        src/openvpn/openvpn --version || true<br>
        if [ &quot;${TRAVIS_OS_NAME}&quot; = &quot;linux&quot; ]; then<br>
                ldd src/openvpn/openvpn;<br>
diff --git a/.travis/build-deps.sh b/.travis/build-deps.sh<br>
index 4c5cb05e..0c8d69b8 100755<br>
--- a/.travis/build-deps.sh<br>
+++ b/.travis/build-deps.sh<br>
@@ -44,17 +44,19 @@ build_lzo () {<br>
 }<br>
<br>
 download_pkcs11_helper () {<br>
-    if [ ! -f &quot;pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2&quot; ]; then<br>
+    if [ ! -f &quot;pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz&quot; ]; then<br>
         wget -P download-cache/ \<br>
-            &quot;<a href="https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-$%7BPKCS11_HELPER_VERSION%7D/pkcs11-helper-$%7BPKCS11_HELPER_VERSION%7D.tar.bz2" rel="noreferrer" target="_blank">https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-${PKCS11_HELPER_VERSION}/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2</a>&quot;<br>
+            &quot;<a href="https://github.com/OpenSC/pkcs11-helper/archive/pkcs11-helper-$%7BPKCS11_HELPER_VERSION%7D.tar.gz" rel="noreferrer" target="_blank">https://github.com/OpenSC/pkcs11-helper/archive/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz</a>&quot;<br>
     fi<br>
 }<br>
<br>
 build_pkcs11_helper () {<br>
     if [ &quot;$(cat ${PREFIX}/.pkcs11_helper-version)&quot; != &quot;${PKCS11_HELPER_VERSION}&quot; ]; then<br>
-        tar jxf download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2<br>
+        tar xf download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz<br>
         (<br>
-            cd &quot;pkcs11-helper-${PKCS11_HELPER_VERSION}&quot;<br>
+            cd &quot;pkcs11-helper-pkcs11-helper-${PKCS11_HELPER_VERSION}&quot;<br>
+<br>
+            autoreconf -iv<br>
<br>
             ./configure --host=${CHOST} --program-prefix=&#39;&#39; --libdir=${PREFIX}/lib \<br>
                  --prefix=${PREFIX} --build=x86_64-pc-linux-gnu \<br>
diff --git a/.travis/run-build-deps.sh b/.travis/run-build-deps.sh<br>
deleted file mode 100755<br>
index b8eb41c5..00000000<br>
--- a/.travis/run-build-deps.sh<br>
+++ /dev/null<br>
@@ -1,10 +0,0 @@<br>
-#!/bin/sh<br>
-set -eux<br>
-<br>
-if [ &quot;${TRAVIS_OS_NAME}&quot; = &quot;windows&quot; ]; then<br>
-    # for windows we need to print output since openssl build<br>
-    # might take more than 10 minutes, which causes build abort<br>
-    .travis/build-deps.sh<br>
-else<br>
-    .travis/build-deps.sh &gt; build-deps.log 2&gt;&amp;1 || (cat build-deps.log &amp;&amp; exit 1)<br>
-fi<br>
-- <br>
2.25.1<br>
<br>
</blockquote></div>
Lev Stipakov March 24, 2020, 8:48 a.m. | #2
Hi,

Tested with my openvpn github fork - all jobs passed and overall
travis dashboard looks nice thanks to added "name" field.

It would be even nicer to have "arch" as part of name, because now it looks like

     gcc | openssl-1.1.1d
     gcc | openssl-1.1.1d

But this is already step forward and improvements could be done in a
separate patch.

Acked-by: Lev Stipakov <lstipakov@gmail.com>
Илья Шипицин March 24, 2020, 8:53 a.m. | #3
Hello,

without "name" it looks like
https://travis-ci.org/github/chipitsine/openvpn/builds/665421561
brrr


arch is displayed (when you logged in to travis :)

[image: Screenshot from 2020-03-24 13-52-10.png]





вт, 24 мар. 2020 г. в 13:48, Lev Stipakov <lstipakov@gmail.com>:

> Hi,
>
> Tested with my openvpn github fork - all jobs passed and overall
> travis dashboard looks nice thanks to added "name" field.
>
> It would be even nicer to have "arch" as part of name, because now it
> looks like
>
>      gcc | openssl-1.1.1d
>      gcc | openssl-1.1.1d
>
> But this is already step forward and improvements could be done in a
> separate patch.
>
> Acked-by: Lev Stipakov <lstipakov@gmail.com>
>
<div dir="ltr"><div>Hello,</div><div><br></div><div>without &quot;name&quot; it looks like  <a href="https://travis-ci.org/github/chipitsine/openvpn/builds/665421561">https://travis-ci.org/github/chipitsine/openvpn/builds/665421561</a></div><div>brrr</div><div><br></div><div><br></div><div>arch is displayed (when you logged in to travis :)</div><div><br></div><div><div><img src="cid:ii_k85nwaqg0" alt="Screenshot from 2020-03-24 13-52-10.png" width="525" height="566"><br><br></div></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 24 мар. 2020 г. в 13:48, Lev Stipakov &lt;<a href="mailto:lstipakov@gmail.com">lstipakov@gmail.com</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br>
<br>
Tested with my openvpn github fork - all jobs passed and overall<br>
travis dashboard looks nice thanks to added &quot;name&quot; field.<br>
<br>
It would be even nicer to have &quot;arch&quot; as part of name, because now it looks like<br>
<br>
     gcc | openssl-1.1.1d<br>
     gcc | openssl-1.1.1d<br>
<br>
But this is already step forward and improvements could be done in a<br>
separate patch.<br>
<br>
Acked-by: Lev Stipakov &lt;<a href="mailto:lstipakov@gmail.com" target="_blank">lstipakov@gmail.com</a>&gt;<br>
</blockquote></div>
Lev Stipakov March 24, 2020, 9:03 a.m. | #4
Yes, I agree that with name is looks much better.

I wonder why displaying arch requires you to be logged in.
<div dir="ltr"><div dir="ltr">Yes, I agree that with name is looks much better.<div><br></div><div>I wonder why displaying arch requires you to be logged in.</div></div></div>
Илья Шипицин March 24, 2020, 9:04 a.m. | #5
I guess nobody yet reported that issue.

Maybe, I'll report.

вт, 24 мар. 2020 г. в 14:03, Lev Stipakov <lstipakov@gmail.com>:

> Yes, I agree that with name is looks much better.
>
> I wonder why displaying arch requires you to be logged in.
>
<div dir="ltr"><div>I guess nobody yet reported that issue.</div><div><br></div><div>Maybe, I&#39;ll report.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 24 мар. 2020 г. в 14:03, Lev Stipakov &lt;<a href="mailto:lstipakov@gmail.com">lstipakov@gmail.com</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Yes, I agree that with name is looks much better.<div><br></div><div>I wonder why displaying arch requires you to be logged in.</div></div></div>
</blockquote></div>
Gert Doering March 24, 2020, 3:33 p.m. | #6
Thanks.

Your patch has been applied to the master branch.

commit 072f7d352d4c9b9b58dfac97fc4bb5c95652aa25
Author: Ilya Shipitsin
Date:   Sun Mar 22 17:35:21 2020 +0500

     travis-ci: add arm64, s390x builds.

     Acked-by: Lev Stipakov <lstipakov@gmail.com>
     Message-Id: <20200322123521.17710-1-chipitsine@gmail.com>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg19574.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering
Илья Шипицин March 24, 2020, 4:55 p.m. | #7
sometimes, arm64 build fails

https://travis-ci.org/github/OpenVPN/openvpn/jobs/666389482?utm_medium=notification&utm_source=github_status


if that will become often, we will mark it as "allowed failures"



thanks to everyone, we have cmocka tests back!

вт, 24 мар. 2020 г. в 14:04, Илья Шипицин <chipitsine@gmail.com>:

> I guess nobody yet reported that issue.
>
> Maybe, I'll report.
>
> вт, 24 мар. 2020 г. в 14:03, Lev Stipakov <lstipakov@gmail.com>:
>
>> Yes, I agree that with name is looks much better.
>>
>> I wonder why displaying arch requires you to be logged in.
>>
>
<div dir="ltr"><div>sometimes, arm64 build fails</div><div><br></div><div><a href="https://travis-ci.org/github/OpenVPN/openvpn/jobs/666389482?utm_medium=notification&amp;utm_source=github_status">https://travis-ci.org/github/OpenVPN/openvpn/jobs/666389482?utm_medium=notification&amp;utm_source=github_status</a></div><div><br></div><div><br></div><div>if that will become often, we will mark it as &quot;allowed failures&quot;</div><div><br></div><div><br></div><div><br></div><div>thanks to everyone, we have cmocka tests back!<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 24 мар. 2020 г. в 14:04, Илья Шипицин &lt;<a href="mailto:chipitsine@gmail.com">chipitsine@gmail.com</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>I guess nobody yet reported that issue.</div><div><br></div><div>Maybe, I&#39;ll report.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 24 мар. 2020 г. в 14:03, Lev Stipakov &lt;<a href="mailto:lstipakov@gmail.com" target="_blank">lstipakov@gmail.com</a>&gt;:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Yes, I agree that with name is looks much better.<div><br></div><div>I wonder why displaying arch requires you to be logged in.</div></div></div>
</blockquote></div>
</blockquote></div>

Patch

diff --git a/.travis.yml b/.travis.yml
index 40296d87..925d09ea 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,4 @@ 
-sudo: required
-dist: xenial
+dist: bionic
 
 os: linux
 
@@ -11,86 +10,111 @@  env:
     - PREFIX="${HOME}/opt"
     - TAP_WINDOWS_VERSION=9.23.3
     - LZO_VERSION=2.10
-    - PKCS11_HELPER_VERSION=1.25.1
-    - MBEDTLS_VERSION=2.16.1
+    - PKCS11_HELPER_VERSION=1.26
+    - MBEDTLS_VERSION=2.16.4
     - MBEDTLS_CFLAGS="-I${PREFIX}/include"
     - MBEDTLS_LIBS="-L${PREFIX}/lib -lmbedtls -lmbedx509 -lmbedcrypto"
-    - OPENSSL_VERSION=1.0.2s
+    - OPENSSL_VERSION=1.0.2u
     - OPENSSL_CFLAGS="-I${PREFIX}/include"
     - OPENSSL_LIBS="-L${PREFIX}/lib -lssl -lcrypto"
     # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
     #   via the "travis encrypt" command using the project repo's public key
     - secure: "l9mSnEW4LJqjxftH5i1NdDaYfGmQB1mPXnSB3DXnsjzkCWZ+yJLfBemfQ0tx/wS7chBYxqUaUIMT0hw4zJVp/LANFJo2vfh//ymTS6h0uApRY1ofg9Pp1BFcV1laG6/u8pwSZ2EBy/GhCd3DS436oE8sYBRaFM9FU62L/oeQBfJ7r4ID/0eB1b8bqlbD4paty9MHui2P8EZJwR+KAD84prtfpZOcrSMxPh9OUhJxzxUvvVoP4s4+lZ5Kgg1bBQ3yzKGDqe8VOgK2BWCEuezqhMMc8oeKmAe7CUkoz5gsGYH++k3I9XzP9Z4xeJKoQnC/82qi4xkJmlaOxdionej9bHIcjfRt7D8j1J0U+wOj4p8VrDy7yHaxuN2fi0K5MGa/CaXQSrkna8dePniCng+xQ2MY/zxuRX2gA6xPNLUyQLU9LqIug7wj4z84Hk9iWib4L20MoPjeEo+vAUNq8FtjOPxMuHNpv4iGGx6kgJm7RXl5vC5hxfK6MprrnYe2U5Mcd8jpzagKBaKHL3zV2FxX9k0jRO9Mccz7M2WnaV0MQ6zcngzTN4+s0kCjhfGKd2F2ANT2Gkhj3Me36eNHfuE0dBbvYCMh4b3Mgd7b/OuXwQWdJ8PjJ1WHXjSOw5sHw1suaV6cEO2Meyz5j1tOkyOi0M9QF+LFenQ9vLH4sBCww8U="
 
-matrix:
+jobs:
   include:
-    - env:
+    - name: cl
+      env:
       - SSLLIB="openssl"
       - OPENSSL_VERSION="1.1.1d"
       - P7Z="c:\Program Files\7-Zip\7z.exe"
       - CC="cl"
       os: windows
       compiler: cl
-    - env: SSLLIB="openssl" RUN_COVERITY="1"
+    - name: Coverity scan
+      env: SSLLIB="openssl" RUN_COVERITY="1"
       os: linux
       compiler: gcc
-    - env: SSLLIB="openssl" OPENSSL_VERSION="1.0.1u"
+    - name: gcc | openssl-1.0.1u
+      env: SSLLIB="openssl" OPENSSL_VERSION="1.0.1u"
       os: linux
       compiler: gcc
-    - env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1c"
+    - name: gcc | openssl-1.1.1d
+      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
       os: linux
+      arch: amd64
       compiler: gcc
-    - env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1c" LABEL="linux-ppc64le"
-      os: linux-ppc64le
+    - name: gcc | openssl-1.1.1d
+      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
+      os: linux
+      arch: ppc64le
+      compiler: gcc
+    - name: gcc | openssl-1.1.1d
+      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
+      os: linux
+      arch: arm64
+      compiler: gcc
+    - name: gcc | openssl-1.1.1d
+      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d"
+      os: linux
+      arch: s390x
       compiler: gcc
-    - env: SSLLIB="openssl" EXTRA_CONFIG="--enable-iproute2"
+    - name: gcc | openssl-1.0.2u | iproute2
+      env: SSLLIB="openssl" EXTRA_CONFIG="--enable-iproute2"
       os: linux
       compiler: gcc
-    - env: SSLLIB="openssl" CFLAGS="-fsanitize=address" CC=clang-9
+    - name: clang+asan | openssl-1.0.2u
+      env: SSLLIB="openssl" CFLAGS="-fsanitize=address" CC=clang-9
       os: linux
       compiler: clang
-    - env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1c" CC=clang-9
+    - name: clang | openssl-1.1.1d
+      env: SSLLIB="openssl" OPENSSL_VERSION="1.1.1d" CC=clang-9
       os: linux
       compiler: clang
-    - env: SSLLIB="mbedtls"
+    - name: gcc | mbedtls
+      env: SSLLIB="mbedtls"
       os: linux
       compiler: gcc
-    - env: SSLLIB="mbedtls" CFLAGS="-fsanitize=address" CC=clang-9
+    - name: clang+asan | mbedtls
+      env: SSLLIB="mbedtls" CFLAGS="-fsanitize=address" CC=clang-9
       os: linux
       compiler: clang
-    - env: SSLLIB="openssl"
+    - name: clang | openssl-1.0.2u
+      env: SSLLIB="openssl"
       os: osx
       compiler: clang
-    - env: SSLLIB="mbedtls"
+    - name: clang | mbedtls
+      env: SSLLIB="mbedtls"
       os: osx
       compiler: clang
-    - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32 OPENSSL_VERSION="1.0.1u"
+    - name: mingw64 | openssl-1.0.1u
+      env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32 OPENSSL_VERSION="1.0.1u"
       os: linux
       compiler: ": Win64 build only"
-    - env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32 OPENSSL_VERSION="1.1.1c"
+    - name: mingw64 | openssl-1.1.1d
+      env: SSLLIB="openssl" CHOST=x86_64-w64-mingw32 OPENSSL_VERSION="1.1.1d"
       os: linux
       compiler: ": Win64 build only"
-    - env: SSLLIB="openssl" CHOST=i686-w64-mingw32
+    - name: mingw32 | openssl-1.0.2u
+      env: SSLLIB="openssl" CHOST=i686-w64-mingw32
       os: linux
       compiler: ": Win32 build only"
-    - env: SSLLIB="openssl" EXTRA_CONFIG="--disable-lzo" EXTRA_SCRIPT="make distcheck" CC=clang-9
+    - name: clang | openssl-1.0.2u | disable-lzo | distcheck
+      env: SSLLIB="openssl" EXTRA_CONFIG="--disable-lzo" EXTRA_SCRIPT="make distcheck" CC=clang-9
       os: linux
       compiler: clang
-    - env: SSLLIB="openssl" EXTRA_CONFIG="--enable-small" CC=clang-9
+    - name: clang | openssl-1.0.2u | enable-small
+      env: SSLLIB="openssl" EXTRA_CONFIG="--enable-small" CC=clang-9
       os: linux
       compiler: clang
 
 addons:
   apt:
-    sources:
-      - ubuntu-toolchain-r-test
-      - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
-        key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
     update: true
-    packages: [ liblzo2-dev, libpam0g-dev, liblz4-dev, linux-libc-dev, man2html, mingw-w64 ]
+    packages: [ liblzo2-dev, libpam0g-dev, liblz4-dev, linux-libc-dev, man2html, mingw-w64, clang-9, libcmocka-dev ]
   homebrew:
     update: true
-    packages: [ lzo ]
+    packages: [ lzo, lz4, cmocka ]
 
 cache:
   directories:
@@ -99,9 +123,8 @@  cache:
   - ${HOME}/Library/Caches/Homebrew
 
 install:
-  - if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$TRAVIS_CPU_ARCH" != "ppc64le" ]; then sudo apt-get install clang-9; fi
   - if [ ! -z "${CHOST}" ]; then unset CC; fi
-  - .travis/run-build-deps.sh
+  - travis_wait 30 bash -c '.travis/build-deps.sh > build-deps.log 2>&1' || (cat build-deps.log && exit 1)
 
 before_script:
   - .travis/coverity.sh
diff --git a/.travis/build-check.sh b/.travis/build-check.sh
index f794704c..4e1b7243 100755
--- a/.travis/build-check.sh
+++ b/.travis/build-check.sh
@@ -6,14 +6,6 @@  if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
 	MSBuild.exe openvpn.sln //p:Platform=x64 && exit 0
 fi
 
-if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
-	export LD_LIBRARY_PATH="${PREFIX}/lib:${LD_LIBRARY_PATH:-}"
-fi
-
-if [ "${TRAVIS_OS_NAME}" = "osx"   ]; then
-	export DYLD_LIBRARY_PATH="${PREFIX}/lib:${DYLD_LIBRARY_PATH:-}"
-fi
-
 autoreconf -vi
 
 if [ -z ${CHOST+x} ]; then
@@ -21,7 +13,7 @@  if [ -z ${CHOST+x} ]; then
 		export EXTRA_CONFIG="${EXTRA_CONFIG:-} --enable-werror"
 	fi
 	./configure --with-crypto-library="${SSLLIB}" ${EXTRA_CONFIG:-} || (cat config.log && exit 1)
-	make -j$JOBS
+	make LDFLAGS="-Wl,-rpath,${PREFIX}/lib" -j$JOBS
 	src/openvpn/openvpn --version || true
 	if [ "${TRAVIS_OS_NAME}" = "linux" ]; then
 		ldd src/openvpn/openvpn;
diff --git a/.travis/build-deps.sh b/.travis/build-deps.sh
index 4c5cb05e..0c8d69b8 100755
--- a/.travis/build-deps.sh
+++ b/.travis/build-deps.sh
@@ -44,17 +44,19 @@  build_lzo () {
 }
 
 download_pkcs11_helper () {
-    if [ ! -f "pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2" ]; then
+    if [ ! -f "pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz" ]; then
         wget -P download-cache/ \
-            "https://github.com/OpenSC/pkcs11-helper/releases/download/pkcs11-helper-${PKCS11_HELPER_VERSION}/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2"
+            "https://github.com/OpenSC/pkcs11-helper/archive/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz"
     fi
 }
 
 build_pkcs11_helper () {
     if [ "$(cat ${PREFIX}/.pkcs11_helper-version)" != "${PKCS11_HELPER_VERSION}" ]; then
-        tar jxf download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.bz2
+        tar xf download-cache/pkcs11-helper-${PKCS11_HELPER_VERSION}.tar.gz
         (
-            cd "pkcs11-helper-${PKCS11_HELPER_VERSION}"
+            cd "pkcs11-helper-pkcs11-helper-${PKCS11_HELPER_VERSION}"
+
+            autoreconf -iv
 
             ./configure --host=${CHOST} --program-prefix='' --libdir=${PREFIX}/lib \
                  --prefix=${PREFIX} --build=x86_64-pc-linux-gnu \
diff --git a/.travis/run-build-deps.sh b/.travis/run-build-deps.sh
deleted file mode 100755
index b8eb41c5..00000000
--- a/.travis/run-build-deps.sh
+++ /dev/null
@@ -1,10 +0,0 @@ 
-#!/bin/sh
-set -eux
-
-if [ "${TRAVIS_OS_NAME}" = "windows" ]; then
-    # for windows we need to print output since openssl build
-    # might take more than 10 minutes, which causes build abort
-    .travis/build-deps.sh
-else
-    .travis/build-deps.sh > build-deps.log 2>&1 || (cat build-deps.log && exit 1)
-fi