+#
+# Conditional build:
+%bcond_without gtk4 # Gtk4 version of editor plugin (GNOME 42+)
+
Summary: NetworkManager VPN integration for OpenVPN
Summary(pl.UTF-8): Integracja NetworkManagera z OpenVPN-em
-Name: NetworkManager-OpenVPN
-Version: 0.7
-%define _rev rev3104
-Release: 0.%{_rev}.1
+Name: NetworkManager-openvpn
+Version: 1.10.2
+Release: 1
License: GPL v2+
Group: X11/Applications
-Source0: NetworkManager-%{version}%{_rev}.tar.bz2
-# Source0-md5: 261b0672dfd21d5a99cbaae12e502006
-URL: http://www.gnome.org/projects/NetworkManager/
-BuildRequires: GConf2-devel >= 2.0
-BuildRequires: NetworkManager-applet-devel >= 0.7.0
+Source0: https://download.gnome.org/sources/NetworkManager-openvpn/1.10/%{name}-%{version}.tar.xz
+# Source0-md5: 3a7cb5ac3d33bd8b22dc9f4b58216b5b
+Patch0: chroot.patch
+URL: https://wiki.gnome.org/Projects/NetworkManager
+BuildRequires: NetworkManager-devel >= 2:1.7.0
+BuildRequires: NetworkManager-gtk-lib-devel >= 1.8.0
BuildRequires: autoconf >= 2.52
-BuildRequires: automake
-BuildRequires: dbus-glib-devel >= 0.72
-BuildRequires: gnome-keyring-devel
-BuildRequires: gtk+2-devel >= 2:2.6
-BuildRequires: intltool >= 0.36.2
-BuildRequires: libglade2-devel >= 2.0
-BuildRequires: libgnomeui-devel >= 2.0
-BuildRequires: libtool
+BuildRequires: automake >= 1:1.9
+BuildRequires: gettext-tools >= 0.19
+BuildRequires: glib2-devel >= 1:2.34
+BuildRequires: gtk+3-devel >= 3.4
+%{?with_gtk4:BuildRequires: gtk4-devel >= 4.0}
+%{?with_gtk4:BuildRequires: libnma-gtk4-devel >= 1.8.33}
+BuildRequires: libsecret-devel >= 0.18
+BuildRequires: libtool >= 2:2
BuildRequires: pkgconfig
-BuildRequires: rpmbuild(macros) >= 1.311
-Requires(post,postun): gtk+2
-Requires(post,postun): hicolor-icon-theme
-Requires: NetworkManager-applet >= 0.7
+BuildRequires: tar >= 1:1.22
+BuildRequires: xz
+Provides: group(nm-openvpn)
+Provides: user(nm-openvpn)
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
+Requires: NetworkManager >= 2:1.7.0
+Requires: NetworkManager-gtk-lib >= 1.7.0
+Requires: glib2 >= 1:2.34
+Requires: gtk+3 >= 3.4
+Requires: libsecret >= 0.18
+Requires: openvpn
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _libexecdir %{_libdir}/%{name}
-
%description
NetworkManager VPN integration for OpenVPN.
Integracja NetworkManagera z OpenVPN-em.
%prep
-%setup -q -n NetworkManager-%{version}%{_rev}
+%setup -q
+%patch0 -p1
%build
-cd vpn-daemons/openvpn
-%{__glib_gettextize}
-%{__intltoolize}
%{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
%{__autoconf}
%{__autoheader}
%{__automake}
-%configure
+%configure \
+ --disable-silent-rules \
+ --disable-static \
+ %{?with_gtk4:--with-gtk4}
+
%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} -C vpn-daemons/openvpn install \
+%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-%find_lang NetworkManager-openvpn
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/NetworkManager/*.la
+
+%find_lang %{name}
%clean
rm -rf $RPM_BUILD_ROOT
-%post
-/sbin/ldconfig
-%update_icon_cache hicolor
+%pre
+%groupadd -g 324 -r -f nm-openvpn
+%useradd -u 324 -s /bin/false -c "Default user for running openvpn spawned by NetworkManager" -g nm-openvpn nm-openvpn
%postun
-/sbin/ldconfig
-%update_icon_cache hicolor
+if [ "$1" = "0" ]; then
+ %userremove nm-openvpn
+ %groupremove nm-openvpn
+fi
-%files -f NetworkManager-openvpn.lang
+%files -f %{name}.lang
%defattr(644,root,root,755)
-%attr(755,root,root) %{_bindir}/nm-openvpn-service
-%attr(755,root,root) %{_bindir}/nm-openvpn-service-openvpn-helper
-%attr(755,root,root) %{_libdir}/libnm-openvpn-properties.so*
-%dir %{_libdir}/%{name}
+%doc AUTHORS NEWS README
+%attr(755,root,root) %{_libdir}/NetworkManager/libnm-vpn-plugin-openvpn.so
+%attr(755,root,root) %{_libdir}/NetworkManager/libnm-vpn-plugin-openvpn-editor.so
+%if %{with gtk4}
+%attr(755,root,root) %{_libdir}/NetworkManager/libnm-gtk4-vpn-plugin-openvpn-editor.so
+%endif
%attr(755,root,root) %{_libexecdir}/nm-openvpn-auth-dialog
-%{_sysconfdir}/NetworkManager/VPN/nm-openvpn-service.name
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/dbus-1/system.d/nm-openvpn-service.conf
-%{_desktopdir}/nm-openvpn.desktop
-%{_datadir}/gnome-vpn-properties/openvpn
-%{_iconsdir}/hicolor/*/*/*.png
+%attr(755,root,root) %{_libexecdir}/nm-openvpn-service
+%attr(755,root,root) %{_libexecdir}/nm-openvpn-service-openvpn-helper
+%{_prefix}/lib/NetworkManager/VPN/nm-openvpn-service.name
+%{_datadir}/dbus-1/system.d/nm-openvpn-service.conf
+%{_datadir}/metainfo/network-manager-openvpn.metainfo.xml