+++ /dev/null
-#!/bin/sh
-## 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 Developer of the Original Code is GoPivotal, Inc.
-## Copyright (c) 2007-2015 Pivotal Software, Inc. All rights reserved.
-##
-
-SED_OPT="-E"
-if [ $(uname -s) = "Linux" ]; then
- SED_OPT="-r"
-fi
-
-for arg in "$@" ; do
- # Wrap each arg in single quotes and wrap single quotes in double quotes, so that they're passed through cleanly.
- arg=`printf %s "$arg" | sed $SED_OPT -e "s/'/'\"'\"'/g"`
- CMDLINE="${CMDLINE} '${arg}'"
-done
-
-cd /var/lib/rabbitmq
-
-SCRIPT=`basename $0`
-
-if [ `id -u` = `id -u rabbitmq` -a "$SCRIPT" = "rabbitmq-server" ] ; then
- RABBITMQ_ENV=/usr/lib/rabbitmq/bin/rabbitmq-env
- RABBITMQ_SCRIPTS_DIR=$(dirname "$RABBITMQ_ENV")
- . "$RABBITMQ_ENV"
-
- exec /usr/lib/rabbitmq/bin/rabbitmq-server "$@"
-elif [ `id -u` = `id -u rabbitmq` -o "$SCRIPT" = "rabbitmq-plugins" ] ; then
- if [ -f $PWD/.erlang.cookie ] ; then
- export HOME=.
- fi
- exec /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
-elif [ `id -u` = 0 ] ; then
- # WRS. Allow to run as root
- export HOME=${HOME:-/root}
- /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
-else
- /usr/lib/rabbitmq/bin/${SCRIPT}
- echo
- echo "Only root or rabbitmq should run ${SCRIPT}"
- echo
- exit 1
-fi
--- /dev/null
+From 460a27eb4530d9d7f7eceaf42b1f1b13af96d952 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 11 Jun 2020 10:29:09 +0800
+Subject: [PATCH] rabbitmq-script-wrapper: allow to run as root
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ scripts/rabbitmq-script-wrapper | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/scripts/rabbitmq-script-wrapper b/scripts/rabbitmq-script-wrapper
+index 9623f01..b2a4520 100644
+--- a/scripts/rabbitmq-script-wrapper
++++ b/scripts/rabbitmq-script-wrapper
+@@ -15,9 +15,14 @@
+ ## Copyright (c) 2007-2015 Pivotal Software, Inc. All rights reserved.
+ ##
+
++SED_OPT="-E"
++if [ $(uname -s) = "Linux" ]; then
++ SED_OPT="-r"
++fi
++
+ for arg in "$@" ; do
+ # Wrap each arg in single quotes and wrap single quotes in double quotes, so that they're passed through cleanly.
+- arg=`printf %s "$arg" | sed -e "s#'#'\"'\"'#g"`
++ arg=`printf %s "$arg" | sed $SED_OPT -e "s/'/'\"'\"'/g"`
+ CMDLINE="${CMDLINE} '${arg}'"
+ done
+
+@@ -30,14 +35,16 @@ if [ `id -u` = `id -u rabbitmq` -a "$SCRIPT" = "rabbitmq-server" ] ; then
+ RABBITMQ_SCRIPTS_DIR=$(dirname "$RABBITMQ_ENV")
+ . "$RABBITMQ_ENV"
+
+- exec /usr/lib/rabbitmq/bin/rabbitmq-server "$@" @STDOUT_STDERR_REDIRECTION@
++ exec /usr/lib/rabbitmq/bin/rabbitmq-server "$@"
+ elif [ `id -u` = `id -u rabbitmq` -o "$SCRIPT" = "rabbitmq-plugins" ] ; then
+ if [ -f $PWD/.erlang.cookie ] ; then
+ export HOME=.
+ fi
+ exec /usr/lib/rabbitmq/bin/${SCRIPT} "$@"
+ elif [ `id -u` = 0 ] ; then
+- @SU_RABBITMQ_SH_C@ "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
++ # WRS. Allow to run as root
++ export HOME=${HOME:-/root}
++ /bin/sh -c "/usr/lib/rabbitmq/bin/${SCRIPT} ${CMDLINE}"
+ else
+ /usr/lib/rabbitmq/bin/${SCRIPT}
+ echo
+--
+2.7.4
+
file://rabbitmq-server-0004-Allow-guest-login-from-non-loopback-connections.patch \
file://rabbitmq-server-0005-Avoid-RPC-roundtrips-in-list-commands.patch \
file://rabbitmq-server-0006-rabbit_prelaunch-must-use-RABBITMQ_SERVER_ERL_ARGS.patch \
+ file://rabbitmq-server-0007-rabbitmq-script-wrapper-allow-to-run-as-root.patch \
file://rabbitmq-common-0001-Avoid-RPC-roundtrips-while-listing-items.patch;patchdir=deps/rabbit_common \
file://rabbitmq-common-0002-Use-proto_dist-from-command-line.patch;patchdir=deps/rabbit_common \
file://rabbitmq-server-fails-with-home-not-set.patch \
- file://rabbitmq-script-wrapper \
file://rabbitmq-server.logrotate \
file://rabbitmq-server.tmpfiles \
"
# Copy all necessary lib files etc.
install -p -D -m 0644 ${S}/docs/rabbitmq-server.service.example ${D}${systemd_system_unitdir}/rabbitmq-server.service
- install -p -D -m 0755 ${WORKDIR}/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmqctl
- install -p -D -m 0755 ${WORKDIR}/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmq-server
- install -p -D -m 0755 ${WORKDIR}/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmq-plugins
+ install -p -D -m 0755 ${S}/scripts/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmqctl
+ install -p -D -m 0755 ${S}/scripts/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmq-server
+ install -p -D -m 0755 ${S}/scripts/rabbitmq-script-wrapper ${D}${sbindir}/rabbitmq-plugins
# Make necessary symlinks
mkdir -p ${D}${RABBIT_LIB_DIR}/bin