devtools: fix meson build test for plain bourne shell
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 19 Apr 2019 12:04:49 +0000 (13:04 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 19 Apr 2019 21:21:13 +0000 (23:21 +0200)
The pipefail option is not supported in /bin/sh, just in bash/ksh and
similar shells - which means it's there by default on most Linux distros
but not on e.g. FreeBSD. Therefore we check for it's presence before
setting the option, and if it's missing, we upgrade verbosity level if
needed to ensure we never hide any build failures.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
devtools/test-meson-builds.sh

index 0ea79f4..630a1a6 100755 (executable)
@@ -7,7 +7,9 @@
 # * if a build-directory already exists we assume it was properly configured
 # Run ninja after configuration is done.
 
-set -o pipefail
+# set pipefail option if possible
+PIPEFAIL=""
+set -o | grep -q pipefail && set -o pipefail && PIPEFAIL=1
 
 srcdir=$(dirname $(readlink -f $0))/..
 MESON=${MESON:-meson}
@@ -51,6 +53,11 @@ if [ "$1" = "-vv" ] ; then
 elif [ "$1" = "-v" ] ; then
        TEST_MESON_BUILD_VERBOSE=1
 fi
+# we can't use plain verbose when we don't have pipefail option so up-level
+if [ -z "$PIPEFAIL" -a -n "$TEST_MESON_BUILD_VERBOSE" ] ; then
+       echo "# Missing pipefail shell option, changing VERBOSE to VERY_VERBOSE"
+       TEST_MESON_BUILD_VERY_VERBOSE=1
+fi
 
 # shared and static linked builds with gcc and clang
 for c in gcc clang ; do