#
-# TODO:
-# - optional support for complete openais stack (corosync is often enough)
-
%bcond_without corosync # build with corosync stack
%bcond_without heartbeat # build without heartbeat stack
Summary: The scalable High-Availability cluster resource manager
Name: pacemaker
-Version: 1.1.7
+Version: 1.1.9
Release: 1
License: GPL v2+; LGPL v2.1+
Group: Applications/System
-# https://github.com/ClusterLabs/pacemaker/tarball/Pacemaker-%{version}
-Source0: ClusterLabs-pacemaker-Pacemaker-%{version}-0-gee0730e.tar.gz
-# Source0-md5: 61076a946cf2ba549dce1458e2ef76e2
+Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
+# Source0-md5: 24f3a2bdbac63e640062c207eb838016
Source1: %{name}.tmpfiles
-Patch0: %{name}-ncurses.patch
-Patch1: %{name}-libs.patch
-Patch2: %{name}-awk.patch
+Source2: %{name}.init
+Source3: %{name}.service
+Patch0: %{name}-libs.patch
+Patch1: %{name}-automake.patch
URL: http://clusterlabs.org/wiki/Main_Page
BuildRequires: asciidoc
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bzip2-devel
-%{?with_corosync:BuildRequires: corosync-devel}
+%{?with_corosync:BuildRequires: corosync-devel >= 2.0}
BuildRequires: e2fsprogs-devel
BuildRequires: glib2-devel
BuildRequires: gnutls-devel
-%{?with_heartbeat:BuildRequires: heartbeat-devel >= 2.99}
+%{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.5-6}
BuildRequires: libesmtp-devel
+BuildRequires: libqb
BuildRequires: libtool
BuildRequires: libxml2-devel
BuildRequires: libxslt-devel
BuildRequires: pkgconfig
BuildRequires: python-devel
BuildRequires: rpm-pythonprov
+BuildRequires: rpmbuild(macros) >= 1.644
BuildRequires: swig
BuildRequires: pciutils-devel
BuildRequires: cluster-glue-libs-devel
+Requires: cluster-glue
+Requires: resource-agents
Requires: %{name}-libs = %{version}-%{release}
Provides: group(haclient)
Provides: user(hacluster)
+Suggests: pacemaker-shell
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
# Unresolved symbol in libpe_status.so.3.0.0: get_object_root
%define skip_post_check_so libpe_status.so.*
%description
-Pacemaker makes use of your cluster infrastructure (either OpenAIS or
-Heartbeat) to stop, start and monitor the health of the services (aka.
-resources) you want the cluster to provide.
+Pacemaker makes use of your cluster infrastructure (either
+Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
+of the services (aka. resources) you want the cluster to provide.
It can do this for clusters of practically any size and comes with a
powerful dependency model that allows the administrator to accurately
Summary: Pacemaker for Corosync cluster
Group: Applications/System
Requires: corosync
+Requires: systemd-units >= 38
Requires: %{name} = %{version}-%{release}
%description corosync
This package allows using Pacemaker on a Corosync cluster.
+%package remote
+Summary: Remote services manager for Pacemaker
+Group: Applications/System
+Requires: systemd-units >= 38
+Requires: %{name} = %{version}-%{release}
+
+%description remote
+This package allows running Pacemaker-managed services on 'virtual'
+nodes without actual cluster stack. This is usefull to manage services
+in virtual machines or containers runnin on a Pacemaker cluster.
+
%package devel
Summary: Header files for Pacemaker libraries
Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemaker
Static Pacemaker libraries.
%prep
-%setup -qn ClusterLabs-pacemaker-b5b0a7b
+%setup -qn pacemaker-Pacemaker-%{version}
%patch0 -p1
%patch1 -p1
-%patch2 -p1
%build
%{__libtoolize}
-%{__aclocal}
+%{__aclocal} -I m4
%{__autoconf}
%{__autoheader}
%{__automake}
--with-corosync%{!?with_corosync:=no} \
--with-snmp \
--with-esmtp \
+ --with-acl \
--with-initdir=/etc/rc.d/init.d \
--disable-fatal-warnings
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/usr/lib/tmpfiles.d,/etc/rc.d}
+install -d $RPM_BUILD_ROOT{/usr/lib/tmpfiles.d,/etc/rc.d/init.d,%{systemdunitdir}}
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
rm -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
-rm $RPM_BUILD_ROOT%{_libdir}/heartbeat/plugins/RAExec/*.{la,a}
install %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
+install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
%clean
rm -rf $RPM_BUILD_ROOT
%post corosync
/sbin/chkconfig --add %{name}
%service %{name} restart "%{name} daemon"
-
%systemd_post %{name}.service
%preun
%service %{name} stop
/sbin/chkconfig --del %{name}
fi
+
+%preun corosync
%systemd_preun %{name}.service
%postun corosync
%systemd_reload
+%post remote
+/sbin/chkconfig --add pacemaker_remote
+%service pacemaker_remote restart "pacemaker_remote daemon"
+%systemd_post pacemaker_remote.service
+
+%preun remote
+%systemd_preun %{name}.service
+
+%postun remote
+%systemd_reload
+
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
%attr(755,root,root) %{_libdir}/%{name}/cib
%attr(755,root,root) %{_libdir}/%{name}/cibmon
%attr(755,root,root) %{_libdir}/%{name}/crmd
-%attr(755,root,root) %{_libdir}/%{name}/hb2openais.sh
+%attr(755,root,root) %{_libdir}/%{name}/lrmd
+%attr(755,root,root) %{_libdir}/%{name}/lrmd_test
%attr(755,root,root) %{_libdir}/%{name}/pengine
%attr(755,root,root) %{_libdir}/%{name}/stonith-test
%attr(755,root,root) %{_libdir}/%{name}/stonithd
-%{_libdir}/%{name}/*.py*
%attr(755,root,root) %{_bindir}/ccs2cib
%attr(755,root,root) %{_bindir}/ccs_flatten
%attr(755,root,root) %{_bindir}/disable_rgmanager
%attr(755,root,root) %{_sbindir}/attrd_updater
%attr(755,root,root) %{_sbindir}/cibadmin
-%attr(755,root,root) %{_sbindir}/cibpipe
-%attr(755,root,root) %{_sbindir}/crm
%attr(755,root,root) %{_sbindir}/crm_attribute
%attr(755,root,root) %{_sbindir}/crm_diff
+%attr(755,root,root) %{_sbindir}/crm_error
%attr(755,root,root) %{_sbindir}/crm_failcount
%attr(755,root,root) %{_sbindir}/crm_master
%attr(755,root,root) %{_sbindir}/crm_mon
%attr(755,root,root) %{_sbindir}/fence_legacy
%attr(755,root,root) %{_sbindir}/fence_pcmk
%attr(755,root,root) %{_sbindir}/iso8601
-%attr(755,root,root) %{_sbindir}/ptest
%attr(755,root,root) %{_sbindir}/stonith_admin
-%{py_sitedir}/crm
%{py_sitedir}/cts
%{_datadir}/snmp/mibs
-%{_mandir}/man8/*.8*
+%{_mandir}/man8/attrd_updater.8.gz
+%{_mandir}/man8/cibadmin.8.gz
+%{_mandir}/man8/crm_attribute.8.gz
+%{_mandir}/man8/crm_diff.8.gz
+%{_mandir}/man8/crm_error.8.gz
+%{_mandir}/man8/crm_failcount.8.gz
+%{_mandir}/man8/crm_master.8.gz
+%{_mandir}/man8/crm_mon.8.gz
+%{_mandir}/man8/crm_node.8.gz
+%{_mandir}/man8/crm_report.8.gz
+%{_mandir}/man8/crm_resource.8.gz
+%{_mandir}/man8/crm_shadow.8.gz
+%{_mandir}/man8/crm_simulate.8.gz
+%{_mandir}/man8/crm_standby.8.gz
+%{_mandir}/man8/crm_ticket.8.gz
+%{_mandir}/man8/crm_uuid.8.gz
+%{_mandir}/man8/crm_verify.8.gz
+%{_mandir}/man8/crmadmin.8.gz
+%{_mandir}/man8/fence_legacy.8.gz
+%{_mandir}/man8/fence_pcmk.8.gz
+%{_mandir}/man8/iso8601.8.gz
+%{_mandir}/man8/stonith_admin.8.gz
%{_mandir}/man7/*.7*
-%dir %attr(750,hacluster,haclient) %{_var}/lib/pengine
%dir %attr(750,hacluster,haclient) %{_var}/run/crm
%dir %{_prefix}/lib/ocf/resource.d/pacemaker
%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
+%attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
/usr/lib/tmpfiles.d/%{name}.conf
+%dir /var/lib/%{name}
+%dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
+%dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
+%dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
%files libs
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/lib*.so.*.*
%attr(755,root,root) %{_libdir}/lib*.so.[0-9]
+%files remote
+%defattr(644,root,root,755)
+%{_mandir}/man8/pacemaker_remoted.8.gz
+%attr(755,root,root) %{_sbindir}/pacemaker_remoted
+%attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
+%{systemdunitdir}/pacemaker_remote.service
+
%if %{with heartbeat}
%files heartbeat
%defattr(644,root,root,755)
-%dir %{_libdir}/heartbeat/plugins/RAExec
-%attr(755,root,root) %{_libdir}/heartbeat/plugins/RAExec/*.so
%attr(755,root,root) %{_libdir}/heartbeat/attrd
%attr(755,root,root) %{_libdir}/heartbeat/cib
%attr(755,root,root) %{_libdir}/heartbeat/crmd
%attr(755,root,root) %{_libdir}/heartbeat/pengine
%attr(755,root,root) %{_libdir}/heartbeat/stonithd
-%dir %attr(750,hacluster,haclient) %{_var}/lib/heartbeat/crm
%endif
%if %{with corosync}
%files corosync
%defattr(644,root,root,755)
+%{_mandir}/man8/pacemakerd.8.gz
%attr(755,root,root) %{_sbindir}/pacemakerd
%attr(755,root,root) /etc/rc.d/init.d/%{name}
%{systemdunitdir}/%{name}.service
-%{_libdir}/lcrso/pacemaker.lcrso
%endif
%files devel