3 %bcond_without corosync # Corosync stack support
4 %bcond_without heartbeat # Heartbeat stack support
5 %bcond_without servicelog # ServiceLog support [IBM PPC specific]
6 %bcond_without ipmi # IPMI ServiceLog support [IBM PPC specific]
7 %bcond_without doc # documentation
10 %undefine with_servicelog
12 %if %{without servicelog}
15 Summary: The scalable High-Availability cluster resource manager
16 Summary(pl.UTF-8): Skalowalny zarządca zasobów klastrów o wysokiej dostępności
20 License: GPL v2+, LGPL v2.1+
21 Group: Applications/System
22 #Source0Download: https://github.com/ClusterLabs/pacemaker/releases
23 Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
24 # Source0-md5: ae655914911680a34faf6b0b5033fc6f
25 Source1: %{name}.tmpfiles
27 Source3: %{name}.service
28 Patch0: %{name}-automake.patch
29 Patch1: %{name}-manpage_xslt.patch
30 Patch2: %{name}-update.patch
31 Patch4: %{name}-libs.patch
32 Patch5: %{name}-heartbeat-libexecdir.patch
33 Patch6: %{name}-no-common.patch
34 Patch7: %{name}-inkscape.patch
35 URL: http://clusterlabs.org/wiki/Main_Page
36 %{?with_ipmi:BuildRequires: OpenIPMI-devel}
37 BuildRequires: asciidoc
38 BuildRequires: autoconf >= 2.59
39 BuildRequires: automake
41 BuildRequires: bzip2-devel
42 BuildRequires: cluster-glue-libs-devel
43 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
44 BuildRequires: dbus-devel
45 BuildRequires: docbook-style-xsl
46 BuildRequires: e2fsprogs-devel
48 BuildRequires: gettext-tools
49 BuildRequires: glib2-devel >= 2.0
50 BuildRequires: gnutls-devel
51 BuildRequires: help2man
52 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.6}
53 BuildRequires: libesmtp-devel
54 BuildRequires: libltdl-devel
55 BuildRequires: libqb-devel >= 0.13
56 %{?with_servicelog:BuildRequires: libservicelog-devel}
57 BuildRequires: libtool
58 BuildRequires: libuuid-devel
59 BuildRequires: libxml2-devel >= 2.0
60 BuildRequires: libxslt-devel
61 BuildRequires: libxslt-progs
62 BuildRequires: ncurses-devel >= 5.4
63 BuildRequires: net-snmp-devel
64 BuildRequires: pam-devel
65 BuildRequires: pciutils-devel
66 BuildRequires: pkgconfig
67 BuildRequires: python-devel
68 BuildRequires: rpm-pythonprov
69 BuildRequires: rpmbuild(macros) >= 1.644
70 BuildRequires: systemd-units
73 BuildRequires: inkscape >= 1.0
74 BuildRequires: publican
76 Requires: %{name}-libs = %{version}-%{release}
77 Requires: cluster-glue
78 Requires: resource-agents
79 Provides: group(haclient)
80 Provides: user(hacluster)
81 Suggests: pacemaker-shell
82 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
85 Pacemaker makes use of your cluster infrastructure (either
86 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
87 of the services (aka. resources) you want the cluster to provide.
89 It can do this for clusters of practically any size and comes with a
90 powerful dependency model that allows the administrator to accurately
91 express the relationships (both ordering and location) between the
94 Pacemaker was formely a part of Heartbeat.
96 %description -l pl.UTF-8
97 Pacemaker wykorzystuje infrastrukturę klastrową (Corosync/OpenAIS lub
98 Heartbeat) do zatrzymywania, uruchamiania i monitorowania działania
99 usług (tzw. zasobów), które ma udostępniać klaster.
101 Jest w stanie obsłużyć klastry praktycznie dowolnych rozmiarów,
102 zawiera elastyczny model zależności, pozwalający administratorowi
103 dokładnie opisać powiązania (zarówno kolejność, jak i położenie)
104 między zasobami klastra.
106 Pacemaker był wcześniej częścią pakietu Heartbeat.
109 Summary: Pacemaker libraries
110 Summary(pl.UTF-8): Biblioteki Pacemakera
112 Requires: libqb >= 0.13
115 Shared libraries for Pacemaker.
117 %description libs -l pl.UTF-8
118 Biblioteki współdzielone Pacemakera.
121 Summary: Header files for Pacemaker libraries
122 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemakera
123 Group: Development/Libraries
124 Requires: %{name}-libs = %{version}-%{release}
127 Header files for Pacemaker libraries.
129 %description devel -l pl.UTF-8
130 Pliki nagłówkowe bibliotek Pacemakera.
133 Summary: Static Pacemaker libraries
134 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
135 Group: Development/Libraries
136 Requires: %{name}-devel = %{version}-%{release}
139 Static Pacemaker libraries.
141 %description static -l pl.UTF-8
142 Statyczne biblioteki Pacemakera.
145 Summary: Remote services manager for Pacemaker
146 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
147 Group: Applications/System
148 Requires: systemd-units >= 38
149 Requires: %{name} = %{version}-%{release}
152 This package allows running Pacemaker-managed services on 'virtual'
153 nodes without actual cluster stack. This is useful to manage services
154 in virtual machines or containers running on a Pacemaker cluster.
156 %description remote -l pl.UTF-8
157 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
158 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
159 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
160 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
163 Summary: Pacemaker for Heartbeat cluster
164 Summary(pl.UTF-8): Pacemaker dla klastra Heartbeat
165 Group: Applications/System
166 Requires: %{name} = %{version}-%{release}
167 Requires: heartbeat >= 3.0.6
168 Obsoletes: pacemaker < 1.1
170 %description heartbeat
171 This package allows using Pacemaker on a Heartbeat cluster.
173 %description heartbeat -l pl.UTF-8
174 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
177 Summary: Pacemaker for Corosync cluster
178 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
179 Group: Applications/System
180 Requires: %{name} = %{version}-%{release}
182 Requires: systemd-units >= 38
183 %{?with_heartbeat:%requires_eq heartbeat-libs}
185 %description corosync
186 This package allows using Pacemaker on a Corosync cluster.
188 %description corosync -l pl.UTF-8
189 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
192 Summary: Pacemaker documentation
193 Summary(pl.UTF-8): Dokumentacja do Pacemakera
197 Pacemaker documentation.
199 %description doc -l pl.UTF-8
200 Dokumentacja do Pacemakera.
203 %setup -qn pacemaker-Pacemaker-%{version}
219 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
220 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
222 --disable-fatal-warnings \
223 --disable-silent-rules \
227 --with-corosync%{!?with_corosync:=no} \
229 --with-heartbeat%{!?with_heartbeat:=no} \
230 --with-initdir=/etc/rc.d/init.d \
236 rm -rf $RPM_BUILD_ROOT
237 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
240 mibdir=%{_datadir}/mibs \
241 DESTDIR=$RPM_BUILD_ROOT
243 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
245 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/pacemaker/tests
247 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker/{COPYING,README.markdown,acls.*,crm_fencing.*,licenses}
249 install -D %{SOURCE1} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/%{name}.conf
251 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
252 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
256 rm -rf $RPM_BUILD_ROOT
259 %groupadd -g 60 haclient
260 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
263 /sbin/chkconfig --add %{name}
264 %service %{name} restart "%{name} daemon"
265 %systemd_post %{name}.service
268 if [ "$1" = "0" ]; then
269 %service %{name} stop
270 /sbin/chkconfig --del %{name}
274 %systemd_preun %{name}.service
280 /sbin/chkconfig --add pacemaker_remote
281 %service pacemaker_remote restart "pacemaker_remote daemon"
282 %systemd_post pacemaker_remote.service
285 %systemd_preun %{name}.service
290 %post libs -p /sbin/ldconfig
291 %postun libs -p /sbin/ldconfig
294 %defattr(644,root,root,755)
295 %doc ChangeLog README.markdown doc/*.html doc/{executioner,msg-schema,security}.txt doc/{openstack,pcs-crmsh-quick-ref}.md
296 %attr(755,root,root) %{_sbindir}/attrd_updater
297 %attr(755,root,root) %{_sbindir}/cibadmin
298 %attr(755,root,root) %{_sbindir}/crm_attribute
299 %attr(755,root,root) %{_sbindir}/crm_diff
300 %attr(755,root,root) %{_sbindir}/crm_error
301 %attr(755,root,root) %{_sbindir}/crm_failcount
302 %attr(755,root,root) %{_sbindir}/crm_master
303 %attr(755,root,root) %{_sbindir}/crm_mon
304 %attr(755,root,root) %{_sbindir}/crm_node
305 %attr(755,root,root) %{_sbindir}/crm_report
306 %attr(755,root,root) %{_sbindir}/crm_resource
307 %attr(755,root,root) %{_sbindir}/crm_simulate
308 %attr(755,root,root) %{_sbindir}/crm_shadow
309 %attr(755,root,root) %{_sbindir}/crm_standby
310 %attr(755,root,root) %{_sbindir}/crm_ticket
311 %attr(755,root,root) %{_sbindir}/crm_verify
312 %attr(755,root,root) %{_sbindir}/crmadmin
313 %attr(755,root,root) %{_sbindir}/fence_legacy
314 %attr(755,root,root) %{_sbindir}/fence_pcmk
315 %attr(755,root,root) %{_sbindir}/iso8601
316 %attr(755,root,root) %{_sbindir}/stonith_admin
317 %if %{with servicelog}
319 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
321 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
323 %dir %{_libexecdir}/%{name}
324 %attr(755,root,root) %{_libexecdir}/%{name}/attrd
325 %attr(755,root,root) %{_libexecdir}/%{name}/cib
326 %attr(755,root,root) %{_libexecdir}/%{name}/cibmon
327 %attr(755,root,root) %{_libexecdir}/%{name}/crmd
328 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd
329 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_internal_ctl
330 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_test
331 %attr(755,root,root) %{_libexecdir}/%{name}/pengine
332 %attr(755,root,root) %{_libexecdir}/%{name}/stonith-test
333 %attr(755,root,root) %{_libexecdir}/%{name}/stonithd
334 %{_datadir}/pacemaker
335 %{_datadir}/mibs/PCMK-MIB.txt
337 %{systemdunitdir}/crm_mon.service
338 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
339 %ghost /var/log/pacemaker.log
340 %{_mandir}/man7/crmd.7*
341 %{_mandir}/man7/ocf_pacemaker_*.7*
342 %{_mandir}/man7/pengine.7*
343 %{_mandir}/man7/stonithd.7*
344 %{_mandir}/man8/attrd_updater.8*
345 %{_mandir}/man8/cibadmin.8*
346 %{_mandir}/man8/crm_attribute.8*
347 %{_mandir}/man8/crm_diff.8*
348 %{_mandir}/man8/crm_error.8*
349 %{_mandir}/man8/crm_failcount.8*
350 %{_mandir}/man8/crm_master.8*
351 %{_mandir}/man8/crm_mon.8*
352 %{_mandir}/man8/crm_node.8*
353 %{_mandir}/man8/crm_report.8*
354 %{_mandir}/man8/crm_resource.8*
355 %{_mandir}/man8/crm_shadow.8*
356 %{_mandir}/man8/crm_simulate.8*
357 %{_mandir}/man8/crm_standby.8*
358 %{_mandir}/man8/crm_ticket.8*
359 %{_mandir}/man8/crm_verify.8*
360 %{_mandir}/man8/crmadmin.8*
361 %{_mandir}/man8/fence_legacy.8*
362 %{_mandir}/man8/fence_pcmk.8*
363 %{_mandir}/man8/iso8601.8*
364 %{_mandir}/man8/stonith_admin.8*
365 %if %{with servicelog}
367 %{_mandir}/man8/ipmiservicelogd.8*
369 %{_mandir}/man8/notifyServicelogEvent.8*
372 %dir %{_prefix}/lib/ocf/resource.d/.isolation
373 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/.isolation/docker-wrapper
374 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
375 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
376 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
377 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
378 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
379 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
380 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
381 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
382 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/attribute
383 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
384 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ifspeed
385 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
386 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
387 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
388 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
390 %dir /var/lib/%{name}
391 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
392 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
393 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
394 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
395 %{systemdtmpfilesdir}/%{name}.conf
398 %defattr(644,root,root,755)
399 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
400 %attr(755,root,root) %ghost %{_libdir}/libcib.so.4
401 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
402 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
403 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
404 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
405 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
406 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.3
407 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
408 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
409 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
410 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
411 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
412 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.16
413 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
414 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.16
415 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
416 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
417 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
418 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
421 %defattr(644,root,root,755)
422 %attr(755,root,root) %{_libdir}/libcib.so
423 %attr(755,root,root) %{_libdir}/libcrmcluster.so
424 %attr(755,root,root) %{_libdir}/libcrmcommon.so
425 %attr(755,root,root) %{_libdir}/libcrmservice.so
426 %attr(755,root,root) %{_libdir}/liblrmd.so
427 %attr(755,root,root) %{_libdir}/libpe_rules.so
428 %attr(755,root,root) %{_libdir}/libpe_status.so
429 %attr(755,root,root) %{_libdir}/libpengine.so
430 %attr(755,root,root) %{_libdir}/libstonithd.so
431 %attr(755,root,root) %{_libdir}/libtransitioner.so
433 %{_libdir}/libcrmcluster.la
434 %{_libdir}/libcrmcommon.la
435 %{_libdir}/libcrmservice.la
436 %{_libdir}/liblrmd.la
437 %{_libdir}/libpe_rules.la
438 %{_libdir}/libpe_status.la
439 %{_libdir}/libpengine.la
440 %{_libdir}/libstonithd.la
441 %{_libdir}/libtransitioner.la
442 %{_includedir}/pacemaker
443 %{_pkgconfigdir}/pacemaker.pc
444 %{_pkgconfigdir}/pacemaker-cib.pc
445 %{_pkgconfigdir}/pacemaker-cluster.pc
446 %{_pkgconfigdir}/pacemaker-fencing.pc
447 %{_pkgconfigdir}/pacemaker-lrmd.pc
448 %{_pkgconfigdir}/pacemaker-pengine.pc
449 %{_pkgconfigdir}/pacemaker-service.pc
452 %defattr(644,root,root,755)
454 %{_libdir}/libcrmcluster.a
455 %{_libdir}/libcrmcommon.a
456 %{_libdir}/libcrmservice.a
458 %{_libdir}/libpe_rules.a
459 %{_libdir}/libpe_status.a
460 %{_libdir}/libpengine.a
461 %{_libdir}/libstonithd.a
462 %{_libdir}/libtransitioner.a
465 %defattr(644,root,root,755)
466 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
467 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
468 %{systemdunitdir}/pacemaker_remote.service
469 %{_mandir}/man8/pacemaker_remoted.8*
471 %if %{with heartbeat}
473 %defattr(644,root,root,755)
474 %attr(755,root,root) %{_sbindir}/crm_uuid
475 %{_mandir}/man8/crm_uuid.8*
480 %defattr(644,root,root,755)
481 %attr(755,root,root) %{_sbindir}/pacemakerd
482 %attr(755,root,root) /etc/rc.d/init.d/%{name}
483 %{systemdunitdir}/%{name}.service
484 %{_mandir}/man8/pacemakerd.8*
489 %defattr(644,root,root,755)
490 %dir %{_docdir}/pacemaker
491 %{_docdir}/pacemaker/Clusters_from_Scratch
492 %{_docdir}/pacemaker/Pacemaker_Development
493 %{_docdir}/pacemaker/Pacemaker_Explained
494 %{_docdir}/pacemaker/Pacemaker_Remote