summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlvaro Videla <alvaro@rabbitmq.com>2013-08-26 11:18:49 -0700
committerAlvaro Videla <alvaro@rabbitmq.com>2013-08-26 11:18:49 -0700
commit9110ec0663597a52cde39186239c281af1ee4c55 (patch)
treef0a17d61e6f2172c944848c5fa6bc9e5777484fc
parentd65d6cad62c79239c3116fca499226c16ffc2c4c (diff)
downloadrabbitmq-server-bug25283.tar.gz
adds standalone RPM filesbug25283
-rw-r--r--packaging/RPMS/standalone/Makefile61
-rw-r--r--packaging/RPMS/standalone/rabbitmq-server.init179
-rw-r--r--packaging/RPMS/standalone/rabbitmq-server.logrotate12
-rw-r--r--packaging/RPMS/standalone/rabbitmq-server.spec261
4 files changed, 513 insertions, 0 deletions
diff --git a/packaging/RPMS/standalone/Makefile b/packaging/RPMS/standalone/Makefile
new file mode 100644
index 00000000..b0b1c2c2
--- /dev/null
+++ b/packaging/RPMS/standalone/Makefile
@@ -0,0 +1,61 @@
+STANDALONE_DIR=../../standalone
+# TODO we should produce a rabbitmq-server-standalone-VERSION.tar.gz and then rename it
+STANDALONE_TAR=$(notdir $(wildcard $(STANDALONE_DIR)/rabbitmq-server-mac-standalone-[0-9.]*.tar.gz))
+COMMON_DIR=../../common
+VERSION=$(shell echo $(STANDALONE_TAR) | sed -e 's:rabbitmq-server-mac-standalone-\(.*\)\.tar\.gz:\1:g')
+
+$(info $(STANDALONE_TAR))
+
+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 '_sysconfdir /etc' --define '_localstatedir /var'
+
+ifndef RPM_OS
+RPM_OS=fedora
+endif
+
+ifeq "$(RPM_OS)" "suse"
+FUNCTION_LIBRARY=
+REQUIRES=/sbin/chkconfig /sbin/service
+OS_DEFINES=--define '_initrddir /etc/init.d' --define 'dist .suse'
+SPEC_DEFINES=--define 'group_tag Productivity/Networking/Other'
+START_PROG=startproc
+else
+FUNCTION_LIBRARY=\# Source function library.\n. /etc/init.d/functions
+REQUIRES=chkconfig initscripts
+OS_DEFINES=--define '_initrddir /etc/rc.d/init.d'
+SPEC_DEFINES=--define 'group_tag Development/Libraries'
+START_PROG=daemon
+endif
+
+rpms: clean server
+
+prepare:
+ mkdir -p BUILD SOURCES SPECS SRPMS RPMS tmp
+ cp $(STANDALONE_DIR)/$(STANDALONE_TAR) SOURCES/rabbitmq-server-$(VERSION).tar.gz
+ cp rabbitmq-server.spec SPECS
+ sed -i 's|%%VERSION%%|$(VERSION)|;s|%%REQUIRES%%|$(REQUIRES)|' \
+ SPECS/rabbitmq-server.spec
+
+ cp ${COMMON_DIR}/* SOURCES/
+ cp rabbitmq-server.init SOURCES/rabbitmq-server.init
+ sed -i \
+ -e 's|^START_PROG=.*$$|START_PROG="$(START_PROG)"|' \
+ -e 's|^@FUNCTION_LIBRARY@|$(FUNCTION_LIBRARY)|' \
+ SOURCES/rabbitmq-server.init
+ifeq "$(RPM_OS)" "fedora"
+# Fedora says that only vital services should have Default-Start
+ sed -i -e '/^# Default-Start:/d;/^# Default-Stop:/d' \
+ SOURCES/rabbitmq-server.init
+endif
+ sed -i -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \
+ -e 's|@STDOUT_STDERR_REDIRECTION@||' \
+ SOURCES/rabbitmq-script-wrapper
+ cp rabbitmq-server.logrotate SOURCES/rabbitmq-server.logrotate
+
+server: prepare
+ rpmbuild -ba --nodeps SPECS/rabbitmq-server.spec $(DEFINES) $(OS_DEFINES) $(SPEC_DEFINES)
+
+clean:
+ rm -rf SOURCES SPECS RPMS SRPMS BUILD tmp
diff --git a/packaging/RPMS/standalone/rabbitmq-server.init b/packaging/RPMS/standalone/rabbitmq-server.init
new file mode 100644
index 00000000..3e48147b
--- /dev/null
+++ b/packaging/RPMS/standalone/rabbitmq-server.init
@@ -0,0 +1,179 @@
+#!/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
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Description: RabbitMQ broker
+# Short-Description: Enable AMQP service provided by RabbitMQ broker
+### END INIT INFO
+
+@FUNCTION_LIBRARY@
+
+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= # Set when building package
+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/packaging/RPMS/standalone/rabbitmq-server.logrotate b/packaging/RPMS/standalone/rabbitmq-server.logrotate
new file mode 100644
index 00000000..6b657614
--- /dev/null
+++ b/packaging/RPMS/standalone/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/packaging/RPMS/standalone/rabbitmq-server.spec b/packaging/RPMS/standalone/rabbitmq-server.spec
new file mode 100644
index 00000000..5ef65e89
--- /dev/null
+++ b/packaging/RPMS/standalone/rabbitmq-server.spec
@@ -0,0 +1,261 @@
+%define debug_package %{nil}
+
+Name: rabbitmq-server
+Version: %%VERSION%%
+Release: 1%{?dist}
+License: MPLv1.1 and MIT and ASL 2.0 and BSD
+Group: %{group_tag}
+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/
+BuildRequires: erlang >= R13B03, python-simplejson, xmlto, libxslt
+Requires: logrotate, openssl = 1.0.0
+BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root
+Summary: The RabbitMQ server
+Requires(post): %%REQUIRES%%
+Requires(pre): %%REQUIRES%%
+
+%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 -c
+
+%build
+mv rabbitmq_server-%{version}/* .
+rm -rf rabbitmq_server-%{version}
+cp %{S:2} %{_rabbit_wrapper}
+cp %{S:4} %{_rabbit_server_ocf}
+# make %{?_smp_mflags}
+
+%install
+
+rm -rf %{buildroot}
+
+mkdir -p %{_maindir}
+# copy server files (ebin, sbin, etc) to _maindir
+cp -r * %{_maindir}/
+mkdir -p %{buildroot}%{_rabbit_libdir}
+mkdir -p %{buildroot}%{_mandir}
+
+# TODO refactor these functions into one taking 2 args
+fix_env () {
+ sed -e $1 sbin/rabbitmq-env > sbin/rabbitmq-env.tmp && mv sbin/rabbitmq-env.tmp sbin/rabbitmq-env
+}
+
+fix_defaults () {
+ sed -e $1 sbin/rabbitmq-defaults > sbin/rabbitmq-defaults.tmp && mv sbin/rabbitmq-defaults.tmp sbin/rabbitmq-defaults
+}
+
+fix_env 's:RABBITMQ_HOME="\${SCRIPT_DIR}/..":RABBITMQ_HOME="\${SCRIPT_DIR}/../lib/rabbitmq_server-3.1.3/":'
+fix_defaults 's:CLEAN_BOOT_FILE="\${SYS_PREFIX}/releases/3.1.3/start_clean":CLEAN_BOOT_FILE="\${RABBITMQ_HOME}/releases/3.1.3/start_clean":'
+fix_defaults 's:SASL_BOOT_FILE="\${SYS_PREFIX}/releases/3.1.3/start_sasl":SASL_BOOT_FILE="\${RABBITMQ_HOME}/releases/3.1.3/start_sasl":'
+fix_defaults 's:SYS_PREFIX=\${RABBITMQ_HOME}:SYS_PREFIX=:'
+
+mv sbin %{buildroot}%{_rabbit_libdir}/bin
+mv share/man/* %{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
+
+#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(0755, rabbitmq, rabbitmq) %dir %{_localstatedir}/lib/rabbitmq
+%attr(0755, 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
+* Tue Jun 25 2013 tim@rabbitmq.com 3.1.3-1
+- New Upstream Release
+
+* Mon Jun 24 2013 tim@rabbitmq.com 3.1.2-1
+- New Upstream Release
+
+* Mon May 20 2013 tim@rabbitmq.com 3.1.1-1
+- Test release
+
+* Wed May 1 2013 simon@rabbitmq.com 3.1.0-1
+- New Upstream Release
+
+* Tue Dec 11 2012 simon@rabbitmq.com 3.0.1-1
+- New Upstream Release
+
+* Fri Nov 16 2012 simon@rabbitmq.com 3.0.0-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 <alexandru@rabbitmq.com> 2.4.1-1
+- New Upstream Release
+
+* Tue Mar 22 2011 Alexandru Scvortov <alexandru@rabbitmq.com> 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 <emile@rabbitmq.com> 1.8.1-1
+- New Upstream Release
+
+* Tue Jun 15 2010 Matthew Sackman <matthew@rabbitmq.com> 1.8.0-1
+- New Upstream Release
+
+* Mon Feb 15 2010 Matthew Sackman <matthew@lshift.net> 1.7.2-1
+- New Upstream Release
+
+* Fri Jan 22 2010 Matthew Sackman <matthew@lshift.net> 1.7.1-1
+- New Upstream Release
+
+* Mon Oct 5 2009 David Wragg <dpw@lshift.net> 1.7.0-1
+- New upstream release
+
+* Wed Jun 17 2009 Matthias Radestock <matthias@lshift.net> 1.6.0-1
+- New upstream release
+
+* Tue May 19 2009 Matthias Radestock <matthias@lshift.net> 1.5.5-1
+- Maintenance release for the 1.5.x series
+
+* Mon Apr 6 2009 Matthias Radestock <matthias@lshift.net> 1.5.4-1
+- Maintenance release for the 1.5.x series
+
+* 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
+
+* Wed Dec 17 2008 Matthias Radestock <matthias@lshift.net> 1.5.0-1
+- New upstream release
+
+* Thu Jul 24 2008 Tony Garnock-Jones <tonyg@lshift.net> 1.4.0-1
+- New upstream release
+
+* Mon Mar 3 2008 Adrien Pierard <adrian@lshift.net> 1.3.0-1
+- New upstream release
+
+* Wed Sep 26 2007 Simon MacMullen <simon@lshift.net> 1.2.0-1
+- New upstream release
+
+* Wed Aug 29 2007 Simon MacMullen <simon@lshift.net> 1.1.1-1
+- New upstream release
+
+* Mon Jul 30 2007 Simon MacMullen <simon@lshift.net> 1.1.0-1.alpha
+- New upstream release
+
+* Tue Jun 12 2007 Hubert Plociniczak <hubert@lshift.net> 1.0.0-1.20070607
+- Building from source tarball, added starting script, stopping
+
+* Mon May 21 2007 Hubert Plociniczak <hubert@lshift.net> 1.0.0-1.alpha
+- Initial build of server library of RabbitMQ package