summaryrefslogtreecommitdiffstats
path: root/.travis-functions.sh
diff options
context:
space:
mode:
authorRuediger Meier2016-03-12 23:45:00 +0100
committerRuediger Meier2016-03-13 21:51:18 +0100
commit668d6d2ef9e58b1676fe3c1b9bbcf04536e879de (patch)
treec7550169aff87f74c10009dc6367aa1943098a89 /.travis-functions.sh
parenttravis: switch to Ubuntu 14.04 Trusty (diff)
downloadkernel-qcow2-util-linux-668d6d2ef9e58b1676fe3c1b9bbcf04536e879de.tar.gz
kernel-qcow2-util-linux-668d6d2ef9e58b1676fe3c1b9bbcf04536e879de.tar.xz
kernel-qcow2-util-linux-668d6d2ef9e58b1676fe3c1b9bbcf04536e879de.zip
travis: add OSX build
Of course OSX is not an important target but since it's available on travis we can (mis)use it to generally improve non-Linux and non-GNU compatibility. People are using musl, busybox or whatever and util-linux should work for them. Having OSX build running regularly will help us to freeze the lately improved BSD compatibility and to check code which is usually ifdef'ed. We are using the most recent OSX 10.11.x / Xcode 7.3 though the older travis OSX images are working too currently. If it turns out that this OSX build is too annoying when we are about to add support for latest Linux features then we could add: allow_failures: - os: osx to let it fail silently. Note I've tried hard to keep .travis-functions.sh readable for the Linux case. I've removed --with-python because it's default anyway, --enable-gtk-doc is still tested in discheck. OSX root check would also work (almost, using another --prefix) but would only run one more test yet (minix). OSX distcheck would have some issues with conditionally built man pages and does not work with default distcheck confopts. No need to fix that because distcheck is more for maintainer machines. BTW to increase travis build speed again we could remove some targets from the matrix without losing tested scenarios: - nonroot for Linux seems to be waste of time - clang/Linux could be root check only For now we keep it as is. Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Diffstat (limited to '.travis-functions.sh')
-rwxr-xr-x.travis-functions.sh58
1 files changed, 54 insertions, 4 deletions
diff --git a/.travis-functions.sh b/.travis-functions.sh
index e4318d6a6..3e16d09a8 100755
--- a/.travis-functions.sh
+++ b/.travis-functions.sh
@@ -19,7 +19,7 @@ export TS_OPT_parsable="yes"
function xconfigure
{
- ./configure "$@"
+ ./configure "$@" $OSX_CONFOPTS
err=$?
if [ "$DUMP_CONFIG_LOG" = "short" ]; then
grep -B1 -A10000 "^## Output variables" config.log | grep -v "_FALSE="
@@ -35,12 +35,13 @@ function check_nonroot
xconfigure \
--disable-use-tty-group \
- --with-python \
--enable-all-programs \
- --enable-gtk-doc \
|| return
$MAKE || return
+
+ osx_prepare_check
$MAKE check TS_OPTS="$opts" || return
+
$MAKE install DESTDIR=/tmp/dest || return
}
@@ -49,12 +50,14 @@ function check_root
local opts="$MAKE_CHECK_OPTS --parallel=1"
xconfigure \
- --with-python \
--enable-all-programs \
|| return
$MAKE || return
+
$MAKE check TS_COMMAND="true" || return
+ osx_prepare_check
sudo -E $MAKE check TS_OPTS="$opts" || return
+
sudo $MAKE install || return
}
@@ -67,6 +70,11 @@ function check_dist
function travis_install_script
{
+ if [ "$TRAVIS_OS_NAME" = "osx" ]; then
+ osx_install_script
+ return
+ fi
+
# install some packages from Ubuntu's default sources
sudo apt-get -qq update || return
sudo apt-get install -qq >/dev/null \
@@ -89,6 +97,48 @@ function travis_install_script
|| true
}
+function osx_install_script
+{
+ brew update >/dev/null
+ brew tap homebrew/dupes
+
+ brew install gettext ncurses socat xz
+ brew link --force gettext
+ brew link --force ncurses
+
+ OSX_CONFOPTS="
+ --disable-runuser \
+ --disable-su \
+ --disable-login \
+ --disable-last \
+ --disable-utmpdump \
+ --disable-agetty \
+ --disable-wall \
+ --disable-ipcrm \
+ --disable-ipcs \
+ --disable-write \
+ "
+}
+
+function osx_prepare_check
+{
+ [ "$TRAVIS_OS_NAME" = "osx" ] || return 0
+
+ # these ones only need to be gnu for our test-suite
+ brew install coreutils findutils gnu-tar gnu-sed
+
+ # symlink minimally needed gnu commands into PATH
+ mkdir ~/bin
+ for cmd in md5sum readlink seq truncate find xargs tar sed; do
+ ln -s /usr/local/bin/g$cmd $HOME/bin/$cmd
+ done
+ hash -r
+
+ export TS_OPT_col_multibyte_known_fail=yes
+ export TS_OPT_colcrt_regressions_known_fail=yes
+ export TS_OPT_column_invalid_multibyte_known_fail=yes
+}
+
function travis_before_script
{
set -o xtrace