[arch-commits] Commit in rabbitmq/trunk (PKGBUILD rabbitmq-script-wrapper)

Levente Polyak anthraxx at archlinux.org
Tue Sep 12 10:34:11 UTC 2017


    Date: Tuesday, September 12, 2017 @ 10:34:10
  Author: anthraxx
Revision: 257103

upgpkg: rabbitmq 3.6.12-1 (adding wrapper script)

- wrapper script allows rabbitmq* scripts to be run as
  either rabbitmq or root (su-ing as rabbitmq) FS#46908

Added:
  rabbitmq/trunk/rabbitmq-script-wrapper
Modified:
  rabbitmq/trunk/PKGBUILD

-------------------------+
 PKGBUILD                |   19 +++++++++++-------
 rabbitmq-script-wrapper |   48 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2017-09-12 10:32:52 UTC (rev 257102)
+++ PKGBUILD	2017-09-12 10:34:10 UTC (rev 257103)
@@ -8,23 +8,25 @@
 # Contributor: mutantmonkey
 
 pkgname=rabbitmq
-pkgver=3.6.11
+pkgver=3.6.12
 pkgrel=1
 pkgdesc='Highly reliable and performant enterprise messaging implementation of AMQP written in Erlang/OTP'
 url='https://rabbitmq.com'
 arch=('any')
 license=('MPL')
-depends=('erlang-nox')
+depends=('util-linux' 'inetutils' 'erlang-nox')
 optdepends=('rabbitmqadmin: CLI management tool')
 backup=('etc/rabbitmq/rabbitmq-env.conf')
 install=rabbitmq.install
 source=(https://www.rabbitmq.com/releases/${pkgname}-server/v${pkgver}/${pkgname}-server-generic-unix-${pkgver}.tar.xz{,.asc}
         rabbitmq-env.conf
-        rabbitmq.service)
-sha512sums=('56c5bb4bed9886b53454da400e111d7f24bb51b7172a6e2311b0ee13a28782e81718721c0d1fe02194bcb817ef9c2d7ecb8ba6d3181d3ef3baf6cb7bf395819f'
+        rabbitmq.service
+        rabbitmq-script-wrapper)
+sha512sums=('6c2551a01c6210cd9e353ae19f69098478349a7ba59bc83844a682fc73d9e920cbc21c753edaf40cc9119f8befcd3d1647bf20d47741fb5ac1e969844cb5fb1d'
             'SKIP'
             '4872ff514c9f841fe4c93bc442ec4e3177d1bfa3834e8d8a26fc77a63aff1cdc14944827673a59556e26210b2b4c0091f93c8e93a334710e5bc3336a64e77140'
-            'd51b43f948febb23cdd5b0c7736f966d8433b05ccd95778e90d280d45ccfd9a714e888762f458337a784fff4b86430151adb0f81d779d6b99c9154fcd7e0e319')
+            'd51b43f948febb23cdd5b0c7736f966d8433b05ccd95778e90d280d45ccfd9a714e888762f458337a784fff4b86430151adb0f81d779d6b99c9154fcd7e0e319'
+            '3f271d546836eccc3bcf61105c013d3b590c3e2535106d07e5605a63174fd62ef204207367c2cd39be54e0246d0bbd9aecebe8b5cefe9018a766ceb8af70bc81')
 validpgpkeys=('0A9AF2115F4687BD29803A206B73A36E6026DFCA') # RabbitMQ Release Signing Key <info at rabbitmq.com>
 
 prepare() {
@@ -47,8 +49,11 @@
   cp -R sbin "${libdir}"
   cp -R share "${pkgdir}/usr"
 
-  for script in ${libdir}/sbin/*; do
-    ln -s "${script#${pkgdir}}" "${pkgdir}/usr/bin/"
+  install -d "${pkgdir}/usr/lib/rabbitmq/bin"
+  install -Dm 755 "${srcdir}/rabbitmq-script-wrapper" -t "${pkgdir}/usr/lib/rabbitmq/bin"
+  for script in "${libdir}"/sbin/*; do
+    ln -s "${script#${pkgdir}}" "${pkgdir}/usr/lib/rabbitmq/bin"
+    ln -s /usr/lib/rabbitmq/bin/rabbitmq-script-wrapper "${pkgdir}/usr/bin/${script#${libdir}/sbin/}"
   done
 
   install -Dm 644 "${srcdir}/rabbitmq-env.conf" "${pkgdir}/etc/rabbitmq/rabbitmq-env.conf"

Added: rabbitmq-script-wrapper
===================================================================
--- rabbitmq-script-wrapper	                        (rev 0)
+++ rabbitmq-script-wrapper	2017-09-12 10:34:10 UTC (rev 257103)
@@ -0,0 +1,48 @@
+#!/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-2014 GoPivotal, Inc.  All rights reserved.
+##
+
+# 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/"/\\"/g' <<-END
+		$arg
+		END
+	)
+	CMDLINE="${CMDLINE} \"${arg}\""
+done
+
+SCRIPT="$(basename "$0")"
+
+if [ $(id -u) = $(id -u rabbitmq) ] && [ "$SCRIPT" = "rabbitmq-server" ]; then
+	cd /var/lib/rabbitmq
+    /usr/lib/rabbitmq/bin/rabbitmq-server "$@" > "/var/log/rabbitmq/startup_log" 2> "/var/log/rabbitmq/startup_err"
+elif [ $(id -u) = $(id -u rabbitmq) ]; then
+	cd /var/lib/rabbitmq
+    if [ -f "${PWD}/.erlang.cookie" ] ; then
+        export HOME=.
+    fi
+    "/usr/lib/rabbitmq/bin/${SCRIPT}" "$@"
+elif [ $(id -u) = 0 ] ; then
+	cd /var/lib/rabbitmq
+    su rabbitmq -s /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


Property changes on: rabbitmq/trunk/rabbitmq-script-wrapper
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property



More information about the arch-commits mailing list