File openvpn3-linux.spec of Package openvpn3-linux
Name: openvpn3-linux
Version: 26
Release: 1
Summary: The next generation OpenVPN client for Linux
Group: Productivity/Networking/Security
License: AGPL-3.0-or-later
URL: https://github.com/OpenVPN/openvpn3-linux
Source0: %{name}-%{version}.tar.gz
Source100: %{name}-rpmlintrc
Patch0: use_system_googletest.patch
BuildRequires: meson
BuildRequires: ninja
BuildRequires: cmake
%if 0%{?suse_version} < 1570
BuildRequires: gcc8
%else
BuildRequires: gcc-c++
%endif
BuildRequires: git
BuildRequires: glib2-devel
BuildRequires: tinyxml2-devel
BuildRequires: make
BuildRequires: openvpn
BuildRequires: python3
BuildRequires: python3-Jinja2
BuildRequires: python3-dbus-python
BuildRequires: libuuid-devel-static
BuildRequires: lzo
BuildRequires: pkgconfig
BuildRequires: pkgconfig(fmt)
BuildRequires: pkgconfig(protobuf)
BuildRequires: pkgconfig(jsoncpp)
BuildRequires: pkgconfig(libcap-ng)
BuildRequires: pkgconfig(liblz4)
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(uuid)
BuildRequires: pkgconfig(libnl-genl-3.0)
#BuildRequires: pkgconfig(lzo)
BuildRequires: pkgconfig(liblz4)
BuildRequires: pkgconfig(libsystemd)
BuildRequires: pkgconfig(dbus-1)
#BuildRequires: asciidoctor
BuildRequires: docutils
BuildRequires: googletest-devel
BuildRequires: gdbuspp-devel >= 3
Requires(pre): shadow
Requires: iproute2
Requires: pkcs11-helper >= 1.11
%description
This package provides the openvpn3 client binaries for Linux
%prep
%autosetup -p1
# When building from git, `build-version.h` is generated dynamically. Tarball
# releases are supposed to contain it already, but they don't.
cat > ./build-version.h << "EOF"
#pragma once
#define OPENVPN_VERSION "%{version}"
#define PACKAGE_GUIVERSION "%{version}"
#define PACKAGE_NAME "OpenVPN3/Linux"
EOF
cat ./build-version.h
%build
cat > version.m4 <<EOF
define([PRODUCT_NAME], [OpenVPN 3/Linux])
define([PRODUCT_VERSION], [%{version}])
define([PRODUCT_GUIVERSION], [%{version}])
define([PRODUCT_TARNAME], [openvpn3-linux])
define([PRODUCT_BUGREPORT], [openvpn-devel@lists.sourceforge.net])
EOF
echo "3.%{version}" >openvpn3-core-version
# TODO:
# - enable SELinux
# - enable unit tests (requires replacing for the embedded copy of gtest
# because the build system does not have Internet access)
%meson -Ddocdir=/usr/share/doc/packages/%{name} -Dselinux=disabled -Dselinux_policy=disabled -Dunit_tests=disabled
%meson_build
%install
%meson_install
mkdir -p %{buildroot}%{_includedir}/openvpn3
mkdir -p %{buildroot}/usr/sbin
ln -s /usr/sbin/service %{buildroot}/usr/sbin/rcopenvpn3-autoload
%pre
getent group openvpn >/dev/null || groupadd -r openvpn
getent passwd openvpn >/dev/null || useradd -r -s /sbin/nologin -g openvpn openvpn
%service_add_pre openvpn3-autoload.service
%service_add_pre openvpn3-session@.service
%post
%service_add_post openvpn3-autoload.service
%service_add_post openvpn3-session@.service
%preun
%service_del_preun openvpn3-autoload.service
%service_del_preun openvpn3-session@.service
%postun
%service_del_postun openvpn3-autoload.service
%service_del_postun openvpn3-session@.service
%files
%license COPYRIGHT.md
# %{_sysconfdir}/openvpn3
%{_sharedstatedir}/openvpn3
%{_exec_prefix}/lib/systemd/system/*service
%{_exec_prefix}/lib/python%{python_version}/site-packages/openvpn3
%{_exec_prefix}/share/polkit-1/rules.d
%{_datadir}/dbus-1/system.d/*
%{_datadir}/dbus-1/system-services/*
%{_bindir}/*
%{_sbindir}/openvpn3-*
%{_libexecdir}/openvpn3-linux
%{_includedir}/openvpn3/constants.h
%dir %{_includedir}/openvpn3
%exclude %{_includedir}/openvpn3/constants.h
%doc %{_docdir}/%{name}
%doc %{_mandir}/man1/*
%doc %{_mandir}/man7/*
%doc %{_mandir}/man8/*
/usr/sbin/rcopenvpn3-autoload
%changelog
"Updated to get rid of badness"