2 # - In post-2.1.4 releases, Linux-HA code is packaged in three different
3 # sub-projects, leading to three separate tarballs for each release: one for
4 # Heartbeat, one for Cluster Glue, and one for the Resource Agents. The three
5 # projects have separate release cycles, a release for one sub-project may or
6 # may not coincide with that of another.
7 # The former Heartbeat CRM is now maintained as the Pacemaker project, also
8 # on its own release cycle.
10 # - from above note: Cluster Glue, Resource Agents, Heartbeat CRM packages
11 # - resource agent patch: heartbeat-no_ipmilan_test.patch
12 # - merge mibs supackage from 2.1 branch
13 # - cleanup deps, users for 3.x
14 # - fixup deps, inner deps, think of subpackages, ugprade path from 2.1
16 %include /usr/lib/rpm/macros.perl
19 Summary: Heartbeat - subsystem for High-Availability Linux
20 Summary(es.UTF-8): Subsistema heartbeat para Linux "High-Availability"
21 Summary(pl.UTF-8): Podsystem heartbeat dla systemów o podwyższonej niezawodności
22 Summary(pt_BR.UTF-8): Implementa sistema de monitoração (heartbeats) visando Alta Disponibilidade
25 Release: 0.%{subver}.%{rel}
27 Group: Applications/System
28 Source0: http://www.linux-ha.org/w/images/3/32/Heartbeat-%{version}-%{subver}.tar.bz2
29 # Source0-md5: 3c45d668ebb9f964caa1b40fd0808745
31 Patch0: %{name}-ac.patch
32 URL: http://www.linux-ha.org/Heartbeat
33 BuildRequires: OpenIPMI-devel >= 2.0.3
34 BuildRequires: autoconf
35 BuildRequires: automake
36 BuildRequires: cluster-glue-libs-devel
37 BuildRequires: docbook-dtd44-xml
38 BuildRequires: docbook-style-xsl
39 BuildRequires: gdbm-devel
40 BuildRequires: glib2-devel
41 BuildRequires: glibc-misc
42 BuildRequires: gnutls-devel
43 BuildRequires: libltdl-devel
44 BuildRequires: libnet-devel >= 1.1.0
45 BuildRequires: libnl-devel
46 BuildRequires: libtool
47 BuildRequires: libuuid-devel
48 BuildRequires: libwrap-devel
49 BuildRequires: libxml2-devel
50 BuildRequires: libxslt-progs
51 BuildRequires: lm_sensors-devel
52 BuildRequires: ncurses-devel >= 5.4
53 BuildRequires: net-snmp-devel >= 5.1
54 BuildRequires: pam-devel
55 BuildRequires: pkgconfig
56 BuildRequires: python-devel
57 BuildRequires: rpm-perlprov
58 BuildRequires: rpm-pythonprov
59 BuildRequires: rpmbuild(macros) >= 1.268
60 BuildRequires: swig-perl >= 1.3.25
61 BuildRequires: swig-python >= 1.3.25
62 Requires: %{name}-libs = %{version}-%{release}
63 Requires: psmisc >= 22.5-2
65 Requires: resource-agents
66 Requires: syslogdaemon
69 Obsoletes: perl-heartbeat
70 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
72 %define specflags -fgnu89-inline
73 %define filterout_ld -Wl,--as-needed
76 heartbeat is a basic heartbeat subsystem for Linux-HA. It will run
77 scripts at initialization, and when machines go up or down. This
78 version will also perform IP address takeover using gratuitous ARPs.
79 It works correctly for a 2-node configuration, and is extensible to
80 larger configurations.
82 It implements the following kinds of heartbeats:
83 - Bidirectional Serial Rings ("raw" serial ports)
85 %description -l es.UTF-8
86 heartbeat es un sistema básico para Linux-HA. La función de este
87 software es ejecutar scripts en la inicialización y al apagar las
88 máquinas que lo utilizan.
90 %description -l pl.UTF-8
91 heartbeat jest podstawowym podsystemem dla systemów o podwyższonej
92 dostępności budowanych w oparciu o Linuksa. Zajmuje się uruchamianiem
93 skryptów podczas startu i zamykania systemu. Ta wersja pakietu pozwala
94 na przejmowanie adresów IP. Oprogramowanie działa poprawnie dla
95 konfiguracji składającej się z 2 hostów, można je również stosować do
96 bardziej skomplikowanych konfiguracji.
99 Summary: Heartbeat libraries
100 Summary(pl.UTF-8): Biblioteki heartbeat
102 Conflicts: heartbeat < 2.99.2-0.1
107 %description libs -l pl.UTF-8
108 Biblioteki heartbeat.
111 Summary: Heartbeat developement header files and libraries
112 Summary(pl.UTF-8): Pliki nagłówkowe i biblioteki heartbeat
113 Group: Development/Libraries
114 Requires: %{name}-libs = %{version}-%{release}
117 Heartbeat developement header files and libraries.
119 %description devel -l pl.UTF-8
120 Pliki nagłówkowe i biblioteki heartbeat.
123 Summary: Heartbeat static libraries
124 Summary(pl.UTF-8): Biblioteki statyczne heartbeat
125 Group: Development/Libraries
126 Requires: %{name}-devel = %{version}-%{release}
129 Heartbeat static libraries.
131 %description static -l pl.UTF-8
132 Biblioteki statyczne heartbeat.
135 Summary: Cluster Test Suite
136 Summary(pl.UTF-8): Zestaw testów klastra
137 Group: Applications/System
138 Requires: %{name} = %{version}-%{release}
141 Cluster Test Suite for heartbeat.
143 %description cts -l pl.UTF-8
144 Zestaw testów klastra opartego o heartbeat.
147 %setup -qn %{name}-%{version}-%{subver}
152 %{__libtoolize} --ltdl
158 --with-initdir=/etc/rc.d/init.d \
159 --docdir=%{_docdir}/%{name}-%{version} \
160 --enable-fatal-warnings=no \
163 --enable-snmp-subagent
168 rm -rf $RPM_BUILD_ROOT
169 %{__make} -j1 install \
170 DESTDIR=$RPM_BUILD_ROOT
172 install -d $RPM_BUILD_ROOT/var/run/heartbeat
174 # plugins are lt_dlopened, but using *.so names, so *.la are not used
175 rm -f $RPM_BUILD_ROOT%{_libdir}/heartbeat/plugins/*/*.{la,a}
177 rm -f $RPM_BUILD_ROOT/etc/rc.d/init.d/heartbeat
178 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/heartbeat
180 > $RPM_BUILD_ROOT/etc/ha.d/haresources
181 echo -e "auth 2\n2 crc" > $RPM_BUILD_ROOT/etc/ha.d/authkeys
182 cp -a doc/ha.cf $RPM_BUILD_ROOT/etc/ha.d
184 for tool in hb_addnode hb_delnode hb_standby hb_takeover; do
185 tool=%{_datadir}/%{name}/$tool
186 [ -x $RPM_BUILD_ROOT$tool ] || exit 1
187 ln -s $tool $RPM_BUILD_ROOT%{_bindir}
190 rm $RPM_BUILD_ROOT%{_datadir}/heartbeat/cts/README
192 sed -i -e's, /%{_lib}/libpam.la, /usr/%{_lib}/libpam.la,g' $RPM_BUILD_ROOT%{_libdir}/*.la
195 rm -rf $RPM_BUILD_ROOT
198 /sbin/chkconfig --add heartbeat
199 %service heartbeat restart
202 if [ "$1" = "0" ]; then
203 %service -q heartbeat stop
204 /sbin/chkconfig --del heartbeat
207 %post libs -p /sbin/ldconfig
208 %postun libs -p /sbin/ldconfig
211 %defattr(644,root,root,755)
212 %doc doc/{*.html,AUTHORS,apphbd.cf,authkeys,ha.cf,haresources,startstop}
213 %dir %{_libdir}/heartbeat
214 %dir %{_libdir}/heartbeat/plugins
215 %dir %{_libdir}/heartbeat/plugins/*
216 %attr(755,root,root) %{_libdir}/heartbeat/plugins/*/*.so
217 %attr(755,root,root) %{_libdir}/heartbeat/[!cp]*
218 %attr(755,root,root) %{_libdir}/heartbeat/c[!t]*
219 %dir %{_datadir}/heartbeat
220 %attr(755,root,root) %{_datadir}/heartbeat/BasicSanityCheck
221 %attr(755,root,root) %{_datadir}/heartbeat/ResourceManager
222 %attr(755,root,root) %{_datadir}/heartbeat/TestHeartbeatComm
223 %attr(755,root,root) %{_datadir}/heartbeat/ha_*
224 %attr(755,root,root) %{_datadir}/heartbeat/hb_*
225 %attr(755,root,root) %{_datadir}/heartbeat/mach_down
226 %attr(755,root,root) %{_datadir}/heartbeat/req_resource
227 %dir %{_sysconfdir}/ha.d
228 %attr(755,root,root) %{_sysconfdir}/ha.d/rc.d
229 %attr(755,root,root) %{_sysconfdir}/ha.d/resource.d
230 %{_sysconfdir}/ha.d/README.config
231 %attr(755,root,root) %{_sysconfdir}/ha.d/harc
232 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/heartbeat
233 %attr(754,root,root) /etc/rc.d/init.d/heartbeat
234 %dir /var/run/heartbeat
235 %attr(750,hacluster,haclient) %dir /var/run/heartbeat/ccm
236 %dir /var/lib/heartbeat
238 %{_mandir}/man8/[a-h]*.8*
239 %{_mandir}/man5/authkeys.5*
240 %{_mandir}/man5/ha.cf.5*
241 %attr(755,root,root) %{_bindir}/cl_respawn
242 %attr(2755,root,haclient) %{_bindir}/cl_status
243 %attr(755,root,root) %{_bindir}/hb_addnode
244 %attr(755,root,root) %{_bindir}/hb_delnode
245 %attr(755,root,root) %{_bindir}/hb_standby
246 %attr(755,root,root) %{_bindir}/hb_takeover
247 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ha.d/haresources
248 %attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ha.d/authkeys
249 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ha.d/ha.cf
252 %defattr(644,root,root,755)
253 %attr(755,root,root) %{_libdir}/libapphb.so.*.*.*
254 %attr(755,root,root) %ghost %{_libdir}/libapphb.so.2
255 %attr(755,root,root) %{_libdir}/libccmclient.so.*.*.*
256 %attr(755,root,root) %ghost %{_libdir}/libccmclient.so.1
257 %attr(755,root,root) %{_libdir}/libclm.so.*.*.*
258 %attr(755,root,root) %ghost %{_libdir}/libclm.so.1
259 %attr(755,root,root) %{_libdir}/libhbclient.so.*.*.*
260 %attr(755,root,root) %ghost %{_libdir}/libhbclient.so.1
263 %defattr(644,root,root,755)
264 %{_includedir}/heartbeat
267 %attr(755,root,root) %{_libdir}/libapphb.so
268 %attr(755,root,root) %{_libdir}/libccmclient.so
269 %attr(755,root,root) %{_libdir}/libclm.so
270 %attr(755,root,root) %{_libdir}/libhbclient.so
271 %{_libdir}/libapphb.la
272 %{_libdir}/libccmclient.la
274 %{_libdir}/libhbclient.la
277 %defattr(644,root,root,755)
278 %{_libdir}/libapphb.a
279 %{_libdir}/libccmclient.a
281 %{_libdir}/libhbclient.a
284 %defattr(644,root,root,755)
286 %dir %{_datadir}/heartbeat/cts
287 %attr(755,root,root) %{_datadir}/heartbeat/cts/*.py
288 %{_datadir}/heartbeat/cts/*.py[co]
289 %attr(755,root,root) %{_datadir}/heartbeat/cts/*.sh
290 %attr(755,root,root) %{_datadir}/heartbeat/cts/*Dummy