1 # TODO: package /usr/lib/firewalld/zones/nm-shared.xml for firewalld support
4 %bcond_without static_libs # static library
5 %bcond_without systemd # use systemd for session tracking instead of ConsoleKit (fallback to ConsoleKit on runtime)
6 %bcond_without vala # Vala API
7 %bcond_with firewalld # Firewalld zone for shared mode
8 %bcond_with default_iwd # use IWD as deafult Wi-Fi backend instead of wpa_supplicant
10 Summary: Network Manager for GNOME
11 Summary(pl.UTF-8): Zarządca sieci dla GNOME
17 Group: Networking/Admin
18 Source0: https://download.gnome.org/sources/NetworkManager/1.46/%{name}-%{version}.tar.xz
19 # Source0-md5: 0594a237e7182341dd39cf465b1b60fe
21 Source3: %{name}.tmpfiles
23 Patch0: ifcfg-path.patch
24 Patch1: systemd-fallback.patch
25 URL: https://wiki.gnome.org/Projects/NetworkManager
26 BuildRequires: ModemManager-devel >= 1.0.0
27 BuildRequires: audit-libs-devel
28 BuildRequires: autoconf >= 2.63
29 BuildRequires: automake >= 1:1.12
30 BuildRequires: bluez-libs-devel >= 5.0
31 BuildRequires: curl-devel >= 7.24.0
32 BuildRequires: dbus-devel >= 1.1.0
33 BuildRequires: docbook-dtd412-xml
34 BuildRequires: gettext-tools >= 0.19.8
35 BuildRequires: glib2-devel >= 1:2.42
36 BuildRequires: gnome-common
37 BuildRequires: gobject-introspection-devel >= 0.10.0
38 BuildRequires: gtk-doc >= 1.0
39 BuildRequires: gtk-doc-automake >= 1.0
40 BuildRequires: jansson-devel >= 2.7
41 BuildRequires: libndp-devel
42 BuildRequires: libnl-devel >= 3.2.8
43 BuildRequires: libpsl-devel >= 0.1
44 BuildRequires: libselinux-devel
45 BuildRequires: libteamdctl-devel >= 1.9
46 BuildRequires: libtool >= 2:2.2
47 BuildRequires: libuuid-devel
48 BuildRequires: libxslt-progs
49 BuildRequires: newt-devel >= 0.52.15
50 # also gnutls (>= 2.12) possible (--with-crypto=gnutls)
51 BuildRequires: nss-devel >= 3.11
52 BuildRequires: perl-base
53 BuildRequires: pkgconfig
54 BuildRequires: polkit-devel >= 0.97
55 BuildRequires: ppp-plugin-devel >= 3:2.4.9
56 BuildRequires: python3 >= 1:3
57 BuildRequires: python3-pygobject3
58 BuildRequires: readline-devel
59 BuildRequires: rpm-build >= 4.6
60 BuildRequires: rpmbuild(macros) >= 1.752
61 BuildRequires: sed >= 4.0
62 %{?with_systemd:BuildRequires: systemd-devel >= 1:209}
63 BuildRequires: tar >= 1:1.22
64 BuildRequires: udev-devel >= 1:175
65 %{?with_vala:BuildRequires: vala >= 2:0.17.1.24}
67 Requires(post,preun): /sbin/chkconfig
68 Requires(post,preun,postun): systemd-units >= 38
69 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
71 Suggests: ConsoleKit-x11
73 Requires: ConsoleKit-x11
75 Requires: curl-libs >= 7.24.0
77 Requires: filesystem >= 3.0-37
78 Requires: jansson >= 2.7
79 Requires: libnl >= 3.2.8
80 Requires: libpsl >= 0.1
81 Requires: libteamdctl >= 1.9
82 Requires: newt >= 0.52.15
83 Requires: polkit >= 0.97
84 Requires: rc-scripts >= 0.4.3.0
85 Requires: systemd-units >= 38
86 Suggests: ModemManager >= 1.0.0
87 %{?with_default_iwd:Suggests: iwd}
88 Suggests: mobile-broadband-provider-info
90 Suggests: teamd >= 1.9
91 %{!?with_default_iwd:Suggests: wpa_supplicant >= 0.7.3-4}
92 Obsoletes: NetworkManager-systemd < 2:0.9.2.0-5
93 Obsoletes: dhcdbd < 3.0-1
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define plugindir %{_libdir}/NetworkManager
97 %define distplugindir %{plugindir}/%{version}-%{release}
100 Network Manager for GNOME.
102 %description -l pl.UTF-8
103 Zarządca sieci dla GNOME.
106 Summary: libnm library API documentation
107 Summary(pl.UTF-8): Dokumentacja API biblioteki libnm
109 Requires: gtk-doc-common
113 libnm library API documentation.
115 %description apidocs -l pl.UTF-8
116 Dokumentacja API biblioteki libnm.
119 Summary: Network Manager shared libraries
120 Summary(pl.UTF-8): Biblioteki dzielone Network Managera
122 Requires: glib2 >= 1:2.42
123 Requires: nss >= 3.11
124 Requires: udev-libs >= 1:175
125 Conflicts: NetworkManager < 0.6.4-0.2
128 Network Manager shared libraries.
130 %description libs -l pl.UTF-8
131 Biblioteki dzielone Network Managera.
134 Summary: Network Manager includes and more
135 Summary(pl.UTF-8): Pliki nagłówkowe Network Managera
136 Group: Development/Libraries
137 Requires: %{name}-libs = %{epoch}:%{version}-%{release}
138 Requires: glib2-devel >= 1:2.42
139 Requires: libuuid-devel
140 Requires: nss-devel >= 3.11
143 Network Manager includes and more.
145 %description devel -l pl.UTF-8
146 Pliki nagłówkowe Network Manager.
149 Summary: Network Manager static libraries
150 Summary(pl.UTF-8): Statyczne biblioteki Network Managera
151 Group: Development/Libraries
152 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
155 Network Manager static libraries.
157 %description static -l pl.UTF-8
158 Statyczne biblioteki Network Managera.
160 %package -n vala-NetworkManager
161 Summary: Vala API for NetworkManager libraries
162 Summary(pl.UTF-8): API języka Vala do bibliotek NetworkManagera
163 Group: Development/Libraries
164 Requires: %{name}-devel = %{epoch}:%{version}-%{release}
165 Requires: vala >= 2:0.17.1.24
168 %description -n vala-NetworkManager
169 Vala API for NetworkManager libraries.
171 %description -n vala-NetworkManager -l pl.UTF-8
172 API języka Vala do bibliotek NetworkManagera.
174 %package -n bash-completion-NetworkManager
175 Summary: Bash completion for NetworkManager command (nmcli)
176 Summary(pl.UTF-8): Bashowe uzupełnianie nazw dla polecenia NetworkManagera (nmcli)
177 Group: Applications/Shells
178 Requires: %{name} = %{epoch}:%{version}-%{release}
179 Requires: bash-completion >= 1:2.0
182 %description -n bash-completion-NetworkManager
183 Bash completion for NetworkManager command (nmcli).
185 %description -n bash-completion-NetworkManager -l pl.UTF-8
186 Bashowe uzupełnianie nazw dla polecenia NetworkManagera (nmcli).
191 %{?with_systemd:%patch1 -p1}
193 grep -rl /usr/bin/env examples | xargs sed -i -e '1{
194 s,^#!.*bin/env gjs,#!/usr/bin/gjs,
195 s,^#!.*bin/env lua,#!%{__lua},
196 s,^#!.*bin/env python,#!%{__python3},
197 s,^#!.*bin/env ruby,#!%{__ruby},
212 --enable-more-warnings \
213 --disable-silent-rules \
214 %{__enable_disable static_libs static} \
215 %{!?with_vala:--disable-vala} \
216 --with-config-wifi-backend-default=%{?with_default_iwd:iwd}%{!?with_default_iwd:wpa_supplicant} \
217 --with-dhclient=/sbin/dhclient \
218 --with-dhcpcd=/sbin/dhcpcd \
219 %{!?with_firewalld:--disable-firewalld-zone} \
220 --with-html-dir=%{_gtkdocdir} \
221 --with-iptables=/usr/sbin/iptables \
223 --with-nft=/usr/sbin/nft \
225 --with-system-ca-path=/etc/certs \
226 --with-systemdsystemunitdir=%{systemdunitdir} \
227 --with-session-tracking=%{?with_systemd:systemd}%{!?with_systemd:ck} \
228 --with-suspend-resume=%{?with_systemd:systemd}%{!?with_systemd:upower} \
229 --with-pppd=/usr/sbin/pppd \
230 --with-pppd-plugin-dir=%{_libdir}/pppd/plugins \
231 --with-resolvconf=/sbin/resolvconf \
232 --with-udev-dir=/lib/udev \
233 --with-dist-version=%{version}-%{release}
238 rm -rf $RPM_BUILD_ROOT
239 install -d $RPM_BUILD_ROOT{/etc/rc.d/init.d,/var/run/%{name},%{systemdtmpfilesdir}} \
240 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/{VPN,conf.d,dispatcher.d,dnsmasq.d,dnsmasq-shared.d,system-connections} \
241 $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/dispatcher.d/{pre-down.d,pre-up.d,no-wait.d} \
242 $RPM_BUILD_ROOT%{_prefix}/lib/%{name}/{VPN,conf.d}
245 DESTDIR=$RPM_BUILD_ROOT
247 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
249 cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
251 cp -p %{SOURCE3} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
254 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
255 %{__rm} $RPM_BUILD_ROOT%{distplugindir}/*.la
256 %{__rm} $RPM_BUILD_ROOT%{_libdir}/pppd/plugins/*.la
257 %if %{with static_libs}
258 %{__rm} $RPM_BUILD_ROOT%{distplugindir}/*.a
259 %{__rm} $RPM_BUILD_ROOT%{_libdir}/pppd/plugins/*.a
265 %{__make} clean-checkPROGRAMS
267 install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
268 cp -a examples/* $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version}
271 rm -rf $RPM_BUILD_ROOT
274 /sbin/chkconfig --add NetworkManager
275 %service -n NetworkManager restart "NetworkManager daemon"
276 %systemd_post NetworkManager.service NetworkManager-wait-online.service
279 if [ "$1" = "0" ]; then
280 %service NetworkManager stop
281 /sbin/chkconfig --del NetworkManager
283 %systemd_preun NetworkManager.service NetworkManager-wait-online.service
288 %triggerpostun -- NetworkManager < 2:0.9.2.0-5
289 %systemd_trigger NetworkManager.service NetworkManager-wait-online.service
291 %triggerun -- NetworkManager < 0.8.9997-5
292 # < 0.7.0-0.svn4027.1: disable obsolete service
293 if /sbin/chkconfig --list | grep -q NetworkManagerDispatcher ; then
294 %service -q NetworkManagerDispatcher stop
295 /sbin/chkconfig --del NetworkManagerDispatcher
297 # < 0.8.9997-5: move network interfaces description files to new location
298 mv -f /etc/sysconfig/network-scripts/ifcfg-* /etc/sysconfig/interfaces
299 mv -f /etc/sysconfig/network-scripts/keys-* /etc/sysconfig/interfaces
302 %post libs -p /sbin/ldconfig
303 %postun libs -p /sbin/ldconfig
305 %files -f %{name}.lang
306 %defattr(644,root,root,755)
307 %doc AUTHORS ChangeLog NEWS README.md TODO
308 %attr(755,root,root) %{_bindir}/nm-online
309 %attr(755,root,root) %{_bindir}/nmcli
310 %attr(755,root,root) %{_bindir}/nmtui
311 %attr(755,root,root) %{_bindir}/nmtui-connect
312 %attr(755,root,root) %{_bindir}/nmtui-edit
313 %attr(755,root,root) %{_bindir}/nmtui-hostname
314 %attr(755,root,root) %{_sbindir}/NetworkManager
316 %dir %{distplugindir}
317 %attr(755,root,root) %{distplugindir}/libnm-device-plugin-adsl.so
318 %attr(755,root,root) %{distplugindir}/libnm-device-plugin-bluetooth.so
319 %attr(755,root,root) %{distplugindir}/libnm-device-plugin-ovs.so
320 %attr(755,root,root) %{distplugindir}/libnm-device-plugin-wifi.so
321 %attr(755,root,root) %{distplugindir}/libnm-device-plugin-wwan.so
322 %attr(755,root,root) %{distplugindir}/libnm-device-plugin-team.so
323 %attr(755,root,root) %{distplugindir}/libnm-ppp-plugin.so
324 %attr(755,root,root) %{distplugindir}/libnm-settings-plugin-ifcfg-rh.so
325 %attr(755,root,root) %{distplugindir}/libnm-wwan.so
326 %attr(755,root,root) %{_libexecdir}/nm-cloud-setup
327 %attr(755,root,root) %{_libexecdir}/nm-daemon-helper
328 %attr(755,root,root) %{_libexecdir}/nm-dhcp-helper
329 %attr(755,root,root) %{_libexecdir}/nm-dispatcher
330 %attr(755,root,root) %{_libexecdir}/nm-ifdown
331 %attr(755,root,root) %{_libexecdir}/nm-ifup
332 %attr(755,root,root) %{_libexecdir}/nm-initrd-generator
333 %attr(755,root,root) %{_libexecdir}/nm-priv-helper
334 %attr(755,root,root) %{_libdir}/pppd/plugins/nm-pppd-plugin.so
335 %attr(754,root,root) /etc/rc.d/init.d/NetworkManager
336 %if "%{_lib}" != "lib"
337 %dir %{_prefix}/lib/NetworkManager
339 %dir %{_prefix}/lib/NetworkManager/VPN
340 %dir %{_prefix}/lib/NetworkManager/conf.d
341 %dir %{_prefix}/lib/NetworkManager/dispatcher.d
342 %{_prefix}/lib/NetworkManager/dispatcher.d/90-nm-cloud-setup.sh
343 %dir %{_prefix}/lib/NetworkManager/dispatcher.d/no-wait.d
344 %attr(755,root,root) %{_prefix}/lib/NetworkManager/dispatcher.d/no-wait.d/90-nm-cloud-setup.sh
345 %dir %{_prefix}/lib/NetworkManager/dispatcher.d/pre-up.d
346 %attr(755,root,root) %{_prefix}/lib/NetworkManager/dispatcher.d/pre-up.d/90-nm-cloud-setup.sh
347 %{systemdunitdir}/NetworkManager.service
348 %{systemdunitdir}/NetworkManager-dispatcher.service
349 %{systemdunitdir}/NetworkManager-wait-online.service
350 %dir %{systemdunitdir}/NetworkManager.service.d
351 %{systemdunitdir}/NetworkManager.service.d/NetworkManager-ovs.conf
352 %{systemdunitdir}/nm-cloud-setup.service
353 %{systemdunitdir}/nm-cloud-setup.timer
354 %{systemdunitdir}/nm-priv-helper.service
355 %{systemdtmpfilesdir}/%{name}.conf
356 %{_datadir}/dbus-1/system-services/org.freedesktop.nm_dispatcher.service
357 %{_datadir}/dbus-1/system-services/org.freedesktop.nm_priv_helper.service
358 %{_datadir}/dbus-1/system.d/nm-dispatcher.conf
359 %{_datadir}/dbus-1/system.d/nm-ifcfg-rh.conf
360 %{_datadir}/dbus-1/system.d/nm-priv-helper.conf
361 %{_datadir}/dbus-1/system.d/org.freedesktop.NetworkManager.conf
362 %{_datadir}/polkit-1/actions/org.freedesktop.NetworkManager.policy
363 /lib/udev/rules.d/84-nm-drivers.rules
364 /lib/udev/rules.d/85-nm-unmanaged.rules
365 /lib/udev/rules.d/90-nm-thunderbolt.rules
366 %dir %{_sysconfdir}/%{name}/VPN
367 %dir %{_sysconfdir}/%{name}/conf.d
368 %dir %{_sysconfdir}/%{name}/dispatcher.d
369 %dir %{_sysconfdir}/%{name}/dispatcher.d/pre-down.d
370 %dir %{_sysconfdir}/%{name}/dispatcher.d/pre-up.d
371 %dir %{_sysconfdir}/%{name}/dispatcher.d/no-wait.d
372 %dir %{_sysconfdir}/%{name}/dnsmasq.d
373 %dir %{_sysconfdir}/%{name}/dnsmasq-shared.d
374 %dir %{_sysconfdir}/%{name}/system-connections
375 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/%{name}.conf
376 %attr(711,root,root) %dir /var/run/%{name}
377 %attr(700,root,root) %dir /var/lib/%{name}
378 %{_mandir}/man1/nm-online.1*
379 %{_mandir}/man1/nmcli.1*
380 %{_mandir}/man1/nmtui-connect.1*
381 %{_mandir}/man1/nmtui-edit.1*
382 %{_mandir}/man1/nmtui-hostname.1*
383 %{_mandir}/man1/nmtui.1*
384 %{_mandir}/man5/NetworkManager.conf.5*
385 %{_mandir}/man5/nm-settings.5*
386 %{_mandir}/man5/nm-settings-dbus.5*
387 %{_mandir}/man5/nm-settings-ifcfg-rh.5*
388 %{_mandir}/man5/nm-settings-keyfile.5*
389 %{_mandir}/man5/nm-settings-nmcli.5*
390 %{_mandir}/man5/nm-system-settings.conf.5*
391 %{_mandir}/man7/nm-openvswitch.7*
392 %{_mandir}/man7/nmcli-examples.7*
393 %{_mandir}/man8/NetworkManager.8*
394 %{_mandir}/man8/NetworkManager-dispatcher.8*
395 %{_mandir}/man8/NetworkManager-wait-online.service.8*
396 %{_mandir}/man8/nm-cloud-setup.8*
397 %{_mandir}/man8/nm-initrd-generator.8*
398 %{_examplesdir}/%{name}-%{version}
401 %defattr(644,root,root,755)
402 %{_gtkdocdir}/NetworkManager
406 %defattr(644,root,root,755)
407 %attr(755,root,root) %{_libdir}/libnm.so.*.*.*
408 %attr(755,root,root) %ghost %{_libdir}/libnm.so.0
409 %{_libdir}/girepository-1.0/NM-1.0.typelib
412 %defattr(644,root,root,755)
413 %attr(755,root,root) %{_libdir}/libnm.so
415 %{_pkgconfigdir}/libnm.pc
416 %{_datadir}/dbus-1/interfaces/org.freedesktop.NetworkManager.xml
417 %{_datadir}/dbus-1/interfaces/org.freedesktop.NetworkManager.*.xml
418 %{_datadir}/gir-1.0/NM-1.0.gir
420 %if %{with static_libs}
422 %defattr(644,root,root,755)
427 %files -n vala-NetworkManager
428 %defattr(644,root,root,755)
429 %{_datadir}/vala/vapi/libnm.deps
430 %{_datadir}/vala/vapi/libnm.vapi
433 %files -n bash-completion-NetworkManager
434 %defattr(644,root,root,755)
435 %{bash_compdir}/nmcli