rpms/rabbitmq-server/F-13 bug22871.patch, NONE, 1.1 rabbitmq-server.ocf, NONE, 1.1 .cvsignore, 1.5, 1.6 rabbitmq-server.spec, 1.6, 1.7 sources, 1.5, 1.6

Hubert Plociniczak hubert at fedoraproject.org
Mon Jun 28 21:08:47 UTC 2010


Author: hubert

Update of /cvs/pkgs/rpms/rabbitmq-server/F-13
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv13059

Modified Files:
	.cvsignore rabbitmq-server.spec sources 
Added Files:
	bug22871.patch rabbitmq-server.ocf 
Log Message:
New upstream release 1.8.0

bug22871.patch:
 rabbit_amqqueue.erl       |    2 +-
 rabbit_exchange.erl       |    2 +-
 rabbit_memory_monitor.erl |    3 ++-
 3 files changed, 4 insertions(+), 3 deletions(-)

--- NEW FILE bug22871.patch ---
diff -uNr rabbitmq-server-1.8.0/src/rabbit_amqqueue.erl rabbitmq-server-1.8.0patch0/src/rabbit_amqqueue.erl
--- rabbitmq-server-1.8.0/src/rabbit_amqqueue.erl	2010-06-16 13:22:27.000000000 +0100
+++ rabbitmq-server-1.8.0patch0/src/rabbit_amqqueue.erl	2010-06-28 00:27:35.000000000 +0100
@@ -110,7 +110,7 @@
 -spec(internal_delete/1 :: (queue_name()) -> 'ok' | not_found()).
 -spec(maybe_run_queue_via_backing_queue/2 :: (pid(), (fun ((A) -> A))) -> 'ok').
 -spec(update_ram_duration/1 :: (pid()) -> 'ok').
--spec(set_ram_duration_target/2 :: (pid(), number()) -> 'ok').
+-spec(set_ram_duration_target/2 :: (pid(), number() | 'infinity') -> 'ok').
 -spec(set_maximum_since_use/2 :: (pid(), non_neg_integer()) -> 'ok').
 -spec(on_node_down/1 :: (erlang_node()) -> 'ok').
 -spec(pseudo_queue/2 :: (binary(), pid()) -> amqqueue()).
diff -uNr rabbitmq-server-1.8.0/src/rabbit_exchange.erl rabbitmq-server-1.8.0patch0/src/rabbit_exchange.erl
--- rabbitmq-server-1.8.0/src/rabbit_exchange.erl	2010-06-16 13:22:27.000000000 +0100
+++ rabbitmq-server-1.8.0patch0/src/rabbit_exchange.erl	2010-06-28 00:26:11.000000000 +0100
@@ -100,7 +100,7 @@
 
 %%----------------------------------------------------------------------------
 
--define(INFO_KEYS, [name, type, durable, auto_delete, arguments].
+-define(INFO_KEYS, [name, type, durable, auto_delete, arguments]).
 
 recover() ->
     Exs = rabbit_misc:table_fold(
diff -uNr rabbitmq-server-1.8.0/src/rabbit_memory_monitor.erl rabbitmq-server-1.8.0patch0/src/rabbit_memory_monitor.erl
--- rabbitmq-server-1.8.0/src/rabbit_memory_monitor.erl	2010-06-16 13:22:27.000000000 +0100
+++ rabbitmq-server-1.8.0patch0/src/rabbit_memory_monitor.erl	2010-06-28 00:28:44.000000000 +0100
@@ -90,7 +90,8 @@
 -spec(update/0 :: () -> 'ok').
 -spec(register/2 :: (pid(), {atom(),atom(),[any()]}) -> 'ok').
 -spec(deregister/1 :: (pid()) -> 'ok').
--spec(report_ram_duration/2 :: (pid(), float() | 'infinity') -> number()).
+-spec(report_ram_duration/2 :: (pid(), float() | 'infinity') ->
+                                    number() | 'infinity').
 -spec(stop/0 :: () -> 'ok').
 
 -endif.


--- NEW FILE rabbitmq-server.ocf ---
#!/bin/sh
##
##   OCF Resource Agent compliant rabbitmq-server resource script.
##

##   The contents of this file are subject to the Mozilla Public License
##   Version 1.1 (the "License"); you may not use this file except in
##   compliance with the License. You may obtain a copy of the License at
##   http://www.mozilla.org/MPL/
##
##   Software distributed under the License is distributed on an "AS IS"
##   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
##   License for the specific language governing rights and limitations
##   under the License.
##
##   The Original Code is RabbitMQ.
##
##   The Initial Developers of the Original Code are LShift Ltd,
##   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
##
##   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
##   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
##   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
##   Technologies LLC, and Rabbit Technologies Ltd.
##
##   Portions created by LShift Ltd are Copyright (C) 2007-2010 LShift
##   Ltd. Portions created by Cohesive Financial Technologies LLC are
##   Copyright (C) 2007-2010 Cohesive Financial Technologies
##   LLC. Portions created by Rabbit Technologies Ltd are Copyright
##   (C) 2007-2010 Rabbit Technologies Ltd.
##
##   All Rights Reserved.
##
##   Contributor(s): ______________________________________.
##

## OCF instance parameters
##   OCF_RESKEY_multi
##   OCF_RESKEY_ctl
##   OCF_RESKEY_nodename
##   OCF_RESKEY_ip
##   OCF_RESKEY_port
##   OCF_RESKEY_cluster_config_file
##   OCF_RESKEY_config_file
##   OCF_RESKEY_log_base
##   OCF_RESKEY_mnesia_base
##   OCF_RESKEY_server_start_args

#######################################################################
# Initialization:

: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/resource.d/heartbeat}
. ${OCF_FUNCTIONS_DIR}/.ocf-shellfuncs

#######################################################################

OCF_RESKEY_multi_default="/usr/sbin/rabbitmq-multi"
OCF_RESKEY_ctl_default="/usr/sbin/rabbitmqctl"
OCF_RESKEY_nodename_default="rabbit at localhost"
OCF_RESKEY_log_base_default="/var/log/rabbitmq"
: ${OCF_RESKEY_multi=${OCF_RESKEY_multi_default}}
: ${OCF_RESKEY_ctl=${OCF_RESKEY_ctl_default}}
: ${OCF_RESKEY_nodename=${OCF_RESKEY_nodename_default}}
: ${OCF_RESKEY_log_base=${OCF_RESKEY_log_base_default}}

meta_data() {
    cat <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd">
<resource-agent name="rabbitmq-server">
<version>1.0</version>

<longdesc lang="en">
Resource agent for RabbitMQ-server
</longdesc>

<shortdesc lang="en">Resource agent for RabbitMQ-server</shortdesc>

<parameters>
<parameter name="multi" unique="0" required="0">
<longdesc lang="en">
The path to the rabbitmq-multi script
</longdesc>
<shortdesc lang="en">Path to rabbitmq-multi</shortdesc>
<content type="string" default="${OCF_RESKEY_multi_default}" />
</parameter>

<parameter name="ctl" unique="0" required="0">
<longdesc lang="en">
The path to the rabbitmqctl script
</longdesc>
<shortdesc lang="en">Path to rabbitmqctl</shortdesc>
<content type="string" default="${OCF_RESKEY_ctl_default}" />
</parameter>

<parameter name="nodename" unique="0" required="0">
<longdesc lang="en">
The node name for rabbitmq-server
</longdesc>
<shortdesc lang="en">Node name</shortdesc>
<content type="string" default="${OCF_RESKEY_nodename_default}" />
</parameter>

<parameter name="ip" unique="0" required="0">
<longdesc lang="en">
The IP address for rabbitmq-server to listen on
</longdesc>
<shortdesc lang="en">IP Address</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="port" unique="0" required="0">
<longdesc lang="en">
The IP Port for rabbitmq-server to listen on
</longdesc>
<shortdesc lang="en">IP Port</shortdesc>
<content type="integer" default="" />
</parameter>

<parameter name="cluster_config_file" unique="0" required="0">
<longdesc lang="en">
Location of the cluster config file
</longdesc>
<shortdesc lang="en">Cluster config file path</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="config_file" unique="0" required="0">
<longdesc lang="en">
Location of the config file
</longdesc>
<shortdesc lang="en">Config file path</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="log_base" unique="0" required="0">
<longdesc lang="en">
Location of the directory under which logs will be created
</longdesc>
<shortdesc lang="en">Log base path</shortdesc>
<content type="string" default="${OCF_RESKEY_log_base_default}" />
</parameter>

<parameter name="mnesia_base" unique="0" required="0">
<longdesc lang="en">
Location of the directory under which mnesia will store data
</longdesc>
<shortdesc lang="en">Mnesia base path</shortdesc>
<content type="string" default="" />
</parameter>

<parameter name="server_start_args" unique="0" required="0">
<longdesc lang="en">
Additional arguments provided to the server on startup
</longdesc>
<shortdesc lang="en">Server start arguments</shortdesc>
<content type="string" default="" />
</parameter>

</parameters>

<actions>
<action name="start"        timeout="600" />
<action name="stop"         timeout="120" />
<action name="status"       timeout="20" interval="10" />
<action name="monitor"      timeout="20" interval="10" />
<action name="validate-all" timeout="30" />
<action name="meta-data"    timeout="5" />
</actions>
</resource-agent>
END
}

rabbit_usage() {
    cat <<END
usage: $0 {start|stop|status|monitor|validate-all|meta-data}

Expects to have a fully populated OCF RA-compliant environment set.
END
}

RABBITMQ_MULTI=$OCF_RESKEY_multi
RABBITMQ_CTL=$OCF_RESKEY_ctl
RABBITMQ_NODENAME=$OCF_RESKEY_nodename
RABBITMQ_NODE_IP_ADDRESS=$OCF_RESKEY_ip
RABBITMQ_NODE_PORT=$OCF_RESKEY_port
RABBITMQ_CLUSTER_CONFIG_FILE=$OCF_RESKEY_cluster_config_file
RABBITMQ_CONFIG_FILE=$OCF_RESKEY_config_file
RABBITMQ_LOG_BASE=$OCF_RESKEY_log_base
RABBITMQ_MNESIA_BASE=$OCF_RESKEY_mnesia_base
RABBITMQ_SERVER_START_ARGS=$OCF_RESKEY_server_start_args
[ ! -z $RABBITMQ_NODENAME ] && NODENAME_ARG="-n $RABBITMQ_NODENAME"
[ ! -z $RABBITMQ_NODENAME ]            && export RABBITMQ_NODENAME

export_vars() {
    [ ! -z $RABBITMQ_NODE_IP_ADDRESS ]     && export RABBITMQ_NODE_IP_ADDRESS
    [ ! -z $RABBITMQ_NODE_PORT ]           && export RABBITMQ_NODE_PORT
    [ ! -z $RABBITMQ_CLUSTER_CONFIG_FILE ] && export RABBITMQ_CLUSTER_CONFIG_FILE
    [ ! -z $RABBITMQ_CONFIG_FILE ]         && export RABBITMQ_CONFIG_FILE
    [ ! -z $RABBITMQ_LOG_BASE ]            && export RABBITMQ_LOG_BASE
    [ ! -z $RABBITMQ_MNESIA_BASE ]         && export RABBITMQ_MNESIA_BASE
    [ ! -z $RABBITMQ_SERVER_START_ARGS ]   && export RABBITMQ_SERVER_START_ARGS
}

rabbit_validate_partial() {
    if [ ! -x $RABBITMQ_MULTI ]; then
        ocf_log err "rabbitmq-server multi $RABBITMQ_MULTI does not exist or is not executable";
        exit $OCF_ERR_INSTALLED;
    fi

    if [ ! -x $RABBITMQ_CTL ]; then
        ocf_log err "rabbitmq-server ctl $RABBITMQ_CTL does not exist or is not executable";
        exit $OCF_ERR_INSTALLED;
    fi
}

rabbit_validate_full() {
    if [ ! -z $RABBITMQ_CLUSTER_CONFIG_FILE ] && [ ! -e $RABBITMQ_CLUSTER_CONFIG_FILE ]; then
        ocf_log err "rabbitmq-server cluster_config_file $RABBITMQ_CLUSTER_CONFIG_FILE does not exist or is not a file";
        exit $OCF_ERR_INSTALLED;
    fi

    if [ ! -z $RABBITMQ_CONFIG_FILE ] && [ ! -e $RABBITMQ_CONFIG_FILE ]; then
        ocf_log err "rabbitmq-server config_file $RABBITMQ_CONFIG_FILE does not exist or is not a file";
        exit $OCF_ERR_INSTALLED;
    fi

    if [ ! -z $RABBITMQ_LOG_BASE ] && [ ! -d $RABBITMQ_LOG_BASE ]; then
        ocf_log err "rabbitmq-server log_base $RABBITMQ_LOG_BASE does not exist or is not a directory";
        exit $OCF_ERR_INSTALLED;
    fi

    if [ ! -z $RABBITMQ_MNESIA_BASE ] && [ ! -d $RABBITMQ_MNESIA_BASE ]; then
        ocf_log err "rabbitmq-server mnesia_base $RABBITMQ_MNESIA_BASE does not exist or is not a directory";
        exit $OCF_ERR_INSTALLED;
    fi

    rabbit_validate_partial

    return $OCF_SUCCESS
}

rabbit_status() {
    local rc
    $RABBITMQ_CTL $NODENAME_ARG status > /dev/null 2> /dev/null
    rc=$?
    case "$rc" in
        0)
            ocf_log debug "RabbitMQ server is running normally"
            return $OCF_SUCCESS
            ;;
        2)
            ocf_log debug "RabbitMQ server is not running"
            return $OCF_NOT_RUNNING
            ;;
        *)
            ocf_log err "Unexpected return from rabbitmqctl $NODENAME_ARG status: $rc"
            exit $OCF_ERR_GENERIC
    esac
}

rabbit_start() {
    local rc

    if rabbit_status; then
        ocf_log info "Resource already running."
        return $OCF_SUCCESS
    fi

    export_vars

    $RABBITMQ_MULTI start_all 1 > ${RABBITMQ_LOG_BASE}/startup_log 2> ${RABBITMQ_LOG_BASE}/startup_err &
    rc=$?

    if [ "$rc" != 0 ]; then
        ocf_log err "rabbitmq-server start command failed: $RABBITMQ_MULTI start_all 1, $rc"
        return $rc
    fi

    # Spin waiting for the server to come up.
    # Let the CRM/LRM time us out if required
    start_wait=1
    while [ $start_wait = 1 ]; do
        rabbit_status
        rc=$?
        if [ "$rc" = $OCF_SUCCESS ]; then
            start_wait=0
        elif [ "$rc" != $OCF_NOT_RUNNING ]; then
            ocf_log info "rabbitmq-server start failed: $rc"
            exit $OCF_ERR_GENERIC
        fi
        sleep 1
    done

    return $OCF_SUCCESS
}

rabbit_stop() {
    local rc

    if ! rabbit_status; then
        ocf_log info "Resource not running."
        return $OCF_SUCCESS
    fi

    $RABBITMQ_MULTI stop_all &
    rc=$?

    if [ "$rc" != 0 ]; then
        ocf_log err "rabbitmq-server stop command failed: $RABBITMQ_MULTI stop_all, $rc"
        return $rc
    fi

    # Spin waiting for the server to shut down.
    # Let the CRM/LRM time us out if required
    stop_wait=1
    while [ $stop_wait = 1 ]; do
        rabbit_status
        rc=$?
        if [ "$rc" = $OCF_NOT_RUNNING ]; then
            stop_wait=0
            break
        elif [ "$rc" != $OCF_SUCCESS ]; then
            ocf_log info "rabbitmq-server stop failed: $rc"
            exit $OCF_ERR_GENERIC
        fi
        sleep 1
    done

    return $OCF_SUCCESS
}

rabbit_monitor() {
    rabbit_status
    return $?
}

case $__OCF_ACTION in
    meta-data)
        meta_data
        exit $OCF_SUCCESS
        ;;
    usage|help)
        rabbit_usage
        exit $OCF_SUCCESS
        ;;
esac

if ocf_is_probe; then
    rabbit_validate_partial
else
    rabbit_validate_full
fi

case $__OCF_ACTION in
    start)
        rabbit_start
        ;;
    stop)
        rabbit_stop
        ;;
    status|monitor)
        rabbit_monitor
        ;;
    validate-all)
        exit $OCF_SUCCESS
        ;;
    *)
        rabbit_usage
        exit $OCF_ERR_UNIMPLEMENTED
        ;;
esac

exit $?


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/rabbitmq-server/F-13/.cvsignore,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- .cvsignore	28 Feb 2010 23:28:32 -0000	1.5
+++ .cvsignore	28 Jun 2010 21:08:46 -0000	1.6
@@ -1 +1 @@
-rabbitmq-server-1.7.2.tar.gz
+rabbitmq-server-1.8.0.tar.gz


Index: rabbitmq-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/rabbitmq-server/F-13/rabbitmq-server.spec,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -r1.6 -r1.7
--- rabbitmq-server.spec	28 Feb 2010 23:28:32 -0000	1.6
+++ rabbitmq-server.spec	28 Jun 2010 21:08:46 -0000	1.7
@@ -1,7 +1,7 @@
 %define debug_package %{nil}
 
 Name: rabbitmq-server
-Version: 1.7.2
+Version: 1.8.0
 Release: 1%{?dist}
 License: MPLv1.1
 Group: Development/Libraries
@@ -10,9 +10,12 @@ Source1: rabbitmq-server.init
 Source2: rabbitmq-script-wrapper
 Source3: rabbitmq-server.logrotate
 Source4: rabbitmq-asroot-script-wrapper
+Source5: rabbitmq-server.ocf
+Patch0: bug22871.patch
 URL: http://www.rabbitmq.com/
-BuildRequires: erlang, python-simplejson
-Requires: erlang, logrotate
+BuildArch: noarch
+BuildRequires: erlang >= R12B-3, python-simplejson, xmlto, libxslt
+Requires: erlang >= R12B-3, logrotate
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root
 Summary: The RabbitMQ server
 Requires(post): chkconfig initscripts
@@ -23,21 +26,23 @@ RabbitMQ is an implementation of AMQP, t
 performance enterprise messaging. The RabbitMQ server is a robust and
 scalable implementation of an AMQP broker.
 
-%define _rabbit_erllibdir %{_libdir}/rabbitmq/lib/rabbitmq_server-%{version}
-%define _rabbit_libdir %{_libdir}/rabbitmq
+# We want to install into /usr/lib, even on 64-bit platforms
+%define _rabbit_libdir %{_exec_prefix}/lib/rabbitmq
+%define _rabbit_erllibdir %{_rabbit_libdir}/lib/rabbitmq_server-%{version}
 %define _rabbit_wrapper %{_builddir}/`basename %{S:2}`
 %define _rabbit_asroot_wrapper %{_builddir}/`basename %{S:4}`
+%define _rabbit_server_ocf %{_builddir}/`basename %{S:5}`
 
 %define _maindir %{buildroot}%{_rabbit_erllibdir}
 
 %prep
 %setup -q
+%patch0 -p1
 
 %build
 cp %{S:2} %{_rabbit_wrapper}
-sed -i 's|/usr/lib/|%{_libdir}/|' %{_rabbit_wrapper}
 cp %{S:4} %{_rabbit_asroot_wrapper}
-sed -i 's|/usr/lib/|%{_libdir}/|' %{_rabbit_asroot_wrapper}
+cp %{S:5} %{_rabbit_server_ocf}
 make %{?_smp_mflags}
 
 %install
@@ -57,6 +62,7 @@ install -p -D -m 0755 %{_rabbit_wrapper}
 install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmq-multi
 install -p -D -m 0755 %{_rabbit_asroot_wrapper} %{buildroot}%{_sbindir}/rabbitmq-activate-plugins
 install -p -D -m 0755 %{_rabbit_asroot_wrapper} %{buildroot}%{_sbindir}/rabbitmq-deactivate-plugins
+install -p -D -m 0755 %{_rabbit_server_ocf} %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server
 
 install -p -D -m 0644 %{S:3} %{buildroot}%{_sysconfdir}/logrotate.d/rabbitmq-server
 
@@ -65,12 +71,12 @@ mkdir -p %{buildroot}%{_sysconfdir}/rabb
 rm %{_maindir}/LICENSE %{_maindir}/LICENSE-MPL-RabbitMQ %{_maindir}/INSTALL
 
 #Build the list of files
-rm -f %{_builddir}/filelist.%{name}.rpm
-echo '%defattr(-,root,root, -)' >> %{_builddir}/filelist.%{name}.rpm 
+rm -f %{_builddir}/%{name}.files
+echo '%defattr(-,root,root, -)' >> %{_builddir}/%{name}.files 
 (cd %{buildroot}; \
     find . -type f ! -regex '\.%{_sysconfdir}.*' \
         ! -regex '\.\(%{_rabbit_erllibdir}\|%{_rabbit_libdir}\).*' \
-        | sed -e 's/^\.//' >> %{_builddir}/filelist.%{name}.rpm)
+        | sed -e 's/^\.//' >> %{_builddir}/%{name}.files)
 
 %pre
 
@@ -103,7 +109,13 @@ if [ $1 = 0 ]; then
   # Leave rabbitmq user and group
 fi
 
-%files -f ../filelist.%{name}.rpm
+# Clean out plugin activation state, both on uninstall and upgrade
+rm -rf %{_rabbit_erllibdir}/priv
+for ext in rel script boot ; do
+    rm -f %{_rabbit_erllibdir}/ebin/rabbit.$ext
+done
+
+%files -f ../%{name}.files
 %defattr(-,root,root,-)
 %attr(0750, rabbitmq, rabbitmq) %dir %{_localstatedir}/lib/rabbitmq
 %attr(0750, rabbitmq, rabbitmq) %dir %{_localstatedir}/log/rabbitmq
@@ -118,6 +130,10 @@ fi
 rm -rf %{buildroot}
 
 %changelog
+* Mon Jun 28 2010 Hubert Plociniczak <hubert at lshift.net> 1.8.0-1
+- New Upstream Release
+- Backported fix for bug 22871, fixes issues with erlang >= R14A
+
 * Mon Feb 15 2010 Matthew Sackman <matthew at lshift.net> 1.7.2-1
 - New Upstream Release
 


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/rabbitmq-server/F-13/sources,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -p -r1.5 -r1.6
--- sources	28 Feb 2010 23:28:32 -0000	1.5
+++ sources	28 Jun 2010 21:08:47 -0000	1.6
@@ -1 +1 @@
-fb83be3b1577cdd54459012b85b7631d  rabbitmq-server-1.7.2.tar.gz
+e00bea375e81d51600b5b14220c64d89  rabbitmq-server-1.8.0.tar.gz



More information about the scm-commits mailing list