1 # TODO: publican docs (BR: publican, inkscape)
4 %bcond_without corosync # Corosync stack support
5 %bcond_without heartbeat # Heartbeat stack support
6 %bcond_without servicelog # ServiceLog support [IBM PPC specific]
7 %bcond_without ipmi # IPMI ServiceLog support [IBM PPC specific]
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: 8f9973085512b6782c019b6d9a78ca8e
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 Patch3: %{name}-man.patch
32 Patch4: %{name}-libs.patch
33 URL: http://clusterlabs.org/wiki/Main_Page
34 %{?with_ipmi:BuildRequires: OpenIPMI-devel}
35 BuildRequires: asciidoc
36 BuildRequires: autoconf >= 2.59
37 BuildRequires: automake
39 BuildRequires: bzip2-devel
40 BuildRequires: cluster-glue-libs-devel
41 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
42 BuildRequires: dbus-devel
43 BuildRequires: docbook-style-xsl
44 BuildRequires: e2fsprogs-devel
46 BuildRequires: gettext-tools
47 BuildRequires: glib2-devel >= 2.0
48 BuildRequires: gnutls-devel
49 BuildRequires: help2man
50 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.6}
51 BuildRequires: libesmtp-devel
52 BuildRequires: libltdl-devel
53 BuildRequires: libqb-devel >= 0.13
54 %{?with_servicelog:BuildRequires: libservicelog-devel}
55 BuildRequires: libtool
56 BuildRequires: libuuid-devel
57 BuildRequires: libxml2-devel >= 2.0
58 BuildRequires: libxslt-devel
59 BuildRequires: libxslt-progs
60 BuildRequires: ncurses-devel >= 5.4
61 BuildRequires: net-snmp-devel
62 BuildRequires: pam-devel
63 BuildRequires: pciutils-devel
64 BuildRequires: pkgconfig
65 BuildRequires: python-devel
66 BuildRequires: rpm-pythonprov
67 BuildRequires: rpmbuild(macros) >= 1.644
68 BuildRequires: systemd-units
70 Requires: %{name}-libs = %{version}-%{release}
71 Requires: cluster-glue
72 Requires: resource-agents
73 Provides: group(haclient)
74 Provides: user(hacluster)
75 Suggests: pacemaker-shell
76 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79 Pacemaker makes use of your cluster infrastructure (either
80 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
81 of the services (aka. resources) you want the cluster to provide.
83 It can do this for clusters of practically any size and comes with a
84 powerful dependency model that allows the administrator to accurately
85 express the relationships (both ordering and location) between the
88 Pacemaker was formely a part of Heartbeat.
90 %description -l pl.UTF-8
91 Pacemaker wykorzystuje infrastrukturę klastrową (Corosync/OpenAIS lub
92 Heartbeat) do zatrzymywania, uruchamiania i monitorowania działania
93 usług (tzw. zasobów), które ma udostępniać klaster.
95 Jest w stanie obsłużyć klastry praktycznie dowolnych rozmiarów,
96 zawiera elastyczny model zależności, pozwalający administratorowi
97 dokładnie opisać powiązania (zarówno kolejność, jak i położenie)
98 między zasobami klastra.
100 Pacemaker był wcześniej częścią pakietu Heartbeat.
103 Summary: Pacemaker libraries
104 Summary(pl.UTF-8): Biblioteki Pacemakera
108 Shared libraries for Pacemaker.
110 %description libs -l pl.UTF-8
111 Biblioteki współdzielone Pacemakera.
114 Summary: Header files for Pacemaker libraries
115 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemakera
116 Group: Development/Libraries
117 Requires: %{name}-libs = %{version}-%{release}
120 Header files for Pacemaker libraries.
122 %description devel -l pl.UTF-8
123 Pliki nagłówkowe bibliotek Pacemakera.
126 Summary: Static Pacemaker libraries
127 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
128 Group: Development/Libraries
129 Requires: %{name}-devel = %{version}-%{release}
132 Static Pacemaker libraries.
134 %description static -l pl.UTF-8
135 Statyczne biblioteki Pacemakera.
138 Summary: Pacemaker for Heartbeat cluster
139 Summary(pl.UTF-8): Pacemaker dla klastra Heartbeat
140 Group: Applications/System
141 Requires: %{name} = %{version}-%{release}
142 Requires: heartbeat >= 3.0.6
143 Obsoletes: pacemaker < 1.1
145 %description heartbeat
146 This package allows using Pacemaker on a Heartbeat cluster.
148 %description heartbeat -l pl.UTF-8
149 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
152 Summary: Pacemaker for Corosync cluster
153 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
154 Group: Applications/System
155 Requires: %{name} = %{version}-%{release}
157 Requires: systemd-units >= 38
158 %{?with_heartbeat:%requires_eq heartbeat-libs}
160 %description corosync
161 This package allows using Pacemaker on a Corosync cluster.
163 %description corosync -l pl.UTF-8
164 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
167 Summary: Remote services manager for Pacemaker
168 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
169 Group: Applications/System
170 Requires: systemd-units >= 38
171 Requires: %{name} = %{version}-%{release}
174 This package allows running Pacemaker-managed services on 'virtual'
175 nodes without actual cluster stack. This is useful to manage services
176 in virtual machines or containers running on a Pacemaker cluster.
178 %description remote -l pl.UTF-8
179 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
180 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
181 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
182 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
185 %setup -qn pacemaker-Pacemaker-%{version}
199 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
202 --with-corosync%{!?with_corosync:=no} \
204 --with-heartbeat%{!?with_heartbeat:=no} \
205 --with-initdir=/etc/rc.d/init.d \
207 --disable-fatal-warnings \
208 --disable-silent-rules
213 rm -rf $RPM_BUILD_ROOT
214 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
217 mibdir=%{_datadir}/mibs \
218 DESTDIR=$RPM_BUILD_ROOT
220 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
222 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
224 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
226 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
227 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
231 rm -rf $RPM_BUILD_ROOT
234 %groupadd -g 60 haclient
235 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
238 /sbin/chkconfig --add %{name}
239 %service %{name} restart "%{name} daemon"
240 %systemd_post %{name}.service
243 if [ "$1" = "0" ]; then
244 %service %{name} stop
245 /sbin/chkconfig --del %{name}
249 %systemd_preun %{name}.service
255 /sbin/chkconfig --add pacemaker_remote
256 %service pacemaker_remote restart "pacemaker_remote daemon"
257 %systemd_post pacemaker_remote.service
260 %systemd_preun %{name}.service
265 %post libs -p /sbin/ldconfig
266 %postun libs -p /sbin/ldconfig
269 %defattr(644,root,root,755)
270 %doc AUTHORS ChangeLog NEWS README.markdown TODO.markdown doc/*.html doc/{executioner,msg-schema,security}.txt doc/{openstack,pcs-crmsh-quick-ref}.md
271 %attr(755,root,root) %{_sbindir}/attrd_updater
272 %attr(755,root,root) %{_sbindir}/cibadmin
273 %attr(755,root,root) %{_sbindir}/crm_attribute
274 %attr(755,root,root) %{_sbindir}/crm_diff
275 %attr(755,root,root) %{_sbindir}/crm_error
276 %attr(755,root,root) %{_sbindir}/crm_failcount
277 %attr(755,root,root) %{_sbindir}/crm_master
278 %attr(755,root,root) %{_sbindir}/crm_mon
279 %attr(755,root,root) %{_sbindir}/crm_node
280 %attr(755,root,root) %{_sbindir}/crm_report
281 %attr(755,root,root) %{_sbindir}/crm_resource
282 %attr(755,root,root) %{_sbindir}/crm_simulate
283 %attr(755,root,root) %{_sbindir}/crm_shadow
284 %attr(755,root,root) %{_sbindir}/crm_standby
285 %attr(755,root,root) %{_sbindir}/crm_ticket
286 %attr(755,root,root) %{_sbindir}/crm_verify
287 %attr(755,root,root) %{_sbindir}/crmadmin
288 %attr(755,root,root) %{_sbindir}/fence_legacy
289 %attr(755,root,root) %{_sbindir}/fence_pcmk
290 %attr(755,root,root) %{_sbindir}/iso8601
291 %attr(755,root,root) %{_sbindir}/stonith_admin
292 %if %{with servicelog}
294 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
296 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
298 %dir %{_libdir}/%{name}
299 %attr(755,root,root) %{_libdir}/%{name}/attrd
300 %attr(755,root,root) %{_libdir}/%{name}/cib
301 %attr(755,root,root) %{_libdir}/%{name}/cibmon
302 %attr(755,root,root) %{_libdir}/%{name}/crmd
303 %attr(755,root,root) %{_libdir}/%{name}/lrmd
304 %attr(755,root,root) %{_libdir}/%{name}/lrmd_internal_ctl
305 %attr(755,root,root) %{_libdir}/%{name}/lrmd_test
306 %attr(755,root,root) %{_libdir}/%{name}/pengine
307 %attr(755,root,root) %{_libdir}/%{name}/stonith-test
308 %attr(755,root,root) %{_libdir}/%{name}/stonithd
309 %{_datadir}/pacemaker
310 %{_datadir}/mibs/PCMK-MIB.txt
312 %{systemdunitdir}/crm_mon.service
313 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
314 %ghost /var/log/pacemaker.log
315 %{_mandir}/man7/crmd.7*
316 %{_mandir}/man7/ocf_pacemaker_*.7*
317 %{_mandir}/man7/pengine.7*
318 %{_mandir}/man7/stonithd.7*
319 %{_mandir}/man8/attrd_updater.8*
320 %{_mandir}/man8/cibadmin.8*
321 %{_mandir}/man8/crm_attribute.8*
322 %{_mandir}/man8/crm_diff.8*
323 %{_mandir}/man8/crm_error.8*
324 %{_mandir}/man8/crm_failcount.8*
325 %{_mandir}/man8/crm_master.8*
326 %{_mandir}/man8/crm_mon.8*
327 %{_mandir}/man8/crm_node.8*
328 %{_mandir}/man8/crm_report.8*
329 %{_mandir}/man8/crm_resource.8*
330 %{_mandir}/man8/crm_shadow.8*
331 %{_mandir}/man8/crm_simulate.8*
332 %{_mandir}/man8/crm_standby.8*
333 %{_mandir}/man8/crm_ticket.8*
334 %{_mandir}/man8/crm_verify.8*
335 %{_mandir}/man8/crmadmin.8*
336 %{_mandir}/man8/fence_legacy.8*
337 %{_mandir}/man8/fence_pcmk.8*
338 %{_mandir}/man8/iso8601.8*
339 %{_mandir}/man8/stonith_admin.8*
340 %if %{with servicelog}
341 %{_mandir}/man8/notifyServicelogEvent.8*
344 %dir %{_prefix}/lib/ocf/resource.d/.isolation
345 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/.isolation/docker-wrapper
346 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
347 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
348 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
349 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
350 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
351 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
352 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
353 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
354 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
355 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
356 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
357 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
358 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
360 %dir /var/lib/%{name}
361 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
362 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
363 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
364 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
365 /usr/lib/tmpfiles.d/%{name}.conf
368 %defattr(644,root,root,755)
369 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
370 %attr(755,root,root) %ghost %{_libdir}/libcib.so.4
371 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
372 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
373 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
374 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
375 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.3
377 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
379 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
381 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.10
383 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.10
385 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
387 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
391 %defattr(644,root,root,755)
392 %attr(755,root,root) %{_libdir}/libcib.so
393 %attr(755,root,root) %{_libdir}/libcrmcluster.so
394 %attr(755,root,root) %{_libdir}/libcrmcommon.so
395 %attr(755,root,root) %{_libdir}/libcrmservice.so
396 %attr(755,root,root) %{_libdir}/liblrmd.so
397 %attr(755,root,root) %{_libdir}/libpe_rules.so
398 %attr(755,root,root) %{_libdir}/libpe_status.so
399 %attr(755,root,root) %{_libdir}/libpengine.so
400 %attr(755,root,root) %{_libdir}/libstonithd.so
401 %attr(755,root,root) %{_libdir}/libtransitioner.so
403 %{_libdir}/libcrmcluster.la
404 %{_libdir}/libcrmcommon.la
405 %{_libdir}/libcrmservice.la
406 %{_libdir}/liblrmd.la
407 %{_libdir}/libpe_rules.la
408 %{_libdir}/libpe_status.la
409 %{_libdir}/libpengine.la
410 %{_libdir}/libstonithd.la
411 %{_libdir}/libtransitioner.la
412 %{_includedir}/pacemaker
413 %{_pkgconfigdir}/pacemaker.pc
414 %{_pkgconfigdir}/pacemaker-cib.pc
415 %{_pkgconfigdir}/pacemaker-cluster.pc
416 %{_pkgconfigdir}/pacemaker-fencing.pc
417 %{_pkgconfigdir}/pacemaker-lrmd.pc
418 %{_pkgconfigdir}/pacemaker-pengine.pc
419 %{_pkgconfigdir}/pacemaker-service.pc
422 %defattr(644,root,root,755)
424 %{_libdir}/libcrmcluster.a
425 %{_libdir}/libcrmcommon.a
426 %{_libdir}/libcrmservice.a
428 %{_libdir}/libpe_rules.a
429 %{_libdir}/libpe_status.a
430 %{_libdir}/libpengine.a
431 %{_libdir}/libstonithd.a
432 %{_libdir}/libtransitioner.a
435 %defattr(644,root,root,755)
436 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
437 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
438 %{systemdunitdir}/pacemaker_remote.service
439 %{_mandir}/man8/pacemaker_remoted.8*
441 %if %{with heartbeat}
443 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_sbindir}/crm_uuid
445 %{_mandir}/man8/crm_uuid.8*
450 %defattr(644,root,root,755)
451 %attr(755,root,root) %{_sbindir}/pacemakerd
452 %attr(755,root,root) /etc/rc.d/init.d/%{name}
453 %{systemdunitdir}/%{name}.service
454 %{_mandir}/man8/pacemakerd.8*