summaryrefslogtreecommitdiffstats
path: root/resource-agents.spec.in
diff options
context:
space:
mode:
Diffstat (limited to 'resource-agents.spec.in')
-rw-r--r--resource-agents.spec.in385
1 files changed, 385 insertions, 0 deletions
diff --git a/resource-agents.spec.in b/resource-agents.spec.in
new file mode 100644
index 0000000..1cbf28c
--- /dev/null
+++ b/resource-agents.spec.in
@@ -0,0 +1,385 @@
+#
+# 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.
+#
+
+%global rcver @rcver@
+%global alphatag @alphatag@
+%global numcomm @numcomm@
+%global dirty @dirty@
+
+# Whether this platform defaults to using systemd as an init system
+# (needs to be evaluated prior to BuildRequires being enumerated and
+# installed as it's intended to conditionally select some of these, and
+# for that there are only few indicators with varying reliability:
+# - presence of systemd-defined macros (when building in a full-fledged
+# environment, which is not the case with ordinary mock-based builds)
+# - systemd-aware rpm as manifested with the presence of particular
+# macro (rpm itself will trivially always be present when building)
+# - existence of /usr/lib/os-release file, which is something heavily
+# propagated by systemd project
+# - when not good enough, there's always a possibility to check
+# particular distro-specific macros (incl. version comparison)
+%define systemd_native (%{?_unitdir:1}%{!?_unitdir:0}%{nil \
+ } || %{?__transaction_systemd_inhibit:1}%{!?__transaction_systemd_inhibit:0}%{nil \
+ } || %(test -f /usr/lib/os-release; test $? -ne 0; echo $?))
+
+# SSLeay (required by ldirectord)
+%if 0%{?suse_version}
+%global SSLeay perl-Net_SSLeay
+%else
+%global SSLeay perl-Net-SSLeay
+%endif
+
+# determine the ras-set to process based on configure invokation
+%bcond_@rgmanager@ rgmanager
+%bcond_@linux-ha@ linuxha
+
+Name: resource-agents
+Summary: Open Source HA Reusable Cluster Resource Scripts
+Version: @version@
+Release: @specver@%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:.%{alphatag}}%{?dirty:.%{dirty}}%{?dist}
+License: GPL-2.0-or-later AND LGPL-2.1-or-later
+URL: https://github.com/ClusterLabs/resource-agents
+Source0: %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}}.tar.bz2
+Obsoletes: heartbeat-resources <= %{version}
+Provides: heartbeat-resources = %{version}
+
+# Build dependencies
+BuildRequires: make
+BuildRequires: automake autoconf pkgconfig gcc
+BuildRequires: perl
+BuildRequires: libxslt glib2-devel libqb-devel
+BuildRequires: systemd
+BuildRequires: which
+
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+BuildRequires: python3-devel
+%else
+BuildRequires: python-devel
+%endif
+
+%ifarch x86_64
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7
+BuildRequires: python3-pyroute2
+%endif
+%endif
+
+%if 0%{?fedora} || 0%{?centos} || 0%{?rhel}
+BuildRequires: docbook-style-xsl docbook-dtds
+%if 0%{?rhel} == 0
+BuildRequires: libnet-devel
+%endif
+%endif
+
+%if 0%{?suse_version}
+BuildRequires: libnet-devel
+%if 0%{?suse_version} > 1500
+BuildRequires: cluster-glue-devel
+%else
+BuildRequires: libglue-devel
+%endif
+BuildRequires: libxslt docbook_4 docbook-xsl-stylesheets
+%endif
+
+## Runtime deps
+# system tools shared by several agents
+Requires: /bin/bash /usr/bin/grep /bin/sed /bin/gawk
+Requires: /bin/ps /usr/bin/pkill /usr/bin/hostname /usr/bin/netstat
+Requires: /bin/mount
+%if 0%{?suse_version}
+Requires: /usr/bin/fuser
+%else
+Requires: /usr/sbin/fuser
+%endif
+
+# Filesystem / fs.sh / netfs.sh
+%if 0%{?suse_version}
+Requires: /usr/sbin/fsck
+%else
+Requires: /sbin/fsck
+%endif
+Requires: /usr/sbin/fsck.ext2 /usr/sbin/fsck.ext3 /usr/sbin/fsck.ext4
+Requires: /usr/sbin/fsck.xfs
+%if 0%{?suse_version}
+Requires: /usr/sbin/mount.nfs /usr/sbin/mount.nfs4
+%else
+Requires: /sbin/mount.nfs /sbin/mount.nfs4
+%endif
+%if (0%{?fedora} && 0%{?fedora} < 33) || (0%{?rhel} && 0%{?rhel} < 9) || (0%{?centos} && 0%{?centos} < 9) || 0%{?suse_version}
+%if (0%{?rhel} && 0%{?rhel} < 8) || (0%{?centos} && 0%{?centos} < 8)
+Requires: /usr/sbin/mount.cifs
+%else
+Recommends: /usr/sbin/mount.cifs
+%endif
+%endif
+
+# IPaddr2
+Requires: /sbin/ip
+
+# LVM / lvm.sh
+Requires: /usr/sbin/lvm
+
+# nfsserver / netfs.sh
+%if 0%{?suse_version}
+Requires: /usr/sbin/rpc.statd
+%else
+Requires: /sbin/rpc.statd
+%endif
+Requires: /usr/sbin/rpc.nfsd /usr/sbin/rpc.mountd
+
+# rgmanager
+%if %{with rgmanager}
+# ip.sh
+Requires: /usr/sbin/ethtool
+Requires: /sbin/rdisc /usr/sbin/arping /bin/ping /bin/ping6
+
+# nfsexport.sh
+Requires: /sbin/findfs
+Requires: /sbin/quotaon /sbin/quotacheck
+%endif
+
+%description
+A set of scripts to interface with several services to operate in a
+High Availability environment for both Pacemaker and rgmanager
+service managers.
+
+%if %{with linuxha}
+%package -n ldirectord
+License: GPL-2.0-or-later
+Summary: A Monitoring Daemon for Maintaining High Availability Resources
+Obsoletes: heartbeat-ldirectord <= %{version}
+Provides: heartbeat-ldirectord = %{version}
+%if 0%{?fedora} > 18 || 0%{?centos} > 6 || 0%{?rhel} > 6
+BuildRequires: perl-podlators
+%endif
+Requires: %{SSLeay} perl-libwww-perl perl-MailTools
+Requires: ipvsadm logrotate
+%if 0%{?fedora}
+Requires: perl-Net-IMAP-Simple-SSL perl-IO-Socket-INET6
+%endif
+%if 0%{?fedora} < 34
+Requires(post): /sbin/chkconfig
+Requires(preun): /sbin/chkconfig
+%endif
+%if %{systemd_native}
+BuildRequires: systemd
+%endif
+%{?systemd_requires}
+
+%description -n ldirectord
+The Linux Director Daemon (ldirectord) was written by Jacob Rief.
+<jacob.rief@tiscover.com>
+
+ldirectord is a stand alone daemon for monitoring the services on real
+servers. Currently, HTTP, HTTPS, and FTP services are supported.
+ldirectord is simple to install and works with Pacemaker
+(http://clusterlabs.org/).
+
+See 'ldirectord -h' and linux-ha/doc/ldirectord for more information.
+%endif
+
+%prep
+%if 0%{?suse_version} == 0 && 0%{?fedora} == 0 && 0%{?centos} == 0 && 0%{?rhel} == 0
+%{error:Unable to determine the distribution/version. This is generally caused by missing /etc/rpm/macros.dist. Please install the correct build packages or define the required macros manually.}
+exit 1
+%endif
+%autosetup -n %{name}-%{version}%{?rcver:%{rcver}}%{?numcomm:.%{numcomm}}%{?alphatag:-%{alphatag}}%{?dirty:-%{dirty}} -p1
+
+%build
+if [ ! -f configure ]; then
+ ./autogen.sh
+fi
+
+%if 0%{?fedora} >= 11 || 0%{?centos} > 5 || 0%{?rhel} > 5
+CFLAGS="$(echo '%{optflags}')"
+%global conf_opt_fatal "--enable-fatal-warnings=no"
+%else
+CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}"
+%global conf_opt_fatal "--enable-fatal-warnings=yes"
+%endif
+
+%if %{with rgmanager}
+%global rasset rgmanager
+%endif
+%if %{with linuxha}
+%global rasset linux-ha
+%endif
+%if %{with rgmanager} && %{with linuxha}
+%global rasset all
+%endif
+
+export CFLAGS
+
+%configure \
+%if 0%{?fedora} || 0%{?centos} > 7 || 0%{?rhel} > 7 || 0%{?suse_version}
+ PYTHON="%{__python3}" \
+%endif
+ %{conf_opt_fatal} \
+%if %{defined _unitdir}
+ SYSTEMD_UNIT_DIR=%{_unitdir} \
+%endif
+%if %{defined _tmpfilesdir}
+ SYSTEMD_TMPFILES_DIR=%{_tmpfilesdir} \
+ --with-rsctmpdir=/run/resource-agents \
+%endif
+ --with-pkg-name=%{name} \
+ --with-ras-set=%{rasset}
+
+make %{_smp_mflags}
+
+%install
+rm -rf %{buildroot}
+make install DESTDIR=%{buildroot}
+
+## tree fixup
+# remove docs (there is only one and they should come from doc sections in files)
+rm -rf %{buildroot}/usr/share/doc/resource-agents
+
+%if %{with linuxha}
+%if 0%{?suse_version}
+test -d %{buildroot}/sbin || mkdir %{buildroot}/sbin
+(
+ cd %{buildroot}/sbin
+ ln -sf /%{_sysconfdir}/init.d/ldirectord rcldirectord
+) || true
+%endif
+%endif
+
+%files
+%doc AUTHORS COPYING COPYING.GPLv3 COPYING.LGPL ChangeLog
+%if %{with linuxha}
+%doc heartbeat/README.galera
+%doc doc/README.webapps
+%doc %{_datadir}/%{name}/ra-api-1.dtd
+%doc %{_datadir}/%{name}/metadata.rng
+%endif
+
+%if %{with rgmanager}
+%{_datadir}/cluster
+%{_sbindir}/rhev-check.sh
+%endif
+
+%if %{with linuxha}
+%dir %{_usr}/lib/ocf
+%dir %{_usr}/lib/ocf/resource.d
+%dir %{_usr}/lib/ocf/lib
+
+%{_usr}/lib/ocf/lib/heartbeat
+
+%{_usr}/lib/ocf/resource.d/heartbeat
+%if %{with rgmanager}
+%{_usr}/lib/ocf/resource.d/redhat
+%endif
+
+%{_datadir}/pkgconfig/%{name}.pc
+
+%if %{defined _unitdir}
+%{_unitdir}/resource-agents-deps.target
+%endif
+%if %{defined _tmpfilesdir}
+%{_tmpfilesdir}/%{name}.conf
+%endif
+
+%dir %{_datadir}/%{name}
+%dir %{_datadir}/%{name}/ocft
+%{_datadir}/%{name}/ocft/configs
+%{_datadir}/%{name}/ocft/caselib
+%{_datadir}/%{name}/ocft/README
+%{_datadir}/%{name}/ocft/README.zh_CN
+%{_datadir}/%{name}/ocft/helpers.sh
+%exclude %{_datadir}/%{name}/ocft/runocft
+%exclude %{_datadir}/%{name}/ocft/runocft.prereq
+
+%{_sbindir}/ocf-tester
+%{_sbindir}/ocft
+%if 0%{?suse_version}
+%{_sbindir}/sfex_*
+%endif
+
+%{_includedir}/heartbeat
+
+%if %{defined _tmpfilesdir}
+%dir %attr (1755, root, root) /run/resource-agents
+%else
+%dir %attr (1755, root, root) %{_var}/run/resource-agents
+%endif
+
+%{_mandir}/man7/*.7*
+%{_mandir}/man8/ocf-tester.8*
+%if 0%{?suse_version}
+%{_mandir}/man8/sfex_init.8*
+%endif
+
+# For compatability with pre-existing agents
+%dir %{_sysconfdir}/ha.d
+%{_sysconfdir}/ha.d/shellfuncs
+
+%{_libexecdir}/heartbeat
+
+%if %{with rgmanager}
+%post -n resource-agents
+ccs_update_schema > /dev/null 2>&1 ||:
+%endif
+
+%if 0%{?suse_version}
+%preun -n ldirectord
+%stop_on_removal ldirectord
+%postun -n ldirectord
+%insserv_cleanup
+%endif
+
+%if 0%{?fedora}
+%preun -n ldirectord
+%if %{defined _unitdir}
+%systemd_preun ldirectord.service
+%else
+/sbin/chkconfig --del ldirectord
+%endif
+%postun -n ldirectord
+/sbin/ldconfig
+%if %{defined _unitdir}
+%systemd_postun_with_restart ldirectord.service
+%endif
+%post -n ldirectord
+%if %{defined _unitdir}
+%systemd_post ldirectord.service
+%else
+/sbin/chkconfig --add ldirectord
+%endif
+%endif
+%endif
+
+%if %{with linuxha}
+%files -n ldirectord
+%{_sbindir}/ldirectord
+%doc ldirectord/ldirectord.cf COPYING
+%{_mandir}/man8/ldirectord.8*
+%config(noreplace) %{_sysconfdir}/logrotate.d/ldirectord
+%dir %{_sysconfdir}/ha.d
+%dir %{_sysconfdir}/ha.d/resource.d
+%{_sysconfdir}/ha.d/resource.d/ldirectord
+%if %{defined _unitdir}
+%{_unitdir}/ldirectord.service
+%exclude %{_sysconfdir}/init.d/ldirectord
+%exclude %{_sysconfdir}/rc.d/init.d/ldirectord
+%else
+%{_sysconfdir}/init.d/ldirectord
+%endif
+%if 0%{?suse_version}
+/sbin/rcldirectord
+%endif
+%if 0%{?fedora}
+%{_usr}/lib/ocf/resource.d/heartbeat/ldirectord
+%endif
+%endif
+
+%changelog
+* @date@ Autotools generated version <nobody@nowhere.org> - @version@-@specver@-@numcomm@.@alphatag@.@dirty@
+- Autotools generated version