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>
Now we have a reasonable recent build system with systemd, etc. We still
keep old Ubuntu 12.04 Precise to check backward compatibility but
remove the hack to install socat.
Note the new env variable PRECISE="yes" is only there to see it on travis
website.
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
This is to force the one-line results also for non-parallel case.
We are using it for travis auto-build and on other build farms.
Moreover you can set this (and any other) option globally by env
which is the only way to pass it to make distcheck.
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Commit 324330aca6 ("build-sys: Properly order install dependencies
of pylibmount") introduces a proper make dependency for the install
rules, in a way that the workaround is no longer necessary.
Tested that a PR with this commit passes Travis-CI.
Signed-off-by: Filipe Brandenburger <filbranden@google.com>
Now this snippet can be re-used by non-travis systems. For example
on drone.io we can use this simple build script:
......
MAKE_CHECK="root"
source ./.travis-functions.sh
travis_install_script || exit
travis_before_script || exit
ret=0
travis_script || ret=$?
travis_after_script
exit $ret
......
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>
Travis yaml syntax, where we can only use shell one-liners, is awful
and ugly. We add a real shell script and source it from .travis.yml.
This commit squashes a lot changes because we don't want to pollute
history with this meta CI stuff.
Highlights of this commit:
- enable make distcheck
- cleanup configure options (enable all progs, with python and docs)
- shorter config.log dump
- out-of-tree build supported
- workaround broken libtool on travis host
- now it's easy to add temporary debugging stuff
- testing locally is possible now
What are we testing now:
- gcc and clang compiler
- configure mostly with --enable-all-programs, --with-python and
--enable-gtk-doc
- make check with and without root permissions
- make distcheck
- make install (with and without --prefix as well as DESTDIR=...)
- usually we always build in-tree but distcheck does out-of-tree
What do we want/expect at all:
- This travis setup is intended to always work without fixing or
updating this build script all the time. Thats why we only use a
few configure flags.
- We want to avoid predictable failures on travis host to not make
developers tired of this machinery. Any tested feature which is
known to be (sometimes) broken should be fixed or skipped as soon
as possible.
- If this works like wanted then in future almost any point in master
commit history should at least survive the build and common tests
on this reference host/arch. Moreover we will have a comparable,
deterministic build log history. This could make bisecting real
bugs easier.
- It's not our goal to test any kind of config flags, host setup and
arch combination. This would be done better by external build
scripts which do not live within the project itself.
- Of course this machinery can be also used to reproduce bugs with
more exotic config and host setup by pushing a debug branch with
modified travis script to github.
Signed-off-by: Ruediger Meier <ruediger.meier@ga-group.nl>