2 %bcond_without corosync # build with corosync stack
3 %bcond_without heartbeat # build without heartbeat stack
4 Summary: The scalable High-Availability cluster resource manager
8 License: GPL v2+; LGPL v2.1+
9 Group: Applications/System
10 Source0: https://github.com/ClusterLabs/pacemaker/archive/Pacemaker-%{version}.tar.gz
11 # Source0-md5: 24f3a2bdbac63e640062c207eb838016
12 Source1: %{name}.tmpfiles
14 Source3: %{name}.service
15 Patch0: %{name}-libs.patch
16 URL: http://clusterlabs.org/wiki/Main_Page
17 BuildRequires: asciidoc
18 BuildRequires: autoconf
19 BuildRequires: automake
20 BuildRequires: bzip2-devel
21 %{?with_corosync:BuildRequires: corosync-devel >= 2.0}
22 BuildRequires: e2fsprogs-devel
23 BuildRequires: glib2-devel
24 BuildRequires: gnutls-devel
25 %{?with_heartbeat:BuildRequires: heartbeat-devel >= 3.0.5-6}
26 BuildRequires: libesmtp-devel
28 BuildRequires: libtool
29 BuildRequires: libxml2-devel
30 BuildRequires: libxslt-devel
31 BuildRequires: ncurses-devel
32 BuildRequires: net-snmp-devel
33 BuildRequires: pam-devel
34 BuildRequires: pkgconfig
35 BuildRequires: python-devel
36 BuildRequires: rpm-pythonprov
37 BuildRequires: rpmbuild(macros) >= 1.644
39 BuildRequires: pciutils-devel
40 BuildRequires: cluster-glue-libs-devel
41 Requires: cluster-glue
42 Requires: resource-agents
43 Requires: %{name}-libs = %{version}-%{release}
44 Provides: group(haclient)
45 Provides: user(hacluster)
46 Suggests: pacemaker-shell
47 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
49 # Unresolved symbol in libpe_status.so.3.0.0: get_object_root
50 # not handled by -libs patch, as it is a circular dependency
51 %define skip_post_check_so libpe_status.so.*
54 Pacemaker makes use of your cluster infrastructure (either
55 Corosync/OpenAIS or Heartbeat) to stop, start and monitor the health
56 of the services (aka. resources) you want the cluster to provide.
58 It can do this for clusters of practically any size and comes with a
59 powerful dependency model that allows the administrator to accurately
60 express the relationships (both ordering and location) between the
63 Pacemaker was formely a part of Heartbeat.
66 Summary: Pacemaker libraries
70 Shared libraries for Pacemaker.
73 Summary: Pacemaker for Heartbeat cluster
74 Group: Applications/System
76 Obsoletes: %{name} < 1.1
77 Conflicts: heartbeat < 2.99.0
78 Requires: %{name} = %{version}-%{release}
80 %description heartbeat
81 This package allows using Pacemaker on a Heartbeat cluster.
84 Summary: Pacemaker for Corosync cluster
85 Group: Applications/System
87 Requires: systemd-units >= 38
88 Requires: %{name} = %{version}-%{release}
91 This package allows using Pacemaker on a Corosync cluster.
94 Summary: Header files for Pacemaker libraries
95 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Pacemaker
96 Group: Development/Libraries
97 Requires: %{name}-libs = %{version}-%{release}
100 Header files for Pacemaker libraries.
103 Summary: Static Pacemaker libraries
104 Summary(pl.UTF-8): Statyczne biblioteki Pacemaker
105 Group: Development/Libraries
106 Requires: %{name}-devel = %{version}-%{release}
109 Static Pacemaker libraries.
112 %setup -qn pacemaker-Pacemaker-%{version}
123 CPPFLAGS="%{rpmcppflags} %{?with_heartbeat:-I/usr/include/heartbeat}" \
124 --with-heartbeat%{!?with_heartbeat:=no} \
125 --with-corosync%{!?with_corosync:=no} \
129 --with-initdir=/etc/rc.d/init.d \
130 --disable-fatal-warnings
135 rm -rf $RPM_BUILD_ROOT
136 install -d $RPM_BUILD_ROOT{/usr/lib/tmpfiles.d,/etc/rc.d/init.d,%{systemdunitdir}}
139 DESTDIR=$RPM_BUILD_ROOT
141 rm -r $RPM_BUILD_ROOT%{_docdir}/pacemaker
143 install %{SOURCE1} $RPM_BUILD_ROOT/usr/lib/tmpfiles.d/%{name}.conf
144 install %{SOURCE2} $RPM_BUILD_ROOT/etc/rc.d/init.d/%{name}
145 install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/%{name}.service
148 rm -rf $RPM_BUILD_ROOT
151 %groupadd -g 60 haclient
152 %useradd -u 17 -d /var/lib/heartbeat/cores/hacluster -c "Heartbeat User" -g haclient hacluster
155 /sbin/chkconfig --add %{name}
156 %service %{name} restart "%{name} daemon"
157 %systemd_post %{name}.service
160 if [ "$1" = "0" ]; then
161 %service %{name} stop
162 /sbin/chkconfig --del %{name}
166 %systemd_preun %{name}.service
171 %post libs -p /sbin/ldconfig
172 %postun libs -p /sbin/ldconfig
175 %defattr(644,root,root,755)
176 %doc doc/README* doc/*.html doc/*.txt AUTHORS COPYING*
177 %{_datadir}/pacemaker
178 %dir %{_libdir}/%{name}
179 %attr(755,root,root) %{_libdir}/%{name}/attrd
180 %attr(755,root,root) %{_libdir}/%{name}/cib
181 %attr(755,root,root) %{_libdir}/%{name}/cibmon
182 %attr(755,root,root) %{_libdir}/%{name}/crmd
183 %attr(755,root,root) %{_libdir}/%{name}/lrmd
184 %attr(755,root,root) %{_libdir}/%{name}/lrmd_test
185 %attr(755,root,root) %{_libdir}/%{name}/pengine
186 %attr(755,root,root) %{_libdir}/%{name}/stonith-test
187 %attr(755,root,root) %{_libdir}/%{name}/stonithd
188 %attr(755,root,root) %{_bindir}/ccs2cib
189 %attr(755,root,root) %{_bindir}/ccs_flatten
190 %attr(755,root,root) %{_bindir}/disable_rgmanager
191 %attr(755,root,root) %{_sbindir}/attrd_updater
192 %attr(755,root,root) %{_sbindir}/cibadmin
193 %attr(755,root,root) %{_sbindir}/crm_attribute
194 %attr(755,root,root) %{_sbindir}/crm_diff
195 %attr(755,root,root) %{_sbindir}/crm_error
196 %attr(755,root,root) %{_sbindir}/crm_failcount
197 %attr(755,root,root) %{_sbindir}/crm_master
198 %attr(755,root,root) %{_sbindir}/crm_mon
199 %attr(755,root,root) %{_sbindir}/crm_node
200 %attr(755,root,root) %{_sbindir}/crm_report
201 %attr(755,root,root) %{_sbindir}/crm_resource
202 %attr(755,root,root) %{_sbindir}/crm_simulate
203 %attr(755,root,root) %{_sbindir}/crm_shadow
204 %attr(755,root,root) %{_sbindir}/crm_standby
205 %attr(755,root,root) %{_sbindir}/crm_ticket
206 %attr(755,root,root) %{_sbindir}/crm_uuid
207 %attr(755,root,root) %{_sbindir}/crm_verify
208 %attr(755,root,root) %{_sbindir}/crmadmin
209 %attr(755,root,root) %{_sbindir}/fence_legacy
210 %attr(755,root,root) %{_sbindir}/fence_pcmk
211 %attr(755,root,root) %{_sbindir}/iso8601
212 %attr(755,root,root) %{_sbindir}/stonith_admin
214 %{_datadir}/snmp/mibs
217 %dir %attr(750,hacluster,haclient) %{_var}/run/crm
218 %dir %{_prefix}/lib/ocf/resource.d/pacemaker
219 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ClusterMon
220 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Dummy
221 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthCPU
222 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/HealthSMART
223 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/Stateful
224 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SysInfo
225 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/SystemHealth
226 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/controld
227 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/o2cb
228 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/ping
229 %attr(755,root,root) %{_prefix}/lib/ocf/resource.d/pacemaker/pingd
230 /usr/lib/tmpfiles.d/%{name}.conf
231 %dir /var/lib/%{name}
232 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/blackbox
233 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/cib
234 %dir %attr(750,hacluster,haclient) /var/lib/%{name}/pengine
237 %defattr(644,root,root,755)
238 %attr(755,root,root) %{_libdir}/lib*.so.*.*
239 %attr(755,root,root) %{_libdir}/lib*.so.[0-9]
241 %if %{with heartbeat}
243 %defattr(644,root,root,755)
244 %attr(755,root,root) %{_libdir}/heartbeat/attrd
245 %attr(755,root,root) %{_libdir}/heartbeat/cib
246 %attr(755,root,root) %{_libdir}/heartbeat/crmd
247 %attr(755,root,root) %{_libdir}/heartbeat/pengine
248 %attr(755,root,root) %{_libdir}/heartbeat/stonithd
253 %defattr(644,root,root,755)
254 %attr(755,root,root) %{_sbindir}/pacemakerd
255 %attr(755,root,root) /etc/rc.d/init.d/%{name}
256 %{systemdunitdir}/%{name}.service
260 %defattr(644,root,root,755)
261 %{_includedir}/pacemaker
264 %{_pkgconfigdir}/*.pc
267 %defattr(644,root,root,755)