File openvpn3-linux.spec of Package openvpn3-linux

Name:           openvpn3-linux
Version:        24
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(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"
openSUSE Build Service is sponsored by