From b267b065f5b4c6fef93cb6f26c59f2e5c7dc7342 Mon Sep 17 00:00:00 2001 From: William Wennerström Date: Fri, 14 Feb 2020 12:50:52 +0100 Subject: Add builds.sr.ht CI for OpenBSD * Add .builds/openbsd.yml for builds.sr.ht * Update travis-build.sh -> ci-build.sh with OpenBSD case * Fix libdl check in configure.ac (OpenBSD has libdl built-in) * Fix some minor issues found when compiling on OpenBSD with GCC (e.g. uninitialized variables) --- ci-build.sh | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100755 ci-build.sh (limited to 'ci-build.sh') diff --git a/ci-build.sh b/ci-build.sh new file mode 100755 index 00000000..2dbe8311 --- /dev/null +++ b/ci-build.sh @@ -0,0 +1,112 @@ +#!/usr/bin/env bash + +error_handler() +{ + ERR_CODE=$? + echo + echo "Error ${ERR_CODE} with command '${BASH_COMMAND}' on line ${BASH_LINENO[0]}. Exiting." + echo + exit ${ERR_CODE} +} + +trap error_handler ERR + +./bootstrap.sh + +tests=() +MAKE="make" +CC="gcc" + +case $(uname | tr '[:upper:]' '[:lower:]') in + linux*) + tests=( + "--enable-notifications --enable-icons-and-clipboard --enable-otr --enable-pgp + --enable-omemo --enable-plugins --enable-c-plugins + --enable-python-plugins --with-xscreensaver" + "--disable-notifications --disable-icons --disable-otr --disable-pgp + --disable-omemo --disable-plugins --disable-c-plugins + --disable-python-plugins --without-xscreensaver" + "--disable-notifications" + "--disable-icons" + "--disable-otr" + "--disable-pgp" + "--disable-omemo" + "--disable-pgp --disable-otr" + "--disable-pgp --disable-otr --disable-omemo" + "--disable-plugins" + "--disable-python-plugins" + "--disable-c-plugins" + "--disable-c-plugins --disable-python-plugins" + "--without-xscreensaver" + "") + ;; + darwin*) + tests=( + "--enable-notifications --enable-icons-and-clipboard --enable-otr --enable-pgp + --enable-omemo --enable-plugins --enable-c-plugins + --enable-python-plugins" + "--disable-notifications --disable-icons --disable-otr --disable-pgp + --disable-omemo --disable-plugins --disable-c-plugins + --disable-python-plugins" + "--disable-notifications" + "--disable-icons" + "--disable-otr" + "--disable-pgp" + "--disable-omemo" + "--disable-pgp --disable-otr" + "--disable-pgp --disable-otr --disable-omemo" + "--disable-plugins" + "--disable-python-plugins" + "--disable-c-plugins" + "--disable-c-plugins --disable-python-plugins" + "") + ;; + openbsd*) + MAKE="gmake" + # TODO(#1231): + # `-std=gnu99 -fexec-charset=UTF-8` to silence: + # src/event/server_events.c:1453:19: error: universal character names are only valid in C++ and C99 + # src/event/server_events.c:1454:19: error: universal character names are only valid in C++ and C99 + CC="gcc -std=gnu99 -fexec-charset=UTF-8" + + tests=( + "--enable-notifications --enable-icons-and-clipboard --enable-otr --enable-pgp + --enable-omemo --enable-plugins --enable-c-plugins + --enable-python-plugins" + "--disable-notifications --disable-icons --disable-otr --disable-pgp + --disable-omemo --disable-plugins --disable-c-plugins + --disable-python-plugins" + "--disable-notifications" + "--disable-icons" + "--disable-otr" + "--disable-pgp" + "--disable-omemo" + "--disable-pgp --disable-otr" + "--disable-pgp --disable-otr --disable-omemo" + "--disable-plugins" + "--disable-python-plugins" + "--disable-c-plugins" + "--disable-c-plugins --disable-python-plugins" + "") + ;; +esac + +for features in "${tests[@]}" +do + echo + echo "--> Building with ./configure ${features}" + echo + + # shellcheck disable=SC2086 + ./configure $features + + $MAKE CC="${CC}" + $MAKE check + + if [ $? -eq 1 ]; then + cat ./test-suite.log + fi + + ./profanity -v + $MAKE clean +done -- cgit 1.4.1-2-gfad0