Update Travis CI config for C++17

Several platforms didn't have a C++17 compiler in their default repos.

Also moved from Fedora 28 to Fedora 30 since that will soon be the
oldest, still-supported version.
This commit is contained in:
Jon Siwek 2019-10-24 19:20:35 -07:00
parent 2c6cb6e5f3
commit 08e2f97393
4 changed files with 22 additions and 8 deletions

View file

@ -26,7 +26,7 @@ notifications:
env:
- distro: centos_7
- distro: debian_9
- distro: fedora_28
- distro: fedora_30
- distro: ubuntu_16.04
- distro: ubuntu_18.04
- distro: ubuntu_18.04_leaktest

@ -1 +1 @@
Subproject commit 10c9a49469fe1e028941841e4c765e027eb868ad
Subproject commit 7cfb069c9290d73227afb87224c356d082660ebe

2
cmake

@ -1 +1 @@
Subproject commit 1a7be398b108a4ddcbdb98681a70b40f4ac128b9
Subproject commit 85b798f233ec304895a34cbb818873b0d0023812

View file

@ -84,16 +84,16 @@ install_in_docker() {
local_distro=$distro
case $distro in
centos_7)
distro_cmds="yum -y install gdb cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel git openssl which"
distro_cmds="yum -y install gdb cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel git openssl which centos-release-scl && yum -y install devtoolset-7"
;;
debian_9)
distro_cmds="apt-get update; apt-get -y install gdb cmake make gcc g++ flex bison python libpcap-dev libssl-dev zlib1g-dev libkrb5-dev git sqlite3 curl bsdmainutils"
distro_cmds="apt-get update; apt-get -y install gdb cmake make flex bison python libpcap-dev libssl-dev zlib1g-dev libkrb5-dev git sqlite3 curl bsdmainutils clang-7 libc++-7-dev libc++abi-7-dev; update-alternatives --install /usr/bin/cc cc /usr/bin/clang-7 100; update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-7 100"
;;
fedora_28)
distro_cmds="yum -y install gdb cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel git sqlite findutils which; ln -s /usr/bin/python3 /usr/local/bin/python"
fedora_30)
distro_cmds="yum -y install gdb cmake make gcc gcc-c++ flex bison libpcap-devel openssl-devel git sqlite findutils which zlib-devel; ln -s /usr/bin/python3 /usr/local/bin/python"
;;
ubuntu_16.04)
distro_cmds="apt-get update; apt-get -y install gdb cmake make gcc g++ flex bison python libpcap-dev libssl-dev zlib1g-dev libkrb5-dev git sqlite3 curl bsdmainutils"
distro_cmds="apt-get update; apt-get -y install gdb cmake make flex bison python libpcap-dev libssl-dev zlib1g-dev libkrb5-dev git sqlite3 curl bsdmainutils wget xz-utils; wget -q https://releases.llvm.org/9.0.0/clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz; mkdir /clang-9; tar --strip-components=1 -C /clang-9 -xvf clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz; update-alternatives --install /usr/bin/cc cc /clang-9/bin/clang 100; update-alternatives --install /usr/bin/c++ c++ /clang-9/bin/clang++ 100"
;;
ubuntu_18.04)
distro_cmds="apt-get update; apt-get -y install gdb cmake make gcc g++ flex bison python3 libpcap-dev libssl-dev zlib1g-dev libkrb5-dev git sqlite3 curl bsdmainutils; ln -s /usr/bin/python3 /usr/local/bin/python"
@ -129,6 +129,16 @@ run_in_docker() {
docker exec -t -e TRAVIS -e TRAVIS_PULL_REQUEST -e TESTING_PRIVATE_DEPLOYKEY -e BUILD_DISTRO=${distro} zeektest sh testing/scripts/travis-job run travis
}
update_env() {
if [ "${BUILD_DISTRO}" = "centos_7" ]; then
source /opt/rh/devtoolset-7/enable
elif [ "${BUILD_DISTRO}" = "debian_9" ]; then
export CXXFLAGS="-stdlib=libc++"
elif [ "${BUILD_DISTRO}" = "ubuntu_16.04" ]; then
export CXXFLAGS="-stdlib=libc++"
export LD_LIBRARY_PATH=/clang-9/lib
fi
}
# Build Zeek.
build() {
@ -136,6 +146,8 @@ build() {
# outside of Travis).
make distclean > /dev/null
update_env
# Skip building Broker tests, python bindings, and zeekctl, as these are
# not needed by the Zeek tests. If the distro is set for leak tests, enable
# those options as well.
@ -178,6 +190,8 @@ get_private_tests() {
# Run Zeek tests.
run() {
update_env
ulimit -c unlimited
ulimit -a
echo