File pcs.spec of Package pcs-stable-but-no-web
Name: pcs
Version: 0.11.7
Release: 0
Summary: PCS - Pacemaker/Corosync Configuration System
License: GPLv3+
URL: https://github.com/ClusterLabs/pcs
BuildArch: noarch
#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
%define _fillupdir /var/adm/fillup-templates
%endif
%global pyagentx_version 0.4.1
%global pkg_pcs_snmp pcs-snmp
Source0: %{name}-%{version}.tar.gz
BuildRequires: gcc
BuildRequires: git
BuildRequires: autoconf
BuildRequires: libtool
BuildRequires: make
BuildRequires: wget
BuildRequires: python3 >= 3.9
Requires: python3 >= 3.9
BuildRequires: python3-setuptools
Requires: python3-setuptools
BuildRequires: python3-lxml
Requires: python3-lxml
BuildRequires: python3-pyparsing
Requires: python3-pyparsing
BuildRequires: python3-tornado
Requires: python3-tornado
BuildRequires: python3-dateutil
Requires: python3-dateutil
BuildRequires: python3-wheel
Requires: python3-wheel
BuildRequires: python3-pip
Requires: python3-pip
BuildRequires: python3-dacite
Requires: python3-dacite
BuildRequires: python3-pyagentx
Requires: python3-pyagentx
BuildRequires: python3-cryptography
Requires: python3-cryptography
BuildRequires: python3-pycurl
Requires: python3-pycurl
BuildRequires: mozilla-nss-tools
Requires: mozilla-nss-tools
BuildRequires: ruby-devel
Requires: ruby-devel
BuildRequires: psmisc
Requires: psmisc
BuildRequires: authselect
Requires: authselect
BuildRequires: rubygem(%{rb_default_ruby_abi}:backports)
Requires: rubygem(%{rb_default_ruby_abi}:backports)
BuildRequires: rubygem(%{rb_default_ruby_abi}:childprocess)
Requires: rubygem(%{rb_default_ruby_abi}:childprocess)
BuildRequires: rubygem(%{rb_default_ruby_abi}:ethon)
Requires: rubygem(%{rb_default_ruby_abi}:ethon)
BuildRequires: rubygem(%{rb_default_ruby_abi}:mustermann)
Requires: rubygem(%{rb_default_ruby_abi}:mustermann)
BuildRequires: rubygem(%{rb_default_ruby_abi}:rack) >= 3
Requires: rubygem(%{rb_default_ruby_abi}:rack) >= 3
BuildRequires: rubygem(%{rb_default_ruby_abi}:rackup)
Requires: rubygem(%{rb_default_ruby_abi}:rackup)
BuildRequires: rubygem(%{rb_default_ruby_abi}:rack-protection)
Requires: rubygem(%{rb_default_ruby_abi}:rack-protection)
BuildRequires: rubygem(%{rb_default_ruby_abi}:rack-test)
Requires: rubygem(%{rb_default_ruby_abi}:rack-test)
BuildRequires: rubygem(%{rb_default_ruby_abi}:sinatra) >= 4
Requires: rubygem(%{rb_default_ruby_abi}:sinatra) >= 4
BuildRequires: rubygem(%{rb_default_ruby_abi}:rack-session)
Requires: rubygem(%{rb_default_ruby_abi}:rack-session)
BuildRequires: rubygem(%{rb_default_ruby_abi}:nio4r)
Requires: rubygem(%{rb_default_ruby_abi}:nio4r)
BuildRequires: rubygem(%{rb_default_ruby_abi}:puma) >= 6
Requires: rubygem(%{rb_default_ruby_abi}:puma) >= 6
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
Requires(post): %fillup_prereq
# pam is used for authentication inside daemon (python ctypes)
# more details: https://bugzilla.redhat.com/show_bug.cgi?id=1717113
Requires: pam
# needs logrotate for /etc/logrotate.d/pcsd
Requires: logrotate
Provides: bundled(dacite) = 1.8.1
Requires: pacemaker >= 2.1.0
# pcs-snmp subpackage definition
%package -n %{pkg_pcs_snmp}
Group: System Environment/Base
Summary: Pacemaker cluster SNMP agent
# https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#Good_Licenses
# GPL-2.0-only: pcs
# BSD-2-Clause: pyagentx
License: GPL-2.0-only AND BSD-2-Clause
URL: https://github.com/ClusterLabs/pcs
BuildArch: noarch
BuildRequires: tar
Requires: pcs = %{version}-%{release}
Requires: net-snmp
Provides: bundled(pyagentx) = %{pyagentx_version}
%description
Pcs is a Corosync and Pacemaker configuration tool. It permits users to easily view, modify and create Pacemaker based clusters. Pcs contains pcsd, a pcs daemon, which operates as a remote server for pcs.
%description -n %{pkg_pcs_snmp}
SNMP agent that provides information about pacemaker cluster to the master agent (snmpd).
%build
./autogen.sh
DISTRO=opensuse ./configure --with-pcs-lib-dir=/usr/lib
make
%install
make install DESTDIR=%{buildroot} PYTHON_SITELIB=%{python3_sitelib}
install -p -d -m 755 %{buildroot}%{_sysconfdir}/pcsd
install -p -d -m 755 %{buildroot}%{_sysconfdir}/pcs_snmp_agent
install -D -m 0644 %{buildroot}%{_sysconfdir}/sysconfig/pcsd %{buildroot}%{_fillupdir}/sysconfig.pcsd
install -D -m 0644 %{buildroot}%{_sysconfdir}/sysconfig/pcs_snmp_agent %{buildroot}%{_fillupdir}/sysconfig.pcs_snmp_agent
rm %{buildroot}%{_sysconfdir}/sysconfig/pcsd
rm %{buildroot}%{_sysconfdir}/sysconfig/pcs_snmp_agent
mkdir -p %{buildroot}/var/log/pcsd
mkdir -p %{buildroot}/var/lib/pcsd
mkdir -p %{buildroot}%{_sysconfdir}/pam.d/
install -D -m 0644 %{_datadir}/authselect/default/minimal/system-auth %{buildroot}%{_sysconfdir}/pam.d/
%pre
%post
%{fillup_only -n pcsd}
%{fillup_only -n pcs_snmp_agent}
%preun
%postun
%files
%{python3_sitelib}/*
%config(noreplace) %{_sysconfdir}/logrotate.d/pcsd
%{_fillupdir}/sysconfig.pcsd
%{_sysconfdir}/pam.d/pcsd
%{_sysconfdir}/pam.d/system-auth
%{_unitdir}/pcsd.service
%{_unitdir}/pcsd-ruby.service
%{_prefix}/lib/pcs
%{_prefix}/lib/pcsd
%{_sbindir}/pcs
%{_sbindir}/pcsd
%{_datadir}/bash-completion/completions/pcs
%doc %{_datadir}/doc/pcs
%doc %{_mandir}/man8/pcs.*
%doc %{_mandir}/man8/pcsd.*
%{_datadir}/snmp
/var/log/pcsd
/var/lib/pcsd
%exclude %{_prefix}/lib/pcs/pcs_snmp_agent
%files -n %{pkg_pcs_snmp}
%{_prefix}/lib/pcs/pcs_snmp_agent
%{_unitdir}/pcs_snmp_agent.service
%doc %{_mandir}/man8/pcs_snmp_agent.*
%{_fillupdir}/sysconfig.pcs_snmp_agent
%clean
rm -rf %{buildroot}
%prep
%setup