From: Roman Vyalov Date: Thu, 7 Nov 2013 09:16:25 +0000 (+0400) Subject: add files in repository from rabbitmq-server-2.8.7-2.el6.src.rpm X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=refs%2Fheads%2F4.0;p=packages%2Fcentos6%2Frabbitmq-server.git add files in repository from rabbitmq-server-2.8.7-2.el6.src.rpm --- diff --git a/rabbitmq-script-wrapper b/rabbitmq-script-wrapper new file mode 100644 index 0000000..72ae609 --- /dev/null +++ b/rabbitmq-script-wrapper @@ -0,0 +1,44 @@ +#!/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 VMware, Inc. +## Copyright (c) 2007-2012 VMware, 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 + +cd /var/lib/rabbitmq + +SCRIPT=`basename $0` + +if [ `id -u` = `id -u rabbitmq` -a "$SCRIPT" = "rabbitmq-server" ] ; then + /usr/lib/rabbitmq/bin/rabbitmq-server "$@" +elif [ `id -u` = `id -u rabbitmq` -o "$SCRIPT" = "rabbitmq-plugins" ] ; then + /usr/lib/rabbitmq/bin/${SCRIPT} "$@" +elif [ `id -u` = 0 ] ; then + 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 diff --git a/rabbitmq-server-2.8.7.tar.gz b/rabbitmq-server-2.8.7.tar.gz new file mode 100644 index 0000000..eeef92f Binary files /dev/null and b/rabbitmq-server-2.8.7.tar.gz differ diff --git a/rabbitmq-server.init b/rabbitmq-server.init new file mode 100644 index 0000000..7cdf535 --- /dev/null +++ b/rabbitmq-server.init @@ -0,0 +1,175 @@ +#!/bin/sh +# +# rabbitmq-server RabbitMQ broker +# +# chkconfig: - 80 05 +# description: Enable AMQP service provided by RabbitMQ +# + +### BEGIN INIT INFO +# Provides: rabbitmq-server +# Required-Start: $remote_fs $network +# Required-Stop: $remote_fs $network +# Description: RabbitMQ broker +# Short-Description: Enable AMQP service provided by RabbitMQ broker +### END INIT INFO + +PATH=/sbin:/usr/sbin:/bin:/usr/bin +NAME=rabbitmq-server +DAEMON=/usr/sbin/${NAME} +CONTROL=/usr/sbin/rabbitmqctl +DESC=rabbitmq-server +USER=rabbitmq +ROTATE_SUFFIX= +INIT_LOG_DIR=/var/log/rabbitmq +PID_FILE=/var/run/rabbitmq/pid + +START_PROG="runuser rabbitmq --session-command" +LOCK_FILE=/var/lock/subsys/$NAME + +test -x $DAEMON || exit 0 +test -x $CONTROL || exit 0 + +RETVAL=0 +set -e + +[ -f /etc/default/${NAME} ] && . /etc/default/${NAME} + +ensure_pid_dir () { + PID_DIR=`dirname ${PID_FILE}` + if [ ! -d ${PID_DIR} ] ; then + mkdir -p ${PID_DIR} + chown -R ${USER}:${USER} ${PID_DIR} + chmod 755 ${PID_DIR} + fi +} + +remove_pid () { + rm -f ${PID_FILE} + rmdir `dirname ${PID_FILE}` || : +} + +start_rabbitmq () { + status_rabbitmq quiet + if [ $RETVAL = 0 ] ; then + echo RabbitMQ is currently running + else + RETVAL=0 + ensure_pid_dir + set +e + RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \ + > "${INIT_LOG_DIR}/startup_log" \ + 2> "${INIT_LOG_DIR}/startup_err" \ + 0<&- & + $CONTROL wait $PID_FILE >/dev/null 2>&1 + RETVAL=$? + set -e + case "$RETVAL" in + 0) + echo SUCCESS + if [ -n "$LOCK_FILE" ] ; then + touch $LOCK_FILE + fi + ;; + *) + remove_pid + echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\} + RETVAL=1 + ;; + esac + fi +} + +stop_rabbitmq () { + status_rabbitmq quiet + if [ $RETVAL = 0 ] ; then + set +e + $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err + RETVAL=$? + set -e + if [ $RETVAL = 0 ] ; then + remove_pid + if [ -n "$LOCK_FILE" ] ; then + rm -f $LOCK_FILE + fi + else + echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err + fi + else + echo RabbitMQ is not running + RETVAL=0 + fi +} + +status_rabbitmq() { + set +e + if [ "$1" != "quiet" ] ; then + $CONTROL status 2>&1 + else + $CONTROL status > /dev/null 2>&1 + fi + if [ $? != 0 ] ; then + RETVAL=3 + fi + set -e +} + +rotate_logs_rabbitmq() { + set +e + $CONTROL rotate_logs ${ROTATE_SUFFIX} + if [ $? != 0 ] ; then + RETVAL=1 + fi + set -e +} + +restart_running_rabbitmq () { + status_rabbitmq quiet + if [ $RETVAL = 0 ] ; then + restart_rabbitmq + else + echo RabbitMQ is not runnning + RETVAL=0 + fi +} + +restart_rabbitmq() { + stop_rabbitmq + start_rabbitmq +} + +case "$1" in + start) + echo -n "Starting $DESC: " + start_rabbitmq + echo "$NAME." + ;; + stop) + echo -n "Stopping $DESC: " + stop_rabbitmq + echo "$NAME." + ;; + status) + status_rabbitmq + ;; + rotate-logs) + echo -n "Rotating log files for $DESC: " + rotate_logs_rabbitmq + ;; + force-reload|reload|restart) + echo -n "Restarting $DESC: " + restart_rabbitmq + echo "$NAME." + ;; + try-restart) + echo -n "Restarting $DESC: " + restart_running_rabbitmq + echo "$NAME." + ;; + *) + echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 + RETVAL=1 + ;; +esac + +exit $RETVAL diff --git a/rabbitmq-server.logrotate b/rabbitmq-server.logrotate new file mode 100644 index 0000000..6b65761 --- /dev/null +++ b/rabbitmq-server.logrotate @@ -0,0 +1,12 @@ +/var/log/rabbitmq/*.log { + weekly + missingok + rotate 20 + compress + delaycompress + notifempty + sharedscripts + postrotate + /sbin/service rabbitmq-server rotate-logs > /dev/null + endscript +} diff --git a/rabbitmq-server.ocf b/rabbitmq-server.ocf new file mode 100644 index 0000000..1455728 --- /dev/null +++ b/rabbitmq-server.ocf @@ -0,0 +1,371 @@ +#!/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 VMware, Inc. +## Copyright (c) 2007-2012 VMware, Inc. All rights reserved. +## + +## +## OCF Resource Agent compliant rabbitmq-server resource script. +## + +## OCF instance parameters +## OCF_RESKEY_server +## OCF_RESKEY_ctl +## OCF_RESKEY_nodename +## OCF_RESKEY_ip +## OCF_RESKEY_port +## OCF_RESKEY_config_file +## OCF_RESKEY_log_base +## OCF_RESKEY_mnesia_base +## OCF_RESKEY_server_start_args +## OCF_RESKEY_pid_file + +####################################################################### +# Initialization: + +: ${OCF_FUNCTIONS_DIR=${OCF_ROOT}/resource.d/heartbeat} +. ${OCF_FUNCTIONS_DIR}/.ocf-shellfuncs + +####################################################################### + +OCF_RESKEY_server_default="/usr/sbin/rabbitmq-server" +OCF_RESKEY_ctl_default="/usr/sbin/rabbitmqctl" +OCF_RESKEY_nodename_default="rabbit@localhost" +OCF_RESKEY_log_base_default="/var/log/rabbitmq" +OCF_RESKEY_pid_file_default="/var/run/rabbitmq/pid" +: ${OCF_RESKEY_server=${OCF_RESKEY_server_default}} +: ${OCF_RESKEY_ctl=${OCF_RESKEY_ctl_default}} +: ${OCF_RESKEY_nodename=${OCF_RESKEY_nodename_default}} +: ${OCF_RESKEY_log_base=${OCF_RESKEY_log_base_default}} +: ${OCF_RESKEY_pid_file=${OCF_RESKEY_pid_file_default}} + +meta_data() { + cat < + + +1.0 + + +Resource agent for RabbitMQ-server + + +Resource agent for RabbitMQ-server + + + + +The path to the rabbitmq-server script + +Path to rabbitmq-server + + + + + +The path to the rabbitmqctl script + +Path to rabbitmqctl + + + + + +The node name for rabbitmq-server + +Node name + + + + + +The IP address for rabbitmq-server to listen on + +IP Address + + + + + +The IP Port for rabbitmq-server to listen on + +IP Port + + + + + +Location of the config file (without the .config suffix) + +Config file path (without the .config suffix) + + + + + +Location of the directory under which logs will be created + +Log base path + + + + + +Location of the directory under which mnesia will store data + +Mnesia base path + + + + + +Additional arguments provided to the server on startup + +Server start arguments + + + + + +Location of the file in which the pid will be stored + +Pid file path + + + + + + + + + + + + + + +END +} + +rabbit_usage() { + cat < /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 $action: $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 + + setsid sh -c "$RABBITMQ_SERVER > ${RABBITMQ_LOG_BASE}/startup_log 2> ${RABBITMQ_LOG_BASE}/startup_err" & + + # Wait for the server to come up. + # Let the CRM/LRM time us out if required + rabbit_wait $RABBITMQ_PID_FILE + rc=$? + if [ "$rc" != $OCF_SUCCESS ]; then + remove_pid + ocf_log info "rabbitmq-server start failed: $rc" + exit $OCF_ERR_GENERIC + fi + + return $OCF_SUCCESS +} + +rabbit_stop() { + local rc + + if ! rabbit_status; then + ocf_log info "Resource not running." + return $OCF_SUCCESS + fi + + $RABBITMQ_CTL stop + rc=$? + + if [ "$rc" != 0 ]; then + ocf_log err "rabbitmq-server stop command failed: $RABBITMQ_CTL stop, $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 + remove_pid + 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 $? diff --git a/rabbitmq-server.spec b/rabbitmq-server.spec new file mode 100644 index 0000000..484af47 --- /dev/null +++ b/rabbitmq-server.spec @@ -0,0 +1,236 @@ +%define debug_package %{nil} + +Name: rabbitmq-server +Version: 2.8.7 +Release: 2%{?dist} +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-script-wrapper +Source3: rabbitmq-server.logrotate +Source4: rabbitmq-server.ocf +URL: http://www.rabbitmq.com/ +BuildArch: noarch +BuildRequires: erlang >= R12B-3, python-simplejson, xmlto, libxslt, zip +Requires: erlang >= R12B-3, logrotate +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root +Summary: The RabbitMQ server +Requires(post): chkconfig initscripts +Requires(pre): chkconfig initscripts + +%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. + +# 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_server_ocf %{_builddir}/`basename %{S:4}` +%define _plugins_state_dir %{_localstatedir}/lib/rabbitmq/plugins + +%define _maindir %{buildroot}%{_rabbit_erllibdir} + +%prep +%setup -q + +%build +cp %{S:2} %{_rabbit_wrapper} +cp %{S:4} %{_rabbit_server_ocf} +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} + +make install TARGET_DIR=%{_maindir} \ + SBIN_DIR=%{buildroot}%{_rabbit_libdir}/bin \ + MAN_DIR=%{buildroot}%{_mandir} + +mkdir -p %{buildroot}%{_localstatedir}/lib/rabbitmq/mnesia +mkdir -p %{buildroot}%{_localstatedir}/log/rabbitmq + +#Copy all necessary lib files etc. +install -p -D -m 0755 %{S:1} %{buildroot}%{_initrddir}/rabbitmq-server +install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmqctl +install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmq-server +install -p -D -m 0755 %{_rabbit_wrapper} %{buildroot}%{_sbindir}/rabbitmq-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 + +mkdir -p %{buildroot}%{_sysconfdir}/rabbitmq + +rm %{_maindir}/LICENSE %{_maindir}/LICENSE-MPL-RabbitMQ %{_maindir}/INSTALL + +#Build the list of files +echo '%defattr(-,root,root, -)' >%{_builddir}/%{name}.files +find %{buildroot} -path %{buildroot}%{_sysconfdir} -prune -o '!' -type d -printf "/%%P\n" >>%{_builddir}/%{name}.files + +%pre + +if [ $1 -gt 1 ]; then + # Upgrade - stop previous instance of rabbitmq-server init.d script + /sbin/service rabbitmq-server stop +fi + +# create rabbitmq group +if ! getent group rabbitmq >/dev/null; then + groupadd -r rabbitmq +fi + +# create rabbitmq user +if ! getent passwd rabbitmq >/dev/null; then + useradd -r -g rabbitmq -d %{_localstatedir}/lib/rabbitmq rabbitmq \ + -c "RabbitMQ messaging server" +fi + +%post +/sbin/chkconfig --add %{name} +if [ -f %{_sysconfdir}/rabbitmq/rabbitmq.conf ] && [ ! -f %{_sysconfdir}/rabbitmq/rabbitmq-env.conf ]; then + mv %{_sysconfdir}/rabbitmq/rabbitmq.conf %{_sysconfdir}/rabbitmq/rabbitmq-env.conf +fi + +%preun +if [ $1 = 0 ]; then + #Complete uninstall + /sbin/service rabbitmq-server stop + /sbin/chkconfig --del rabbitmq-server + + # We do not remove /var/log and /var/lib directories + # Leave rabbitmq user and group +fi + +# Clean out plugin activation state, both on uninstall and upgrade +rm -rf %{_plugins_state_dir} +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 +%dir %{_sysconfdir}/rabbitmq +%{_initrddir}/rabbitmq-server +%config(noreplace) %{_sysconfdir}/logrotate.d/rabbitmq-server +%doc LICENSE* + +%clean +rm -rf %{buildroot} + +%changelog +* Mon Dec 24 2012 Matthew Mosesohn 2.8.7-2 +- Added zip for buildreq + +* Thu Sep 27 2012 emile@rabbitmq.com 2.8.7-1 +- New Upstream Release + +* Wed Aug 22 2012 emile@rabbitmq.com 2.8.6-1 +- New Upstream Release + +* Wed Aug 1 2012 tim@rabbitmq.com 2.8.5-1 +- New Upstream Release + +* Thu Jun 21 2012 simon@rabbitmq.com 2.8.3-1 +- New Upstream Release + +* Fri Dec 16 2011 steve@rabbitmq.com 2.7.1-1 +- New Upstream Release + +* Tue Nov 8 2011 steve@rabbitmq.com 2.7.0-1 +- New Upstream Release + +* Fri Sep 9 2011 tim@rabbitmq.com 2.6.1-1 +- New Upstream Release + +* Fri Aug 26 2011 tim@rabbitmq.com 2.6.0-1 +- New Upstream Release + +* Mon Jun 27 2011 simon@rabbitmq.com 2.5.1-1 +- New Upstream Release + +* Thu Jun 9 2011 jerryk@vmware.com 2.5.0-1 +- New Upstream Release + +* Thu Apr 7 2011 Alexandru Scvortov 2.4.1-1 +- New Upstream Release + +* Tue Mar 22 2011 Alexandru Scvortov 2.4.0-1 +- New Upstream Release + +* Thu Feb 3 2011 simon@rabbitmq.com 2.3.1-1 +- New Upstream Release + +* Tue Feb 1 2011 simon@rabbitmq.com 2.3.0-1 +- New Upstream Release + +* Mon Nov 29 2010 rob@rabbitmq.com 2.2.0-1 +- New Upstream Release + +* Tue Oct 19 2010 vlad@rabbitmq.com 2.1.1-1 +- New Upstream Release + +* Tue Sep 14 2010 marek@rabbitmq.com 2.1.0-1 +- New Upstream Release + +* Mon Aug 23 2010 mikeb@rabbitmq.com 2.0.0-1 +- New Upstream Release + +* Wed Jul 14 2010 Emile Joubert 1.8.1-1 +- New Upstream Release + +* Tue Jun 15 2010 Matthew Sackman 1.8.0-1 +- New Upstream Release + +* Mon Feb 15 2010 Matthew Sackman 1.7.2-1 +- New Upstream Release + +* Fri Jan 22 2010 Matthew Sackman 1.7.1-1 +- New Upstream Release + +* Mon Oct 5 2009 David Wragg 1.7.0-1 +- New upstream release + +* Wed Jun 17 2009 Matthias Radestock 1.6.0-1 +- New upstream release + +* Tue May 19 2009 Matthias Radestock 1.5.5-1 +- Maintenance release for the 1.5.x series + +* Mon Apr 6 2009 Matthias Radestock 1.5.4-1 +- Maintenance release for the 1.5.x series + +* Tue Feb 24 2009 Tony Garnock-Jones 1.5.3-1 +- Maintenance release for the 1.5.x series + +* Mon Feb 23 2009 Tony Garnock-Jones 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 + +* Wed Dec 17 2008 Matthias Radestock 1.5.0-1 +- New upstream release + +* Thu Jul 24 2008 Tony Garnock-Jones 1.4.0-1 +- New upstream release + +* Mon Mar 3 2008 Adrien Pierard 1.3.0-1 +- New upstream release + +* Wed Sep 26 2007 Simon MacMullen 1.2.0-1 +- New upstream release + +* Wed Aug 29 2007 Simon MacMullen 1.1.1-1 +- New upstream release + +* Mon Jul 30 2007 Simon MacMullen 1.1.0-1.alpha +- New upstream release + +* Tue Jun 12 2007 Hubert Plociniczak 1.0.0-1.20070607 +- Building from source tarball, added starting script, stopping + +* Mon May 21 2007 Hubert Plociniczak 1.0.0-1.alpha +- Initial build of server library of RabbitMQ package