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: 335dab2fd6b3a284a6bd2bbeef60c960
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 Patch5: %{name}-heartbeat-libexecdir.patch
34 URL: http://clusterlabs.org/wiki/Main_Page
35 %{?with_ipmi:BuildRequires: OpenIPMI-devel}
36 BuildRequires: asciidoc
37 BuildRequires: autoconf >= 2.59
38 BuildRequires: automake
40 BuildRequires: bzip2-devel
41 BuildRequires: cluster-glue-libs-devel
42 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
43 BuildRequires: dbus-devel
44 BuildRequires: docbook-style-xsl
45 BuildRequires: e2fsprogs-devel
47 BuildRequires: gettext-tools
48 BuildRequires: glib2-devel >= 2.0
49 BuildRequires: gnutls-devel
50 BuildRequires: help2man
51 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.6}
52 BuildRequires: libesmtp-devel
53 BuildRequires: libltdl-devel
54 BuildRequires: libqb-devel >= 0.13
55 %{?with_servicelog:BuildRequires: libservicelog-devel}
56 BuildRequires: libtool
57 BuildRequires: libuuid-devel
58 BuildRequires: libxml2-devel >= 2.0
59 BuildRequires: libxslt-devel
60 BuildRequires: libxslt-progs
61 BuildRequires: ncurses-devel >= 5.4
62 BuildRequires: net-snmp-devel
63 BuildRequires: pam-devel
64 BuildRequires: pciutils-devel
65 BuildRequires: pkgconfig
66 BuildRequires: python-devel
67 BuildRequires: rpm-pythonprov
68 BuildRequires: rpmbuild(macros) >= 1.644
69 BuildRequires: systemd-units
71 Requires: %{name}-libs = %{version}-%{release}
72 Requires: cluster-glue
73 Requires: resource-agents
74 Provides: group(haclient)
75 Provides: user(hacluster)
76 Suggests: pacemaker-shell
77 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
80 Pacemaker makes use of your cluster infrastructure (either
81 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
82 of the services (aka. resources) you want the cluster to provide.
84 It can do this for clusters of practically any size and comes with a
85 powerful dependency model that allows the administrator to accurately
86 express the relationships (both ordering and location) between the
89 Pacemaker was formely a part of Heartbeat.
91 %description -l pl.UTF-8
92 Pacemaker wykorzystuje infrastrukturę klastrową (Corosync/OpenAIS lub
93 Heartbeat) do zatrzymywania, uruchamiania i monitorowania działania
94 usług (tzw. zasobów), które ma udostępniać klaster.
96 Jest w stanie obsłużyć klastry praktycznie dowolnych rozmiarów,
97 zawiera elastyczny model zależności, pozwalający administratorowi
98 dokładnie opisać powiązania (zarówno kolejność, jak i położenie)
99 między zasobami klastra.
101 Pacemaker był wcześniej częścią pakietu Heartbeat.
104 Summary: Pacemaker libraries
105 Summary(pl.UTF-8): Biblioteki Pacemakera
107 Requires: libqb >= 0.13
110 Shared libraries for Pacemaker.
112 %description libs -l pl.UTF-8
113 Biblioteki współdzielone Pacemakera.
116 Summary: Header files for Pacemaker libraries
117 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemakera
118 Group: Development/Libraries
119 Requires: %{name}-libs = %{version}-%{release}
122 Header files for Pacemaker libraries.
124 %description devel -l pl.UTF-8
125 Pliki nagłówkowe bibliotek Pacemakera.
128 Summary: Static Pacemaker libraries
129 Summary(pl.UTF-8): Statyczne biblioteki Pacemakera
130 Group: Development/Libraries
131 Requires: %{name}-devel = %{version}-%{release}
134 Static Pacemaker libraries.
136 %description static -l pl.UTF-8
137 Statyczne biblioteki Pacemakera.
140 Summary: Pacemaker for Heartbeat cluster
141 Summary(pl.UTF-8): Pacemaker dla klastra Heartbeat
142 Group: Applications/System
143 Requires: %{name} = %{version}-%{release}
144 Requires: heartbeat >= 3.0.6
145 Obsoletes: pacemaker < 1.1
147 %description heartbeat
148 This package allows using Pacemaker on a Heartbeat cluster.
150 %description heartbeat -l pl.UTF-8
151 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
154 Summary: Pacemaker for Corosync cluster
155 Summary(pl.UTF-8): Pacemaker dla klastra Corosync
156 Group: Applications/System
157 Requires: %{name} = %{version}-%{release}
159 Requires: systemd-units >= 38
160 %{?with_heartbeat:%requires_eq heartbeat-libs}
162 %description corosync
163 This package allows using Pacemaker on a Corosync cluster.
165 %description corosync -l pl.UTF-8
166 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
169 Summary: Remote services manager for Pacemaker
170 Summary(pl.UTF-8): Zarządca usług zdalnych dla Pacemakera
171 Group: Applications/System
172 Requires: systemd-units >= 38
173 Requires: %{name} = %{version}-%{release}
176 This package allows running Pacemaker-managed services on 'virtual'
177 nodes without actual cluster stack. This is useful to manage services
178 in virtual machines or containers running on a Pacemaker cluster.
180 %description remote -l pl.UTF-8
181 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
182 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
183 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
184 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
187 %setup -qn pacemaker-Pacemaker-%{version}
202 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
203 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
205 --disable-fatal-warnings \
206 --disable-silent-rules \
210 --with-corosync%{!?with_corosync:=no} \
212 --with-heartbeat%{!?with_heartbeat:=no} \
213 --with-initdir=/etc/rc.d/init.d \
219 rm -rf $RPM_BUILD_ROOT
220 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
223 mibdir=%{_datadir}/mibs \
224 DESTDIR=$RPM_BUILD_ROOT
226 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
228 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
230 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
232 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
233 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
237 rm -rf $RPM_BUILD_ROOT
240 %groupadd -g 60 haclient
241 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
244 /sbin/chkconfig --add %{name}
245 %service %{name} restart "%{name} daemon"
246 %systemd_post %{name}.service
249 if [ "$1" = "0" ]; then
250 %service %{name} stop
251 /sbin/chkconfig --del %{name}
255 %systemd_preun %{name}.service
261 /sbin/chkconfig --add pacemaker_remote
262 %service pacemaker_remote restart "pacemaker_remote daemon"
263 %systemd_post pacemaker_remote.service
266 %systemd_preun %{name}.service
271 %post libs -p /sbin/ldconfig
272 %postun libs -p /sbin/ldconfig
275 %defattr(644,root,root,755)
276 %doc ChangeLog README.markdown doc/*.html doc/{executioner,msg-schema,security}.txt doc/{openstack,pcs-crmsh-quick-ref}.md
277 %attr(755,root,root) %{_sbindir}/attrd_updater
278 %attr(755,root,root) %{_sbindir}/cibadmin
279 %attr(755,root,root) %{_sbindir}/crm_attribute
280 %attr(755,root,root) %{_sbindir}/crm_diff
281 %attr(755,root,root) %{_sbindir}/crm_error
282 %attr(755,root,root) %{_sbindir}/crm_failcount
283 %attr(755,root,root) %{_sbindir}/crm_master
284 %attr(755,root,root) %{_sbindir}/crm_mon
285 %attr(755,root,root) %{_sbindir}/crm_node
286 %attr(755,root,root) %{_sbindir}/crm_report
287 %attr(755,root,root) %{_sbindir}/crm_resource
288 %attr(755,root,root) %{_sbindir}/crm_simulate
289 %attr(755,root,root) %{_sbindir}/crm_shadow
290 %attr(755,root,root) %{_sbindir}/crm_standby
291 %attr(755,root,root) %{_sbindir}/crm_ticket
292 %attr(755,root,root) %{_sbindir}/crm_verify
293 %attr(755,root,root) %{_sbindir}/crmadmin
294 %attr(755,root,root) %{_sbindir}/fence_legacy
295 %attr(755,root,root) %{_sbindir}/fence_pcmk
296 %attr(755,root,root) %{_sbindir}/iso8601
297 %attr(755,root,root) %{_sbindir}/stonith_admin
298 %if %{with servicelog}
300 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
302 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
304 %dir %{_libexecdir}/%{name}
305 %attr(755,root,root) %{_libexecdir}/%{name}/attrd
306 %attr(755,root,root) %{_libexecdir}/%{name}/cib
307 %attr(755,root,root) %{_libexecdir}/%{name}/cibmon
308 %attr(755,root,root) %{_libexecdir}/%{name}/crmd
309 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd
310 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_internal_ctl
311 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_test
312 %attr(755,root,root) %{_libexecdir}/%{name}/pengine
313 %attr(755,root,root) %{_libexecdir}/%{name}/stonith-test
314 %attr(755,root,root) %{_libexecdir}/%{name}/stonithd
315 %{_datadir}/pacemaker
316 %{_datadir}/mibs/PCMK-MIB.txt
318 %{systemdunitdir}/crm_mon.service
319 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
320 %ghost /var/log/pacemaker.log
321 %{_mandir}/man7/crmd.7*
322 %{_mandir}/man7/ocf_pacemaker_*.7*
323 %{_mandir}/man7/pengine.7*
324 %{_mandir}/man7/stonithd.7*
325 %{_mandir}/man8/attrd_updater.8*
326 %{_mandir}/man8/cibadmin.8*
327 %{_mandir}/man8/crm_attribute.8*
328 %{_mandir}/man8/crm_diff.8*
329 %{_mandir}/man8/crm_error.8*
330 %{_mandir}/man8/crm_failcount.8*
331 %{_mandir}/man8/crm_master.8*
332 %{_mandir}/man8/crm_mon.8*
333 %{_mandir}/man8/crm_node.8*
334 %{_mandir}/man8/crm_report.8*
335 %{_mandir}/man8/crm_resource.8*
336 %{_mandir}/man8/crm_shadow.8*
337 %{_mandir}/man8/crm_simulate.8*
338 %{_mandir}/man8/crm_standby.8*
339 %{_mandir}/man8/crm_ticket.8*
340 %{_mandir}/man8/crm_verify.8*
341 %{_mandir}/man8/crmadmin.8*
342 %{_mandir}/man8/fence_legacy.8*
343 %{_mandir}/man8/fence_pcmk.8*
344 %{_mandir}/man8/iso8601.8*
345 %{_mandir}/man8/stonith_admin.8*
346 %if %{with servicelog}
347 %{_mandir}/man8/notifyServicelogEvent.8*
350 %dir %{_prefix}/lib/ocf/resource.d/.isolation
351 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/.isolation/docker-wrapper
352 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
353 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
354 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
355 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
356 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
357 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
358 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
359 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
360 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/attribute
361 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
362 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ifspeed
363 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
364 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
365 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
366 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
368 %dir /var/lib/%{name}
369 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
370 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
371 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
372 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
373 /usr/lib/tmpfiles.d/%{name}.conf
376 %defattr(644,root,root,755)
377 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libcib.so.4
379 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
381 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
383 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.3
385 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
387 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
389 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.10
391 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
392 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.10
393 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
394 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
395 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
396 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
399 %defattr(644,root,root,755)
400 %attr(755,root,root) %{_libdir}/libcib.so
401 %attr(755,root,root) %{_libdir}/libcrmcluster.so
402 %attr(755,root,root) %{_libdir}/libcrmcommon.so
403 %attr(755,root,root) %{_libdir}/libcrmservice.so
404 %attr(755,root,root) %{_libdir}/liblrmd.so
405 %attr(755,root,root) %{_libdir}/libpe_rules.so
406 %attr(755,root,root) %{_libdir}/libpe_status.so
407 %attr(755,root,root) %{_libdir}/libpengine.so
408 %attr(755,root,root) %{_libdir}/libstonithd.so
409 %attr(755,root,root) %{_libdir}/libtransitioner.so
411 %{_libdir}/libcrmcluster.la
412 %{_libdir}/libcrmcommon.la
413 %{_libdir}/libcrmservice.la
414 %{_libdir}/liblrmd.la
415 %{_libdir}/libpe_rules.la
416 %{_libdir}/libpe_status.la
417 %{_libdir}/libpengine.la
418 %{_libdir}/libstonithd.la
419 %{_libdir}/libtransitioner.la
420 %{_includedir}/pacemaker
421 %{_pkgconfigdir}/pacemaker.pc
422 %{_pkgconfigdir}/pacemaker-cib.pc
423 %{_pkgconfigdir}/pacemaker-cluster.pc
424 %{_pkgconfigdir}/pacemaker-fencing.pc
425 %{_pkgconfigdir}/pacemaker-lrmd.pc
426 %{_pkgconfigdir}/pacemaker-pengine.pc
427 %{_pkgconfigdir}/pacemaker-service.pc
430 %defattr(644,root,root,755)
432 %{_libdir}/libcrmcluster.a
433 %{_libdir}/libcrmcommon.a
434 %{_libdir}/libcrmservice.a
436 %{_libdir}/libpe_rules.a
437 %{_libdir}/libpe_status.a
438 %{_libdir}/libpengine.a
439 %{_libdir}/libstonithd.a
440 %{_libdir}/libtransitioner.a
443 %defattr(644,root,root,755)
444 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
445 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
446 %{systemdunitdir}/pacemaker_remote.service
447 %{_mandir}/man8/pacemaker_remoted.8*
449 %if %{with heartbeat}
451 %defattr(644,root,root,755)
452 %attr(755,root,root) %{_sbindir}/crm_uuid
453 %{_mandir}/man8/crm_uuid.8*
458 %defattr(644,root,root,755)
459 %attr(755,root,root) %{_sbindir}/pacemakerd
460 %attr(755,root,root) /etc/rc.d/init.d/%{name}
461 %{systemdunitdir}/%{name}.service
462 %{_mandir}/man8/pacemakerd.8*