Kaynağa Gözat

switch to shared libraries to get it running

Ralf S. Engelschall 21 yıl önce
ebeveyn
işleme
a4ed20c21d
2 değiştirilmiş dosya ile 99 ekleme ve 33 silme
  1. 56 15
      heartbeat/heartbeat.patch
  2. 43 18
      heartbeat/heartbeat.spec

+ 56 - 15
heartbeat/heartbeat.patch

@@ -24,11 +24,40 @@ Index: replace/Makefile.in
 -	$(LINK)  $(libreplace_la_LDFLAGS) $(libreplace_la_OBJECTS) $(libreplace_la_LIBADD) $(LIBS)
 +	$(LINK)  $(libreplace_la_LDFLAGS) $(libreplace_la_OBJECTS) $(libreplace_la_LIBADD)
  
+ mostlyclean-compile:
+ 	-rm -f *.$(OBJEXT)
+Index: linux-ha/portability.h
+--- linux-ha/portability.h.orig	2004-04-29 05:12:24.000000000 +0200
++++ linux-ha/portability.h	2004-09-23 13:07:29.240260479 +0200
+@@ -116,10 +116,6 @@
+ #  include <uuid.h>
+ #endif /* HAVE_UUID_H */
+ 
+-#ifdef HAVE_UUID_UUID_H
+-#  include <uuid/uuid.h>
+-#endif /* HAVE_UUID_UUID_H */
+-
+ #ifndef HA_HAVE_NFDS_T 
+ 	typedef unsigned int nfds_t;
+ #endif
+Index: libltdl/Makefile.in
+--- libltdl/Makefile.in.orig	2004-09-18 16:28:06 +0200
++++ libltdl/Makefile.in	2004-09-23 15:54:43 +0200
+@@ -303,9 +303,9 @@
+ 	  rm -f "$${dir}/so_locations"; \
+ 	done
+ libltdl.la: $(libltdl_la_OBJECTS) $(libltdl_la_DEPENDENCIES) 
+-	$(LINK) -rpath $(libdir) $(libltdl_la_LDFLAGS) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD) $(LIBS)
++	$(LINK) -rpath $(libdir) $(libltdl_la_LDFLAGS) $(libltdl_la_OBJECTS) $(libltdl_la_LIBADD)
+ libltdlc.la: $(libltdlc_la_OBJECTS) $(libltdlc_la_DEPENDENCIES) 
+-	$(LINK)  $(libltdlc_la_LDFLAGS) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD) $(LIBS)
++	$(LINK)  $(libltdlc_la_LDFLAGS) $(libltdlc_la_OBJECTS) $(libltdlc_la_LIBADD)
+ 
  mostlyclean-compile:
  	-rm -f *.$(OBJEXT)
 Index: configure
 --- configure.orig	2004-09-18 16:25:06 +0200
-+++ configure	2004-09-22 17:31:04 +0200
++++ configure	2004-09-23 16:05:09 +0200
 @@ -2029,13 +2029,11 @@
  USE_MODULES=0
  echo Our Host OS: $host_os
@@ -54,6 +83,32 @@ Index: configure
  
  
  cat >>confdefs.h <<_ACEOF
+@@ -22173,13 +22171,13 @@
+ 
+ fi
+ 
+-echo "$as_me:$LINENO: checking for getopt_long in -lgnugetopt" >&5
+-echo $ECHO_N "checking for getopt_long in -lgnugetopt... $ECHO_C" >&6
++echo "$as_me:$LINENO: checking for getopt_long in -lgetopt" >&5
++echo $ECHO_N "checking for getopt_long in -lgetopt... $ECHO_C" >&6
+ if test "${ac_cv_lib_gnugetopt_getopt_long+set}" = set; then
+   echo $ECHO_N "(cached) $ECHO_C" >&6
+ else
+   ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lgnugetopt  $LIBS"
++LIBS="-lgetopt  $LIBS"
+ cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+ _ACEOF
+@@ -22242,7 +22240,7 @@
+ #define HAVE_LIBGNUGETOPT 1
+ _ACEOF
+ 
+-  LIBS="-lgnugetopt $LIBS"
++  LIBS="-lgetopt $LIBS"
+ 
+ fi
+ 
 @@ -29823,7 +29821,6 @@
  	# We had to eliminate -Wnested-externs because of libtool changes
          WARNLIST="all missing-prototypes
@@ -71,17 +126,3 @@ Index: configure
  
  
  cat >>confdefs.h <<_ACEOF
-Index: linux-ha/portability.h
---- linux-ha/portability.h.orig	2004-04-29 05:12:24.000000000 +0200
-+++ linux-ha/portability.h	2004-09-23 13:07:29.240260479 +0200
-@@ -116,10 +116,6 @@
- #  include <uuid.h>
- #endif /* HAVE_UUID_H */
- 
--#ifdef HAVE_UUID_UUID_H
--#  include <uuid/uuid.h>
--#endif /* HAVE_UUID_UUID_H */
--
- #ifndef HA_HAVE_NFDS_T 
- 	typedef unsigned int nfds_t;
- #endif

+ 43 - 18
heartbeat/heartbeat.spec

@@ -87,12 +87,14 @@ AutoReqProv:  no
     ./configure \
         --prefix=%{l_prefix} \
         --sysconfdir=%{l_prefix}/etc/heartbeat \
+        --libdir=%{l_prefix}/lib/heartbeat \
         --with-initdir=%{l_prefix}/etc/rc.d \
         --with-group-name=%{l_musr} \
         --with-group-id=%{l_muid} \
         --with-ccmuser-name=%{l_musr} \
         --with-ccmuser-id=%{l_muid} \
-        --disable-shared
+        --enable-static \
+        --enable-shared
 
     #   build package components
     %{l_make} %{l_mflags -O}
@@ -103,31 +105,50 @@ AutoReqProv:  no
     %{l_make} %{l_mflags} install AM_MAKEFLAGS="DESTDIR=$RPM_BUILD_ROOT"
 
     #   strip down installation
-    strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
+    strip  $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true
     rm -f  $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/README.config
     rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/doc
     rm -rf $RPM_BUILD_ROOT%{l_prefix}/include
-    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/lib*.*
     rm -f  $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/*.sh
     rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/logrotate.d
-    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/cts
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/conf
+    rm -f  $RPM_BUILD_ROOT%{l_prefix}/etc/heartbeat/harc
+    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/cts
     rm -f  $RPM_BUILD_ROOT%{l_prefix}/man/man8/*ldirectord*.8
     rm -f  $RPM_BUILD_ROOT%{l_prefix}/sbin/*ldirectord*
-    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/pils
-    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/stonith
-    rm -rf $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/plugins
     rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/lib
     rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/run
-    mv  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat \
-        $RPM_BUILD_ROOT%{l_prefix}/sbin/heartbeat
-    mv  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/apphbd \
-        $RPM_BUILD_ROOT%{l_prefix}/sbin/apphbd
-    mv  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/ipfail \
-        $RPM_BUILD_ROOT%{l_prefix}/sbin/ipfail
-    mv  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/hb_* \
-        $RPM_BUILD_ROOT%{l_prefix}/sbin/
-    mv  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/ha_* \
-        $RPM_BUILD_ROOT%{l_prefix}/sbin/
+    rm -f  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/plugins/*/*.a
+    rm -f  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/stonith/plugins/*/*.a
+    rm -f  $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/pils/plugins/*/*.a
+
+    #   move executables into libexec and wrap them because of shared libraries
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat
+    for prog in \
+        apphbd ha_config hb_standby hb_takeover checkpointd recoverymgrd \
+        heartbeat ipfail meatclient stonith cl_status ccm ccm_testclient send_arp; do
+        if [ -f $RPM_BUILD_ROOT%{l_prefix}/bin/$prog ]; then
+            mv $RPM_BUILD_ROOT%{l_prefix}/bin/$prog \
+               $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
+        elif [ -f $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog ]; then
+            mv $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog \
+               $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
+        elif [ -f $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/$prog ]; then
+            mv $RPM_BUILD_ROOT%{l_prefix}/lib/heartbeat/heartbeat/$prog \
+               $RPM_BUILD_ROOT%{l_prefix}/libexec/heartbeat/$prog
+        fi
+        ( echo "#!/bin/sh"
+          echo "LD_LIBRARY_PATH=\"%{l_prefix}/lib/heartbeat:%{l_prefix}/lib:/usr/lib:/lib\""
+          echo "export LD_LIBRARY_PATH"
+          echo "exec %{l_prefix}/libexec/heartbeat/$prog \"\$@\""
+        ) >$RPM_BUILD_ROOT%{l_prefix}/sbin/$prog
+        chmod 755 $RPM_BUILD_ROOT%{l_prefix}/sbin/$prog
+    done
+
+    #   create run-time directory
+    %{l_shtool} mkdir -f -p -m 755 \
+        $RPM_BUILD_ROOT%{l_prefix}/var/heartbeat
 
     #   install default configuration files
     %{l_shtool} install -c -m 644 %{l_value -s -a} \
@@ -144,7 +165,11 @@ AutoReqProv:  no
         $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
 
     #   determine installation files
-    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT %{l_files_std}
+    %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
+        %{l_files_std} \
+        '%config %{l_prefix}/etc/heartbeat/ha.cf' \
+        '%config %{l_prefix}/etc/heartbeat/haresources' \
+        '%config %{l_prefix}/etc/heartbeat/authkeys'
 
 %files -f files