heartbeat.spec 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. ##
  2. ## heartbeat.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2004 The OpenPKG Project <http://www.openpkg.org/>
  4. ## Copyright (c) 2000-2004 Ralf S. Engelschall <rse@engelschall.com>
  5. ## Copyright (c) 2000-2004 Cable & Wireless <http://www.cw.com/>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # package information
  26. Name: heartbeat
  27. Summary: High-Availability Communication Daemon
  28. URL: http://www.linux-ha.org/heartbeat/
  29. Vendor: Alan Roberston
  30. Packager: The OpenPKG Project
  31. Distribution: OpenPKG
  32. Class: EVAL
  33. Group: System
  34. License: GPL
  35. Version: 1.2.3
  36. Release: 20041007
  37. # list of sources
  38. Source0: http://www.linux-ha.org/download/heartbeat-%{version}.tar.gz
  39. Source1: ha.cf
  40. Source2: haresources
  41. Source3: authkeys
  42. Source4: rc.heartbeat
  43. Patch0: heartbeat.patch
  44. # build information
  45. Prefix: %{l_prefix}
  46. BuildRoot: %{l_buildroot}
  47. BuildPreReq: OpenPKG, openpkg >= 20040130, perl, pkgconfig, make, gcc
  48. PreReq: OpenPKG, openpkg >= 20040130, perl
  49. BuildPreReq: libnet, libxml, uuid, glib, snmp, curl, openssl, gettext, libiconv, getopt
  50. PreReq: libnet, libxml, uuid, glib, snmp, curl, openssl, gettext, libiconv, getopt
  51. AutoReq: no
  52. AutoReqProv: no
  53. %description
  54. The heartbeat program is one of the core components of the Linux
  55. High-Availability (Linux-HA) project. It provides "warm" failover
  56. between two nodes in either automatic or controll way. It uses
  57. redundant communication links via Ethernet or serial line in
  58. broadcast, multicast and unicast mode.
  59. %track
  60. prog heartbeat = {
  61. version = %{version}
  62. url = http://www.linux-ha.org/download/
  63. regex = heartbeat-(\d+\.[02468]\.\d+)\.tar\.gz
  64. }
  65. %prep
  66. # unpack and patch package
  67. %setup -q
  68. %patch -p0
  69. %{l_shtool} subst -s -q \
  70. -e 's;/ha\.d/;/;g' \
  71. -e 's;/ha\.d;;g' \
  72. `find . -type f -print`
  73. %build
  74. # configure package
  75. CC="%{l_cc}" \
  76. CFLAGS="%{l_cflags -O}" \
  77. CPPFLAGS="%{l_cppflags}" \
  78. LDFLAGS="%{l_ldflags}" \
  79. LIBS="-lintl -liconv -lgetopt" \
  80. ./configure \
  81. --prefix=%{l_prefix} \
  82. --sysconfdir=%{l_prefix}/etc/heartbeat \
  83. --libdir=%{l_prefix}/lib/heartbeat \
  84. --datadir=%{l_prefix}/share/heartbeat \
  85. --localstatedir=%{l_prefix}/var/heartbeat \
  86. --with-initdir=%{l_prefix}/etc/rc.d \
  87. --with-group-name=%{l_musr} \
  88. --with-group-id=%{l_muid} \
  89. --with-ccmuser-name=%{l_musr} \
  90. --with-ccmuser-id=%{l_muid} \
  91. --enable-static \
  92. --enable-shared
  93. # build package components
  94. %{l_make} %{l_mflags -O}
  95. %install
  96. # install package components
  97. rm -rf $RPM_BUILD_ROOT
  98. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  99. # strip down installation
  100. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  101. rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/README.config
  102. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/heartbeat
  103. rm -rf $RPM_BUILD_ROOT%{l_prefix}/include
  104. rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/*.sh
  105. rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/logrotate.d
  106. rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/conf
  107. rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/cts
  108. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/*ldirectord*.8
  109. rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/*ldirectord*
  110. rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/plugins/*/*.a
  111. rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/stonith/plugins/*/*.a
  112. rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/pils/plugins/*/*.a
  113. # move executables into libexec and wrap them because of shared libraries
  114. %{l_shtool} mkdir -f -p -m 755 \
  115. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat
  116. for prog in \
  117. apphbd ha_config hb_standby hb_takeover checkpointd recoverymgrd \
  118. heartbeat ipfail meatclient stonith cl_status ccm ccm_testclient; do
  119. if [ -f $RPM_BUILD_ROOT%{l_prefix}/bin/$prog ]; then
  120. mv $RPM_BUILD_ROOT%{l_prefix}/bin/$prog \
  121. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
  122. elif [ -f $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog ]; then
  123. mv $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog \
  124. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
  125. elif [ -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/$prog ]; then
  126. mv $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/$prog \
  127. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
  128. fi
  129. ( echo "#!/bin/sh"
  130. echo "LD_LIBRARY_PATH=\"%{l_prefix}/lib/heartbeat:%{l_prefix}/lib:/usr/lib:/lib\""
  131. echo "export LD_LIBRARY_PATH"
  132. echo "exec %{l_prefix}/libexec/heartbeat/$prog \"\$@\""
  133. ) >$RPM_BUILD_ROOT%{l_prefix}/sbin/$prog
  134. chmod 755 $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog
  135. done
  136. # create run-time directory
  137. %{l_shtool} mkdir -f -p -m 755 \
  138. $RPM_BUILD_ROOT%{l_prefix}/var/heartbeat
  139. # install default configuration files
  140. l_hostname=`%{l_shtool} echo -e %h`
  141. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  142. -e "s;@l_hostname@;$l_hostname;g" \
  143. %{SOURCE ha.cf} %{SOURCE haresources} \
  144. $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/
  145. %{l_shtool} install -c -m 600 %{l_value -s -a} \
  146. %{SOURCE authkeys} $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/
  147. # install run-command script
  148. %{l_shtool} mkdir -f -p -m 755 \
  149. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  150. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  151. %{SOURCE rc.heartbeat} \
  152. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  153. # determine installation files
  154. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  155. %{l_files_std} \
  156. '%config %{l_prefix}/etc/heartbeat/ha.cf' \
  157. '%config %{l_prefix}/etc/heartbeat/haresources' \
  158. '%config %{l_prefix}/etc/heartbeat/authkeys'
  159. %files -f files
  160. %clean
  161. rm -rf $RPM_BUILD_ROOT