From fb8ede6525cf79465a0a64aee998b966a92eee92 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 2 Feb 2016 16:05:23 +0100 Subject: [PATCH 1/8] contrib/rpm: add --no-build option to build_clean.sh Option to skip building the source package. Useful if you already have a source tarball from a previous run. (cherry picked from commit 3b01d25561d95974e6473c51b56103ce92e51af7) --- contrib/fedora/rpm/build_clean.sh | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/contrib/fedora/rpm/build_clean.sh b/contrib/fedora/rpm/build_clean.sh index b57b7099e8..a63910ad41 100755 --- a/contrib/fedora/rpm/build_clean.sh +++ b/contrib/fedora/rpm/build_clean.sh @@ -31,6 +31,7 @@ cd "$GITDIR" || die "could not change to $GITDIR" IGNORE_DIRTY=0 GIT_CLEAN=0 QUICK=0 +NO_BUILD=0 for A; do case "$A" in @@ -50,6 +51,10 @@ for A; do -S|--srpm) BUILDTYPE=SRPM ;; + -N|--no-build) + NO_BUILD=1 + IGNORE_DIRTY=1 + ;; *) usage die "Unexpected argument \"$A\"" @@ -73,19 +78,21 @@ if [[ $IGNORE_DIRTY != 1 ]]; then fi fi -./autogen.sh --enable-gtk-doc || die "Error autogen.sh" +if [[ $NO_BUILD != 1 ]]; then + ./autogen.sh --enable-gtk-doc || die "Error autogen.sh" -if [[ $QUICK == 1 ]]; then - make -C include || die "Error make -C include" - make -C introspection || die "Error make -C introspection" - make -C libnm-core || die "Error make -C libnm-core" - make -C libnm || die "Error make -C libnm" - make -C libnm-util || die "Error make -C libnm-util" - make -C libnm-glib || die "Error make -C libnm-glib" - make dist || die "Error make distcheck" -else - make -j 10 || die "Error make" - make distcheck || die "Error make distcheck" + if [[ $QUICK == 1 ]]; then + make -C include || die "Error make -C include" + make -C introspection || die "Error make -C introspection" + make -C libnm-core || die "Error make -C libnm-core" + make -C libnm || die "Error make -C libnm" + make -C libnm-util || die "Error make -C libnm-util" + make -C libnm-glib || die "Error make -C libnm-glib" + make dist || die "Error make distcheck" + else + make -j 10 || die "Error make" + make distcheck || die "Error make distcheck" + fi fi export BUILDTYPE From 162dd7874f158e31773524737997df74a7c3427e Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 27 Jan 2016 13:55:41 +0100 Subject: [PATCH 2/8] contrib/rpm: add comment to NetworkManager.conf about debug logfiles (cherry picked from commit bb78d14467c2bb5c85d2efbe84e521148322b1ca) --- contrib/fedora/rpm/NetworkManager.conf | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/contrib/fedora/rpm/NetworkManager.conf b/contrib/fedora/rpm/NetworkManager.conf index 900ca9b23b..779f318420 100644 --- a/contrib/fedora/rpm/NetworkManager.conf +++ b/contrib/fedora/rpm/NetworkManager.conf @@ -11,5 +11,23 @@ [main] plugins=ifcfg-rh,ibft + [logging] -#level=DEBUG +# When debugging NetworkManager, enabling debug logging is of great help. +# +# Logfiles contain no passwords and little sensitive information. But please +# check before posting the file online. You can also personally hand over the +# logfile to a NM developer to treat it confidential. Meet us on #nm on freenode. +# Please post full logfiles except minimal modifications of private data. +# +# You can also change the log-level at runtime via +# $ nmcli general logging level TRACE domains ALL +# However, usually it's cleaner to enable debug logging +# in the configuration and restart NetworkManager so that +# debug logging is enabled from the start. +# +# You will find the logfiles in syslog, for example via +# $ journalctl -u NetworkManager +# +#level=TRACE +#domains=ALL From 1a0850934b5c14f3e7ea05d41146c411c2d62bde Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Thu, 3 Sep 2015 17:08:03 +0200 Subject: [PATCH 3/8] contrib/rpm: sync from Fedora git (cherry picked from commit de5d98197f751c4ff4eed36af27131a024e47b73) --- contrib/fedora/rpm/NetworkManager.spec | 116 ++++++++++--------------- 1 file changed, 47 insertions(+), 69 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index cf5b07d9e8..984c79ddd5 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -7,33 +7,25 @@ # Note that it contains __PLACEHOLDERS__ that will be replaced by the accompanying 'build.sh' script. -%define dbus_version 1.1 -%define dbus_glib_version 0.100 +%global dbus_version 1.1 +%global dbus_glib_version 0.100 -%define glib2_version 2.32.0 -%define wireless_tools_version 1:28-0pre9 -%define libnl3_version 3.2.7 +%global glib2_version 2.32.0 +%global wireless_tools_version 1:28-0pre9 +%global libnl3_version 3.2.7 -%define ppp_version %(rpm -q ppp-devel >/dev/null && rpm -q --qf '%%{version}' ppp-devel || echo -n bad) +%global ppp_version %(rpm -q ppp-devel >/dev/null && rpm -q --qf '%%{version}' ppp-devel || echo -n bad) -%define snapshot %{nil} -%define git_sha __COMMIT__ -%define realversion __VERSION__ -%define release_version __RELEASE_VERSION__ -%define epoch_version 1 +%global snapshot %{nil} +%global git_sha __COMMIT__ +%global realversion __VERSION__ +%global release_version __RELEASE_VERSION__ +%global epoch_version 1 -%define obsoletes_nmver 1:0.9.9.95-1 +%global obsoletes_nmver 1:0.9.9.95-1 -%global with_nmtui 1 - -%if 0%{?fedora} -%global regen_docs 1 -%else -%global regen_docs 1 -%endif - -%define systemd_dir %{_prefix}/lib/systemd/system -%define udev_dir %{_prefix}/lib/udev +%global systemd_dir %{_prefix}/lib/systemd/system +%global udev_dir %{_prefix}/lib/udev %global with_adsl 1 %global with_bluetooth 1 @@ -41,6 +33,8 @@ %global with_wifi 1 %global with_wimax 0 %global with_wwan 1 +%global with_nmtui 1 +%global regen_docs 1 # WiMAX still supported on <= F19 %if ! 0%{?rhel} && (! 0%{?fedora} || 0%{?fedora} < 20) @@ -71,14 +65,15 @@ %global with_team 0 %endif -%define with_modem_manager_1 0 %if 0%{?with_bluetooth} || (0%{?with_wwan} && (0%{?rhel} || (0%{?fedora} && 0%{?fedora} > 19))) -%define with_modem_manager_1 1 +%global with_modem_manager_1 1 +%else +%global with_modem_manager_1 0 %endif %global _hardened_build 1 -%define git_sha_version %(test -n '%{git_sha}' && echo '.%{git_sha}') +%global git_sha_version %(test -n '%{git_sha}' && echo '.%{git_sha}') Name: NetworkManager Summary: Network connection manager and user applications @@ -97,8 +92,6 @@ Source4: 20-connectivity-fedora.conf #Patch1: 0001-some.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) - %if 0%{?fedora} && 0%{?fedora} < 20 Requires(post): chkconfig Requires(preun): chkconfig @@ -377,7 +370,7 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %if %{regen_docs} # back up pristine docs and use them instead of generated ones, which make # multilib unhappy due to different timestamps in the generated content -%{__cp} -R docs ORIG-docs +cp -R docs ORIG-docs %endif autoreconf --install --force @@ -441,53 +434,48 @@ intltoolize --automake --copy --force make %{?_smp_mflags} %install -%{__rm} -rf $RPM_BUILD_ROOT - # install NM -make install DESTDIR=$RPM_BUILD_ROOT +make install DESTDIR=%{buildroot} -%{__cp} %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/ +cp %{SOURCE1} %{buildroot}%{_sysconfdir}/%{name}/ -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d -%{__cp} %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d -%{__cp} %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d -%{__cp} %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/conf.d +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/conf.d +cp %{SOURCE2} %{buildroot}%{_sysconfdir}/%{name}/conf.d +cp %{SOURCE3} %{buildroot}%{_sysconfdir}/%{name}/conf.d +cp %{SOURCE4} %{buildroot}%{_sysconfdir}/%{name}/conf.d # create a VPN directory -%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/VPN +mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/VPN # create a keyfile plugin system settings directory -%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/system-connections +mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/system-connections # create a dnsmasq.d directory -%{__mkdir_p} $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dnsmasq.d +mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dnsmasq.d # create dispatcher directories -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/dispatcher.d -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/dispatcher.d/pre-up.d -mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/dispatcher.d/pre-down.d -%{__cp} examples/dispatcher/10-ifcfg-rh-routes.sh $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/dispatcher.d/ -%{__ln_s} ../10-ifcfg-rh-routes.sh $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/dispatcher.d/pre-up.d/ +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/pre-up.d +mkdir -p %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/pre-down.d +cp examples/dispatcher/10-ifcfg-rh-routes.sh %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/ +ln -s ../10-ifcfg-rh-routes.sh %{buildroot}%{_sysconfdir}/%{name}/dispatcher.d/pre-up.d/ -%{__mkdir_p} $RPM_BUILD_ROOT%{_datadir}/gnome-vpn-properties +mkdir -p %{buildroot}%{_datadir}/gnome-vpn-properties -%{__mkdir_p} $RPM_BUILD_ROOT%{_localstatedir}/lib/NetworkManager +mkdir -p %{buildroot}%{_localstatedir}/lib/NetworkManager %find_lang %{name} -%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/*.la -%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/pppd/%{ppp_version}/*.la -%{__rm} -f $RPM_BUILD_ROOT%{_libdir}/NetworkManager/*.la +rm -f %{buildroot}%{_libdir}/*.la +rm -f %{buildroot}%{_libdir}/pppd/%{ppp_version}/*.la +rm -f %{buildroot}%{_libdir}/NetworkManager/*.la %if %{regen_docs} # install the pristine docs -%{__cp} ORIG-docs/libnm-glib/html/* $RPM_BUILD_ROOT%{_datadir}/gtk-doc/html/libnm-glib/ -%{__cp} ORIG-docs/libnm-util/html/* $RPM_BUILD_ROOT%{_datadir}/gtk-doc/html/libnm-util/ +cp ORIG-docs/libnm-glib/html/* %{buildroot}%{_datadir}/gtk-doc/html/libnm-glib/ +cp ORIG-docs/libnm-util/html/* %{buildroot}%{_datadir}/gtk-doc/html/libnm-util/ %endif -%clean -%{__rm} -rf $RPM_BUILD_ROOT - %check make check @@ -519,10 +507,11 @@ fi %post glib -p /sbin/ldconfig %postun glib -p /sbin/ldconfig +%post libnm -p /sbin/ldconfig +%postun libnm -p /sbin/ldconfig + %files -f %{name}.lang -%defattr(-,root,root,0755) -%doc COPYING NEWS AUTHORS README CONTRIBUTING TODO %{_sysconfdir}/dbus-1/system.d/org.freedesktop.NetworkManager.conf %{_sysconfdir}/dbus-1/system.d/nm-avahi-autoipd.conf %{_sysconfdir}/dbus-1/system.d/nm-dispatcher.conf @@ -569,10 +558,11 @@ fi %{systemd_dir}/network-online.target.wants/NetworkManager-wait-online.service %dir %{_datadir}/doc/NetworkManager/examples %{_datadir}/doc/NetworkManager/examples/server.conf +%doc NEWS AUTHORS README CONTRIBUTING TODO +%license COPYING %if 0%{?with_adsl} %files adsl -%defattr(-,root,root,0755) %{_libdir}/%{name}/libnm-device-plugin-adsl.so %else %exclude %{_libdir}/%{name}/libnm-device-plugin-adsl.so @@ -580,37 +570,31 @@ fi %if 0%{?with_bluetooth} %files bluetooth -%defattr(-,root,root,0755) %{_libdir}/%{name}/libnm-device-plugin-bluetooth.so %endif %if 0%{?with_team} %files team -%defattr(-,root,root,0755) %{_libdir}/%{name}/libnm-device-plugin-team.so %endif %if 0%{?with_wifi} %files wifi -%defattr(-,root,root,0755) %{_libdir}/%{name}/libnm-device-plugin-wifi.so %endif %if 0%{?with_wwan} %files wwan -%defattr(-,root,root,0755) %{_libdir}/%{name}/libnm-device-plugin-wwan.so %{_libdir}/%{name}/libnm-wwan.so %endif %if 0%{?with_wimax} %files wimax -%defattr(-,root,root,0755) %{_libdir}/%{name}/libnm-device-plugin-wimax.so %endif %files devel -%defattr(-,root,root,0755) %doc ChangeLog docs/api/html/* %dir %{_includedir}/%{name} %{_includedir}/%{name}/%{name}.h @@ -624,7 +608,6 @@ fi %{_datadir}/vala/vapi/*.vapi %files glib -%defattr(-,root,root,0755) %{_libdir}/libnm-glib.so.* %{_libdir}/libnm-glib-vpn.so.* %{_libdir}/libnm-util.so.* @@ -632,7 +615,6 @@ fi %{_libdir}/girepository-1.0/NMClient-1.0.typelib %files glib-devel -%defattr(-,root,root,0755) %dir %{_includedir}/libnm-glib %{_includedir}/libnm-glib/*.h %{_includedir}/%{name}/nm-setting*.h @@ -653,12 +635,10 @@ fi %{_datadir}/gtk-doc/html/libnm-util/* %files libnm -%defattr(-,root,root,0755) %{_libdir}/libnm.so.* %{_libdir}/girepository-1.0/NM-1.0.typelib %files libnm-devel -%defattr(-,root,root,0755) %dir %{_includedir}/libnm %{_includedir}/libnm/*.h %{_libdir}/pkgconfig/libnm.pc @@ -668,13 +648,11 @@ fi %{_datadir}/gtk-doc/html/libnm/* %files config-connectivity-fedora -%defattr(-,root,root,0755) %dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}/conf.d %config(noreplace) %{_sysconfdir}/%{name}/conf.d/20-connectivity-fedora.conf %files config-server -%defattr(-,root,root,0755) %dir %{_sysconfdir}/%{name} %dir %{_sysconfdir}/%{name}/conf.d %config(noreplace) %{_sysconfdir}/%{name}/conf.d/00-server.conf From d6f2e6b0ddf399c103acac59307d8f878a4c2f54 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 30 Sep 2015 16:29:19 +0200 Subject: [PATCH 4/8] contrib/rpm: remove NetworkManager-devel package NetworkManager-devel package contained development headers that are useful without libnm-glib and without glib. But it is also based on the legacy libnm-glib library as it has headers like "/usr/include/NetworkManager/NetworkManager.h". A glib-free devel package based on the new libnm library would be needed to provide "/usr/include/libnm/nm-dbus-interface.h". But that would amount to 4 devel packages. Instead, just move the content of NetworkManager-devel into NetworkManager-glib-devel package. Note that NetworkManager-devel already contained several truely libnm-glib dependent files, like the vala bindings (which require libnm-glib). So that was another bug in the packaging and is fixed by moving it all to NetworkManager-glib-devel. https://bugzilla.gnome.org/show_bug.cgi?id=755938 (cherry picked from commit e01c17523a85a2f238850aa8591888548e231e7e) --- contrib/fedora/rpm/NetworkManager.spec | 43 +++++++++----------------- 1 file changed, 15 insertions(+), 28 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 984c79ddd5..abec49e075 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -258,19 +258,6 @@ devices. %endif -%package devel -Summary: Headers defining the NetworkManager D-Bus APIs -Group: Development/Libraries -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: dbus-devel >= %{dbus_version} -Requires: dbus-glib >= %{dbus_glib_version} -Requires: pkgconfig - -%description devel -This package contains various headers accessing some NetworkManager functionality -from applications. - - %package glib Summary: Libraries for adding NetworkManager support to applications (old API). Group: Development/Libraries @@ -286,11 +273,13 @@ See also NetworkManager-libnm. %package glib-devel Summary: Header files for adding NetworkManager support to applications (old API). Group: Development/Libraries -Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-glib%{?_isa} = %{epoch}:%{version}-%{release} Requires: glib2-devel Requires: pkgconfig Requires: dbus-glib-devel >= %{dbus_glib_version} +Provides: %{name}-devel = %{epoch}:%{version}-%{release} +Provides: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} +Obsoletes: %{name}-devel < %{epoch}:%{version}-%{release} %description glib-devel This package contains the header and pkg-config files for development applications using @@ -313,7 +302,6 @@ NetworkManager-glib. %package libnm-devel Summary: Header files for adding NetworkManager support to applications (new API). Group: Development/Libraries -Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release} Requires: glib2-devel Requires: pkgconfig @@ -594,19 +582,6 @@ fi %{_libdir}/%{name}/libnm-device-plugin-wimax.so %endif -%files devel -%doc ChangeLog docs/api/html/* -%dir %{_includedir}/%{name} -%{_includedir}/%{name}/%{name}.h -%{_includedir}/%{name}/NetworkManagerVPN.h -%{_includedir}/%{name}/nm-version-macros.h -%{_includedir}/%{name}/nm-version.h -%{_libdir}/pkgconfig/%{name}.pc -%dir %{_datadir}/gtk-doc/html/NetworkManager -%{_datadir}/gtk-doc/html/NetworkManager/* -%{_datadir}/vala/vapi/*.deps -%{_datadir}/vala/vapi/*.vapi - %files glib %{_libdir}/libnm-glib.so.* %{_libdir}/libnm-glib-vpn.so.* @@ -615,15 +590,22 @@ fi %{_libdir}/girepository-1.0/NMClient-1.0.typelib %files glib-devel +%doc ChangeLog docs/api/html/* %dir %{_includedir}/libnm-glib +%dir %{_includedir}/%{name} %{_includedir}/libnm-glib/*.h +%{_includedir}/%{name}/%{name}.h +%{_includedir}/%{name}/NetworkManagerVPN.h %{_includedir}/%{name}/nm-setting*.h %{_includedir}/%{name}/nm-connection.h %{_includedir}/%{name}/nm-utils-enum-types.h %{_includedir}/%{name}/nm-utils.h +%{_includedir}/%{name}/nm-version.h +%{_includedir}/%{name}/nm-version-macros.h %{_libdir}/pkgconfig/libnm-glib.pc %{_libdir}/pkgconfig/libnm-glib-vpn.pc %{_libdir}/pkgconfig/libnm-util.pc +%{_libdir}/pkgconfig/%{name}.pc %{_libdir}/libnm-glib.so %{_libdir}/libnm-glib-vpn.so %{_libdir}/libnm-util.so @@ -633,12 +615,17 @@ fi %{_datadir}/gtk-doc/html/libnm-glib/* %dir %{_datadir}/gtk-doc/html/libnm-util %{_datadir}/gtk-doc/html/libnm-util/* +%dir %{_datadir}/gtk-doc/html/NetworkManager +%{_datadir}/gtk-doc/html/NetworkManager/* +%{_datadir}/vala/vapi/*.deps +%{_datadir}/vala/vapi/*.vapi %files libnm %{_libdir}/libnm.so.* %{_libdir}/girepository-1.0/NM-1.0.typelib %files libnm-devel +%doc ChangeLog docs/api/html/* %dir %{_includedir}/libnm %{_includedir}/libnm/*.h %{_libdir}/pkgconfig/libnm.pc From 4037b6c8bb167b339dd9df09070741d20d7e06ff Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Fri, 9 Jan 2015 11:30:50 -0500 Subject: [PATCH 5/8] contrib: sync fedora/rpm/NetworkManager.spec We're building the plugins on s390 these days (cherry picked from commit 20a56fa9a25cc95099c64a550e24dd9f3496c214) --- contrib/fedora/rpm/NetworkManager.spec | 9 --------- 1 file changed, 9 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index abec49e075..0bbe0808ea 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -52,15 +52,6 @@ %global with_wwan 1 %endif -%ifarch s390 s390x -# No hardware-based plugins on s390 -%global with_adsl 0 -%global with_bluetooth 0 -%global with_wifi 0 -%global with_wimax 0 -%global with_wwan 0 -%endif - %if (0%{?fedora} && 0%{?fedora} <= 19) %global with_team 0 %endif From 6d342fb4c7bf4272cb98b3e23c128aa30ddc0f0d Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Tue, 2 Feb 2016 12:57:35 +0100 Subject: [PATCH 6/8] contrib/rpm: make build more configurable by using conditionals Also add a new conditional "debug" to enable more assertions and more logging, which is disabled by default. Also add a conditional "test" to disable running the unit tests (make check) while building the package. http://rpm.org/wiki/PackagerDocs/ConditionalBuilds (cherry picked from commit 87dc14476b81d6f540abbd935b611c4910dc91cd) --- contrib/fedora/rpm/NetworkManager.spec | 115 ++++++++++++++++--------- contrib/fedora/rpm/build.sh | 2 +- contrib/fedora/rpm/build_clean.sh | 16 ++++ 3 files changed, 90 insertions(+), 43 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 0bbe0808ea..5ed6f1dc70 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -27,44 +27,69 @@ %global systemd_dir %{_prefix}/lib/systemd/system %global udev_dir %{_prefix}/lib/udev -%global with_adsl 1 -%global with_bluetooth 1 -%global with_team 1 -%global with_wifi 1 -%global with_wimax 0 -%global with_wwan 1 -%global with_nmtui 1 -%global regen_docs 1 +%global _hardened_build 1 + +%global git_sha_version %(test -n '%{git_sha}' && echo '.%{git_sha}') + +############################################################################### + +%bcond_without adsl + +%global default_with_bluetooth 1 +%global default_with_wwan 1 # WiMAX still supported on <= F19 %if ! 0%{?rhel} && (! 0%{?fedora} || 0%{?fedora} < 20) -%global with_wimax 1 +%bcond_without wimax +%else +%bcond_with wimax %endif # ModemManager on Fedora < 20 too old for Bluetooth && wwan %if (0%{?fedora} && 0%{?fedora} < 20) -%global with_bluetooth 0 -%global with_wwan 0 +%global default_with_bluetooth 0 +%global default_with_wwan 0 %endif # Bluetooth requires the WWAN plugin -%if 0%{?with_bluetooth} -%global with_wwan 1 +%if 0%{?default_with_bluetooth} +%global default_with_wwan 1 +%endif + +%if 0%{?default_with_bluetooth} +%bcond_without bluetooth +%else +%bcond_with bluetooth +%endif + +%if 0%{?default_with_wwan} +%bcond_without wwan +%else +%bcond_with wwan %endif %if (0%{?fedora} && 0%{?fedora} <= 19) -%global with_team 0 +%bcond_with team +%else +%bcond_without team %endif -%if 0%{?with_bluetooth} || (0%{?with_wwan} && (0%{?rhel} || (0%{?fedora} && 0%{?fedora} > 19))) +%bcond_without wifi + +%bcond_without nmtui +%bcond_without regen_docs +%bcond_with debug +%bcond_without test + +############################################################################### + +%if %{with bluetooth} || (%{with wwan} && (0%{?rhel} || (0%{?fedora} && 0%{?fedora} > 19))) %global with_modem_manager_1 1 %else %global with_modem_manager_1 0 %endif -%global _hardened_build 1 - -%global git_sha_version %(test -n '%{git_sha}' && echo '.%{git_sha}') +############################################################################### Name: NetworkManager Summary: Network connection manager and user applications @@ -131,7 +156,7 @@ BuildRequires: ppp-devel >= 2.4.5 BuildRequires: nss-devel >= 3.11.7 BuildRequires: dhclient BuildRequires: readline-devel -%if %{regen_docs} +%if %{with regen_docs} BuildRequires: gtk-doc %endif BuildRequires: libudev-devel @@ -139,10 +164,10 @@ BuildRequires: libuuid-devel BuildRequires: libgudev1-devel >= 143 BuildRequires: vala-tools BuildRequires: iptables -%if 0%{?with_bluetooth} +%if %{with bluetooth} BuildRequires: bluez-libs-devel %endif -%if 0%{?with_wimax} +%if %{with wimax} BuildRequires: wimax-devel %endif BuildRequires: systemd >= 200-3 systemd-devel @@ -151,7 +176,7 @@ BuildRequires: libndp-devel >= 1.0 %if 0%{?with_modem_manager_1} BuildRequires: ModemManager-glib-devel >= 1.0 %endif -%if 0%{?with_nmtui} +%if %{with nmtui} BuildRequires: newt-devel %endif BuildRequires: /usr/bin/dbus-launch @@ -169,7 +194,7 @@ Ethernet, Bridge, Bond, VLAN, Team, InfiniBand, Wi-Fi, mobile broadband services. -%if 0%{?with_adsl} +%if %{with adsl} %package adsl Summary: ADSL device plugin for NetworkManager Group: System Environment/Base @@ -182,7 +207,7 @@ This package contains NetworkManager support for ADSL devices. %endif -%if 0%{?with_bluetooth} +%if %{with bluetooth} %package bluetooth Summary: Bluetooth device plugin for NetworkManager Group: System Environment/Base @@ -197,7 +222,7 @@ This package contains NetworkManager support for Bluetooth devices. %endif -%if 0%{?with_team} +%if 0%{with team} %package team Summary: Team device plugin for NetworkManager Group: System Environment/Base @@ -210,7 +235,7 @@ This package contains NetworkManager support for team devices. %endif -%if 0%{?with_wifi} +%if %{with wifi} %package wifi Summary: Wifi plugin for NetworkManager Group: System Environment/Base @@ -223,7 +248,7 @@ This package contains NetworkManager support for Wifi and OLPC devices. %endif -%if 0%{?with_wwan} +%if %{with wwan} %package wwan Summary: Mobile broadband device plugin for NetworkManager Group: System Environment/Base @@ -236,7 +261,7 @@ This package contains NetworkManager support for mobile broadband (WWAN) devices %endif -%if 0%{?with_wimax} +%if %{with wimax} %package wimax Summary: Intel WiMAX device support for NetworkManager Group: System Environment/Base @@ -346,7 +371,7 @@ by nm-connection-editor and nm-applet in a non-graphical environment. %build -%if %{regen_docs} +%if %{with regen_docs} # back up pristine docs and use them instead of generated ones, which make # multilib unhappy due to different timestamps in the generated content cp -R docs ORIG-docs @@ -360,13 +385,17 @@ intltoolize --automake --copy --force --with-dhcpcd=no \ --with-crypto=nss \ --enable-more-warnings=error \ +%if %{with debug} + --with-more-logging \ + --with-more-asserts=10000 \ +%endif --enable-ppp=yes \ %if 0%{?with_modem_manager_1} --with-modem-manager-1=yes \ %else --with-modem-manager-1=no \ %endif -%if 0%{?with_wifi} +%if %{with wifi} --enable-wifi=yes \ %if 0%{?fedora} --with-wext=yes \ @@ -376,18 +405,18 @@ intltoolize --automake --copy --force %else --enable-wifi=no \ %endif -%if 0%{?with_wimax} +%if %{with wimax} --enable-wimax=yes \ %else --enable-wimax=no \ %endif --enable-vala=yes \ -%if 0%{?regen_docs} +%if %{with regen_docs} --enable-gtk-doc \ %else --disable-gtk-doc \ %endif -%if 0%{?with_team} +%if %{with team} --enable-teamdctl=yes \ %else --enable-teamdctl=no \ @@ -449,7 +478,7 @@ rm -f %{buildroot}%{_libdir}/*.la rm -f %{buildroot}%{_libdir}/pppd/%{ppp_version}/*.la rm -f %{buildroot}%{_libdir}/NetworkManager/*.la -%if %{regen_docs} +%if %{with regen_docs} # install the pristine docs cp ORIG-docs/libnm-glib/html/* %{buildroot}%{_datadir}/gtk-doc/html/libnm-glib/ cp ORIG-docs/libnm-util/html/* %{buildroot}%{_datadir}/gtk-doc/html/libnm-util/ @@ -457,7 +486,9 @@ cp ORIG-docs/libnm-util/html/* %{buildroot}%{_datadir}/gtk-doc/html/libnm-util/ %check +%if %{with test} make check +%endif %post @@ -514,7 +545,7 @@ fi %{_libexecdir}/nm-iface-helper %dir %{_libdir}/NetworkManager %{_libdir}/NetworkManager/libnm-settings-plugin*.so -%if 0%{?with_nmtui} +%if %{with nmtui} %exclude %{_mandir}/man1/nmtui* %endif %dir %{_sysconfdir}/%{name} @@ -540,35 +571,35 @@ fi %doc NEWS AUTHORS README CONTRIBUTING TODO %license COPYING -%if 0%{?with_adsl} +%if %{with adsl} %files adsl %{_libdir}/%{name}/libnm-device-plugin-adsl.so %else %exclude %{_libdir}/%{name}/libnm-device-plugin-adsl.so %endif -%if 0%{?with_bluetooth} +%if %{with bluetooth} %files bluetooth %{_libdir}/%{name}/libnm-device-plugin-bluetooth.so %endif -%if 0%{?with_team} +%if %{with team} %files team %{_libdir}/%{name}/libnm-device-plugin-team.so %endif -%if 0%{?with_wifi} +%if %{with wifi} %files wifi %{_libdir}/%{name}/libnm-device-plugin-wifi.so %endif -%if 0%{?with_wwan} +%if %{with wwan} %files wwan %{_libdir}/%{name}/libnm-device-plugin-wwan.so %{_libdir}/%{name}/libnm-wwan.so %endif -%if 0%{?with_wimax} +%if %{with wimax} %files wimax %{_libdir}/%{name}/libnm-device-plugin-wimax.so %endif @@ -635,7 +666,7 @@ fi %dir %{_sysconfdir}/%{name}/conf.d %config(noreplace) %{_sysconfdir}/%{name}/conf.d/00-server.conf -%if 0%{?with_nmtui} +%if %{with nmtui} %files tui %{_bindir}/nmtui %{_bindir}/nmtui-edit diff --git a/contrib/fedora/rpm/build.sh b/contrib/fedora/rpm/build.sh index c1ededb554..8fe8066391 100755 --- a/contrib/fedora/rpm/build.sh +++ b/contrib/fedora/rpm/build.sh @@ -128,7 +128,7 @@ case "$BUILDTYPE" in ;; esac -rpmbuild --define "_topdir $TEMP" $RPM_BUILD_OPTION "$TEMPSPEC" || die "ERROR: rpmbuild FAILED" +rpmbuild --define "_topdir $TEMP" $RPM_BUILD_OPTION "$TEMPSPEC" $NM_RPMBUILD_ARGS || die "ERROR: rpmbuild FAILED" ln -snf "$TEMPBASE" ./latest TEMP_LATEST="$(readlink -f .)"/latest diff --git a/contrib/fedora/rpm/build_clean.sh b/contrib/fedora/rpm/build_clean.sh index a63910ad41..30d3f727db 100755 --- a/contrib/fedora/rpm/build_clean.sh +++ b/contrib/fedora/rpm/build_clean.sh @@ -32,8 +32,15 @@ IGNORE_DIRTY=0 GIT_CLEAN=0 QUICK=0 NO_BUILD=0 +WITH_LIST=() +_next_with= for A; do + if [ -n "$_next_with" ]; then + WITH_LIST=("${WITH_LIST[@]}" "$_next_with" "$A") + _next_with= + continue + fi case "$A" in -h|--help|-\?|help) usage @@ -55,6 +62,12 @@ for A; do NO_BUILD=1 IGNORE_DIRTY=1 ;; + -w|--with) + _next_with=--with + ;; + -W|--without) + _next_with=--without + ;; *) usage die "Unexpected argument \"$A\"" @@ -62,6 +75,8 @@ for A; do esac done +test -n "$_next_with" && die "Missing argument to $_next_with" + if [[ $GIT_CLEAN == 1 ]]; then git clean -fdx :/ fi @@ -96,6 +111,7 @@ if [[ $NO_BUILD != 1 ]]; then fi export BUILDTYPE +export NM_RPMBUILD_ARGS="${WITH_LIST[@]}" "$SCRIPTDIR"/build.sh From b880c9040b3f2487cd880cfaf3a63d0fba219ef1 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 9 Jan 2015 17:11:22 -0600 Subject: [PATCH 7/8] contrib: remove dbus/dbus-glib requires from libnm sub-package libnm doesn't use dbus-glib or dbus at all. (cherry picked from commit 5e892819fcebb0ffe8e6797b3be8debb0aede335) --- contrib/fedora/rpm/NetworkManager.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index 5ed6f1dc70..a45cf0b7a3 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -306,8 +306,6 @@ NetworkManager API. See also NetworkManager-libnm-devel. %package libnm Summary: Libraries for adding NetworkManager support to applications (new API). Group: Development/Libraries -Requires: dbus >= %{dbus_version} -Requires: dbus-glib >= %{dbus_glib_version} %description libnm This package contains the libraries that make it easier to use some NetworkManager @@ -321,7 +319,6 @@ Group: Development/Libraries Requires: %{name}-libnm%{?_isa} = %{epoch}:%{version}-%{release} Requires: glib2-devel Requires: pkgconfig -Requires: dbus-glib-devel >= %{dbus_glib_version} %description libnm-devel This package contains the header and pkg-config files for development applications using From 6807fcc5be359fdec1b25a62f011f2aca5824cee Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Wed, 30 Sep 2015 17:00:25 +0200 Subject: [PATCH 8/8] contrib/rpm: remove dbus-glib dependancy Only libnm-glib still requires dbus-glib. (cherry picked from commit 804ec6fbcd9bae95b8fb17e1eab2b3a25a601b15) --- contrib/fedora/rpm/NetworkManager.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/contrib/fedora/rpm/NetworkManager.spec b/contrib/fedora/rpm/NetworkManager.spec index a45cf0b7a3..86a92a1520 100644 --- a/contrib/fedora/rpm/NetworkManager.spec +++ b/contrib/fedora/rpm/NetworkManager.spec @@ -118,7 +118,6 @@ Requires(preun): systemd Requires(postun): systemd Requires: dbus >= %{dbus_version} -Requires: dbus-glib >= %{dbus_glib_version} Requires: glib2 >= %{glib2_version} Requires: iproute Requires: dhclient >= 12:4.1.0