summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-04-09 19:53:11 +0200
committerThomas Haller <thaller@redhat.com>2019-04-09 19:53:11 +0200
commit9c96d0a8c344e37fb1a07ffed07b2da36d325619 (patch)
treec1392153dd76148be979ce35b41a7097b74a0a15
parent43d9187c14ccd2b6cbd95c7a38f82e74ee775c51 (diff)
parent2955d5e69a643caaa24dd7efc2237a0bdcc4fd32 (diff)
downloadNetworkManager-9c96d0a8c344e37fb1a07ffed07b2da36d325619.tar.gz
build: merge branch 'build-fixes'
-rw-r--r--.gitlab-ci.yml11
-rw-r--r--configure.ac3
-rw-r--r--contrib/fedora/rpm/NetworkManager.spec80
-rw-r--r--meson.build3
4 files changed, 80 insertions, 17 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 887ac2db44..8b96f910db 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -50,12 +50,17 @@ build_f28:
paths:
- docs-html
-build_f_latest:
+build_f29:
<<: *fedora_install
- image: fedora:latest
+ image: fedora:29
<<: *fedora_script
-build_f_rawhide:
+build_f30:
+ <<: *fedora_install
+ image: fedora:30
+ <<: *fedora_script
+
+build_frawhide:
<<: *fedora_install
image: fedora:rawhide
<<: *fedora_script
diff --git a/configure.ac b/configure.ac
index a44236512a..c43f8f1cd4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -529,7 +529,8 @@ esac
AC_ARG_WITH(ebpf,
AS_HELP_STRING([--with-ebpf=yes|no|auto], [Build with eBPF support (default: auto)]),
[], [with_ebpf=auto])
-if test "$with_ebpf" = "yes" -o "$with_ebpf" = "auto"; then
+# 'auto' means 'false' because there are still some issues.
+if test "$with_ebpf" = "yes" ; then
AC_CHECK_HEADER(linux/bpf.h, [have_ebpf=yes], [have_ebpf=no])
else
have_ebpf=no
diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec
index d68f08a89f..167c3e4891 100644
--- a/contrib/fedora/rpm/NetworkManager.spec
+++ b/contrib/fedora/rpm/NetworkManager.spec
@@ -97,10 +97,37 @@
%global with_modem_manager_1 0
%endif
-%if 0%{?fedora} || 0%{?rhel} <= 7
+%if 0%{?fedora} >= 31 || 0%{?rhel} > 7
+%global dhcp_default internal
+%else
%global dhcp_default dhclient
+%endif
+
+%if 0%{?fedora} || 0%{?rhel} > 7
+%global logging_backend_default journal
+%global dns_rc_manager_default symlink
%else
-%global dhcp_default internal
+%global logging_backend_default syslog
+%global dns_rc_manager_default file
+%endif
+
+%if 0%{?rhel}
+%global config_plugins_default ifcfg-rh,ibft
+%global ibft_enabled yes
+%else
+%global config_plugins_default ifcfg-rh
+%global ibft_enabled no
+%endif
+
+%if 0%{?fedora}
+# Altough eBPF would be available on Fedora's kernel, it seems
+# we often get SELinux denials (rh#1651654). But even aside them,
+# bpf(BPF_MAP_CREATE, ...) randomly fails with EPERM. That might
+# be related to `ulimit -l`. Anyway, this is not usable at the
+# moment.
+%global ebpf_enabled no
+%else
+%global ebpf_enabled no
%endif
###############################################################################
@@ -137,6 +164,11 @@ Obsoletes: NetworkManager < %{obsoletes_device_plugins}
Obsoletes: NetworkManager < %{obsoletes_ppp_plugin}
Obsoletes: NetworkManager-wimax < 1.2
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# Kept for RHEL to ensure that wired 802.1x works out of the box
+Requires: wpa_supplicant >= 1:1.1
+%endif
+
Conflicts: NetworkManager-vpnc < 1:0.7.0.99-1
Conflicts: NetworkManager-openvpn < 1:0.7.0.99-1
Conflicts: NetworkManager-pptp < 1:0.7.0.99-1
@@ -256,7 +288,12 @@ Summary: Bluetooth device plugin for NetworkManager
Group: System Environment/Base
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Requires: NetworkManager-wwan = %{epoch}:%{version}-%{release}
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# No Requires:bluez to prevent it being installed when updating
+# to the split NM package
+%else
Requires: bluez >= 4.101-5
+%endif
Obsoletes: NetworkManager < %{obsoletes_device_plugins}
Obsoletes: NetworkManager-bt
@@ -272,8 +309,12 @@ Group: System Environment/Base
BuildRequires: teamd-devel
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Obsoletes: NetworkManager < %{obsoletes_device_plugins}
+%if 0%{?fedora} || 0%{?rhel} >= 8
# Team was split from main NM binary between 0.9.10 and 1.0
+# We need this Obsoletes in addition to the one above
+# (git:3aede801521ef7bff039e6e3f1b3c7b566b4338d).
Obsoletes: NetworkManager < 1.0.0
+%endif
%description team
This package contains NetworkManager support for team devices.
@@ -307,7 +348,12 @@ This package contains NetworkManager support for Wifi and OLPC devices.
Summary: Mobile broadband device plugin for NetworkManager
Group: System Environment/Base
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
+%if 0%{?rhel} && 0%{?rhel} <= 7
+# No Requires:ModemManager to prevent it being installed when updating
+# to the split NM package
+%else
Requires: ModemManager
+%endif
Obsoletes: NetworkManager < %{obsoletes_device_plugins}
%description wwan
@@ -546,10 +592,13 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
-Dconcheck=true \
%if 0%{?fedora}
-Dlibpsl=true \
- -Debpf=true \
%else
-Dlibpsl=false \
+%endif
+%if %{ebpf_enabled} != yes
-Debpf=false \
+%else
+ -Debpf=true \
%endif
-Dsession_tracking=systemd \
-Dsuspend_resume=systemd \
@@ -559,14 +608,20 @@ by nm-connection-editor and nm-applet in a non-graphical environment.
-Dtests=yes \
-Dvalgrind=no \
-Difcfg_rh=true \
+%if %{ibft_enabled} != yes
+ -Dibft=false \
+%else
+ -Dibft=true \
+%endif
+ -Difupdown=false \
%if %{with ppp}
-Dpppd_plugin_dir=%{_libdir}/pppd/%{ppp_version} \
-Dppp=true \
%endif
-Ddist_version=%{version}-%{release} \
- -Dconfig_plugins_default='ifcfg-rh' \
- -Dconfig_dns_rc_manager_default=symlink \
- -Dconfig_logging_backend_default=journal \
+ -Dconfig_plugins_default=%{config_plugins_default} \
+ -Dconfig_dns_rc_manager_default=%{dns_rc_manager_default} \
+ -Dconfig_logging_backend_default=%{logging_backend_default} \
-Djson_validation=true \
%if %{with libnm_glib}
-Dlibnm_glib=true
@@ -662,11 +717,10 @@ intltoolize --automake --copy --force
--enable-concheck \
%if 0%{?fedora}
--with-libpsl \
- --with-ebpf \
%else
--without-libpsl \
- --without-ebpf \
%endif
+ --with-ebpf=%{ebpf_enabled} \
--with-session-tracking=systemd \
--with-suspend-resume=systemd \
--with-systemdsystemunitdir=%{systemd_dir} \
@@ -680,14 +734,16 @@ intltoolize --automake --copy --force
%endif
--with-valgrind=no \
--enable-ifcfg-rh=yes \
+ --enable-config-plugin-ibft=%{ibft_enabled} \
+ --enable-ifupdown=no \
%if %{with ppp}
--with-pppd-plugin-dir=%{_libdir}/pppd/%{ppp_version} \
--enable-ppp=yes \
%endif
--with-dist-version=%{version}-%{release} \
- --with-config-plugins-default='ifcfg-rh' \
- --with-config-dns-rc-manager-default=symlink \
- --with-config-logging-backend-default=journal \
+ --with-config-plugins-default=%{config_plugins_default} \
+ --with-config-dns-rc-manager-default=%{dns_rc_manager_default} \
+ --with-config-logging-backend-default=%{logging_backend_default} \
--enable-json-validation \
%if %{with libnm_glib}
--with-libnm-glib
@@ -802,7 +858,7 @@ fi
%systemd_postun
-%if 0%{?fedora} < 28
+%if (0%{?fedora} && 0%{?fedora} < 28) || 0%{?rhel}
%post glib -p /sbin/ldconfig
%postun glib -p /sbin/ldconfig
diff --git a/meson.build b/meson.build
index df5569d3b4..63cd1261cb 100644
--- a/meson.build
+++ b/meson.build
@@ -437,7 +437,8 @@ config_h.set10('HAVE_SELINUX', enable_selinux)
# eBPF support
ebpf_opt = get_option('ebpf')
-if ebpf_opt == 'false'
+# 'auto' means 'false', because there are still issues.
+if ebpf_opt != 'true'
enable_ebpf = false
else
enable_ebpf = true