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
openSUSE Build Service is sponsored by