]> git.pld-linux.org Git - packages/pacemaker.git/blob - pacemaker.spec
a0c20a81d678430cecc5cab3f21a5add293347ff
[packages/pacemaker.git] / pacemaker.spec
1 # TODO: publican docs (BR: publican, inkscape)
2 #
3 # Conditional build:
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]
8 #
9 %ifnarch ppc ppc64
10 %undefine       with_servicelog
11 %endif
12 %if %{without servicelog}
13 %undefine       with_ipmi
14 %endif
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
17 Name:           pacemaker
18 Version:        1.1.19
19 Release:        1
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
26 Source2:        %{name}.init
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
38 BuildRequires:  bison
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
45 BuildRequires:  flex
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
69 BuildRequires:  swig
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)
77
78 %description
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.
82
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
86 cluster resources.
87
88 Pacemaker was formely a part of Heartbeat.
89
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.
94
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.
99
100 Pacemaker był wcześniej częścią pakietu Heartbeat.
101
102 %package libs
103 Summary:        Pacemaker libraries
104 Summary(pl.UTF-8):      Biblioteki Pacemakera
105 Group:          Libraries
106 Requires:       libqb >= 0.13
107
108 %description libs
109 Shared libraries for Pacemaker.
110
111 %description libs -l pl.UTF-8
112 Biblioteki współdzielone Pacemakera.
113
114 %package devel
115 Summary:        Header files for Pacemaker libraries
116 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek Pacemakera
117 Group:          Development/Libraries
118 Requires:       %{name}-libs = %{version}-%{release}
119
120 %description devel
121 Header files for Pacemaker libraries.
122
123 %description devel -l pl.UTF-8
124 Pliki nagłówkowe bibliotek Pacemakera.
125
126 %package static
127 Summary:        Static Pacemaker libraries
128 Summary(pl.UTF-8):      Statyczne biblioteki Pacemakera
129 Group:          Development/Libraries
130 Requires:       %{name}-devel = %{version}-%{release}
131
132 %description static
133 Static Pacemaker libraries.
134
135 %description static -l pl.UTF-8
136 Statyczne biblioteki Pacemakera.
137
138 %package heartbeat
139 Summary:        Pacemaker for Heartbeat cluster
140 Summary(pl.UTF-8):      Pacemaker dla klastra Heartbeat
141 Group:          Applications/System
142 Requires:       %{name} = %{version}-%{release}
143 Requires:       heartbeat >= 3.0.6
144 Obsoletes:      pacemaker < 1.1
145
146 %description heartbeat
147 This package allows using Pacemaker on a Heartbeat cluster.
148
149 %description heartbeat -l pl.UTF-8
150 Ten pakiet pozwala na używanie Pacemakera na klastrze Heartbeat.
151
152 %package corosync
153 Summary:        Pacemaker for Corosync cluster
154 Summary(pl.UTF-8):      Pacemaker dla klastra Corosync
155 Group:          Applications/System
156 Requires:       %{name} = %{version}-%{release}
157 Requires:       corosync
158 Requires:       systemd-units >= 38
159 %{?with_heartbeat:%requires_eq  heartbeat-libs}
160
161 %description corosync
162 This package allows using Pacemaker on a Corosync cluster.
163
164 %description corosync -l pl.UTF-8
165 Ten pakiet pozwala na używanie Pacemakera na klastrze Corosync.
166
167 %package remote
168 Summary:        Remote services manager for Pacemaker
169 Summary(pl.UTF-8):      Zarządca usług zdalnych dla Pacemakera
170 Group:          Applications/System
171 Requires:       systemd-units >= 38
172 Requires:       %{name} = %{version}-%{release}
173
174 %description remote
175 This package allows running Pacemaker-managed services on 'virtual'
176 nodes without actual cluster stack. This is useful to manage services
177 in virtual machines or containers running on a Pacemaker cluster.
178
179 %description remote -l pl.UTF-8
180 Ten pakiet pozwala na uruchamianie usług zarządzanych przez Pacemakera
181 na węzłach "wirtualnych" bez zainstalowanego całego stosu klastrowego.
182 Jest to przydatne przy zarządzaniu usługami na maszynach wirtualncych
183 lub w kontenerach uruchomionych na klastrze opartym o Pacemaker.
184
185 %prep
186 %setup -qn pacemaker-Pacemaker-%{version}
187 %patch0 -p1
188 %patch1 -p1
189 %patch2 -p1
190 %patch3 -p1
191 %patch4 -p1
192
193 %build
194 %{__libtoolize}
195 %{__aclocal} -I m4
196 %{__autoconf}
197 %{__autoheader}
198 %{__automake}
199
200 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}"
201 # enable systemd explicitly to avoid configure checks via dbus-send or systemctl
202 %configure \
203         --disable-fatal-warnings \
204         --disable-silent-rules \
205         --enable-systemd \
206         --disable-upstart \
207         --with-acl \
208         --with-corosync%{!?with_corosync:=no} \
209         --with-esmtp \
210         --with-heartbeat%{!?with_heartbeat:=no} \
211         --with-initdir=/etc/rc.d/init.d \
212         --with-snmp
213
214 %{__make}
215
216 %install
217 rm -rf $RPM_BUILD_ROOT
218 install -d $RPM_BUILD_ROOT{/var/run/crm,/var/log}
219
220 %{__make} install \
221         mibdir=%{_datadir}/mibs \
222         DESTDIR=$RPM_BUILD_ROOT
223
224 touch $RPM_BUILD_ROOT/var/log/pacemaker.log
225
226 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
227
228 install -D %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
229 %if %{with corosync}
230 install -D %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
231 install -D %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
232 %endif
233
234 %clean
235 rm -rf $RPM_BUILD_ROOT
236
237 %pre
238 %groupadd -g 60 haclient
239 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
240
241 %post corosync
242 /sbin/chkconfig --add %{name}
243 %service %{name} restart "%{name} daemon"
244 %systemd_post %{name}.service
245
246 %preun
247 if [ "$1" = "0" ]; then
248         %service %{name} stop
249         /sbin/chkconfig --del %{name}
250 fi
251
252 %preun corosync
253 %systemd_preun %{name}.service
254
255 %postun corosync
256 %systemd_reload
257
258 %post remote
259 /sbin/chkconfig --add pacemaker_remote
260 %service pacemaker_remote restart "pacemaker_remote daemon"
261 %systemd_post pacemaker_remote.service
262
263 %preun remote
264 %systemd_preun %{name}.service
265
266 %postun remote
267 %systemd_reload
268
269 %post   libs -p /sbin/ldconfig
270 %postun libs -p /sbin/ldconfig
271
272 %files
273 %defattr(644,root,root,755)
274 %doc ChangeLog README.markdown doc/*.html doc/{executioner,msg-schema,security}.txt doc/{openstack,pcs-crmsh-quick-ref}.md
275 %attr(755,root,root) %{_sbindir}/attrd_updater
276 %attr(755,root,root) %{_sbindir}/cibadmin
277 %attr(755,root,root) %{_sbindir}/crm_attribute
278 %attr(755,root,root) %{_sbindir}/crm_diff
279 %attr(755,root,root) %{_sbindir}/crm_error
280 %attr(755,root,root) %{_sbindir}/crm_failcount
281 %attr(755,root,root) %{_sbindir}/crm_master
282 %attr(755,root,root) %{_sbindir}/crm_mon
283 %attr(755,root,root) %{_sbindir}/crm_node
284 %attr(755,root,root) %{_sbindir}/crm_report
285 %attr(755,root,root) %{_sbindir}/crm_resource
286 %attr(755,root,root) %{_sbindir}/crm_simulate
287 %attr(755,root,root) %{_sbindir}/crm_shadow
288 %attr(755,root,root) %{_sbindir}/crm_standby
289 %attr(755,root,root) %{_sbindir}/crm_ticket
290 %attr(755,root,root) %{_sbindir}/crm_verify
291 %attr(755,root,root) %{_sbindir}/crmadmin
292 %attr(755,root,root) %{_sbindir}/fence_legacy
293 %attr(755,root,root) %{_sbindir}/fence_pcmk
294 %attr(755,root,root) %{_sbindir}/iso8601
295 %attr(755,root,root) %{_sbindir}/stonith_admin
296 %if %{with servicelog}
297 %if %{with ipmi}
298 %attr(755,root,root) %{_sbindir}/ipmiservicelogd
299 %endif
300 %attr(755,root,root) %{_sbindir}/notifyServicelogEvent
301 %endif
302 %dir %{_libexecdir}/%{name}
303 %attr(755,root,root) %{_libexecdir}/%{name}/attrd
304 %attr(755,root,root) %{_libexecdir}/%{name}/cib
305 %attr(755,root,root) %{_libexecdir}/%{name}/cibmon
306 %attr(755,root,root) %{_libexecdir}/%{name}/crmd
307 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd
308 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_internal_ctl
309 %attr(755,root,root) %{_libexecdir}/%{name}/lrmd_test
310 %attr(755,root,root) %{_libexecdir}/%{name}/pengine
311 %attr(755,root,root) %{_libexecdir}/%{name}/stonith-test
312 %attr(755,root,root) %{_libexecdir}/%{name}/stonithd
313 %{_datadir}/pacemaker
314 %{_datadir}/mibs/PCMK-MIB.txt
315 %{py_sitedir}/cts
316 %{systemdunitdir}/crm_mon.service
317 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/pacemaker
318 %ghost /var/log/pacemaker.log
319 %{_mandir}/man7/crmd.7*
320 %{_mandir}/man7/ocf_pacemaker_*.7*
321 %{_mandir}/man7/pengine.7*
322 %{_mandir}/man7/stonithd.7*
323 %{_mandir}/man8/attrd_updater.8*
324 %{_mandir}/man8/cibadmin.8*
325 %{_mandir}/man8/crm_attribute.8*
326 %{_mandir}/man8/crm_diff.8*
327 %{_mandir}/man8/crm_error.8*
328 %{_mandir}/man8/crm_failcount.8*
329 %{_mandir}/man8/crm_master.8*
330 %{_mandir}/man8/crm_mon.8*
331 %{_mandir}/man8/crm_node.8*
332 %{_mandir}/man8/crm_report.8*
333 %{_mandir}/man8/crm_resource.8*
334 %{_mandir}/man8/crm_shadow.8*
335 %{_mandir}/man8/crm_simulate.8*
336 %{_mandir}/man8/crm_standby.8*
337 %{_mandir}/man8/crm_ticket.8*
338 %{_mandir}/man8/crm_verify.8*
339 %{_mandir}/man8/crmadmin.8*
340 %{_mandir}/man8/fence_legacy.8*
341 %{_mandir}/man8/fence_pcmk.8*
342 %{_mandir}/man8/iso8601.8*
343 %{_mandir}/man8/stonith_admin.8*
344 %if %{with servicelog}
345 %{_mandir}/man8/notifyServicelogEvent.8*
346 %endif
347
348 %dir %{_prefix}/lib/ocf/resource.d/.isolation
349 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/.isolation/docker-wrapper
350 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
351 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
352 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
353 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
354 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
355 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
356 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
357 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
358 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/attribute
359 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
360 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ifspeed
361 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
362 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
363 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
364 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/remote
365
366 %dir /var/lib/%{name}
367 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
368 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
369 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
370 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
371 /usr/lib/tmpfiles.d/%{name}.conf
372
373 %files libs
374 %defattr(644,root,root,755)
375 %attr(755,root,root) %{_libdir}/libcib.so.*.*.*
376 %attr(755,root,root) %ghost %{_libdir}/libcib.so.4
377 %attr(755,root,root) %{_libdir}/libcrmcluster.so.*.*.*
378 %attr(755,root,root) %ghost %{_libdir}/libcrmcluster.so.4
379 %attr(755,root,root) %{_libdir}/libcrmcommon.so.*.*.*
380 %attr(755,root,root) %ghost %{_libdir}/libcrmcommon.so.3
381 %attr(755,root,root) %{_libdir}/libcrmservice.so.*.*.*
382 %attr(755,root,root) %ghost %{_libdir}/libcrmservice.so.3
383 %attr(755,root,root) %{_libdir}/liblrmd.so.*.*.*
384 %attr(755,root,root) %ghost %{_libdir}/liblrmd.so.1
385 %attr(755,root,root) %{_libdir}/libpe_rules.so.*.*.*
386 %attr(755,root,root) %ghost %{_libdir}/libpe_rules.so.2
387 %attr(755,root,root) %{_libdir}/libpe_status.so.*.*.*
388 %attr(755,root,root) %ghost %{_libdir}/libpe_status.so.10
389 %attr(755,root,root) %{_libdir}/libpengine.so.*.*.*
390 %attr(755,root,root) %ghost %{_libdir}/libpengine.so.10
391 %attr(755,root,root) %{_libdir}/libstonithd.so.*.*.*
392 %attr(755,root,root) %ghost %{_libdir}/libstonithd.so.2
393 %attr(755,root,root) %{_libdir}/libtransitioner.so.*.*.*
394 %attr(755,root,root) %ghost %{_libdir}/libtransitioner.so.2
395
396 %files devel
397 %defattr(644,root,root,755)
398 %attr(755,root,root) %{_libdir}/libcib.so
399 %attr(755,root,root) %{_libdir}/libcrmcluster.so
400 %attr(755,root,root) %{_libdir}/libcrmcommon.so
401 %attr(755,root,root) %{_libdir}/libcrmservice.so
402 %attr(755,root,root) %{_libdir}/liblrmd.so
403 %attr(755,root,root) %{_libdir}/libpe_rules.so
404 %attr(755,root,root) %{_libdir}/libpe_status.so
405 %attr(755,root,root) %{_libdir}/libpengine.so
406 %attr(755,root,root) %{_libdir}/libstonithd.so
407 %attr(755,root,root) %{_libdir}/libtransitioner.so
408 %{_libdir}/libcib.la
409 %{_libdir}/libcrmcluster.la
410 %{_libdir}/libcrmcommon.la
411 %{_libdir}/libcrmservice.la
412 %{_libdir}/liblrmd.la
413 %{_libdir}/libpe_rules.la
414 %{_libdir}/libpe_status.la
415 %{_libdir}/libpengine.la
416 %{_libdir}/libstonithd.la
417 %{_libdir}/libtransitioner.la
418 %{_includedir}/pacemaker
419 %{_pkgconfigdir}/pacemaker.pc
420 %{_pkgconfigdir}/pacemaker-cib.pc
421 %{_pkgconfigdir}/pacemaker-cluster.pc
422 %{_pkgconfigdir}/pacemaker-fencing.pc
423 %{_pkgconfigdir}/pacemaker-lrmd.pc
424 %{_pkgconfigdir}/pacemaker-pengine.pc
425 %{_pkgconfigdir}/pacemaker-service.pc
426
427 %files static
428 %defattr(644,root,root,755)
429 %{_libdir}/libcib.a
430 %{_libdir}/libcrmcluster.a
431 %{_libdir}/libcrmcommon.a
432 %{_libdir}/libcrmservice.a
433 %{_libdir}/liblrmd.a
434 %{_libdir}/libpe_rules.a
435 %{_libdir}/libpe_status.a
436 %{_libdir}/libpengine.a
437 %{_libdir}/libstonithd.a
438 %{_libdir}/libtransitioner.a
439
440 %files remote
441 %defattr(644,root,root,755)
442 %attr(755,root,root) %{_sbindir}/pacemaker_remoted
443 %attr(755,root,root) /etc/rc.d/init.d/pacemaker_remote
444 %{systemdunitdir}/pacemaker_remote.service
445 %{_mandir}/man8/pacemaker_remoted.8*
446
447 %if %{with heartbeat}
448 %files heartbeat
449 %defattr(644,root,root,755)
450 %attr(755,root,root) %{_sbindir}/crm_uuid
451 %{_mandir}/man8/crm_uuid.8*
452 %endif
453
454 %if %{with corosync}
455 %files corosync
456 %defattr(644,root,root,755)
457 %attr(755,root,root) %{_sbindir}/pacemakerd
458 %attr(755,root,root) /etc/rc.d/init.d/%{name}
459 %{systemdunitdir}/%{name}.service
460 %{_mandir}/man8/pacemakerd.8*
461 %endif
This page took 0.408221 seconds and 2 git commands to generate.