0440703030
- PE: Demote from Master does not clear previous errors - crmd: Prevent secondary DC fencing resulting from CIB updates that are lost due to elections - crmd: Log duplicate DC detection as a WARNING not ERROR - crmd: Bug lf#2632 - Correctly handle nodes that return faster than stonith - Core: Treat GNUTLS_E_UNEXPECTED_PACKET_LENGTH as normal termination of a TLS session - cib: Call gnutls_bye() and shutdown() when disconnecting from remote TLS connections - cib: Remove disconnected remote connections from mainloop - cib: Attempt a graceful sign-off for remote TLS connections - Core: Ensure there is sufficient space for EOS when building short-form option strings (prevents segfault) - Core: Fix variable expansion in pkg-config files - PE: Resolve memory leak reported by valgrind - PE: Fix memory leak for re-allocated resources reported by valgrind - PE: Improve the merging with template's operations - crmd: Allow nodes to fence themselves if they're the last one standing (lf#2584) - stonith: Add an API call for listing installed agents - stonith: Allow the fencing history to be queried - stonith: Ensure completed operations are recorded as such in the history - stonith: Support --quiet to display just the seconds since epoch at which a node was last shot - stonith: Serialize actions for a given device - stonith: Add missing entries to stonith_error2string() (missing OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=18
389 lines
11 KiB
RPMSpec
389 lines
11 KiB
RPMSpec
#
|
|
# spec file for package pacemaker
|
|
#
|
|
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# 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 http://bugs.opensuse.org/
|
|
#
|
|
|
|
# norootforbuild
|
|
|
|
%global pcmk_docdir %{_docdir}/%{name}
|
|
%if 0%{?suse_version}
|
|
%define _libexecdir %{_libdir}
|
|
%endif
|
|
%define with_extra_warnings 0
|
|
%define with_debugging 1
|
|
%define with_ais_support 1
|
|
%define with_heartbeat_support 0
|
|
%define with_regression_tests 0
|
|
%define with_gcov 0
|
|
%define gname haclient
|
|
%define uname hacluster
|
|
%define doc_pkg heartbeat-doc-1.0
|
|
%if 0%{?fedora_version}
|
|
%define pkg_group System Environment/Daemons
|
|
%else
|
|
%define pkg_group Productivity/Clustering/HA
|
|
%endif
|
|
|
|
Name: pacemaker
|
|
Summary: The Pacemaker scalable High-Availability cluster resource manager
|
|
Version: 1.1.6
|
|
Release: 0
|
|
License: GPLv2+ ; LGPLv2.1+
|
|
Url: http://www.clusterlabs.org
|
|
Group: Productivity/Clustering/HA
|
|
Source: pacemaker.tar.bz2
|
|
Source2: %{doc_pkg}.tar.gz
|
|
Source100: pacemaker.rpmlintrc
|
|
Patch1: pacemaker-cts-startcmd.patch
|
|
Patch2: acl_fix_d44ff2711662.patch
|
|
Patch10: crm_history.patch
|
|
Patch11: crm_history_peinputs.patch
|
|
Patch12: crm_history_pssh.patch
|
|
Patch13: crm_history_1_d0359dca5dba.patch
|
|
Patch14: crm_history_2_29fd4f04c01f.patch
|
|
Patch15: crm_history_3_b3a014c0f85b.patch
|
|
Patch16: crm_history_4_a09974a06cdf.patch
|
|
Patch17: crm_history_5_c3068d22de72.patch
|
|
Patch18: crm_history-fix-hb_report-limit.patch
|
|
Patch19: crm_history_6_441f4448eba6.patch
|
|
Patch20: crm_history_7_3f3c348aaaed.patch
|
|
Patch21: crm_history_8_3681d3471fde.patch
|
|
Patch22: crm_path_bnc712605.patch
|
|
Patch23: crm_deleteunmanaged.patch
|
|
Patch24: crm_lrmsecrets_3a81b7eae666.patch
|
|
Patch25: crm_history_9_709ef91cfada.patch
|
|
Patch26: crm_history_10_d21f988a419c.patch
|
|
Patch27: crm_history_11_ccd0c1e1edf9.patch
|
|
Patch28: crm_pager_f77e52725f2d.patch
|
|
Patch29: crm_tickets_825cb3e79d7b.patch
|
|
Patch30: crm_site_9b07d41c73b4.patch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
AutoReqProv: on
|
|
Conflicts: heartbeat < 3.0
|
|
# We need libglue2, not libheartbeat2
|
|
Conflicts: libheartbeat2 < 3.0.0
|
|
PreReq: cluster-glue >= 1.0.6
|
|
Requires: resource-agents openais python python-xml
|
|
Requires: libpacemaker3 = %{version}-%{release} python-curses
|
|
BuildRequires: e2fsprogs-devel glib2-devel gnutls-devel libesmtp-devel libglue-devel libxml2-devel libxslt-devel ncurses-devel net-snmp-devel pam-devel pkgconfig python-devel resource-agents swig
|
|
%if %with_regression_tests
|
|
BuildRequires: openais procps python python-curses python-xml vim-base
|
|
%endif
|
|
%if %with_ais_support
|
|
BuildRequires: libcorosync-devel
|
|
Requires: corosync
|
|
%endif
|
|
%if %with_heartbeat_support
|
|
BuildRequires: heartbeat-devel
|
|
Requires: heartbeat
|
|
%endif
|
|
%if 0%{?suse_version}
|
|
BuildRequires: libbz2-devel
|
|
Suggests: graphviz
|
|
Recommends: libdlm resource-agents
|
|
%if 0%{?suse_version} > 1100
|
|
BuildRequires: docbook-xsl-stylesheets
|
|
%endif
|
|
%endif
|
|
%if 0%{?fedora_version} || 0%{?centos_version} || 0%{?rhel_version}
|
|
BuildRequires: which
|
|
%endif
|
|
%if 0%{?mandriva_version}
|
|
BuildRequires: libbzip2-devel
|
|
%endif
|
|
|
|
%description
|
|
Pacemaker is an advanced, scalable High-Availability cluster resource
|
|
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
|
|
|
It supports "n-node" clusters with significant capabilities for
|
|
managing resources and dependencies.
|
|
|
|
It will run scripts at initialization, when machines go up or down,
|
|
when related resources fail and can be configured to periodically check
|
|
resource health.
|
|
|
|
|
|
|
|
Authors:
|
|
--------
|
|
Andrew Beekhof <abeekhof@suse.de>
|
|
|
|
%package -n libpacemaker3
|
|
License: GPLv2+ ; LGPLv2.1+
|
|
Summary: The Pacemaker scalable High-Availability cluster resource manager
|
|
Group: Productivity/Clustering/HA
|
|
|
|
%description -n libpacemaker3
|
|
Pacemaker is an advanced, scalable High-Availability cluster resource
|
|
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
|
|
|
It supports "n-node" clusters with significant capabilities for
|
|
managing resources and dependencies.
|
|
|
|
It will run scripts at initialization, when machines go up or down,
|
|
when related resources fail and can be configured to periodically check
|
|
resource health.
|
|
|
|
|
|
|
|
Authors:
|
|
--------
|
|
Andrew Beekhof <abeekhof@suse.de>
|
|
|
|
%package -n libpacemaker-devel
|
|
License: GPLv2 ; GPLv2+ ; LGPLv2.1+
|
|
Summary: The Pacemaker scalable High-Availability cluster resource manager
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}-%{release}
|
|
Requires: libpacemaker3 = %{version}-%{release}
|
|
Requires: libglue-devel
|
|
%if %with_regression_tests
|
|
# For the regression tests, we can run them only if all pacemaker
|
|
# packages are installed, so we pull that in here for the regression
|
|
# builds; this is supposed to be disabled for shipping code.
|
|
Requires: pacemaker
|
|
%endif
|
|
|
|
%description -n libpacemaker-devel
|
|
Pacemaker is an advanced, scalable High-Availability cluster resource
|
|
manager for Linux-HA (Heartbeat) and/or OpenAIS.
|
|
|
|
It supports "n-node" clusters with significant capabilities for
|
|
managing resources and dependencies.
|
|
|
|
It will run scripts at initialization, when machines go up or down,
|
|
when related resources fail and can be configured to periodically check
|
|
resource health.
|
|
|
|
|
|
|
|
Authors:
|
|
--------
|
|
Andrew Beekhof <abeekhof@suse.de>
|
|
|
|
%prep
|
|
###########################################################
|
|
%setup -a 2 -n pacemaker -q
|
|
%patch1 -p1
|
|
%patch2 -p1 -R
|
|
%patch10 -p1
|
|
%patch11 -p1
|
|
%patch12 -p1
|
|
%patch13 -p1
|
|
%patch14 -p1
|
|
%patch15 -p1
|
|
%patch16 -p1
|
|
%patch17 -p1
|
|
%patch18 -p1
|
|
%patch19 -p1
|
|
%patch20 -p1
|
|
%patch21 -p1
|
|
%patch22 -p1
|
|
%patch23 -p1
|
|
%patch24 -p1
|
|
%patch25 -p1
|
|
%patch26 -p1
|
|
%patch27 -p1
|
|
%patch28 -p1
|
|
%patch29 -p1
|
|
%patch30 -p1
|
|
###########################################################
|
|
|
|
%build
|
|
export SUSE_ASNEEDED=0
|
|
|
|
CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}"
|
|
export CFLAGS
|
|
./autogen.sh
|
|
%configure --localstatedir=%{_var} \
|
|
--docdir=%{pcmk_docdir} \
|
|
%if %with_gcov
|
|
--with-gcov=1 \
|
|
%endif
|
|
--with-acl=true \
|
|
--enable-fatal-warnings=no
|
|
make %{_smp_mflags}
|
|
|
|
if [ -e /usr/share/xml/docbook/stylesheet/nwalsh/current ]; then
|
|
make -C %{doc_pkg} man
|
|
fi
|
|
|
|
###########################################################
|
|
|
|
%install
|
|
export SUSE_ASNEEDED=0
|
|
###########################################################
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
if [ -e %{doc_pkg}/cibadmin.8 ]; then
|
|
install -d $RPM_BUILD_ROOT/%{_mandir}/man8
|
|
for file in `ls -1 %{doc_pkg}/*.8`; do
|
|
install -p -m 644 $file $RPM_BUILD_ROOT/%{_mandir}/man8
|
|
done
|
|
fi
|
|
chmod a+x $RPM_BUILD_ROOT/%{_libdir}/heartbeat/crm_primitive.py
|
|
chmod a+x $RPM_BUILD_ROOT/%{_libdir}/heartbeat/hb2openais-helper.py
|
|
rm $RPM_BUILD_ROOT/%{_libdir}/service_crm.so
|
|
|
|
# Don't want to ship this just yet:
|
|
rm $RPM_BUILD_ROOT/etc/init.d/pacemaker || true
|
|
rm $RPM_BUILD_ROOT/usr/sbin/pacemaker{d,} || true
|
|
|
|
%if %with_gcov
|
|
GCOV_BASE=$RPM_BUILD_ROOT/%{_var}/lib/pacemaker/gcov
|
|
mkdir -p $GCOV_BASE
|
|
find . -name '*.gcno' -type f | while read F ; do
|
|
D=`dirname $F`
|
|
mkdir -p ${GCOV_BASE}/$D
|
|
cp $F ${GCOV_BASE}/$D
|
|
done
|
|
%endif
|
|
|
|
#%if %with_ais_support
|
|
# mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/lcrso
|
|
# cp $RPM_BUILD_ROOT/%{_libdir}/service_crm.so $RPM_BUILD_ROOT/%{_libexecdir}/lcrso/pacemaker.lcrso
|
|
#%endif
|
|
# Cleanup
|
|
[ -d $RPM_BUILD_ROOT/usr/man ] && rm -rf $RPM_BUILD_ROOT/usr/man
|
|
[ -d $RPM_BUILD_ROOT/usr/share/libtool ] && rm -rf $RPM_BUILD_ROOT/usr/share/libtool
|
|
find $RPM_BUILD_ROOT -name '*.a' -type f -print0 | xargs -0 rm -f
|
|
find $RPM_BUILD_ROOT -name '*.la' -type f -print0 | xargs -0 rm -f
|
|
find $RPM_BUILD_ROOT -name '*.pyc' -type f -print0 | xargs -0 rm -f
|
|
find $RPM_BUILD_ROOT -name '*.pyo' -type f -print0 | xargs -0 rm -f
|
|
###########################################################
|
|
|
|
%clean
|
|
###########################################################
|
|
if
|
|
[ -n "${RPM_BUILD_ROOT}" -a "${RPM_BUILD_ROOT}" != "/" ]
|
|
then
|
|
rm -rf $RPM_BUILD_ROOT
|
|
fi
|
|
rm -rf $RPM_BUILD_DIR/pacemaker
|
|
###########################################################
|
|
|
|
%post -n libpacemaker3 -p /sbin/ldconfig
|
|
|
|
%postun -n libpacemaker3 -p /sbin/ldconfig
|
|
|
|
%if %with_regression_tests
|
|
|
|
%post -n libpacemaker-devel
|
|
if [ ! -e /tmp/.pcmk_regression_tests_ran ]; then
|
|
touch /tmp/.pcmk_regression_tests_ran
|
|
# Needed so that the shell doesn't get stuck on escape
|
|
# sequences
|
|
export TERM=dumb
|
|
/usr/share/pacemaker/tests/cli/regression.sh || true
|
|
/usr/share/pacemaker/tests/pengine/regression.sh -V || true
|
|
echo Now running shell regression tests ; date
|
|
if ! /usr/share/pacemaker/tests/shell/regression.sh ; then
|
|
echo "Shell tests failed."
|
|
cat crmtestout/regression.out
|
|
fi
|
|
fi
|
|
%endif
|
|
|
|
%files
|
|
###########################################################
|
|
%defattr(-,root,root)
|
|
%dir %{_libdir}/heartbeat
|
|
%dir %{_var}/lib/heartbeat
|
|
%dir %{pcmk_docdir}
|
|
%exclude %{_datadir}/pacemaker/tests
|
|
%{_datadir}/pacemaker
|
|
%{_libdir}/heartbeat/*
|
|
%{_sbindir}/cibadmin
|
|
%{_sbindir}/crm_attribute
|
|
%{_sbindir}/crm_diff
|
|
%{_sbindir}/crm_failcount
|
|
%{_sbindir}/crm_master
|
|
%{_sbindir}/crm_mon
|
|
%{_sbindir}/crm
|
|
%{_sbindir}/crm_resource
|
|
%{_sbindir}/crm_report
|
|
%{_sbindir}/crm_standby
|
|
%{_sbindir}/crm_ticket
|
|
%{_sbindir}/crm_verify
|
|
%{_sbindir}/crmadmin
|
|
%{_sbindir}/iso8601
|
|
%{_sbindir}/attrd_updater
|
|
%{_sbindir}/ptest
|
|
%{_sbindir}/crm_shadow
|
|
%{_sbindir}/cibpipe
|
|
%{_sbindir}/crm_node
|
|
%{_sbindir}/crm_simulate
|
|
%{_sbindir}/fence_legacy
|
|
%{_sbindir}/stonith_admin
|
|
%{py_sitedir}/crm
|
|
|
|
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/heartbeat/crm
|
|
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pengine
|
|
%ghost %dir %attr (750, %{uname}, %{gname}) %{_var}/run/crm
|
|
%dir /usr/lib/ocf
|
|
%dir /usr/lib/ocf/resource.d
|
|
/usr/lib/ocf/resource.d/pacemaker
|
|
%{_datadir}/snmp/mibs/PCMK-MIB.txt
|
|
%if %with_ais_support
|
|
%dir %{_libexecdir}/lcrso
|
|
%{_libexecdir}/lcrso
|
|
%{_libexecdir}/lcrso/pacemaker.lcrso
|
|
%endif
|
|
%if !0%{?_without_heartbeat}
|
|
%{_sbindir}/crm_uuid
|
|
%else
|
|
%exclude %{_sbindir}/crm_uuid
|
|
%endif
|
|
%exclude /usr/lib/ocf/resource.d/pacemaker/o2cb
|
|
# Packaged elsewhere
|
|
%exclude %{pcmk_docdir}/AUTHORS
|
|
%exclude %{pcmk_docdir}/COPYING
|
|
%exclude %{pcmk_docdir}/COPYING.LIB
|
|
%exclude %{_libdir}/pkgconfig
|
|
%doc %{pcmk_docdir}
|
|
# %doc %{pcmk_docdir}/*.html
|
|
%doc %{_mandir}/man8/*.8*
|
|
%doc %{_mandir}/man7/*.7*
|
|
%doc %{pcmk_docdir}/README.hb2openais
|
|
%doc %{pcmk_docdir}/acls.txt
|
|
%doc %{pcmk_docdir}/crm_fencing.txt
|
|
|
|
%files -n libpacemaker3
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libcib.so.*
|
|
%{_libdir}/libcrmcommon.so.*
|
|
%{_libdir}/libcrmcluster.so.*
|
|
%{_libdir}/libpe_status.so.*
|
|
%{_libdir}/libpe_rules.so.*
|
|
%{_libdir}/libpengine.so.*
|
|
%{_libdir}/libtransitioner.so.*
|
|
%{_libdir}/libstonithd.so.*
|
|
|
|
%files -n libpacemaker-devel
|
|
%defattr(-,root,root)
|
|
#%doc %{_datadir}/doc/%{name}-%{version}
|
|
%{py_sitedir}/cts
|
|
%{_datadir}/pacemaker/tests
|
|
%{_includedir}/pacemaker
|
|
# %{_includedir}/heartbeat/fencing
|
|
%{_libdir}/*.so
|
|
%{_libdir}/pkgconfig/*.pc
|
|
%if %with_gcov
|
|
%dir %{_var}/lib/pacemaker
|
|
/%{_var}/lib/pacemaker
|
|
%endif
|
|
|
|
%changelog
|