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 mibdir=%{_datadir}/mibs \
216 DESTDIR=$RPM_BUILD_ROOT
218 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
220 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
222 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
223 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
227 rm -rf $RPM_BUILD_ROOT
230 %groupadd -g 60 haclient
231 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
234 /sbin/chkconfig --add %{name}
235 %service %{name} restart "%{name} daemon"
236 %systemd_post %{name}.service
239 if [ "$1" = "0" ]; then
240 %service %{name} stop
241 /sbin/chkconfig --del %{name}
245 %systemd_preun %{name}.service
251 /sbin/chkconfig --add pacemaker_remote
252 %service pacemaker_remote restart "pacemaker_remote daemon"
253 %systemd_post pacemaker_remote.service
256 %systemd_preun %{name}.service
261 %post libs -p /sbin/ldconfig
262 %postun libs -p /sbin/ldconfig
265 %defattr(644,root,root,755)
266 %doc doc/README* doc/*.html doc/*.txt AUTHORS COPYING*
267 %attr(755,root,root) %{_sbindir}/attrd_updater
268 %attr(755,root,root) %{_sbindir}/cibadmin
269 %attr(755,root,root) %{_sbindir}/crm_attribute
270 %attr(755,root,root) %{_sbindir}/crm_diff
271 %attr(755,root,root) %{_sbindir}/crm_error
272 %attr(755,root,root) %{_sbindir}/crm_failcount
273 %attr(755,root,root) %{_sbindir}/crm_master
274 %attr(755,root,root) %{_sbindir}/crm_mon
275 %attr(755,root,root) %{_sbindir}/crm_node
276 %attr(755,root,root) %{_sbindir}/crm_report
277 %attr(755,root,root) %{_sbindir}/crm_resource
278 %attr(755,root,root) %{_sbindir}/crm_simulate
279 %attr(755,root,root) %{_sbindir}/crm_shadow
280 %attr(755,root,root) %{_sbindir}/crm_standby
281 %attr(755,root,root) %{_sbindir}/crm_ticket
282 %attr(755,root,root) %{_sbindir}/crm_verify
283 %attr(755,root,root) %{_sbindir}/crmadmin
284 %attr(755,root,root) %{_sbindir}/fence_legacy
285 %attr(755,root,root) %{_sbindir}/fence_pcmk
286 %attr(755,root,root) %{_sbindir}/iso8601
287 %attr(755,root,root) %{_sbindir}/stonith_admin
288 %if %{with servicelog}
290 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
292 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
294 %dir %{_libdir}/%{name}
295 %attr(755,root,root) %{_libdir}/%{name}/attrd
296 %attr(755,root,root) %{_libdir}/%{name}/cib
297 %attr(755,root,root) %{_libdir}/%{name}/cibmon
298 %attr(755,root,root) %{_libdir}/%{name}/crmd
299 %attr(755,root,root) %{_libdir}/%{name}/lrmd
300 %attr(755,root,root) %{_libdir}/%{name}/lrmd_test
301 %attr(755,root,root) %{_libdir}/%{name}/pengine
302 %attr(755,root,root) %{_libdir}/%{name}/stonith-test
303 %attr(755,root,root) %{_libdir}/%{name}/stonithd
304 %{_datadir}/pacemaker
305 %{_datadir}/mibs/PCMK-MIB.txt
307 %{_mandir}/man7/crmd.7*
308 %{_mandir}/man7/ocf_pacemaker_*.7*
309 %{_mandir}/man7/pengine.7*
310 %{_mandir}/man7/stonithd.7*
311 %{_mandir}/man8/attrd_updater.8*
312 %{_mandir}/man8/cibadmin.8*
313 %{_mandir}/man8/crm_attribute.8*
314 %{_mandir}/man8/crm_diff.8*
315 %{_mandir}/man8/crm_error.8*
316 %{_mandir}/man8/crm_failcount.8*
317 %{_mandir}/man8/crm_master.8*
318 %{_mandir}/man8/crm_mon.8*
319 %{_mandir}/man8/crm_node.8*
320 %{_mandir}/man8/crm_report.8*
321 %{_mandir}/man8/crm_resource.8*
322 %{_mandir}/man8/crm_shadow.8*
323 %{_mandir}/man8/crm_simulate.8*
324 %{_mandir}/man8/crm_standby.8*
325 %{_mandir}/man8/crm_ticket.8*
326 %{_mandir}/man8/crm_verify.8*
327 %{_mandir}/man8/crmadmin.8*
328 %{_mandir}/man8/fence_legacy.8*
329 %{_mandir}/man8/fence_pcmk.8*
330 %{_mandir}/man8/iso8601.8*
331 %{_mandir}/man8/stonith_admin.8*
332 %if %{with servicelog}
333 %{_mandir}/man8/notifyServicelogEvent.8*
336 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
337 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
338 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
339 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
340 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
341 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
342 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
343 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
344 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
345 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
346 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
347 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
348 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
350 %dir /var/lib/%{name}
351 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
352 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
353 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
354 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
355 /usr/lib/tmpfiles.d/%{name}.conf
358 %defattr(644,root,root,755)
359 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
360 %attr(755,root,root) %ghost %{_libdir}/libcib.so.3
361 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
362 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
363 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
364 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
365 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
366 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.1
367 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
368 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
369 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
370 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
371 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
372 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.4
373 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
374 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.4
375 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
377 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
381 %defattr(644,root,root,755)
382 %attr(755,root,root) %{_libdir}/libcib.so
383 %attr(755,root,root) %{_libdir}/libcrmcluster.so
384 %attr(755,root,root) %{_libdir}/libcrmcommon.so
385 %attr(755,root,root) %{_libdir}/libcrmservice.so
386 %attr(755,root,root) %{_libdir}/liblrmd.so
387 %attr(755,root,root) %{_libdir}/libpe_rules.so
388 %attr(755,root,root) %{_libdir}/libpe_status.so
389 %attr(755,root,root) %{_libdir}/libpengine.so
390 %attr(755,root,root) %{_libdir}/libstonithd.so
391 %attr(755,root,root) %{_libdir}/libtransitioner.so
393 %{_libdir}/libcrmcluster.la
394 %{_libdir}/libcrmcommon.la
395 %{_libdir}/libcrmservice.la
396 %{_libdir}/liblrmd.la
397 %{_libdir}/libpe_rules.la
398 %{_libdir}/libpe_status.la
399 %{_libdir}/libpengine.la
400 %{_libdir}/libstonithd.la
401 %{_libdir}/libtransitioner.la
402 %{_includedir}/pacemaker
403 %{_pkgconfigdir}/pacemaker.pc
404 %{_pkgconfigdir}/pacemaker-cib.pc
405 %{_pkgconfigdir}/pacemaker-cluster.pc
406 %{_pkgconfigdir}/pacemaker-fencing.pc
407 %{_pkgconfigdir}/pacemaker-lrmd.pc
408 %{_pkgconfigdir}/pacemaker-pengine.pc
409 %{_pkgconfigdir}/pacemaker-service.pc
412 %defattr(644,root,root,755)
414 %{_libdir}/libcrmcluster.a
415 %{_libdir}/libcrmcommon.a
416 %{_libdir}/libcrmservice.a
418 %{_libdir}/libpe_rules.a
419 %{_libdir}/libpe_status.a
420 %{_libdir}/libpengine.a
421 %{_libdir}/libstonithd.a
422 %{_libdir}/libtransitioner.a
425 %defattr(644,root,root,755)
426 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
427 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
428 %{systemdunitdir}/pacemaker_remote.service
429 %{_mandir}/man8/pacemaker_remoted.8*
431 %if %{with heartbeat}
433 %defattr(644,root,root,755)
434 %attr(755,root,root) %{_sbindir}/crm_uuid
435 %attr(755,root,root) %{_libdir}/heartbeat/attrd
436 %attr(755,root,root) %{_libdir}/heartbeat/cib
437 %attr(755,root,root) %{_libdir}/heartbeat/crmd
438 %attr(755,root,root) %{_libdir}/heartbeat/pengine
439 %attr(755,root,root) %{_libdir}/heartbeat/stonithd
440 %{_mandir}/man8/crm_uuid.8*
445 %defattr(644,root,root,755)
446 %attr(755,root,root) %{_sbindir}/pacemakerd
447 %attr(755,root,root) /etc/rc.d/init.d/%{name}
448 %{systemdunitdir}/%{name}.service
449 %{_mandir}/man8/pacemakerd.8*