heartbeat.spec 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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: 20040923
  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. --with-initdir=%{l_prefix}/etc/rc.d \
  85. --with-group-name=%{l_musr} \
  86. --with-group-id=%{l_muid} \
  87. --with-ccmuser-name=%{l_musr} \
  88. --with-ccmuser-id=%{l_muid} \
  89. --enable-static \
  90. --enable-shared
  91. # build package components
  92. %{l_make} %{l_mflags -O}
  93. %install
  94. # install package components
  95. rm -rf $RPM_BUILD_ROOT
  96. %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
  97. # strip down installation
  98. strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
  99. rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/README.config
  100. rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
  101. rm -rf $RPM_BUILD_ROOT%{l_prefix}/include
  102. rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/*.sh
  103. rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/logrotate.d
  104. rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/conf
  105. rm -f $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/harc
  106. rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/cts
  107. rm -f $RPM_BUILD_ROOT%{l_prefix}/man/man8/*ldirectord*.8
  108. rm -f $RPM_BUILD_ROOT%{l_prefix}/sbin/*ldirectord*
  109. rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/lib
  110. rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/run
  111. rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/plugins/*/*.a
  112. rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/stonith/plugins/*/*.a
  113. rm -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/pils/plugins/*/*.a
  114. # move executables into libexec and wrap them because of shared libraries
  115. %{l_shtool} mkdir -f -p -m 755 \
  116. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat
  117. for prog in \
  118. apphbd ha_config hb_standby hb_takeover checkpointd recoverymgrd \
  119. heartbeat ipfail meatclient stonith cl_status ccm ccm_testclient send_arp; do
  120. if [ -f $RPM_BUILD_ROOT%{l_prefix}/bin/$prog ]; then
  121. mv $RPM_BUILD_ROOT%{l_prefix}/bin/$prog \
  122. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
  123. elif [ -f $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog ]; then
  124. mv $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog \
  125. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
  126. elif [ -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/$prog ]; then
  127. mv $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/$prog \
  128. $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
  129. fi
  130. ( echo "#!/bin/sh"
  131. echo "LD_LIBRARY_PATH=\"%{l_prefix}/lib/heartbeat:%{l_prefix}/lib:/usr/lib:/lib\""
  132. echo "export LD_LIBRARY_PATH"
  133. echo "exec %{l_prefix}/libexec/heartbeat/$prog \"\$@\""
  134. ) >$RPM_BUILD_ROOT%{l_prefix}/sbin/$prog
  135. chmod 755 $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog
  136. done
  137. # create run-time directory
  138. %{l_shtool} mkdir -f -p -m 755 \
  139. $RPM_BUILD_ROOT%{l_prefix}/var/heartbeat
  140. # install default configuration files
  141. l_hostname=`%{l_shtool} echo -e %h`
  142. %{l_shtool} install -c -m 644 %{l_value -s -a} \
  143. -e "s;@l_hostname@;$l_hostname;g" \
  144. %{SOURCE ha.cf} %{SOURCE haresources} \
  145. $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/
  146. %{l_shtool} install -c -m 600 %{l_value -s -a} \
  147. %{SOURCE authkeys} $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/
  148. # install run-command script
  149. %{l_shtool} mkdir -f -p -m 755 \
  150. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
  151. %{l_shtool} install -c -m 755 %{l_value -s -a} \
  152. %{SOURCE rc.heartbeat} \
  153. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  154. # determine installation files
  155. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  156. %{l_files_std} \
  157. '%config %{l_prefix}/etc/heartbeat/ha.cf' \
  158. '%config %{l_prefix}/etc/heartbeat/haresources' \
  159. '%config %{l_prefix}/etc/heartbeat/authkeys'
  160. %files -f files
  161. %clean
  162. rm -rf $RPM_BUILD_ROOT