NetworkManager/.travis.yml
Beniamino Galvani 691c71a7f2 build: allow disabling eBPF support in n-acd
Add a configure option to disable eBPF support in n-acd.

Note that, even if eBPF is not supported, n-acd requires a kernel >
3.19, which means that the setsockopt(..., SO_ATTACH_BPF) option must
be defined. To allow building on older kernels without modifying the
n-acd code, we inject the SO_ATTACH_BPF value as a preprocessor define
in the compiler the command line.
2018-09-18 15:32:36 +02:00

175 lines
5.4 KiB
YAML

language: c
dist: trusty
sudo: required
compiler:
- gcc
- clang
addons:
apt:
packages:
- autoconf
- libtool
- pkg-config
- intltool
- libdbus-glib-1-dev
- libdbus-1-dev
- libiw-dev
- libglib2.0-dev
- libmm-glib-dev
- ppp
- ppp-dev
- libpolkit-gobject-1-dev
- libgnutls-dev
- libgcrypt11-dev
- uuid-dev
- libudev-dev
- libgirepository1.0-dev
- gobject-introspection
- gtk-doc-tools
- libglib2.0-doc
- libreadline-dev
- libnewt-dev
- libnss3-dev
- iptables
- make
- python-software-properties
- python-gi
- python-dbus
- dbus
- dbus-x11
- libjansson4
- libjansson-dev
- libndp-dev
- automake
- dnsmasq
- libcurl4-gnutls-dev
- python3-pip
coverity_scan:
project:
name: NetworkManager/NetworkManager
build_command_prepend: sh autogen.sh --with-systemd-logind=no --enable-more-warnings=no --disable-ovs --without-ebpf
build_command: make -j4
branch_pattern: .*coverity.*
before_install:
- sudo dbus-uuidgen --ensure
- |
if test "$BUILD_TYPE" == 'meson'; then
git clone https://github.com/ninja-build/ninja &&
pushd ninja &&
./configure.py --bootstrap &&
sudo cp ninja /usr/bin/ &&
popd
# Recent meson requires python 3.5, which isn't in Ubuntu 14.04.
# Hence we cannot install it via `pip3 install meson`. Install the latest
# working release.
#
# Wouldn't it be nice to have a build system that supports everything
# that NetworkManager would like to support?
wget https://github.com/mesonbuild/meson/releases/download/0.44.1/meson-0.44.1.tar.gz -O /tmp/meson.tar.gz
tar -C /tmp -xvzf /tmp/meson.tar.gz
pushd /tmp/meson-0.44.1
sudo python3 setup.py install
popd
fi
- sudo chmod o+x /usr/sbin/pppd
script:
- |
if test "$BUILD_TYPE" == 'meson'; then
if [ "$CC" == gcc ]; then
CRYPTO=nss
else
CRYPTO=gnutls
fi &&
meson build \
\
-D ld_gc=false \
-D session_tracking=no \
-D systemdsystemunitdir=no \
-D systemd_journal=false \
-D selinux=false \
-D libaudit=no \
-D libpsl=false \
-D vapi=false \
-D introspection=false \
-D qt=false \
-D crypto=$CRYPTO \
-D docs=true \
\
-D libnm_glib=true \
-D iwd=true \
-D ofono=true \
-D teamdctl=false \
\
-D dhclient=/bin/nowhere/dhclient \
-D dhcpcanon=/bin/nowhere/dhcpcanon \
-D dhcpcd=/bin/nowhere/dhcpd \
\
-D netconfig=/bin/nowhere/netconfig \
-D resolvconf=/bin/nowhere/resolvconf \
\
-D ifcfg_rh=false \
-D ibft=true \
-D ifupdown=true \
-D ebpf=false \
&&
ninja -C build &&
ninja -C build test
fi
- |
if test "$BUILD_TYPE" == 'autotools'; then
if [ "$CC" == gcc ]; then
CRYPTO=gnutls
else
CRYPTO=nss
fi &&
git clean -fdx &&
NOCONFIGURE=1 ./autogen.sh &&
mkdir ./build &&
pushd ./build &&
../configure \
--prefix="$PWD/INST" \
--enable-gtk-doc=yes \
--with-systemd-logind=no \
--enable-more-warnings=no \
--enable-tests=yes \
--with-crypto=$CRYPTO \
--without-ebpf \
\
--with-libnm-glib=yes \
--with-iwd=yes \
--with-ofono=yes \
--enable-teamdctl=no \
\
--with-dhcpcanon=yes \
--with-dhcpcd=yes \
--with-dhclient=yes \
\
--with-netconfig=/bin/nowhere/netconfig \
--with-resolvconf=/bin/nowhere/resolvconf \
\
--enable-ifcfg-rh=yes \
--enable-config-plugin-ibft=yes \
--enable-ifupdown=yes \
&&
make -j4 &&
if [ "$CC" == gcc ]; then
sudo locale-gen pl_PL.UTF-8 &&
sudo make install &&
NM_TEST_CLIENT_CHECK_L10N=1 ../contrib/travis/travis-check.sh
else
../contrib/travis/travis-check.sh
fi &&
popd
fi
env:
matrix:
- BUILD_TYPE=autotools
- BUILD_TYPE=meson
global:
secure: K36MXkcsuDZ0msuEj5zHMmHfv6O725lsXuFdP6AJ3rYWKuLYE1+iNLgIRndNWDK9ckkNQFaCxDY4Z/NCfCYQTGAS9oXR5AwNqNbhOq8XrqdaZ2GX35sob8Tp4B3IsoREkN/UbIkXQKYlA5rUhgtSifUg3EwfeOiFvnLCwHcp0rYHnvT/jaq5vodBbA1jChjezcMHsp43kvPXHpybKRkipb9EzV/V3VtDLLWh9WQBvQNawpsHnT+MXSke1yU1zfNMyD9XiD7VDzCwaTs6LzjoFBLc86QS5U/9W72s0rFe6SbecntQHftknRzSrGiJDNe64wDZN/Wxq1MHxEOFCwDi6vcSwQ+RoTdhyshhfPVY2Mm5soj2w7Dx43Cz0dDZDCMhu5xxzFAFgkieJSfwXbuxga0ds58Ph8MgtDSp3fBRewZwI+vMuzl7a1hGkcqJojrm1lfgAKbNgrNUzQRwbVYAyrpa6/vCbd6ZH4PEtITwLaRf2mz8PG71xiMQguDDDXS8WF0U7Looe+G9ybAUwDS5hqHfeP+3q6bfN5Sg5Zs5QkBIN5LZbeWbPYldOEEDTvo3VI7e84bk7U5qEoUKc0w/tqVF1B5KgNUq6nIkCkmoBx8RFnmjpOHh99IfeRG9nQTRpCaEDvAM4fcRzITzId8dIIfAW/45P3ozzfz/HYiie+o=