diff options
author | Matthias Radestock <matthias@lshift.net> | 2009-03-25 09:02:38 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@lshift.net> | 2009-03-25 09:02:38 +0000 |
commit | 702c412da4e133ac5d40af680323c80140e60bcf (patch) | |
tree | 6bd0940d78a53618a1bcd313dd5ae2e7c2a027e5 | |
parent | d67f82ffaf8f6b4f70e4482c306fe1b42b66a6b9 (diff) | |
parent | 2bf6a51c27a1331bca2a39b362a9740f6edb3ecb (diff) | |
download | rabbitmq-server-702c412da4e133ac5d40af680323c80140e60bcf.tar.gz |
merge default into bug19984
26 files changed, 212 insertions, 177 deletions
@@ -150,7 +150,7 @@ distclean: clean %.gz: %.pod pod2man \ - -n `echo $$(basename $*) | sed -e 's/\.[^.]\+//'` \ + -n `echo $$(basename $*) | sed -e 's/\.[[:digit:]]\+//'` \ -s `echo $$(basename $*) | sed -e 's/.*\.\([^.]\+\)/\1/'` \ -c "RabbitMQ AMQP Server" \ -d "" \ diff --git a/docs/rabbitmq-multi.1.pod b/docs/rabbitmq-multi.1.pod index 82c39116..23fd96ed 100644 --- a/docs/rabbitmq-multi.1.pod +++ b/docs/rabbitmq-multi.1.pod @@ -40,7 +40,7 @@ Start 3 local RabbitMQ nodes with unique, sequential port numbers: =head1 SEE ALSO -rabbitmq-server(1), rabbitmqctl(1) +rabbitmq.conf(5), rabbitmq-server(1), rabbitmqctl(1) =head1 AUTHOR diff --git a/docs/rabbitmq-server.1.pod b/docs/rabbitmq-server.1.pod index 96f713dd..23b9ae85 100644 --- a/docs/rabbitmq-server.1.pod +++ b/docs/rabbitmq-server.1.pod @@ -53,7 +53,7 @@ Defaults to 5672. =item B<RABBITMQ_CLUSTER_CONFIG_FILE> -Defaults to /etc/default/rabbitmq_cluster.config. If this file is +Defaults to /etc/rabbitmq/rabbitmq_cluster.config. If this file is present it is used by the server to auto-configure a RabbitMQ cluster. See the L<clustering guide|http://www.rabbitmq.com/clustering.html> for details. @@ -72,7 +72,7 @@ Run RabbitMQ AMQP server in the background: =head1 SEE ALSO -rabbitmq-multi(1), rabbitmqctl(1) +rabbitmq.conf(5), rabbitmq-multi(1), rabbitmqctl(1) =head1 AUTHOR diff --git a/docs/rabbitmq.5.pod b/docs/rabbitmq.conf.5.pod index e6972935..9b2536c3 100644 --- a/docs/rabbitmq.5.pod +++ b/docs/rabbitmq.conf.5.pod @@ -1,10 +1,10 @@ =head1 NAME -/etc/default/rabbitmq - default settings for RabbitMQ AMQP server +/etc/rabbitmq/rabbitmq.conf - default settings for RabbitMQ AMQP server =head1 DESCRIPTION -/etc/default/rabbitmq contains variable settings that override the +/etc/rabbitmq/rabbitmq.conf contains variable settings that override the defaults built in to the RabbitMQ startup scripts. The file is interpreted by the system shell, and so should consist of @@ -13,29 +13,29 @@ syntax is permitted (since the file is sourced using the shell "." operator), including line comments starting with "#". In order of preference, the startup scripts get their values from the -environment, from /etc/default/rabbitmq, and finally from the built-in -default values. For example, for the B<RABBITMQ_NODENAME> setting, +environment, from /etc/rabbitmq/rabbitmq.conf and finally from the +built-in default values. For example, for the B<RABBITMQ_NODENAME> setting, B<RABBITMQ_NODENAME> - from the environment is checked first. If it is absent or equal - to the empty string, then + from the environment is checked first. If it is absent or equal to + the empty string, then B<NODENAME> - from /etc/default/rabbitmq is checked next. If it is also absent - or set equal to the empty string, then the default value from the - startup script is used. + from /etc/rabbitmq/rabbitmq.conf is checked. If it is also absent + or set equal to the empty string then the default value from + the startup script is used. -The variable names in /etc/default/rabbitmq are always equal to the +The variable names in /etc/rabbitmq/rabbitmq.conf are always equal to the environment variable names, with the B<RABBITMQ_> prefix removed: B<RABBITMQ_NODE_PORT> from the environment becomes B<NODE_PORT> in the -/etc/default/rabbitmq file, etc. +/etc/rabbitmq/rabbitmq.conf file, etc. =head1 EXAMPLES -The following is an example of a complete /etc/default/rabbitmq file +The following is an example of a complete /etc/rabbitmq/rabbitmq.conf file that overrides the default Erlang node name from "rabbit" to "hare": - # I am a complete /etc/default/rabbitmq file. + # I am a complete /etc/rabbitmq/rabbitmq.conf file. # Comment lines start with a hash character. # This is a /bin/sh script file - use ordinary envt var syntax NODENAME=hare @@ -46,7 +46,7 @@ rabbitmq-server(1), rabbitmq-multi(1), rabbitmqctl(1) =head1 AUTHOR -Originally written by The RabbitMQ Team <info@lshift.net> +Originally written by The RabbitMQ Team <info@rabbitmq.com> =head1 COPYRIGHT diff --git a/docs/rabbitmqctl.1.pod b/docs/rabbitmqctl.1.pod index af540b3e..c9c94dd8 100644 --- a/docs/rabbitmqctl.1.pod +++ b/docs/rabbitmqctl.1.pod @@ -109,8 +109,9 @@ add_vhost I<vhostpath> delete_vhost I<vhostpath> delete a virtual host I<vhostpath>. - That command deletes also all its exchanges, queues and user mappings. - + That command deletes also all its exchanges, queues and user + mappings. + list_vhosts list all virtual hosts. @@ -339,7 +340,7 @@ them: =head1 SEE ALSO -rabbitmq-multi(1), rabbitmq-server(1) +rabbitmq.conf(5), rabbitmq-multi(1), rabbitmq-server(1) =head1 AUTHOR diff --git a/packaging/RPMS/Fedora/Makefile b/packaging/RPMS/Fedora/Makefile index cf3a93df..9fe91b98 100644 --- a/packaging/RPMS/Fedora/Makefile +++ b/packaging/RPMS/Fedora/Makefile @@ -1,10 +1,11 @@ VERSION=0.0.0 SOURCE_TARBALL_DIR=../../../dist +COMMON_DIR=../../common TARBALL=$(SOURCE_TARBALL_DIR)/rabbitmq-server-$(VERSION).tar.gz TOP_DIR=$(shell pwd) #Under debian we do not want to check build dependencies, since that #only checks build-dependencies using rpms, not debs -DEFINES=--define '_topdir $(TOP_DIR)' --define '_tmppath $(TOP_DIR)/tmp' --define 'debian 1' +DEFINES=--define '_topdir $(TOP_DIR)' --define '_tmppath $(TOP_DIR)/tmp' --define '_sysconfdir /etc' --define '_localstatedir /var' ifndef RPM_OS RPM_OS=fedora @@ -30,13 +31,13 @@ prepare: SPECS/rabbitmq-server.spec cp init.d SOURCES/rabbitmq-server.init - cp rabbitmqctl_wrapper SOURCES/rabbitmq-server.wrapper + cp ${COMMON_DIR}/* SOURCES/ cp rabbitmq-server.logrotate SOURCES/rabbitmq-server.logrotate server: prepare - rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) \ + rpmbuild -ba --nodeps SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) \ --target i386 - rpmbuild -ba SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) \ + rpmbuild -ba --nodeps SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) \ --define '_libdir /usr/lib64' --define '_arch x86_64' \ --define '_defaultdocdir /usr/share/doc' --target x86_64 diff --git a/packaging/RPMS/Fedora/init.d b/packaging/RPMS/Fedora/init.d index 4f2b0adf..d624e7c7 100644 --- a/packaging/RPMS/Fedora/init.d +++ b/packaging/RPMS/Fedora/init.d @@ -2,23 +2,20 @@ # # rabbitmq-server RabbitMQ broker # -#chkconfig: 2345 80 05 -#description: Enable AMQP service provided by RabbitMQ +# chkconfig: - 80 05 +# description: Enable AMQP service provided by RabbitMQ # ### BEGIN INIT INFO -# Provides: rabbitmq +# Provides: rabbitmq-server # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 # Description: RabbitMQ broker # Short-Description: Enable AMQP service provided by RabbitMQ broker ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin -DAEMON_NAME=rabbitmq-multi -DAEMON=/usr/lib/rabbitmq/bin/$DAEMON_NAME +DAEMON=/usr/sbin/rabbitmq-multi NAME=rabbitmq-server DESC=rabbitmq-server USER=rabbitmq @@ -30,8 +27,8 @@ LOCK_FILE=/var/lock/subsys/$NAME test -x $DAEMON || exit 0 # Include rabbitmq defaults if available -if [ -f /etc/default/rabbitmq ] ; then - . /etc/default/rabbitmq +if [ -f /etc/sysconfig/rabbitmq ] ; then + . /etc/sysconfig/rabbitmq fi RETVAL=0 @@ -40,7 +37,7 @@ cd / start_rabbitmq () { set +e - su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err + $DAEMON start_all ${NODE_COUNT} > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err case "$?" in 0) echo SUCCESS && touch $LOCK_FILE @@ -62,7 +59,7 @@ stop_rabbitmq () { set +e status_rabbitmq quiet if [ $RETVAL = 0 ] ; then - su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err + $DAEMON stop_all > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err RETVAL=$? if [ $RETVAL != 0 ] ; then echo FAILED - check /var/log/rabbitmq/shutdown_log, _err @@ -79,9 +76,9 @@ stop_rabbitmq () { status_rabbitmq() { set +e if [ "$1" != "quiet" ] ; then - su $USER -s /bin/sh -c "$DAEMON status" 2>&1 + $DAEMON status 2>&1 else - su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1 + $DAEMON status > /dev/null 2>&1 fi if [ $? != 0 ] ; then RETVAL=1 @@ -91,7 +88,10 @@ status_rabbitmq() { rotate_logs_rabbitmq() { set +e - su $USER -s /bin/sh -c "$DAEMON rotate_logs ${ROTATE_SUFFIX}" 2>&1 + $DAEMON rotate_logs ${ROTATE_SUFFIX} + if [ $? != 0 ] ; then + RETVAL=1 + fi set -e } @@ -130,7 +130,7 @@ case "$1" in ;; *) echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 - RETVAL=1 + RETVAL=2 ;; esac diff --git a/packaging/RPMS/Fedora/rabbitmq-server.logrotate b/packaging/RPMS/Fedora/rabbitmq-server.logrotate index ab87e4a5..6b657614 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.logrotate +++ b/packaging/RPMS/Fedora/rabbitmq-server.logrotate @@ -7,6 +7,6 @@ notifempty sharedscripts postrotate - /sbin/service rabbitmq-server rotate-logs + /sbin/service rabbitmq-server rotate-logs > /dev/null endscript } diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index fc109bdb..3695c690 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -1,3 +1,5 @@ +%define debug_package %{nil} + Name: rabbitmq-server Version: %%VERSION%% Release: 1%%RELEASE_OS%% @@ -5,16 +7,11 @@ License: MPLv1.1 Group: Development/Libraries Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.gz Source1: rabbitmq-server.init -Source2: rabbitmq-server.wrapper +Source2: rabbitmq-script-wrapper Source3: rabbitmq-server.logrotate URL: http://www.rabbitmq.com/ -Vendor: LShift Ltd., Cohesive Financial Technologies LLC., Rabbit Technlogies Ltd. -%if 0%{?debian} -%else BuildRequires: erlang, python-simplejson -%endif Requires: erlang, logrotate -Packager: Hubert Plociniczak <hubert@lshift.net> BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root Summary: The RabbitMQ server Requires(post): %%REQUIRES%% @@ -38,10 +35,12 @@ if [ $1 -gt 1 ]; then fi %prep -%setup -n %{name}-%{version} +%setup -q +sed -i 's|/usr/lib/|%{_libdir}/|' %{S:1} +sed -i 's|/usr/lib/|%{_libdir}/|' %{S:2} %build -make +make %{?_smp_mflags} %install rm -rf %{buildroot} @@ -50,21 +49,18 @@ make install TARGET_DIR=%{_maindir} \ SBIN_DIR=%{buildroot}%{_rabbit_libdir}/bin \ MAN_DIR=%{buildroot}%{_mandir} -mkdir -p %{buildroot}/var/lib/rabbitmq/mnesia -mkdir -p %{buildroot}/var/log/rabbitmq -mkdir -p %{buildroot}%{_initrddir} +mkdir -p %{buildroot}%{_localstatedir}/lib/rabbitmq/mnesia +mkdir -p %{buildroot}%{_localstatedir}/log/rabbitmq #Copy all necessary lib files etc. -install -m 0755 %SOURCE1 %{buildroot}%{_initrddir}/rabbitmq-server -chmod 0755 %{buildroot}%{_initrddir}/rabbitmq-server -sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_initrddir}/rabbitmq-server +install -p -D -m 0755 %{S:1} %{buildroot}%{_initrddir}/rabbitmq-server +install -p -D -m 0755 %{S:2} %{buildroot}%{_sbindir}/rabbitmqctl +install -p -D -m 0755 %{S:2} %{buildroot}%{_sbindir}/rabbitmq-server +install -p -D -m 0755 %{S:2} %{buildroot}%{_sbindir}/rabbitmq-multi -mkdir -p %{buildroot}%{_sbindir} -install -m 0755 %SOURCE2 %{buildroot}%{_sbindir}/rabbitmqctl -sed -i 's|/usr/lib/|%{_libdir}/|' %{buildroot}%{_sbindir}/rabbitmqctl +install -p -D -m 0644 %{S:3} %{buildroot}%{_sysconfdir}/logrotate.d/rabbitmq-server -mkdir -p %{buildroot}/etc/logrotate.d -install -m 0644 %SOURCE3 %{buildroot}/etc/logrotate.d/rabbitmq-server +mkdir -p %{buildroot}%{_sysconfdir}/rabbitmq rm %{_maindir}/LICENSE %{_maindir}/LICENSE-MPL-RabbitMQ %{_maindir}/INSTALL @@ -72,7 +68,7 @@ rm %{_maindir}/LICENSE %{_maindir}/LICENSE-MPL-RabbitMQ %{_maindir}/INSTALL rm -f %{_builddir}/filelist.%{name}.rpm echo '%defattr(-,root,root, -)' >> %{_builddir}/filelist.%{name}.rpm (cd %{buildroot}; \ - find . -type f ! -regex '\./etc.*' \ + find . -type f ! -regex '\.%{_sysconfdir}.*' \ ! -regex '\.\(%{_rabbit_erllibdir}\|%{_rabbit_libdir}\).*' \ | sed -e 's/^\.//' >> %{_builddir}/filelist.%{name}.rpm) @@ -84,15 +80,11 @@ fi # create rabbitmq user if ! getent passwd rabbitmq >/dev/null; then - useradd -r -g rabbitmq --home /var/lib/rabbitmq rabbitmq - usermod -c "RabbitMQ messaging server" rabbitmq + useradd -r -g rabbitmq -d %{_localstatedir}/lib/rabbitmq rabbitmq \ + -c "RabbitMQ messaging server" rabbitmq fi -chown -R rabbitmq:rabbitmq /var/lib/rabbitmq -chown -R rabbitmq:rabbitmq /var/log/rabbitmq - /sbin/chkconfig --add %{name} -/sbin/service rabbitmq-server start %preun if [ $1 = 0 ]; then @@ -106,18 +98,27 @@ fi %files -f ../filelist.%{name}.rpm %defattr(-,root,root,-) -%dir /var/lib/rabbitmq -%dir /var/log/rabbitmq +%attr(0750, rabbitmq, rabbitmq) %dir %{_localstatedir}/lib/rabbitmq +%attr(0750, rabbitmq, rabbitmq) %dir %{_localstatedir}/log/rabbitmq +%dir %{_localstatedir}/lib/rabbitmq +%dir %{_localstatedir}/log/rabbitmq +%dir %{_sysconfdir}/rabbitmq %{_rabbit_erllibdir} %{_rabbit_libdir} %{_initrddir}/rabbitmq-server -%config(noreplace) /etc/logrotate.d/rabbitmq-server +%config(noreplace) %{_sysconfdir}/logrotate.d/rabbitmq-server %doc LICENSE LICENSE-MPL-RabbitMQ INSTALL %clean rm -rf %{buildroot} %changelog +* Tue Feb 24 2009 Tony Garnock-Jones <tonyg@lshift.net> 1.5.3-1 +- Maintenance release for the 1.5.x series + +* Mon Feb 23 2009 Tony Garnock-Jones <tonyg@lshift.net> 1.5.2-1 +- Maintenance release for the 1.5.x series + * Mon Jan 19 2009 Ben Hood <0x6e6562@gmail.com> 1.5.1-1 - Maintenance release for the 1.5.x series diff --git a/packaging/RPMS/Fedora/rabbitmqctl_wrapper b/packaging/RPMS/Fedora/rabbitmqctl_wrapper deleted file mode 100644 index 6b387d29..00000000 --- a/packaging/RPMS/Fedora/rabbitmqctl_wrapper +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/bash -# Escape spaces and quotes, because shell is revolting. -for arg in "$@" ; do - # Escape quotes in parameters, so that they're passed through cleanly. - arg=$(sed -e 's/"/\\"/' <<-END - $arg - END - ) - CMDLINE="${CMDLINE} \"${arg}\"" -done - -cd / -if [ `id -u` = 0 ] ; then - su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/rabbitmqctl ${CMDLINE}" -else - /usr/lib/rabbitmq/bin/rabbitmqctl - echo -e "\nOnly root should run rabbitmqctl\n" - exit 1 -fi diff --git a/packaging/debs/Debian/debian/rabbitmqctl_wrapper b/packaging/common/rabbitmq-script-wrapper index d53a6ca9..217d1658 100644 --- a/packaging/debs/Debian/debian/rabbitmqctl_wrapper +++ b/packaging/common/rabbitmq-script-wrapper @@ -11,11 +11,13 @@ done cd / +SCRIPT=`basename $0` + if [ `id -u` = 0 ] ; then - su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/rabbitmqctl ${CMDLINE}" + su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}" else - /usr/lib/rabbitmq/bin/rabbitmqctl - echo -e "\nOnly root should run rabbitmqctl\n" + /usr/lib/rabbitmq/bin/${SCRIPT} + echo -e "\nOnly root should run ${SCRIPT}\n" exit 1 fi diff --git a/packaging/debs/Debian/Makefile b/packaging/debs/Debian/Makefile index 9479feb0..67fabae0 100644 --- a/packaging/debs/Debian/Makefile +++ b/packaging/debs/Debian/Makefile @@ -1,5 +1,6 @@ TARBALL_DIR=../../../dist TARBALL=$(shell (cd $(TARBALL_DIR); echo rabbitmq-server-[0-9]*.tar.gz)) +COMMON_DIR=../../common DEBIAN_ORIG_TARBALL=$(shell echo $(TARBALL) | sed -e 's:\(.*\)-\(.*\)\(\.tar\.gz\):\1_\2\.orig\3:g') VERSION=$(shell echo $(TARBALL) | sed -e 's:rabbitmq-server-\(.*\)\.tar\.gz:\1:g') UNPACKED_DIR=rabbitmq-server-$(VERSION) @@ -19,6 +20,7 @@ package: clean cp $(TARBALL_DIR)/$(TARBALL) $(DEBIAN_ORIG_TARBALL) tar -zxvf $(DEBIAN_ORIG_TARBALL) cp -r debian $(UNPACKED_DIR) + cp $(COMMON_DIR)/* $(UNPACKED_DIR)/debian/ chmod a+x $(UNPACKED_DIR)/debian/rules UNOFFICIAL_RELEASE=$(UNOFFICIAL_RELEASE) VERSION=$(VERSION) ./check-changelog.sh rabbitmq-server $(UNPACKED_DIR) cd $(UNPACKED_DIR); GNUPGHOME=$(GNUPG_PATH)/.gnupg dpkg-buildpackage -rfakeroot $(SIGNING) diff --git a/packaging/debs/Debian/debian/changelog b/packaging/debs/Debian/debian/changelog index 37b01dab..3be25f48 100644 --- a/packaging/debs/Debian/debian/changelog +++ b/packaging/debs/Debian/debian/changelog @@ -1,3 +1,15 @@ +rabbitmq-server (1.5.3-1) hardy; urgency=low + + * New Upstream Release + + -- Tony Garnock-Jones <tonyg@lshift.net> Tue, 24 Feb 2009 18:23:33 +0000 + +rabbitmq-server (1.5.2-1) hardy; urgency=low + + * New Upstream Release + + -- Tony Garnock-Jones <tonyg@lshift.net> Mon, 23 Feb 2009 16:03:38 +0000 + rabbitmq-server (1.5.1-1) hardy; urgency=low * New Upstream Release diff --git a/packaging/debs/Debian/debian/copyright b/packaging/debs/Debian/debian/copyright index f9a2b651..854db290 100644 --- a/packaging/debs/Debian/debian/copyright +++ b/packaging/debs/Debian/debian/copyright @@ -3,14 +3,26 @@ Wed, 3 Jan 2007 15:43:44 +0000. It was downloaded from http://www.rabbitmq.com/ -Upstream Author: The RabbitMQ team <info@rabbitmq.com> +codegen/amqp-0.8.json is released under the MIT License and is +Copyright (C) 2008-2009 LShift Ltd, Cohesive Financial Technologies +LLC, and Rabbit Technologies Ltd. -Copyright: 2006-2009 Rabbit Technologies Ltd. +The rest of this package is licensed under the Mozilla Public License 1.1 +Authors and Copyright are as described below: -License: -The RabbitMQ server is licensed under the MPL. + 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-2009 LShift + Ltd. Portions created by Cohesive Financial Technologies LLC are + Copyright (C) 2007-2009 Cohesive Financial Technologies + LLC. Portions created by Rabbit Technologies Ltd are Copyright + (C) 2007-2009 Rabbit Technologies Ltd. MOZILLA PUBLIC LICENSE diff --git a/packaging/debs/Debian/debian/dirs b/packaging/debs/Debian/debian/dirs index 1a707bc1..625b7d41 100644 --- a/packaging/debs/Debian/debian/dirs +++ b/packaging/debs/Debian/debian/dirs @@ -5,4 +5,5 @@ usr/share/man var/lib/rabbitmq/mnesia var/log/rabbitmq etc/logrotate.d +etc/rabbitmq diff --git a/packaging/debs/Debian/debian/init.d b/packaging/debs/Debian/debian/init.d index 1542942d..ef66add5 100644 --- a/packaging/debs/Debian/debian/init.d +++ b/packaging/debs/Debian/debian/init.d @@ -10,7 +10,7 @@ ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin -DAEMON=/usr/lib/rabbitmq/bin/rabbitmq-multi +DAEMON=/usr/sbin/rabbitmq-multi NAME=rabbitmq-server DESC=rabbitmq-server USER=rabbitmq @@ -30,7 +30,7 @@ cd / start_rabbitmq () { set +e - su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err + $DAEMON start_all ${NODE_COUNT} > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err case "$?" in 0) echo SUCCESS @@ -52,7 +52,7 @@ stop_rabbitmq () { set +e status_rabbitmq quiet if [ $RETVAL = 0 ] ; then - su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err + $DAEMON stop_all > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err RETVAL=$? if [ $RETVAL != 0 ] ; then echo FAILED - check /var/log/rabbitmq/shutdown_log, _err @@ -67,9 +67,9 @@ stop_rabbitmq () { status_rabbitmq() { set +e if [ "$1" != "quiet" ] ; then - su $USER -s /bin/sh -c "$DAEMON status" 2>&1 + $DAEMON status 2>&1 else - su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1 + $DAEMON status > /dev/null 2>&1 fi if [ $? != 0 ] ; then RETVAL=1 @@ -79,7 +79,10 @@ status_rabbitmq() { rotate_logs_rabbitmq() { set +e - su $USER -s /bin/sh -c "$DAEMON rotate_logs ${ROTATE_SUFFIX}" 2>&1 + $DAEMON rotate_logs ${ROTATE_SUFFIX} + if [ $? != 0 ] ; then + RETVAL=1 + fi set -e } diff --git a/packaging/debs/Debian/debian/postrm b/packaging/debs/Debian/debian/postrm index 8d1e92a9..a999d95b 100644 --- a/packaging/debs/Debian/debian/postrm +++ b/packaging/debs/Debian/debian/postrm @@ -31,6 +31,9 @@ case "$1" in if [ -d /var/run/rabbitmq ]; then rm -r /var/run/rabbitmq fi + if [ -d /etc/rabbitmq ]; then + rm -r /etc/rabbitmq + fi if getent passwd rabbitmq >/dev/null; then deluser rabbitmq fi diff --git a/packaging/debs/Debian/debian/rabbitmq-server.logrotate b/packaging/debs/Debian/debian/rabbitmq-server.logrotate index bfd6b8da..c786df77 100644 --- a/packaging/debs/Debian/debian/rabbitmq-server.logrotate +++ b/packaging/debs/Debian/debian/rabbitmq-server.logrotate @@ -7,6 +7,6 @@ notifempty sharedscripts postrotate - /etc/init.d/rabbitmq-server rotate-logs + /etc/init.d/rabbitmq-server rotate-logs > /dev/null endscript } diff --git a/packaging/debs/Debian/debian/rules b/packaging/debs/Debian/debian/rules index 908ec481..31904851 100644 --- a/packaging/debs/Debian/debian/rules +++ b/packaging/debs/Debian/debian/rules @@ -14,5 +14,6 @@ DOCDIR=$(DEB_DESTDIR)usr/share/doc/rabbitmq-server/ install/rabbitmq-server:: mkdir -p $(DOCDIR) rm $(RABBIT_LIB)LICENSE* - cp debian/rabbitmqctl_wrapper $(DEB_DESTDIR)usr/sbin/rabbitmqctl - chmod a+x $(DEB_DESTDIR)usr/sbin/rabbitmqctl + for script in rabbitmqctl rabbitmq-server rabbitmq-multi; do \ + install -p -D -m 0755 debian/rabbitmq-script-wrapper $(DEB_DESTDIR)usr/sbin/$$script; \ + done diff --git a/packaging/macports/net/rabbitmq-server/Portfile b/packaging/macports/net/rabbitmq-server/Portfile index 82ae62aa..d9d16dbb 100644 --- a/packaging/macports/net/rabbitmq-server/Portfile +++ b/packaging/macports/net/rabbitmq-server/Portfile @@ -1,79 +1,98 @@ -# $Id$ -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 - -PortSystem 1.0 -name rabbitmq-server -version 1.3.0 -revision 0 -categories net -maintainers tonyg@rabbitmq.com -platforms darwin -description The RabbitMQ AMQP Server -long_description \ +# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 +# $Id$ + +PortSystem 1.0 + +name rabbitmq-server +version 1.5.3 +categories net +maintainers tonyg@rabbitmq.com +platforms darwin +description The RabbitMQ AMQP Server +long_description \ RabbitMQ is an implementation of AMQP, the emerging standard for \ high performance enterprise messaging. The RabbitMQ server is a \ robust and scalable implementation of an AMQP broker. -homepage http://www.rabbitmq.com/ -master_sites http://www.rabbitmq.com/releases/source/ -distname rabbitmq-${version} +homepage http://www.rabbitmq.com/ +master_sites http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/ checksums \ - md5 46ee6dbbacdc67b25cc6ccd9c394b6f2 \ - sha1 67e1e640136a1993567ace97dc5f67b1ad8e6304 \ - rmd160 9e92502d36ab5cd1e3f0d39a46bb512b9440f35a + md5 3242a67885c2471b5ab62254bf024679 \ + sha1 f4d6a01eaa2c74fa32f567fe410d21d9be1b43aa \ + rmd160 1a1c4b97d765548028c161d1617905151ca9e040 -depends_build port:erlang -depends_run port:erlang +depends_build port:erlang port:py25-simplejson +depends_run port:erlang -use_configure no +set serveruser rabbitmq +set servergroup rabbitmq +set serverhome ${prefix}/var/lib/rabbitmq +set logdir ${prefix}/var/log/rabbitmq +set mnesiadbdir ${prefix}/var/lib/rabbitmq/mnesia +set plistloc ${prefix}/etc/LaunchDaemons/org.macports.rabbitmq-server -worksrcdir rabbitmq-${version}/erlang/rabbit +use_configure no use_parallel_build yes +build.args PYTHON=${prefix}/bin/python2.5 + destroot.destdir \ - DIST_DIR=${destroot}${prefix}/lib/erlang/lib/rabbitmq_server-${version} \ - SBIN_DIR=${destroot}${prefix}/sbin -destroot.target dist-unix + TARGET_DIR=${destroot}${prefix}/lib/erlang/lib/rabbitmq_server-${version} \ + SBIN_DIR=${destroot}${prefix}/sbin \ + MAN_DIR=${destroot}${prefix}/share/man destroot.keepdirs \ - ${destroot}${prefix}/var/lib/rabbitmq/pids \ - ${destroot}${prefix}/var/log/rabbitmq \ - ${destroot}${prefix}/var/lib/rabbitmq/mnesia + ${destroot}${logdir} \ + ${destroot}${mnesiadbdir} pre-destroot { - addgroup rabbitmq - adduser rabbitmq gid=[existsgroup rabbitmq] realname=RabbitMQ\ Server home=${prefix}/var/lib/rabbitmq + addgroup ${servergroup} + adduser ${serveruser} gid=[existsgroup ${servergroup}] realname=RabbitMQ\ Server home=${serverhome} } post-destroot { - xinstall -d ${destroot}${prefix}/etc/default - xinstall -d -g [existsgroup rabbitmq] -m 775 ${destroot}${prefix}/var/log/rabbitmq - xinstall -d -g [existsgroup rabbitmq] -m 775 ${destroot}${prefix}/var/lib/rabbitmq - xinstall -d -g [existsgroup rabbitmq] -m 775 ${destroot}${prefix}/var/lib/rabbitmq/pids - xinstall -d -g [existsgroup rabbitmq] -m 775 ${destroot}${prefix}/var/lib/rabbitmq/mnesia - file rename ${destroot}${prefix}/sbin/rabbitmqctl ${destroot}${prefix}/sbin/rabbitmqctl_real - xinstall -m 555 ${filespath}/rabbitmqctl_wrapper ${destroot}${prefix}/sbin - file rename ${destroot}${prefix}/sbin/rabbitmqctl_wrapper ${destroot}${prefix}/sbin/rabbitmqctl - file copy ${filespath}/rabbitmq-defaults ${destroot}${prefix}/etc/default/rabbitmq - reinplace "s:^CLUSTER_CONFIG_FILE=:CLUSTER_CONFIG_FILE=${prefix}:" \ + xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${logdir} + xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${serverhome} + xinstall -d -g [existsgroup ${servergroup}] -m 775 ${destroot}${mnesiadbdir} + + reinplace -E "s:(/etc/rabbitmq/rabbitmq.conf):${prefix}\\1:g" \ + ${destroot}${prefix}/sbin/rabbitmq-multi \ + ${destroot}${prefix}/sbin/rabbitmq-server \ + ${destroot}${prefix}/sbin/rabbitmqctl + reinplace -E "s:(RABBITMQ_CLUSTER_CONFIG_FILE)=/:\\1=${prefix}/:" \ + ${destroot}${prefix}/sbin/rabbitmq-multi \ + ${destroot}${prefix}/sbin/rabbitmq-server \ + ${destroot}${prefix}/sbin/rabbitmqctl + reinplace -E "s:(RABBITMQ_LOG_BASE)=/:\\1=${prefix}/:" \ + ${destroot}${prefix}/sbin/rabbitmq-multi \ + ${destroot}${prefix}/sbin/rabbitmq-server \ + ${destroot}${prefix}/sbin/rabbitmqctl + reinplace -E "s:(RABBITMQ_MNESIA_BASE)=/:\\1=${prefix}/:" \ ${destroot}${prefix}/sbin/rabbitmq-multi \ ${destroot}${prefix}/sbin/rabbitmq-server \ - ${destroot}${prefix}/sbin/rabbitmqctl \ - ${destroot}${prefix}/sbin/rabbitmqctl_real - reinplace "s:^CONFIG_FILE=:CONFIG_FILE=${prefix}:" \ + ${destroot}${prefix}/sbin/rabbitmqctl + reinplace -E "s:(RABBITMQ_PIDS_FILE)=/:\\1=${prefix}/:" \ ${destroot}${prefix}/sbin/rabbitmq-multi \ ${destroot}${prefix}/sbin/rabbitmq-server \ - ${destroot}${prefix}/sbin/rabbitmqctl \ - ${destroot}${prefix}/sbin/rabbitmqctl_real - reinplace "s|@PREFIX@|${prefix}|" \ - ${destroot}${prefix}/sbin/rabbitmqctl \ - ${destroot}${prefix}/etc/default/rabbitmq + ${destroot}${prefix}/sbin/rabbitmqctl + + file rename ${destroot}${prefix}/sbin/rabbitmqctl ${destroot}${prefix}/sbin/rabbitmqctl_real + xinstall -m 555 ${filespath}/rabbitmqctl_wrapper ${destroot}${prefix}/sbin + file rename ${destroot}${prefix}/sbin/rabbitmqctl_wrapper ${destroot}${prefix}/sbin/rabbitmqctl + + reinplace -E "s:@PREFIX@:${prefix}:" \ + ${destroot}${prefix}/sbin/rabbitmqctl +} + +pre-install { + system "cd ${destroot}${plistloc}; patch <${filespath}/patch-org.macports.rabbitmq-server.plist.diff" } startupitem.create yes startupitem.init "PATH=${prefix}/bin:${prefix}/sbin:\$PATH; export PATH" -startupitem.start "su rabbitmq -c rabbitmq-server 2>&1" +startupitem.start "rabbitmq-server 2>&1" startupitem.stop "rabbitmqctl stop 2>&1" startupitem.logfile ${prefix}/var/log/rabbitmq/startupitem.log diff --git a/packaging/macports/net/rabbitmq-server/files/patch-org.macports.rabbitmq-server.plist.diff b/packaging/macports/net/rabbitmq-server/files/patch-org.macports.rabbitmq-server.plist.diff new file mode 100644 index 00000000..45b49496 --- /dev/null +++ b/packaging/macports/net/rabbitmq-server/files/patch-org.macports.rabbitmq-server.plist.diff @@ -0,0 +1,10 @@ +--- org.macports.rabbitmq-server.plist.old 2009-02-26 08:00:31.000000000 -0800 ++++ org.macports.rabbitmq-server.plist 2009-02-26 08:01:27.000000000 -0800 +@@ -22,6 +22,7 @@ + <string>;</string> + <string>--pid=none</string> + </array> ++<key>UserName</key><string>rabbitmq</string> + <key>Debug</key><false/> + <key>Disabled</key><true/> + <key>OnDemand</key><false/> diff --git a/packaging/macports/net/rabbitmq-server/files/rabbitmq-defaults b/packaging/macports/net/rabbitmq-server/files/rabbitmq-defaults deleted file mode 100644 index 1f9aad11..00000000 --- a/packaging/macports/net/rabbitmq-server/files/rabbitmq-defaults +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# defaults file for rabbitmq-server -# - -PIDS_FILE=@PREFIX@/var/lib/rabbitmq/pids -LOG_BASE=@PREFIX@/var/log/rabbitmq -MNESIA_BASE=@PREFIX@/var/lib/rabbitmq/mnesia diff --git a/packaging/macports/net/rabbitmq-server/files/rabbitmqctl_wrapper b/packaging/macports/net/rabbitmq-server/files/rabbitmqctl_wrapper index 392c82ff..1996811e 100644 --- a/packaging/macports/net/rabbitmq-server/files/rabbitmqctl_wrapper +++ b/packaging/macports/net/rabbitmq-server/files/rabbitmqctl_wrapper @@ -1,13 +1,2 @@ #!/bin/bash -# Escape spaces and quotes, because shell is revolting. -for arg in "$@" ; do - # Escape quotes in parameters, so that they're passed through cleanly. - arg=$(sed -e 's/"/\\"/' <<-END - $arg - END - ) - CMDLINE="${CMDLINE} \"${arg}\"" -done - -cd / -exec su rabbitmq -c "@PREFIX@/sbin/rabbitmqctl_real ${CMDLINE}" +exec sudo -H -u rabbitmq "@PREFIX@/sbin/rabbitmqctl_real" "$@" diff --git a/scripts/rabbitmq-multi b/scripts/rabbitmq-multi index 164c5e18..4cf0703a 100755 --- a/scripts/rabbitmq-multi +++ b/scripts/rabbitmq-multi @@ -30,7 +30,7 @@ ## Contributor(s): ______________________________________. ## -[ -f /etc/default/rabbitmq ] && . /etc/default/rabbitmq +[ -f /etc/rabbitmq/rabbitmq.conf ] && . /etc/rabbitmq/rabbitmq.conf [ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME} [ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=rabbit diff --git a/scripts/rabbitmq-server b/scripts/rabbitmq-server index 9a35c477..6273804f 100755 --- a/scripts/rabbitmq-server +++ b/scripts/rabbitmq-server @@ -30,7 +30,7 @@ ## Contributor(s): ______________________________________. ## -[ -f /etc/default/rabbitmq ] && . /etc/default/rabbitmq +[ -f /etc/rabbitmq/rabbitmq.conf ] && . /etc/rabbitmq/rabbitmq.conf [ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=${NODENAME} [ "x" = "x$RABBITMQ_NODENAME" ] && RABBITMQ_NODENAME=rabbit @@ -43,7 +43,7 @@ -kernel inet_default_listen_options [{nodelay,true},{sndbuf,16384},{recbuf,4096}] \ -kernel inet_default_connect_options [{nodelay,true}]" [ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=${CLUSTER_CONFIG_FILE} -[ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=/etc/default/rabbitmq_cluster.config +[ "x" = "x$RABBITMQ_CLUSTER_CONFIG_FILE" ] && RABBITMQ_CLUSTER_CONFIG_FILE=/etc/rabbitmq/rabbitmq_cluster.config [ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=${LOG_BASE} [ "x" = "x$RABBITMQ_LOG_BASE" ] && RABBITMQ_LOG_BASE=/var/log/rabbitmq [ "x" = "x$RABBITMQ_MNESIA_BASE" ] && RABBITMQ_MNESIA_BASE=${MNESIA_BASE} diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 12ee299e..9f642e35 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -231,8 +231,12 @@ start_connection(Parent, Deb, ClientSock) -> connection_state = pre_init}, handshake, 8)) catch - Ex -> rabbit_log:error("error on TCP connection ~p from ~s:~p~n~p~n", - [self(), PeerAddressS, PeerPort, Ex]) + Ex -> (if Ex == connection_closed_abruptly -> + fun rabbit_log:warning/2; + true -> + fun rabbit_log:error/2 + end)("exception on TCP connection ~p from ~s:~p~n~p~n", + [self(), PeerAddressS, PeerPort, Ex]) after rabbit_log:info("closing TCP connection ~p from ~s:~p~n", [self(), PeerAddressS, PeerPort]), |