File gvmd.spec of Package gvmd

#
# spec file for package gvmd
#
# Copyright (c) 2019-2023, Martin Hauke <mardnh@gmx.de>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#

%define sover 22
Name:           gvmd
Version:        22.4.2
Release:        0
Summary:        Greenbone Vulnerability Manager
License:        AGPL-3.0-or-later
Group:          Productivity/Networking/Security
URL:            https://www.openvas.org
Source:         https://github.com/greenbone/%{name}/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
#Git-Clone:     https://github.com/greenbone/gvmd.git
Source1:        %{name}.service
Source2:        %{name}.sysconfig
Source3:        gvm.tmpfiles.d
Source98:       https://github.com/greenbone/%{name}/releases/download/v%{version}/%{name}-%{version}.tar.gz.asc
Source99:       https://www.greenbone.net/GBCommunitySigningKey.asc#/%{name}.keyring
Patch0:         gvmd-postgresql-header-location.patch
BuildRequires:  cmake
BuildRequires:  doxygen
BuildRequires:  fdupes
BuildRequires:  graphviz
BuildRequires:  libgpgme-devel >= 1.1.2
BuildRequires:  libxslt-tools
BuildRequires:  perl-XML-Twig
BuildRequires:  pkgconfig
BuildRequires:  postgresql-devel
BuildRequires:  xmltoman
BuildRequires:  libbsd-devel
BuildRequires:  pkgconfig(glib-2.0) >= 2.42
BuildRequires:  pkgconfig(gnutls) >= 3.2.15
BuildRequires:  pkgconfig(libgvm_base) >= 22.4
BuildRequires:  pkgconfig(libgvm_gmp) >= 22.4
BuildRequires:  pkgconfig(libgvm_osp) >= 22.4
BuildRequires:  pkgconfig(libgvm_util) >= 22.4
BuildRequires:  pkgconfig(libical) >= 1.00
BuildRequires:  pkgconfig(systemd)
BuildRequires:  gvm-common >= 20.8.0
Requires:       gnutls
Requires:       libgvm-pg-server%{sover}
Requires:       libxslt-tools
Requires:       gvm-common >= 20.8.0
Recommends:     logrotate
# for xml_split
Requires:       perl-XML-Twig
%if 0%{?suse_version} >= 1500
BuildRequires:  postgresql-server-devel
%endif
%{?systemd_ordering}

%description
The Greenbone Vulnerability Manager is the central management service between
security scanners and the user clients.
It manages the storage of any vulnerability management configurations and of the
scan results. Access to data, control commands and workflows is offered via the
XML-based Greenbone Management Protocol (GMP). The primary scanner OpenVAS
Scanner is controlled directly via protocol OTP while any other remote scanner
is coupled with the Open Scanner Protocol (OSP).

%package -n libgvm-pg-server%{sover}
Summary:        PostgreSQL extesion for GVM
Group:          System/Libraries
Recommends:     %{name}-extentions = %{version}

%description -n libgvm-pg-server%{sover}
PostgreSQL extension for GVM.

%package -n gvm-pg-server-devel
Summary:        Development files for libgvm-pg-server
Group:          Development/Libraries/C and C++
Requires:       libgvm-pg-server%{sover} = %{version}

%description -n gvm-pg-server-devel
PostgreSQL extension for GVM.

This subpackage contains libraries and header files for developing
applications that want to make use of libgvm-pg-server.

%prep
%setup -q
%patch0 -p1
sed -i 's|#!%{_bindir}/env python3|#!%{_bindir}/python3|g' \
  src/alert_methods/SMB/alert \
  src/alert_methods/TippingPoint/report-convert.py

%build
%cmake \
    -DCMAKE_SHARED_LINKER_FLAGS="" \
    -DGVM_LIB_INSTALL_DIR=%{_libdir} \
    -DLOCALSTATEDIR=%{_localstatedir} \
    -DGVM_RUN_DIR=%{gvm_runtimedir} \
    -DSYSCONFDIR=%{_sysconfdir} \
    -DDEFAULT_CONFIG_DIR=%{_sysconfdir}/default \
    -DLOGROTATE_DIR=%{_sysconfdir}/logrotate.d \
    -DSYSTEMD_SERVICE_DIR=%{_unitdir}
%make_jobs

%install
%cmake_install
%fdupes -s %{buildroot}/%{_datadir}/gvm
install -Dpm 0644 %{_sourcedir}/%{name}.service %{buildroot}%{_unitdir}/%{name}.service
install -Dpm 0644 %{_sourcedir}/%{name}.sysconfig %{buildroot}%{_fillupdir}/sysconfig.%{name}
install -d %{buildroot}/%{_sbindir}
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{name}
install -D -m 0644 %{SOURCE3} %{buildroot}%{_tmpfilesdir}/gvm.conf

%pre
%service_add_pre %{name}.service

%post
%fillup_only %{name}
%service_add_post %{name}.service
%tmpfiles_create %{_tmpfilesdir}/gvm.conf

%preun
%service_del_preun %{name}.service

%postun
%service_del_postun %{name}.service

%post   -n libgvm-pg-server%{sover} -p /sbin/ldconfig
%postun -n libgvm-pg-server%{sover} -p /sbin/ldconfig

%files
%license COPYING
%doc README.md
%{_tmpfilesdir}/gvm.conf
%dir %attr(-,%{gvm_user},%{gvm_group}) %ghost %{gvm_runtimedir}
%config(noreplace) %{_sysconfdir}/gvm/gvmd_log.conf
%config(noreplace) %{_sysconfdir}/gvm/pwpolicy.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/gvmd
%{_bindir}/gvm-manage-certs
%{_sbindir}/greenbone-certdata-sync
%{_sbindir}/greenbone-scapdata-sync
%{_sbindir}/greenbone-feed-sync
%{_sbindir}/rcgvmd
%{_sbindir}/gvmd
%{_datadir}/gvm/cert/cert_bund_getbyname.xsl
%{_datadir}/gvm/cert/dfn_cert_getbyname.xsl
%{_datadir}/gvm/gvm-lsc-deb-creator
%{_datadir}/gvm/gvm-lsc-exe-creator
%{_datadir}/gvm/gvm-lsc-rpm-creator
%{_datadir}/gvm/gvmd/global_alert_methods
%{_datadir}/gvm/gvmd/global_schema_formats
%{_datadir}/gvm/gvmd/template.nsis
%{_datadir}/gvm/gvmd/wizards
%{_datadir}/gvm/scap
%{_mandir}/man1/gvm-manage-certs.1%{?ext_man}
%{_mandir}/man8/greenbone-certdata-sync.8%{?ext_man}
%{_mandir}/man8/greenbone-scapdata-sync.8%{?ext_man}
%{_mandir}/man8/gvmd.8%{?ext_man}
%{_datadir}/doc/gvm/example-gvm-manage-certs.conf
%{_datadir}/doc/gvm/html/gmp.html
%{_unitdir}/%{name}.service
%{_fillupdir}/sysconfig.%{name}

%files -n libgvm-pg-server%{sover}
%{_libdir}/libgvm-pg-server.so.%{sover}*

%files -n gvm-pg-server-devel
%{_libdir}/libgvm-pg-server.so

%changelog
openSUSE Build Service is sponsored by