fe46e06b0e
- crm_resource: Present an error if an admin tries to --force-start an already active resource - cluster: Correctly construct the header for compressed messages - PE: Re-allow ordering constraints with fencing devices now that it is safe to do so - cl#5170 - Correctly support on-fail=block for clones - PE: Do the right thing when admins specify the internal resource instead of the clone - fencing: Correctly detect existing device entries when registering a new one - crm_node: Return 0 if --remove passed - remove the mainloop_trigger that are no longer needed. - corosync: Ensure removed peers are erased from all caches - cluster: Detect and warn about node names with capitals - Upstream version cs: 9abe6876d50ff2879f17b08dfa1500817a7fbeba - crmd: Prevent messages for remote crmd clients from being relayed to wrong daemons - lrmd: Prevent use-of-NULL in client library - Upstream version cs: 9d656180294770e39deced79a134d4cf531b8159 - Bug cl#5168 - Prevent clones from being bounced around the cluster due to location constraints - Upstream version cs: 90b8afe77ab8a3ff2fd30826187fd7726aab4f04 - crm_mon: Bug cl#5167 - Only print "stopped" node list for incomplete clone sets - Upstream version cs: d16f4c56b120c5ae761680cfb4d98922a185c6c2 - Fix: memory leak when used score2char() - Fencing: Avoid hashtable lookups in NULL - Fencing: Force use of the calculated command for support ops - Bug cl#5157 - Allow migration in the absence of some colocation constraints - PE: Detect constraints with inappropriate actions (ie. promote for a clone) - PE: Do the right thing when admins specify the internal resource instead of the clone OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/pacemaker?expand=0&rev=47
428 lines
12 KiB
RPMSpec
428 lines
12 KiB
RPMSpec
#
|
|
# spec file for package pacemaker
|
|
#
|
|
# Copyright (c) 2013 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/
|
|
#
|
|
|
|
|
|
%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
|
|
License: GPL-2.0+ and LGPL-2.1+
|
|
Group: Productivity/Clustering/HA
|
|
Version: 1.1.9
|
|
Release: 0
|
|
Url: http://www.clusterlabs.org
|
|
Source: pacemaker.tar.bz2
|
|
Source2: %{doc_pkg}.tar.gz
|
|
Source100: pacemaker.rpmlintrc
|
|
Patch1: pacemaker-cts-startcmd.patch
|
|
Patch2: pacemaker-disable-listing-fence-agents.patch
|
|
Patch3: pacemaker-daemon-symlinks.patch
|
|
Patch4: bug-806256_pacemaker-log-level-notice.patch
|
|
Patch5: pacemaker-ptest-build.patch
|
|
Patch6: bug-728579_pacemaker-stonith-dev-id.patch
|
|
Patch7: bug-792124_pacemaker-stonith-monitor-log.patch
|
|
Patch8: pacemaker-NodeUtilization-RA.patch
|
|
Patch9: pacemaker-colocated-utilization.patch
|
|
Patch10: pacemaker-lrmd-remote-disabled.patch
|
|
Patch11: pacemaker-cibsecret-tool-temp-disabled.patch
|
|
Patch12: pacemaker-nagios-plugin-dir.patch
|
|
Patch13: bug-812269_pacemaker-fencing-update-cib.patch
|
|
Patch14: bug-800323_pacemaker-crm_mon-save-cib.patch
|
|
Patch15: bug-812269_pacemaker-fencing-device-register-messages.patch
|
|
Patch16: bug-815447_pacemaker-cib-strip-text-nodes.patch
|
|
Patch17: bug-809635_pacemaker-xml-digest.patch
|
|
Patch18: pacemaker-configure-libqb-version.patch
|
|
Patch19: pacemaker-build-1.1.10-rc.patch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
Provides: pacemaker-ticket-support = 2.0
|
|
Conflicts: heartbeat < 3.0
|
|
# We need libglue2, not libheartbeat2
|
|
Conflicts: libheartbeat2 < 3.0.0
|
|
PreReq: cluster-glue >= 1.0.6
|
|
Requires: libpacemaker3 = %{version}-%{release}
|
|
Requires: libqb
|
|
Requires: openais
|
|
Requires: python
|
|
Requires: python-curses
|
|
Requires: python-xml
|
|
Requires: resource-agents
|
|
Recommends: crmsh
|
|
BuildRequires: asciidoc
|
|
BuildRequires: e2fsprogs-devel
|
|
BuildRequires: glib2-devel
|
|
%if 0%{?suse_version} > 1210
|
|
BuildRequires: libgnutls-devel
|
|
%else
|
|
BuildRequires: gnutls-devel
|
|
%endif
|
|
BuildRequires: help2man
|
|
BuildRequires: libesmtp-devel
|
|
BuildRequires: libglue-devel
|
|
BuildRequires: libqb-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: libxml2-devel
|
|
BuildRequires: libxslt-devel
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: net-snmp-devel
|
|
BuildRequires: pam-devel
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: python-devel
|
|
BuildRequires: swig
|
|
%if %with_regression_tests
|
|
BuildRequires: openais
|
|
BuildRequires: procps
|
|
BuildRequires: python
|
|
BuildRequires: python-curses
|
|
BuildRequires: python-xml
|
|
BuildRequires: 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 <andrew@beekhof.net>
|
|
|
|
%package -n libpacemaker3
|
|
Summary: The Pacemaker scalable High-Availability cluster resource manager
|
|
License: GPL-2.0+ and LGPL-2.1+
|
|
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 <andrew@beekhof.net>
|
|
|
|
%package -n libpacemaker-devel
|
|
Summary: The Pacemaker scalable High-Availability cluster resource manager
|
|
License: GPL-2.0 and GPL-2.0+ and LGPL-2.1+
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}-%{release}
|
|
Requires: libglue-devel
|
|
Requires: libpacemaker3 = %{version}-%{release}
|
|
Requires: libqb-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 <andrew@beekhof.net>
|
|
|
|
%prep
|
|
###########################################################
|
|
%setup -a 2 -n pacemaker -q
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
%patch3 -p1
|
|
%patch4 -p1
|
|
%patch5 -p1
|
|
%patch6 -p1
|
|
%patch7 -p1
|
|
%patch8 -p1
|
|
%patch9 -p1
|
|
%patch10 -p1
|
|
%patch11 -p1
|
|
%patch12 -p1
|
|
%patch13 -p1
|
|
%patch14 -p1
|
|
%patch15 -p1
|
|
%patch16 -p1
|
|
%patch17 -p1
|
|
%patch18 -p1
|
|
%patch19 -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 \
|
|
--with-cibsecrets=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
|
|
###########################################################
|
|
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
|
|
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
#chmod a+x $RPM_BUILD_ROOT/%{_libdir}/pacemaker/crm_primitive.py
|
|
#chmod a+x $RPM_BUILD_ROOT/%{_libdir}/pacemaker/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
|
|
rm $RPM_BUILD_ROOT/usr/bin/ccs2cib || true
|
|
rm $RPM_BUILD_ROOT/usr/bin/ccs_flatten || true
|
|
rm $RPM_BUILD_ROOT/usr/bin/disable_rgmanager || true
|
|
rm $RPM_BUILD_ROOT/usr/sbin/fence_pcmk || 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}/pacemaker
|
|
%dir %{_libdir}/heartbeat
|
|
#%dir %{_var}/lib/heartbeat
|
|
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker
|
|
%dir %{pcmk_docdir}
|
|
%exclude %{_datadir}/pacemaker/tests
|
|
%{_datadir}/pacemaker
|
|
%{_libdir}/pacemaker/*
|
|
%{_libdir}/heartbeat/*
|
|
%{_sbindir}/cibadmin
|
|
%{_sbindir}/crm_attribute
|
|
%{_sbindir}/crm_diff
|
|
%{_sbindir}/crm_failcount
|
|
%{_sbindir}/crm_master
|
|
%{_sbindir}/crm_mon
|
|
%{_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
|
|
%{_sbindir}/crm_error
|
|
#%{_sbindir}/cibsecret
|
|
#%{_sbindir}/pacemaker_remoted
|
|
|
|
#%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/heartbeat/crm
|
|
#%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pengine
|
|
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cib
|
|
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/pengine
|
|
%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/blackbox
|
|
#%dir %attr (750, %{uname}, %{gname}) %{_var}/lib/pacemaker/cores
|
|
%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}/*.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.*
|
|
%{_libdir}/libcrmservice.so.*
|
|
%{_libdir}/liblrmd.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
|