From a0b535b291c2a001416748fb7ff9d779f304269f Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Tue, 1 Aug 2017 15:28:35 -0400 Subject: [PATCH] jjb: Add babeltrace stable-2.0 jobs Signed-off-by: Michael Jeanson --- jobs/babeltrace.yaml | 44 ++++++------ scripts/babeltrace/build.sh | 133 +++++++++++++++++++++++++++--------- 2 files changed, 123 insertions(+), 54 deletions(-) diff --git a/jobs/babeltrace.yaml b/jobs/babeltrace.yaml index 12d80ac..c650db5 100644 --- a/jobs/babeltrace.yaml +++ b/jobs/babeltrace.yaml @@ -340,6 +340,7 @@ - stable-1.3 - stable-1.4 - stable-1.5 + - stable-2.0 - master jobs: - 'babeltrace_{version}_{buildtype}': @@ -364,7 +365,7 @@ conf: !!python/tuple [std] - 'babeltrace_{version}_{buildtype}': buildtype: solarisbuild - arch: !!python/tuple [solaris10, solaris11] + arch: !!python/tuple [sol10-i386, sol11-i386] build: !!python/tuple [std] conf: !!python/tuple [std, static] - 'babeltrace_{version}_{buildtype}': @@ -372,21 +373,23 @@ arch: !!python/tuple [macosx] build: !!python/tuple [std] conf: !!python/tuple [std] - version: + version: # macOS support was introduced in 1.4 - stable-1.4 - stable-1.5 + - stable-2.0 - master - 'babeltrace_{version}_winbuild': arch: !!python/tuple [cygwin, cygwin64, msys2-mingw32, msys2-mingw64] build: !!python/tuple [std] conf: !!python/tuple [std] - version: + version: # Mingw support was introduced in 2.0 + - stable-2.0 - master - 'babeltrace_{version}_winbuild': arch: !!python/tuple [cygwin, cygwin64] build: !!python/tuple [std] conf: !!python/tuple [std] - version: + version: # Cygwin support was introduced in 1.5 - stable-1.5 - 'babeltrace_{version}_cppcheck' - 'babeltrace_{version}_scan-build' @@ -395,34 +398,35 @@ version: master - 'babeltrace_{version}_glib-2.22.5': version: master + + +- project: + name: babeltrace-jgalar-staging + user: jgalar + github_user: jgalar + github_name: babeltrace + version: + - stable-1.3-staging + - stable-1.4-staging + - stable-1.5-staging + - stable-2.0-staging + - master-staging + jobs: - 'dev_{user}_babeltrace_{version}_glib-2.22.5': - user: jgalar - github_user: jgalar - github_name: babeltrace version: - master-staging - 'dev_{user}_babeltrace_{version}_{buildtype}': - user: jgalar - github_user: jgalar - github_name: babeltrace buildtype: build - version: - - master-staging - - stable-1.3-staging - - stable-1.4-staging - - stable-1.5-staging arch: !!python/tuple [x86-32, x86-64] build: !!python/tuple [std, oot, dist] conf: !!python/tuple [std, static, python-bindings] - 'dev_{user}_babeltrace_{version}_{buildtype}': - user: jgalar - github_user: jgalar - github_name: babeltrace buildtype: macosxbuild - version: - - master-staging + version: # macOS support was introduced in 1.4 - stable-1.4-staging - stable-1.5-staging + - stable-2.0-staging + - master-staging arch: !!python/tuple [macosx] build: !!python/tuple [std] conf: !!python/tuple [std] diff --git a/scripts/babeltrace/build.sh b/scripts/babeltrace/build.sh index 2310b36..6bc76c3 100755 --- a/scripts/babeltrace/build.sh +++ b/scripts/babeltrace/build.sh @@ -16,6 +16,59 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . +# Version compare functions +vercomp () { + set +u + if [[ "$1" == "$2" ]]; then + return 0 + fi + local IFS=. + local i ver1=($1) ver2=($2) + # fill empty fields in ver1 with zeros + for ((i=${#ver1[@]}; i<${#ver2[@]}; i++)); do + ver1[i]=0 + done + for ((i=0; i<${#ver1[@]}; i++)); do + if [[ -z ${ver2[i]} ]]; then + # fill empty fields in ver2 with zeros + ver2[i]=0 + fi + if ((10#${ver1[i]} > 10#${ver2[i]})); then + return 1 + fi + if ((10#${ver1[i]} < 10#${ver2[i]})); then + return 2 + fi + done + set -u + return 0 +} + +verlte() { + vercomp "$1" "$2"; local res="$?" + [ "$res" -eq "0" ] || [ "$res" -eq "2" ] +} + +verlt() { + vercomp "$1" "$2"; local res="$?" + [ "$res" -eq "2" ] +} + +vergte() { + vercomp "$1" "$2"; local res="$?" + [ "$res" -eq "0" ] || [ "$res" -eq "1" ] +} + +vergt() { + vercomp "$1" "$2"; local res="$?" + [ "$res" -eq "1" ] +} + +verne() { + vercomp "$1" "$2"; local res="$?" + [ "$res" -ne "0" ] +} + # Required parameters arch=${arch:-} conf=${conf:-} @@ -34,47 +87,62 @@ export TMPDIR # Set platform variables case "$arch" in -solaris10) - MAKE=gmake - TAR=gtar - NPROC=gnproc - BISON=bison - YACC="$BISON -y" +sol10-i386) + export MAKE=gmake + export TAR=gtar + export NPROC=gnproc + export BISON=bison + export YACC="$BISON -y" export PATH="/opt/csw/bin:/usr/ccs/bin:$PATH" + export CPPFLAGS="-I/opt/csw/include" + export LDFLAGS="-L/opt/csw/lib -R/opt/csw/lib" + export PKG_CONFIG_PATH="/opt/csw/lib/pkgconfig" ;; -solaris11) - MAKE=gmake - TAR=gtar - NPROC=nproc - BISON="/opt/csw/bin/bison" - YACC="$BISON -y" +sol11-i386) + export MAKE=gmake + export TAR=gtar + export NPROC=nproc + export BISON="/opt/csw/bin/bison" + export YACC="$BISON -y" export PATH="$PATH:/usr/perl5/bin" + export LD_ALTEXEC=/usr/sfw/bin/gld + export LD=/usr/sfw/bin/gld ;; macosx) - MAKE=make - TAR=tar - NPROC="getconf _NPROCESSORS_ONLN" - BISON="bison" - YACC="$BISON -y" + export MAKE=make + export TAR=tar + export NPROC="getconf _NPROCESSORS_ONLN" + export BISON="bison" + export YACC="$BISON -y" export PATH="/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" export CFLAGS="-I/opt/local/include" export LDFLAGS="-L/opt/local/lib" ;; *) - MAKE=make - TAR=tar - NPROC=nproc - BISON=bison - YACC="$BISON -y" + export MAKE=make + export TAR=tar + export NPROC=nproc ;; esac +# Enter the source directory +cd "$SRCDIR" + +# Run bootstrap in the source directory prior to configure +./bootstrap + +# Get source version from configure script +eval "$(grep '^PACKAGE_VERSION=' ./configure)" + # Set configure options for each build configuration CONF_OPTS="" case "$conf" in static) echo "Static build" CONF_OPTS="--enable-static --disable-shared" + if vergte "$PACKAGE_VERSION" "2.0"; then + CONF_OPTS="${CONF_OPTS} --enable-built-in-plugins" + fi ;; python-bindings) echo "Build with python bindings" @@ -82,6 +150,10 @@ python-bindings) export PYTHON="python3" export PYTHON_CONFIG="/usr/bin/python3-config" CONF_OPTS="--enable-python-bindings" + + if vergte "$PACKAGE_VERSION" "2.0"; then + CONF_OPTS="${CONF_OPTS} --enable-python-bindings-doc --enable-python-bindings-tests --enable-python-plugins" + fi ;; *) echo "Standard build" @@ -89,13 +161,6 @@ python-bindings) ;; esac -# Enter the source directory -cd "$SRCDIR" - -# Run bootstrap in the source directory prior to configure -./bootstrap - - # Build type # oot : out-of-tree build # dist: build via make dist @@ -110,7 +175,7 @@ case "$build" in BUILD_PATH="$WORKSPACE/oot" mkdir -p "$BUILD_PATH" cd "$BUILD_PATH" - MAKE=$MAKE BISON="$BISON" YACC="$YACC" "$SRCDIR/configure" --prefix="$PREFIX" $CONF_OPTS + "$SRCDIR/configure" --prefix="$PREFIX" $CONF_OPTS ;; dist) @@ -118,7 +183,7 @@ case "$build" in BUILD_PATH="$(mktemp -d)" # Initial configure and generate tarball - MAKE=$MAKE BISON="$BISON" YACC="$YACC" "$SRCDIR/configure" + "$SRCDIR/configure" $MAKE dist mkdir -p "$BUILD_PATH" @@ -128,18 +193,18 @@ case "$build" in # Ignore level 1 of tar $TAR xvf ./*.tar.* --strip 1 - MAKE=$MAKE BISON="$BISON" YACC="$YACC" "$BUILD_PATH/configure" --prefix="$PREFIX" $CONF_OPTS + "$BUILD_PATH/configure" --prefix="$PREFIX" $CONF_OPTS ;; clang) echo "LLVM clang build" export CC=clang clang -v - MAKE=$MAKE BISON="$BISON" YACC="$YACC" "$SRCDIR/configure" --prefix="$PREFIX" $CONF_OPTS + "$SRCDIR/configure" --prefix="$PREFIX" $CONF_OPTS ;; *) echo "Standard in-tree build" - MAKE=$MAKE BISON="$BISON" YACC="$YACC" "$SRCDIR/configure" --prefix="$PREFIX" $CONF_OPTS + "$SRCDIR/configure" --prefix="$PREFIX" $CONF_OPTS ;; esac -- 2.34.1