summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Radestock <matthias@lshift.net>2009-11-11 22:23:20 +0000
committerMatthias Radestock <matthias@lshift.net>2009-11-11 22:23:20 +0000
commite41f790fb6d1501f291dabf43e138058f6fb2630 (patch)
tree9a9683c375767e98c162a0c19ad83daa1b2b3f96
parent8f6fc6304de71619fcfbae306e8c8db438795752 (diff)
parent88433c43c79f45b045656aa26e11650776d003d8 (diff)
downloadrabbitmq-server-e41f790fb6d1501f291dabf43e138058f6fb2630.tar.gz
merge bug21876 into next
-rw-r--r--codegen.py27
-rw-r--r--packaging/common/rabbitmq-script-wrapper4
-rw-r--r--packaging/macports/net/rabbitmq-server/Portfile27
-rw-r--r--packaging/macports/net/rabbitmq-server/files/rabbitmq-script-wrapper4
4 files changed, 50 insertions, 12 deletions
diff --git a/codegen.py b/codegen.py
index 533192c5..1c5b2b54 100644
--- a/codegen.py
+++ b/codegen.py
@@ -228,12 +228,12 @@ def genErl(spec):
print " rabbit_binary_generator:encode_properties(%s, %s);" % \
(fieldTypeList(c.fields), fieldTempList(c.fields))
- def massageConstantClass(cls):
+ def messageConstantClass(cls):
# We do this because 0.8 uses "soft error" and 8.1 uses "soft-error".
return erlangConstantName(cls)
def genLookupException(c,v,cls):
- mCls = massageConstantClass(cls)
+ mCls = messageConstantClass(cls)
if mCls == 'SOFT_ERROR': genLookupException1(c,'false')
elif mCls == 'HARD_ERROR': genLookupException1(c, 'true')
elif mCls == '': pass
@@ -244,6 +244,20 @@ def genErl(spec):
print 'lookup_amqp_exception(%s) -> {%s, ?%s, <<"%s">>};' % \
(n.lower(), hardErrorBoolStr, n, n)
+ def genIsAmqpHardErrorCode(c,v,cls):
+ mCls = messageConstantClass(cls)
+ if mCls == 'SOFT_ERROR' : genIsAmqpHardErrorCode1(c,'false')
+ elif mCls == 'HARD_ERROR' : genIsAmqpHardErrorCode1(c,'true')
+ elif mCls == '' : pass
+ else: raise 'Unkown constant class', cls
+
+ def genIsAmqpHardErrorCode1(c,hardErrorBoolStr):
+ n = erlangConstantName(c)
+ print 'is_amqp_hard_error_code(?%s) -> %s;' % \
+ (n, hardErrorBoolStr)
+ print 'is_amqp_hard_error_code(%s) -> %s;' % \
+ (n.lower(), hardErrorBoolStr)
+
methods = spec.allMethods()
print """-module(rabbit_framing).
@@ -260,6 +274,7 @@ def genErl(spec):
-export([encode_method_fields/1]).
-export([encode_properties/1]).
-export([lookup_amqp_exception/1]).
+-export([is_amqp_hard_error_code/1]).
bitvalue(true) -> 1;
bitvalue(false) -> 0;
@@ -296,8 +311,14 @@ bitvalue(undefined) -> 0.
for (c,v,cls) in spec.constants: genLookupException(c,v,cls)
print "lookup_amqp_exception(Code) ->"
print " rabbit_log:warning(\"Unknown AMQP error code '~p'~n\", [Code]),"
- print " {true, ?INTERNAL_ERROR, <<\"INTERNAL_ERROR\">>}."
+ print " {true, ?INTERNAL_ERROR, <<\"INTERNAL_ERROR\">>}."
+ for(c,v,cls) in spec.constants: genIsAmqpHardErrorCode(c,v,cls)
+ print "is_amqp_hard_error_code(Code) when is_integer(Code) ->"
+ print " true;"
+ print "is_amqp_hard_error_code(Code) ->"
+ print " rabbit_log:warning(\"Unknown AMQP error code '~p'~n\", [Code]),"
+ print " true."
def genHrl(spec):
def erlType(domain):
diff --git a/packaging/common/rabbitmq-script-wrapper b/packaging/common/rabbitmq-script-wrapper
index 0c4bd0a8..08e888cd 100644
--- a/packaging/common/rabbitmq-script-wrapper
+++ b/packaging/common/rabbitmq-script-wrapper
@@ -46,9 +46,11 @@ SCRIPT=`basename $0`
if [ `id -u` = 0 ] ; then
su rabbitmq -s /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
+elif [ `id -u` = `id -u rabbitmq` ] ; then
+ /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
else
/usr/lib/rabbitmq/bin/${SCRIPT}
- echo -e "\nOnly root should run ${SCRIPT}\n"
+ echo -e "\nOnly root or rabbitmq should run ${SCRIPT}\n"
exit 1
fi
diff --git a/packaging/macports/net/rabbitmq-server/Portfile b/packaging/macports/net/rabbitmq-server/Portfile
index 6b51fb2f..739f99d0 100644
--- a/packaging/macports/net/rabbitmq-server/Portfile
+++ b/packaging/macports/net/rabbitmq-server/Portfile
@@ -3,7 +3,7 @@
PortSystem 1.0
name rabbitmq-server
-version 1.6.0
+version 1.7.0
revision 0
categories net
maintainers tonyg@rabbitmq.com
@@ -19,13 +19,28 @@ homepage http://www.rabbitmq.com/
master_sites http://www.rabbitmq.com/releases/rabbitmq-server/v${version}/
checksums \
- md5 af3b0d868d58e5aefb4f0837b82ca010 \
- sha1 1834c670d076fa9878223aacaa35a5a6528f1d86 \
- rmd160 d6c9de4e1fb48c6ceb1cb5d717ca2afb5e3266fe
+ md5 4505ca0fd8718439bd6f5e2af2379e56 \
+ sha1 84fb86d403057bb808c1b51deee0c1fca3bf7bef \
+ rmd160 092f90946825cc3eb277019805e24db637a559f4
-depends_build port:erlang port:py25-simplejson
+depends_build port:erlang
depends_run port:erlang
+platform darwin 7 {
+ depends_build-append port:py25-simplejson
+ build.args PYTHON=${prefix}/bin/python2.5
+}
+platform darwin 8 {
+ depends_build-append port:py25-simplejson
+ build.args PYTHON=${prefix}/bin/python2.5
+}
+platform darwin 9 {
+ depends_build-append port:py25-simplejson
+ build.args PYTHON=${prefix}/bin/python2.5
+}
+# no need for simplejson on Snow Leopard or higher
+
+
set serveruser rabbitmq
set servergroup rabbitmq
set serverhome ${prefix}/var/lib/rabbitmq
@@ -40,8 +55,6 @@ use_configure no
use_parallel_build yes
-build.args PYTHON=${prefix}/bin/python2.5
-
destroot.destdir \
TARGET_DIR=${destroot}${prefix}/lib/rabbitmq/lib/rabbitmq_server-${version} \
SBIN_DIR=${sbindir} \
diff --git a/packaging/macports/net/rabbitmq-server/files/rabbitmq-script-wrapper b/packaging/macports/net/rabbitmq-server/files/rabbitmq-script-wrapper
index 0d7118c4..80cb7bd5 100644
--- a/packaging/macports/net/rabbitmq-server/files/rabbitmq-script-wrapper
+++ b/packaging/macports/net/rabbitmq-server/files/rabbitmq-script-wrapper
@@ -5,9 +5,11 @@ SCRIPT=`basename $0`
if [ `id -u` = 0 ] ; then
sudo -u rabbitmq -H /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
+elif [ `id -u` = `id -u rabbitmq` ] ; then
+ /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
else
/usr/lib/rabbitmq/bin/${SCRIPT}
- echo -e "\nOnly root should run ${SCRIPT}\n"
+ echo -e "\nOnly root or rabbitmq should run ${SCRIPT}\n"
exit 1
fi