%global app_id io.gitlab.carloscastrohenriques.OvpnManager Name: ovpn-manager Version: 1.0.0 Release: 1%{?dist} Summary: Manage OpenVPN connections with one-time passwords from the top bar License: MIT URL: https://gitlab.com/carloscastrohenriques/ovpn-manager Source0: %{url}/-/archive/v%{version}/%{name}-v%{version}.tar.gz BuildArch: noarch BuildRequires: python3-devel BuildRequires: desktop-file-utils BuildRequires: libappstream-glib # for %%check (unit tests) BuildRequires: python3-gobject-base BuildRequires: libsecret Requires: python3-gobject Requires: gtk3 Requires: libayatana-appindicator-gtk3 Requires: libsecret Requires: openvpn Requires: polkit Requires: hicolor-icon-theme Recommends: gnome-shell-extension-appindicator %description VPN Manager imports OpenVPN profiles (.ovpn) and lets you connect from an icon in the top bar. It runs in the background, supports two-factor authentication (static/dynamic challenges, CR_TEXT, web login and automatic TOTP codes) and keeps passwords in the system keyring. %prep %autosetup -n %{name}-v%{version} %build # pure Python, nothing to build %install install -d %{buildroot}%{_datadir}/%{name}/ovpn_manager install -pm644 ovpn_manager/*.py %{buildroot}%{_datadir}/%{name}/ovpn_manager/ %py_byte_compile %{python3} %{buildroot}%{_datadir}/%{name} install -Dpm755 data/ovpn-manager-helper %{buildroot}%{_libexecdir}/%{name}/ovpn-manager-helper install -Dpm644 data/%{app_id}.policy %{buildroot}%{_datadir}/polkit-1/actions/%{app_id}.policy install -Dpm644 data/%{app_id}.desktop %{buildroot}%{_datadir}/applications/%{app_id}.desktop install -Dpm644 data/%{app_id}.metainfo.xml %{buildroot}%{_metainfodir}/%{app_id}.metainfo.xml install -Dpm644 data/%{app_id}.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/%{app_id}.svg install -d %{buildroot}%{_bindir} cat > %{buildroot}%{_bindir}/%{name} <<'EOF' #!/bin/sh PYTHONPATH="%{_datadir}/%{name}${PYTHONPATH:+:$PYTHONPATH}" exec %{python3} -m ovpn_manager "$@" EOF chmod 755 %{buildroot}%{_bindir}/%{name} %check desktop-file-validate %{buildroot}%{_datadir}/applications/%{app_id}.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{app_id}.metainfo.xml %{python3} -m unittest discover -s tests -v %files %license LICENSE %doc README.md %{_bindir}/%{name} %{_datadir}/%{name}/ %{_libexecdir}/%{name}/ %{_datadir}/polkit-1/actions/%{app_id}.policy %{_datadir}/applications/%{app_id}.desktop %{_metainfodir}/%{app_id}.metainfo.xml %{_datadir}/icons/hicolor/scalable/apps/%{app_id}.svg %changelog * Sun Oct 11 2026 Carlos Henriques - 1.0.0-1 - First release