ci: update Travis-CI configuration

 * Re-enable ASan with gcc-7
 * Add clang-6.0 to the build matrix (allowed to fail)
 * Remove unsupported OSX-10.10 configuration
 * Upgrade xcode9 to xcode9.2
 * Add testing of openssl 1.1 on osx (allowed to fail)
 * Various simplifications

Change-Id: I3cdfcf78e6a9be66d1063fee710528698ad90bca
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 66dafb4..79d65a2 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -7,7 +7,13 @@
 set -x
 
 if has OSX $NODE_LABELS; then
-    FORMULAE=(boost openssl pkg-config)
+    FORMULAE=(boost pkg-config)
+    if [[ -n $USE_OPENSSL_1_1 ]]; then
+        FORMULAE+=(openssl@1.1)
+    else
+        FORMULAE+=(openssl)
+    fi
+
     brew update
     if [[ -n $TRAVIS ]]; then
         # travis images come with a large number of brew packages
diff --git a/.jenkins.d/10-build.sh b/.jenkins.d/10-build.sh
index 6844e93..fe2bfa0 100755
--- a/.jenkins.d/10-build.sh
+++ b/.jenkins.d/10-build.sh
@@ -11,19 +11,28 @@
 sudo rm -f /usr/local/lib/libndn-cxx*
 sudo rm -f /usr/local/lib/pkgconfig/libndn-cxx.pc
 
+if [[ $JOB_NAME == *"code-coverage" ]]; then
+    COVERAGE="--with-coverage"
+elif [[ -z $DISABLE_ASAN ]]; then
+    ASAN="--with-sanitizer=address"
+fi
+if [[ -n $USE_OPENSSL_1_1 ]] && has OSX $NODE_LABELS; then
+    OPENSSL="--with-openssl=/usr/local/opt/openssl@1.1"
+fi
+
 # Cleanup
 sudo env "PATH=$PATH" ./waf --color=yes distclean
 
 if [[ $JOB_NAME != *"code-coverage" && $JOB_NAME != *"limited-build" ]]; then
   # Configure/build static library in optimized mode with tests
-  ./waf --color=yes configure --enable-static --disable-shared --with-tests
+  ./waf --color=yes configure --enable-static --disable-shared --with-tests $OPENSSL
   ./waf --color=yes build -j${WAF_JOBS:-1}
 
   # Cleanup
   sudo env "PATH=$PATH" ./waf --color=yes distclean
 
   # Configure/build static and shared library in optimized mode without tests
-  ./waf --color=yes configure --enable-static --enable-shared
+  ./waf --color=yes configure --enable-static --enable-shared $OPENSSL
   ./waf --color=yes build -j${WAF_JOBS:-1}
 
   # Cleanup
@@ -31,12 +40,8 @@
 fi
 
 # Configure/build shared library in debug mode with tests/examples and without precompiled headers
-if [[ $JOB_NAME == *"code-coverage" ]]; then
-    COVERAGE="--with-coverage"
-elif [[ -n $BUILD_WITH_ASAN || -z $TRAVIS ]]; then
-    ASAN="--with-sanitizer=address"
-fi
-./waf --color=yes configure --disable-static --enable-shared --debug --with-tests --with-examples --without-pch $COVERAGE $ASAN
+./waf --color=yes configure --disable-static --enable-shared --debug --with-tests \
+                            --with-examples --without-pch $ASAN $COVERAGE $OPENSSL
 ./waf --color=yes build -j${WAF_JOBS:-1}
 
 # (tests will be run against debug version)
diff --git a/.travis.yml b/.travis.yml
index f7bd3fe..2b37b90 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,6 @@
+language: cpp
+dist: trusty
 sudo: required
-language: generic
 env:
   global:
     - JOB_NAME=limited-build
@@ -8,154 +9,108 @@
 matrix:
   include:
     # Linux/gcc
+    # https://launchpad.net/~ubuntu-toolchain-r/+archive/ubuntu/test/+packages
     - os: linux
-      dist: trusty
-      env:
-        - CXX=g++-4.8
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
+      env: COMPILER=g++-4.8
     - os: linux
-      dist: trusty
+      env: COMPILER=g++-4.9
       addons:
         apt:
           sources: ubuntu-toolchain-r-test
           packages: g++-4.9
-      env:
-        - CXX=g++-4.9
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=g++-5
       addons:
         apt:
           sources: ubuntu-toolchain-r-test
           packages: g++-5
-      env:
-        - CXX=g++-5
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=g++-6
       addons:
         apt:
           sources: ubuntu-toolchain-r-test
           packages: g++-6
-      env:
-        - CXX=g++-6
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=g++-7
       addons:
         apt:
           sources: ubuntu-toolchain-r-test
           packages: g++-7
-      env:
-        - CXX=g++-7
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        # BUILD_WITH_ASAN=yes # bug 4147
 
     # Linux/clang
+    # https://apt.llvm.org/
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-3.5
       addons:
         apt:
           packages: clang-3.5
-      env:
-        - CXX=clang++-3.5
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-3.6
       addons:
         apt:
           packages: clang-3.6
-      env:
-        - CXX=clang++-3.6
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-3.7 DISABLE_ASAN=yes
       addons:
         apt:
-          sources:
-            - llvm-toolchain-precise-3.7
-            - ubuntu-toolchain-r-test
+          sources: ["llvm-toolchain-precise-3.7", "ubuntu-toolchain-r-test"]
           packages: clang-3.7
-      env:
-        - CXX=clang++-3.7
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-3.8
       addons:
         apt:
-          sources:
-            - llvm-toolchain-precise-3.8
-            - ubuntu-toolchain-r-test
+          sources: ["llvm-toolchain-precise-3.8", "ubuntu-toolchain-r-test"]
           packages: clang-3.8
-      env:
-        - CXX=clang++-3.8
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-3.9 DISABLE_ASAN=yes
       addons:
         apt:
-          sources:
-            - llvm-toolchain-trusty-3.9
-            - ubuntu-toolchain-r-test
+          sources: ["llvm-toolchain-trusty-3.9", "ubuntu-toolchain-r-test"]
           packages: clang-3.9
-      env:
-        - CXX=clang++-3.9
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-4.0
       addons:
         apt:
-          sources:
-            - llvm-toolchain-trusty-4.0
-            - ubuntu-toolchain-r-test
+          sources: ["llvm-toolchain-trusty-4.0", "ubuntu-toolchain-r-test"]
           packages: clang-4.0
-      env:
-        - CXX=clang++-4.0
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
     - os: linux
-      dist: trusty
+      env: COMPILER=clang++-5.0
       addons:
         apt:
-          sources:
-            - llvm-toolchain-trusty-5.0
-            - ubuntu-toolchain-r-test
+          sources: ["llvm-toolchain-trusty-5.0", "ubuntu-toolchain-r-test"]
           packages: clang-5.0
-      env:
-        - CXX=clang++-5.0
-        - NODE_LABELS="Linux Ubuntu Ubuntu-14.04"
-        - BUILD_WITH_ASAN=yes
+    - os: linux
+      env: COMPILER=clang++-6.0
+      addons:
+        apt:
+          sources: ["llvm-toolchain-trusty", "ubuntu-toolchain-r-test"]
+          packages: clang-6.0
 
     # macOS/clang
     # https://docs.travis-ci.com/user/osx-ci-environment/#OS-X-Version
     - os: osx
-      osx_image: xcode6.4
-      env:
-        - NODE_LABELS="OSX OSX-10.10"
-    - os: osx
       osx_image: xcode7.3
-      env:
-        - NODE_LABELS="OSX OSX-10.11"
-        - BUILD_WITH_ASAN=yes
+      env: OSX_VERSION=10.11
     - os: osx
       osx_image: xcode8.3
-      env:
-        - NODE_LABELS="OSX OSX-10.12"
-        - BUILD_WITH_ASAN=yes
+      env: OSX_VERSION=10.12
     - os: osx
-      osx_image: xcode9
-      env:
-        - NODE_LABELS="OSX OSX-10.12"
-        - BUILD_WITH_ASAN=yes
+      osx_image: xcode9.2
+      env: OSX_VERSION=10.12
+    - os: osx
+      osx_image: xcode9.2
+      env: OSX_VERSION=10.12 USE_OPENSSL_1_1=yes
+
+  allow_failures:
+    - env: COMPILER=clang++-6.0
+    - env: OSX_VERSION=10.12 USE_OPENSSL_1_1=yes
+
+  fast_finish: true
 
 before_script:
+  - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-14.04"; fi
+  - if [[ ${TRAVIS_OS_NAME} == osx ]]; then export NODE_LABELS="OSX OSX-${OSX_VERSION}"; fi
+  - if [[ -n ${COMPILER} ]]; then export CXX=${COMPILER}; fi
   - ${CXX:-c++} --version
   - python --version