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]
9 %undefine with_servicelog
11 %if %{without servicelog}
14 Summary: The scalable High-Availability cluster resource manager
15 Summary(pl.UTF-8): Skalowalny zarządca zasobów klastrów o wysokiej dostępności
19 License: GPL v2+, LGPL v2.1+
20 Group: Applications/System
21 Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
22 # Source0-md5: 7cbe4f8ef2b300c3426a0c12a0c67c93
23 Source1: %{name}.tmpfiles
25 Source3: %{name}.service
26 Patch0: %{name}-automake.patch
27 Patch1: %{name}-manpage_xslt.patch
28 Patch2: %{name}-update.patch
29 Patch3: %{name}-man.patch
30 Patch4: %{name}-libs.patch
31 URL: http://clusterlabs.org/wiki/Main_Page
32 %{?with_ipmi:BuildRequires: OpenIPMI-devel}
33 BuildRequires: asciidoc
34 BuildRequires: autoconf >= 2.59
35 BuildRequires: automake
37 BuildRequires: bzip2-devel
38 BuildRequires: cluster-glue-libs-devel
39 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
40 BuildRequires: dbus-devel
41 BuildRequires: docbook-style-xsl
42 BuildRequires: e2fsprogs-devel
44 BuildRequires: gettext-devel
45 BuildRequires: glib2-devel >= 2.0
46 BuildRequires: gnutls-devel
47 BuildRequires: help2man
48 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.5-6}
49 BuildRequires: libesmtp-devel
50 BuildRequires: libltdl-devel
51 BuildRequires: libqb-devel >= 0.13
52 %{?with_servicelog:BuildRequires: libservicelog-devel}
53 BuildRequires: libtool
54 BuildRequires: libuuid-devel
55 BuildRequires: libxml2-devel >= 2.0
56 BuildRequires: libxslt-devel
57 BuildRequires: libxslt-progs
58 BuildRequires: ncurses-devel >= 5.4
59 BuildRequires: net-snmp-devel
60 BuildRequires: pam-devel
61 BuildRequires: pciutils-devel
62 BuildRequires: pkgconfig
63 BuildRequires: python-devel
64 BuildRequires: rpm-pythonprov
65 BuildRequires: rpmbuild(macros) >= 1.644
66 BuildRequires: systemd-units
68 Requires: %{name}-libs = %{version}-%{release}
69 Requires: cluster-glue
70 Requires: resource-agents
71 Provides: group(haclient)
72 Provides: user(hacluster)
73 Suggests: pacemaker-shell
74 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
77 Pacemaker makes use of your cluster infrastructure (either
78 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
79 of the services (aka. resources) you want the cluster to provide.
81 It can do this for clusters of practically any size and comes with a
82 powerful dependency model that allows the administrator to accurately
83 express the relationships (both ordering and location) between the
86 Pacemaker was formely a part of Heartbeat.
88 %description -l pl.UTF-8
89 Pacemaker wykorzystuje infrastrukturę klastrową (Corosync/OpenAIS lub
90 Heartbeat) do zatrzymywania, uruchamiania i monitorowania działania
91 usług (tzw. zasobów), które ma udostępniać klaster.
93 Jest w stanie obsłużyć klastry praktycznie dowolnych rozmiarów,
94 zawiera elastyczny model zależności, pozwalający administratorowi
95 dokładnie opisać powiązania (zarówno kolejność, jak i położenie)
96 między zasobami klastra.
98 Pacemaker był wcześniej częścią pakietu Heartbeat.
101 Summary: Pacemaker libraries
102 Summary(pl.UTF-8): Biblioteki Pacemakera
106 Shared libraries for Pacemaker.
108 %description libs -l pl.UTF-8
109 Biblioteki współdzielone Pacemakera.
112 Summary: Header files for Pacemaker libraries
113 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemakera
114 Group: Development/Libraries
115 Requires: %{name}-libs = %{version}-%{release}
118 Header files for Pacemaker libraries.
120 %description devel -l pl.UTF-8
121 Pliki nagłówkowe bibliotek Pacemakera.
124 Summary: Static Pacemaker libraries
125 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
126 Group: Development/Libraries
127 Requires: %{name}-devel = %{version}-%{release}
130 Static Pacemaker libraries.
132 %description static -l pl.UTF-8
133 Statyczne biblioteki Pacemakera.
136 Summary: Pacemaker for Heartbeat cluster
137 Summary(pl.UTF-8): Pacemaker dla klastra Heartbeat
138 Group: Applications/System
139 Requires: %{name} = %{version}-%{release}
141 Obsoletes: pacemaker < 1.1
142 Conflicts: heartbeat < 2.99.0
144 %description heartbeat
145 This package allows using Pacemaker on a Heartbeat cluster.
147 %description heartbeat -l pl.UTF-8
148 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
151 Summary: Pacemaker for Corosync cluster
152 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
153 Group: Applications/System
154 Requires: %{name} = %{version}-%{release}
156 Requires: systemd-units >= 38
157 %{?with_heartbeat:%requires_eq heartbeat-libs}
159 %description corosync
160 This package allows using Pacemaker on a Corosync cluster.
162 %description corosync -l pl.UTF-8
163 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
166 Summary: Remote services manager for Pacemaker
167 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
168 Group: Applications/System
169 Requires: systemd-units >= 38
170 Requires: %{name} = %{version}-%{release}
173 This package allows running Pacemaker-managed services on 'virtual'
174 nodes without actual cluster stack. This is useful to manage services
175 in virtual machines or containers running on a Pacemaker cluster.
177 %description remote -l pl.UTF-8
178 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
179 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
180 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
181 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
184 %setup -qn pacemaker-Pacemaker-%{version}
198 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
201 --with-corosync%{!?with_corosync:=no} \
203 --with-heartbeat%{!?with_heartbeat:=no} \
204 --with-initdir=/etc/rc.d/init.d \
206 --disable-fatal-warnings \
207 --disable-silent-rules
212 rm -rf $RPM_BUILD_ROOT
215 DESTDIR=$RPM_BUILD_ROOT
217 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
219 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
221 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
222 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
226 rm -rf $RPM_BUILD_ROOT
229 %groupadd -g 60 haclient
230 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
233 /sbin/chkconfig --add %{name}
234 %service %{name} restart "%{name} daemon"
235 %systemd_post %{name}.service
238 if [ "$1" = "0" ]; then
239 %service %{name} stop
240 /sbin/chkconfig --del %{name}
244 %systemd_preun %{name}.service
250 /sbin/chkconfig --add pacemaker_remote
251 %service pacemaker_remote restart "pacemaker_remote daemon"
252 %systemd_post pacemaker_remote.service
255 %systemd_preun %{name}.service
260 %post libs -p /sbin/ldconfig
261 %postun libs -p /sbin/ldconfig
264 %defattr(644,root,root,755)
265 %doc doc/README* doc/*.html doc/*.txt AUTHORS COPYING*
266 %attr(755,root,root) %{_sbindir}/attrd_updater
267 %attr(755,root,root) %{_sbindir}/cibadmin
268 %attr(755,root,root) %{_sbindir}/crm_attribute
269 %attr(755,root,root) %{_sbindir}/crm_diff
270 %attr(755,root,root) %{_sbindir}/crm_error
271 %attr(755,root,root) %{_sbindir}/crm_failcount
272 %attr(755,root,root) %{_sbindir}/crm_master
273 %attr(755,root,root) %{_sbindir}/crm_mon
274 %attr(755,root,root) %{_sbindir}/crm_node
275 %attr(755,root,root) %{_sbindir}/crm_report
276 %attr(755,root,root) %{_sbindir}/crm_resource
277 %attr(755,root,root) %{_sbindir}/crm_simulate
278 %attr(755,root,root) %{_sbindir}/crm_shadow
279 %attr(755,root,root) %{_sbindir}/crm_standby
280 %attr(755,root,root) %{_sbindir}/crm_ticket
281 %attr(755,root,root) %{_sbindir}/crm_verify
282 %attr(755,root,root) %{_sbindir}/crmadmin
283 %attr(755,root,root) %{_sbindir}/fence_legacy
284 %attr(755,root,root) %{_sbindir}/fence_pcmk
285 %attr(755,root,root) %{_sbindir}/iso8601
286 %attr(755,root,root) %{_sbindir}/stonith_admin
287 %if %{with servicelog}
289 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
291 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
293 %dir %{_libdir}/%{name}
294 %attr(755,root,root) %{_libdir}/%{name}/attrd
295 %attr(755,root,root) %{_libdir}/%{name}/cib
296 %attr(755,root,root) %{_libdir}/%{name}/cibmon
297 %attr(755,root,root) %{_libdir}/%{name}/crmd
298 %attr(755,root,root) %{_libdir}/%{name}/lrmd
299 %attr(755,root,root) %{_libdir}/%{name}/lrmd_test
300 %attr(755,root,root) %{_libdir}/%{name}/pengine
301 %attr(755,root,root) %{_libdir}/%{name}/stonith-test
302 %attr(755,root,root) %{_libdir}/%{name}/stonithd
303 %{_datadir}/pacemaker
304 %{_datadir}/snmp/mibs/PCMK-MIB.txt
306 %{_mandir}/man7/crmd.7*
307 %{_mandir}/man7/ocf_pacemaker_*.7*
308 %{_mandir}/man7/pengine.7*
309 %{_mandir}/man7/stonithd.7*
310 %{_mandir}/man8/attrd_updater.8*
311 %{_mandir}/man8/cibadmin.8*
312 %{_mandir}/man8/crm_attribute.8*
313 %{_mandir}/man8/crm_diff.8*
314 %{_mandir}/man8/crm_error.8*
315 %{_mandir}/man8/crm_failcount.8*
316 %{_mandir}/man8/crm_master.8*
317 %{_mandir}/man8/crm_mon.8*
318 %{_mandir}/man8/crm_node.8*
319 %{_mandir}/man8/crm_report.8*
320 %{_mandir}/man8/crm_resource.8*
321 %{_mandir}/man8/crm_shadow.8*
322 %{_mandir}/man8/crm_simulate.8*
323 %{_mandir}/man8/crm_standby.8*
324 %{_mandir}/man8/crm_ticket.8*
325 %{_mandir}/man8/crm_verify.8*
326 %{_mandir}/man8/crmadmin.8*
327 %{_mandir}/man8/fence_legacy.8*
328 %{_mandir}/man8/fence_pcmk.8*
329 %{_mandir}/man8/iso8601.8*
330 %{_mandir}/man8/stonith_admin.8*
331 %if %{with servicelog}
332 %{_mandir}/man8/notifyServicelogEvent.8*
335 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
336 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
337 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
338 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
339 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
340 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
341 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
342 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
343 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
344 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
345 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
346 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
347 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
349 %dir /var/lib/%{name}
350 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
351 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
352 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
353 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
354 /usr/lib/tmpfiles.d/%{name}.conf
357 %defattr(644,root,root,755)
358 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
359 %attr(755,root,root) %ghost %{_libdir}/libcib.so.3
360 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
361 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
362 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
363 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
364 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
365 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.1
366 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
367 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
368 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
369 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
370 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
371 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.4
372 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
373 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.4
374 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
375 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
376 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
377 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
380 %defattr(644,root,root,755)
381 %attr(755,root,root) %{_libdir}/libcib.so
382 %attr(755,root,root) %{_libdir}/libcrmcluster.so
383 %attr(755,root,root) %{_libdir}/libcrmcommon.so
384 %attr(755,root,root) %{_libdir}/libcrmservice.so
385 %attr(755,root,root) %{_libdir}/liblrmd.so
386 %attr(755,root,root) %{_libdir}/libpe_rules.so
387 %attr(755,root,root) %{_libdir}/libpe_status.so
388 %attr(755,root,root) %{_libdir}/libpengine.so
389 %attr(755,root,root) %{_libdir}/libstonithd.so
390 %attr(755,root,root) %{_libdir}/libtransitioner.so
392 %{_libdir}/libcrmcluster.la
393 %{_libdir}/libcrmcommon.la
394 %{_libdir}/libcrmservice.la
395 %{_libdir}/liblrmd.la
396 %{_libdir}/libpe_rules.la
397 %{_libdir}/libpe_status.la
398 %{_libdir}/libpengine.la
399 %{_libdir}/libstonithd.la
400 %{_libdir}/libtransitioner.la
401 %{_includedir}/pacemaker
402 %{_pkgconfigdir}/pacemaker.pc
403 %{_pkgconfigdir}/pacemaker-cib.pc
404 %{_pkgconfigdir}/pacemaker-cluster.pc
405 %{_pkgconfigdir}/pacemaker-fencing.pc
406 %{_pkgconfigdir}/pacemaker-lrmd.pc
407 %{_pkgconfigdir}/pacemaker-pengine.pc
408 %{_pkgconfigdir}/pacemaker-service.pc
411 %defattr(644,root,root,755)
413 %{_libdir}/libcrmcluster.a
414 %{_libdir}/libcrmcommon.a
415 %{_libdir}/libcrmservice.a
417 %{_libdir}/libpe_rules.a
418 %{_libdir}/libpe_status.a
419 %{_libdir}/libpengine.a
420 %{_libdir}/libstonithd.a
421 %{_libdir}/libtransitioner.a
424 %defattr(644,root,root,755)
425 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
426 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
427 %{systemdunitdir}/pacemaker_remote.service
428 %{_mandir}/man8/pacemaker_remoted.8*
430 %if %{with heartbeat}
432 %defattr(644,root,root,755)
433 %attr(755,root,root) %{_sbindir}/crm_uuid
434 %attr(755,root,root) %{_libdir}/heartbeat/attrd
435 %attr(755,root,root) %{_libdir}/heartbeat/cib
436 %attr(755,root,root) %{_libdir}/heartbeat/crmd
437 %attr(755,root,root) %{_libdir}/heartbeat/pengine
438 %attr(755,root,root) %{_libdir}/heartbeat/stonithd
439 %{_mandir}/man8/crm_uuid.8*
444 %defattr(644,root,root,755)
445 %attr(755,root,root) %{_sbindir}/pacemakerd
446 %attr(755,root,root) /etc/rc.d/init.d/%{name}
447 %{systemdunitdir}/%{name}.service
448 %{_mandir}/man8/pacemakerd.8*