Name: openlawsvpn Version: 1.0.0 Release: 4%{?dist} Summary: Custom OpenVPN 3 Client with SAML support # GUI is disabled by default %bcond_with gui License: AGPL-3.0-only URL: https://github.com/openlaws/openlawsvpn Source0: openlawsvpn-7d0a0c55.tar.gz Source1: https://swupdate.openvpn.net/community/releases/openvpn3-linux-27.tar.xz BuildRequires: cmake BuildRequires: gcc-c++ BuildRequires: openssl-devel BuildRequires: lz4-devel BuildRequires: asio-devel BuildRequires: glib2-devel BuildRequires: chrpath %if %{with gui} BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: libcanberra-devel # and flutter... %endif %description A specialized OpenVPN 3 client for Linux that handles SAML authentication and establishes tunnels via D-Bus or standalone mode. %package cli Summary: Command line interface for openlawsvpn %description cli Command line interface and core library for openlawsvpn. %if %{with gui} %package gui Summary: Graphical user interface for openlawsvpn Requires: %{name}-cli = %{version}-%{release} %description gui Graphical user interface for openlawsvpn based on Flutter. %endif %prep %setup -q -n %{name} mkdir -p openvpn3-src tar xf %{SOURCE1} -C openvpn3-src --strip-components=1 # Apply patches to openvpn3-src patch -p0 < patches/cryptoalgs.hpp.patch patch -p0 < patches/ovpncli.cpp.patch %build cd linux %cmake -DOPENVPN_DEFAULT_MODE=DBUS -Wno-dev %cmake_build cd .. %if %{with gui} # Build GUI # Note: This assumes flutter is available in the environment cd gui # Clear flags that confuse clang (used by flutter/cmake for some parts) export CFLAGS="" export CXXFLAGS="" export LDFLAGS="" %{?flutter_bin}%{!?flutter_bin:flutter} pub get %{?flutter_bin}%{!?flutter_bin:flutter} build linux --release --no-pub cd .. %endif %install cd linux %cmake_install cd .. %if %{with gui} # Install GUI mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_libdir}/openlawsvpn cp gui/build/linux/x64/release/bundle/openlawsvpn-gui %{buildroot}%{_libdir}/openlawsvpn/ cp -r gui/build/linux/x64/release/bundle/data %{buildroot}%{_libdir}/openlawsvpn/ cp -r gui/build/linux/x64/release/bundle/lib/* %{buildroot}%{_libdir}/openlawsvpn/ # Fix RPATH for the GUI binary and its plugins find %{buildroot}%{_libdir}/openlawsvpn/ -name "*.so" -exec chrpath --delete {} \; chrpath --replace '$ORIGIN/../openlawsvpn' %{buildroot}%{_libdir}/openlawsvpn/openlawsvpn-gui || \ chrpath --delete %{buildroot}%{_libdir}/openlawsvpn/openlawsvpn-gui # Create a symlink ln -s %{_libdir}/openlawsvpn/openlawsvpn-gui %{buildroot}%{_bindir}/openlawsvpn-gui %endif %files cli %{_bindir}/openlawsvpn-cli %{_libdir}/libopenlawsvpn.so %if %{with gui} %files gui %{_bindir}/openlawsvpn-gui %{_libdir}/openlawsvpn/ %endif %changelog * Tue Mar 24 2026 Anatolii Vorona - 1.0.0-4 - Remove unused dependency: fmt-devel, openvpn3-client * Mon Mar 23 2026 Anatolii Vorona - 1.0.0-2 - Add openlawsvpn-gui to the package * Sun Jun 22 2025 Anatolii Vorona - 1.0.0-1 - Initial RPM release with D-Bus and SAML support