Author: aconway Date: Wed Dec 17 15:44:04 2008 New Revision: 727583 URL: http://svn.apache.org/viewvc?rev=727583&view=rev Log: Handle package name changes in Fedora10: openais->corosync cman->cmanlib
Modified: qpid/trunk/qpid/cpp/INSTALL qpid/trunk/qpid/cpp/configure.ac qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.h qpid/trunk/qpid/cpp/src/qpid/cluster/types.h qpid/trunk/qpid/cpp/src/tests/ais_check Modified: qpid/trunk/qpid/cpp/INSTALL URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/INSTALL?rev=727583&r1=727582&r2=727583&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/INSTALL (original) +++ qpid/trunk/qpid/cpp/INSTALL Wed Dec 17 15:44:04 2008 @@ -90,13 +90,19 @@ 2.2.1. Using Package Management Tools ===================================== -On linux most packages can be installed using your distribution's package -management tool. For example on Fedora: - # yum install boost-devel e2fsprogs-devel pkgconfig openais openais-devel - # yum install gcc-c++ make autoconf automake help2man libtool doxygen graphviz ruby + +On linux most packages can be installed using your distribution's +package management tool. For example on Fedora: + + # yum install boost-devel e2fsprogs-devel pkgconfig gcc-c++ make autoconf automake ruby libtool help2man doxygen graphviz + +The optional clustering packages changed name in Fedora 10. On Fedora 9 or earlier: + # yum install openais-devel cman-devel +On Fedora 10 or later + # yum install corosync-devel cmanlib-devel Follow the manual installation instruction below for any packages not -available through yum. +available through your distributions packaging tool. 2.2.2. From Source ================== Modified: qpid/trunk/qpid/cpp/configure.ac URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/configure.ac?rev=727583&r1=727582&r2=727583&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/configure.ac (original) +++ qpid/trunk/qpid/cpp/configure.ac Wed Dec 17 15:44:04 2008 @@ -165,44 +165,44 @@ # Check for optional cluster requirements. tmp_LIBS=$LIBS -LDFLAGS="$LDFLAGS -L/usr/lib/openais -L/usr/lib64/openais" +LDFLAGS="$LDFLAGS -L/usr/lib/openais -L/usr/lib64/openais -L/usr/lib/corosync -L/usr/lib64/corosync" +AC_CHECK_LIB([cpg],[cpg_local_get],[have_libcpg=yes],) +AC_CHECK_HEADERS([openais/cpg.h corosync/cpg.h],[have_cpg_h=yes],) AC_ARG_WITH([cpg], [AS_HELP_STRING([--with-cpg], [Build with CPG support for clustering.])], [case "${withval}" in - yes) # yes - enable - with_CPG=yes - AC_CHECK_LIB([cpg],[cpg_local_get],,[AC_MSG_ERROR([libcpg not found, install openais])]) - AC_CHECK_HEADERS([openais/cpg.h],,[AC_MSG_ERROR([openais/cpg.h not found, install openais-devel])]) + yes) # yes - require dependencies + test x$have_libcpg = xyes || AC_MSG_ERROR([libcpg not found, install openais or corosync]) + test x$have_cpg_h = xyes || AC_MSG_ERROR([cpg.h not found, install openais-devel or corosync-devel]) + with_cpg=yes ;; - no) with_CPG=no ;; + no) with_cpg=no ;; *) AC_MSG_ERROR([Bad value ${withval} for --with-cpg option]) ;; esac], [ # not specified - use if present - with_CPG=yes - AC_CHECK_LIB([cpg],[cpg_local_get],,[with_CPG=no]) - AC_CHECK_HEADERS([openais/cpg.h],,[with_CPG=no]) + test x$have_libcpg = xyes -a x$have_cpg_h = xyes && with_cpg=yes ] ) -AM_CONDITIONAL([HAVE_LIBCPG], [test x$with_CPG = xyes]) +AM_CONDITIONAL([HAVE_LIBCPG], [test x$with_cpg = xyes]) +AC_CHECK_LIB([cman],[cman_is_quorate],have_libcman=yes,) +AC_CHECK_HEADERS([libcman.h],have_libcman_h=yes,) AC_ARG_WITH([libcman], [AS_HELP_STRING([--with-libcman], [Integration with libcman quorum service.])], [case "${withval}" in - yes) # yes - enable - with_LIBCMAN=yes - AC_CHECK_LIB([cman],[cman_is_quorate],,[AC_MSG_ERROR([libcman not found, install libcman package.])]) - AC_CHECK_HEADERS([libcman.h],,[AC_MSG_ERROR([libcman.h not found, install cman-devel])]) + yes) # yes - require dependencies + test x$have_libcman = xyes || AC_MSG_ERROR([libcman not found, install cman-devel or cmanlib-devel]) + test x$have_libcman_h = xyes || AC_MSG_ERROR([libcman.h not found, install cman-devel or cmanlib-devel]) + with_libcman=yes ;; - no) with_LIBCMAN=no ;; + no) with_libcman=no ;; *) AC_MSG_ERROR([Bad value ${withval} for --with-libcman option]) ;; esac], - [ # not specified - use if present and with_CPG=yes - with_LIBCMAN=$with_CPG - AC_CHECK_LIB([cman],[cman_is_quorate],,with_LIBCMAN=no) - AC_CHECK_HEADERS([libcman.h],,with_LIBCMAN=no) + [ # not specified - use if present and we're using with_cpg + test x$have_libcman = xyes -a x$have_libcman_h = xyes -a x$with_cpg = xyes && with_libcman=yes ] ) -AM_CONDITIONAL([HAVE_LIBCMAN], [test x$with_LIBCMAN = xyes]) +AM_CONDITIONAL([HAVE_LIBCMAN], [test x$with_libcman = xyes]) LIBS=$tmp_LIBS Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp?rev=727583&r1=727582&r2=727583&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp (original) +++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.cpp Wed Dec 17 15:44:04 2008 @@ -69,7 +69,10 @@ } Cpg::Cpg(Handler& h) : IOHandle(new sys::IOHandlePrivate), handler(h), isShutdown(false) { - cpg_callbacks_t callbacks = { &globalDeliver, &globalConfigChange }; + cpg_callbacks_t callbacks; + ::memset(&callbacks, sizeof(callbacks), 0); + callbacks.cpg_deliver_fn = &globalDeliver; + callbacks.cpg_confchg_fn = &globalConfigChange; check(cpg_initialize(&handle, &callbacks), "Cannot initialize CPG"); check(cpg_context_set(handle, this), "Cannot set CPG context"); // Note: CPG is currently unix-specific. If CPG is ported to Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.h?rev=727583&r1=727582&r2=727583&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/cluster/Cpg.h Wed Dec 17 15:44:04 2008 @@ -30,10 +30,6 @@ #include <cassert> #include <string.h> -extern "C" { -#include <openais/cpg.h> -} - namespace qpid { namespace cluster { Modified: qpid/trunk/qpid/cpp/src/qpid/cluster/types.h URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/cluster/types.h?rev=727583&r1=727582&r2=727583&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/qpid/cluster/types.h (original) +++ qpid/trunk/qpid/cpp/src/qpid/cluster/types.h Wed Dec 17 15:44:04 2008 @@ -22,8 +22,10 @@ * */ + #include "ClusterLeaveException.h" -#include <qpid/Url.h> +#include "config.h" +#include "qpid/Url.h" #include <utility> #include <iosfwd> @@ -32,7 +34,13 @@ #include <stdint.h> extern "C" { +#ifdef HAVE_OPENAIS_CPG_H #include <openais/cpg.h> +#elif HAVE_COROSYNC_CPG_H +# include <corosync/cpg.h> +#else +# error "No cpg.h header file available" +#endif } namespace qpid { Modified: qpid/trunk/qpid/cpp/src/tests/ais_check URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/tests/ais_check?rev=727583&r1=727582&r2=727583&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/src/tests/ais_check (original) +++ qpid/trunk/qpid/cpp/src/tests/ais_check Wed Dec 17 15:44:04 2008 @@ -23,8 +23,8 @@ # Check AIS requirements and run tests if found. id -nG | grep '\<ais\>' >/dev/null || \ NOGROUP="You are not a member of the ais group." -ps -u root | grep aisexec >/dev/null || \ - NOAISEXEC="The aisexec daemon is not running as root" +ps -u root | grep 'aisexec\|corosync' >/dev/null || \ + NOAISEXEC="The aisexec or corosync daemon is not running as root" if test -n "$NOGROUP" -o -n "$NOAISEXEC"; then cat <<EOF