diff options
| author | Matthias Radestock <matthias@lshift.net> | 2008-10-17 17:21:02 +0100 |
|---|---|---|
| committer | Matthias Radestock <matthias@lshift.net> | 2008-10-17 17:21:02 +0100 |
| commit | 3e0231767bfec390a10961d53ef8366bdf90e397 (patch) | |
| tree | 3f88a9b12cd5d6e5a531da7ca27cdb7732fa841f /packaging | |
| parent | 7279a32f7a905a94283834bd8df4c357e0e900b7 (diff) | |
| parent | 57dee61bf77b4175cf0f26c89f0359c335dfbf45 (diff) | |
| download | rabbitmq-server-git-3e0231767bfec390a10961d53ef8366bdf90e397.tar.gz | |
merge default into bug18732
Diffstat (limited to 'packaging')
| -rw-r--r-- | packaging/RPMS/Fedora/Makefile | 3 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/README.txt | 28 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/init.d | 129 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/rabbitmq-server.logrotate | 12 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/rabbitmq-server.spec | 129 | ||||
| -rw-r--r-- | packaging/debs/Debian/Makefile | 8 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/changelog | 6 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/control | 6 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/copyright | 6 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/dirs | 3 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/init.d | 119 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/rabbitmq-server.logrotate | 12 | ||||
| -rw-r--r-- | packaging/debs/Debian/debian/rules | 5 | ||||
| -rw-r--r-- | packaging/generic-unix/Makefile | 3 | ||||
| -rw-r--r-- | packaging/windows/Makefile | 1 |
15 files changed, 301 insertions, 169 deletions
diff --git a/packaging/RPMS/Fedora/Makefile b/packaging/RPMS/Fedora/Makefile index c8e979a737..814c79f03c 100644 --- a/packaging/RPMS/Fedora/Makefile +++ b/packaging/RPMS/Fedora/Makefile @@ -5,7 +5,7 @@ SOURCE_TARBALL_DIR=../../../dist TARBALL=$(SOURCE_TARBALL_DIR)/rabbitmq-server-$(VERSION).tar.gz TOP_DIR=$(shell pwd) RPM_VERSION=$(shell echo $(VERSION) | tr - _) -DEFINES=--define '_topdir $(TOP_DIR)' --define '_tmppath $(TOP_DIR)/tmp' --define 'main_version $(VERSION)' --define 'rpm_version $(RPM_VERSION)' +DEFINES=--define '_topdir $(TOP_DIR)' --define '_tmppath $(TOP_DIR)/tmp' --define 'main_version $(VERSION)' --define 'rpm_version $(RPM_VERSION)' --define 'debian 1' rpms: clean server @@ -21,6 +21,7 @@ prepare: cp $(TOP_DIR)/rabbitmq-server.spec $(TOP_DIR)/SPECS cp $(TOP_DIR)/init.d $(TOP_DIR)/BUILD cp $(TOP_DIR)/rabbitmqctl_wrapper $(TOP_DIR)/BUILD + cp $(TOP_DIR)/rabbitmq-server.logrotate $(TOP_DIR)/BUILD server: prepare rpmbuild -ba $(TOP_DIR)/SPECS/rabbitmq-server.spec $(DEFINES) --target noarch diff --git a/packaging/RPMS/Fedora/README.txt b/packaging/RPMS/Fedora/README.txt index a7db530b24..6f31325970 100644 --- a/packaging/RPMS/Fedora/README.txt +++ b/packaging/RPMS/Fedora/README.txt @@ -1,8 +1,7 @@ Notes on creating rpms for rabbitmq -Assuming that rpm will be built under $TOP_DIR/rpm -directory the rpm macros configuration file -would look like: +Assuming that rpm will be built under $TOP_DIR/rpm, +the main configuration variables would look like: %_topdir $TOP_DIR/rpm %_tmppath $TOP_DIR/rpm/tmp @@ -11,11 +10,7 @@ would look like: %_includedir /usr/include %_mandir /usr/share/man -Where $TOP_DIR can be any directory (usually $HOME) -However this configuration has to be under the following -path: -$HOME/.rpmmacros -since this is a fixed place where rpmbuild looks for macros. +Where $TOP_DIR can be any directory (default is $HOME). The $TOP_DIR/rpm directory has following structure: @@ -24,14 +19,14 @@ rpm +---- SOURCES // where source tarballs are put +---- SPECS // directory containing specs +---- SRPMS // rpmbuild puts here srpms - +---- RPMS // rpmbuils puts here rpms - +---- tmp // where rpm packages are built + +---- RPMS // rpmbuils puts here rpms + +---- tmp // where rpm packages are built Makefile will copy the source tarball from fixed directory specified by $TARBALL_DIR to SOURCES directory and similarly specs from $SPEC_DIR to SPECS directory. -'make rpms' should create both client and server rabbitmq. +'make rpms' should create rabbitmq-server package. If there are any errors reported by rpmbuild this is possibly due to incorrect name of the packages (if all dependencies are satisifed) - different distros @@ -39,15 +34,16 @@ can have slightly different names. rpms and srpms are placed in their respective directories. -'make prepare' will create the necessary structure and -create the rpmmacros file. Change top variables to adjust -it to your system. Note that it will *overwrite* any current -rpmmacros configuration file. +'make prepare' will create the necessary structure. +Change main configuration variables specified in the 'DEFINES' +variable in the Makefile to adjust it to your system. +Note that it will *overwrite* any current rpmmacros +configurations. The first thing to do for building rpms is to create you own source tarball of AMQ. In the spec files two top variables determine the name of the tarball. Adjust it to you needs. -The final name has to match the *Source* tag in specs' headers. +The final name has to match the *Source* tag in spec's headers. For information on how to sign the package see: http://fedoranews.org/tchung/gpg/ diff --git a/packaging/RPMS/Fedora/init.d b/packaging/RPMS/Fedora/init.d index 09ca02c906..397beeaa22 100644 --- a/packaging/RPMS/Fedora/init.d +++ b/packaging/RPMS/Fedora/init.d @@ -1,79 +1,140 @@ #!/bin/sh +# +# rabbitmq-server RabbitMQ broker +# +#chkconfig: 2345 80 05 +#description: Enable AMQP service provided by RabbitMQ +# + ### BEGIN INIT INFO # Provides: rabbitmq # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 +# Description: RabbitMQ broker +# Short-Description: Enable AMQP service provided by RabbitMQ broker ### END INIT INFO -#chkconfig: 2345 80 05 -#description: RabbitMQ Server - PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=/usr/sbin/rabbitmq-multi +DAEMON_NAME=rabbitmq-multi +DAEMON=/usr/sbin/$DAEMON_NAME NAME=rabbitmq-server DESC=rabbitmq-server USER=rabbitmq NODE_COUNT=1 +ROTATE_SUFFIX= + +LOCK_FILE=/var/lock/subsys/$NAME test -x $DAEMON || exit 0 +# source function library +. /etc/rc.d/init.d/functions + # Include rabbitmq defaults if available if [ -f /etc/default/rabbitmq ] ; then . /etc/default/rabbitmq fi +RETVAL=0 set -e cd / start_rabbitmq () { set +e - su rabbitmq -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup.log 2> /var/log/rabbitmq/startup.err + su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err case "$?" in 0) - echo SUCCESS;; + echo SUCCESS && touch $LOCK_FILE + RETVAL=0 + ;; 1) - echo TIMEOUT - check /var/log/rabbitmq/startup.\{log,err\};; + echo TIMEOUT - check /var/log/rabbitmq/startup_\{log,err\} + RETVAL=1 + ;; *) - echo FAILED - check /var/log/rabbitmq/startup.log, .err - exit 1;; + echo FAILED - check /var/log/rabbitmq/startup_log, _err + RETVAL=1 + ;; esac set -e } stop_rabbitmq () { set +e - su rabbitmq -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown.log 2> /var/log/rabbitmq/shutdown.err + status_rabbitmq quiet + if [ $RETVAL == 0 ] ; then + su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err + RETVAL=$? + if [ $RETVAL != 0 ] ; then + echo FAILED - check /var/log/rabbitmq/shutdown_log, _err + else + rm -rf $LOCK_FILE + fi + else + echo No nodes running + RETVAL=0 + fi + set -e +} + +status_rabbitmq() { + set +e + if [ "$1" != "quiet" ] ; then + su $USER -s /bin/sh -c "$DAEMON status" 2>&1 + else + su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1 + fi if [ $? != 0 ] ; then - echo FAILED - check /var/log/rabbitmq/shutdown.log, .err - exit 0 + RETVAL=1 fi set -e } +rotate_logs_rabbitmq() { + set +e + su $USER -s /bin/sh -c "$DAEMON rotate_logs ${ROTATE_SUFFIX}" 2>&1 + set -e +} + +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." - ;; - force-reload|restart) - echo -n "Restarting $DESC: " - stop_rabbitmq - start_rabbitmq - echo "$NAME." - ;; - *) - N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; + 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." + ;; + condrestart|try-restart) + echo -n "Restarting $DESC: " + restart_rabbitmq + echo "$NAME." + ;; + *) + echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2 + RETVAL=1 + ;; esac -exit 0 +exit $RETVAL diff --git a/packaging/RPMS/Fedora/rabbitmq-server.logrotate b/packaging/RPMS/Fedora/rabbitmq-server.logrotate new file mode 100644 index 0000000000..64cd01a185 --- /dev/null +++ b/packaging/RPMS/Fedora/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 + endscript +}
\ No newline at end of file diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index 4f3dafaa40..43837ba34b 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -1,67 +1,69 @@ -%define source_name rabbitmq-server - Name: rabbitmq-server Version: %{rpm_version} Release: 1 -License: Mozilla Public License +License: MPLv1.1 Group: Development/Libraries -Source: http://www.rabbitmq.com/releases/%{source_name}-%{main_version}.tar.gz +Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{main_version}/%{name}-%{main_version}.tar.gz URL: http://www.rabbitmq.com/ Vendor: LShift Ltd., Cohesive Financial Technologies LLC., Rabbit Technlogies Ltd. -Requires: erlang +%if 0%{?debian} +%else +BuildRequires: python, python-json +%endif +Requires: erlang, logrotate Packager: Hubert Plociniczak <hubert@lshift.net> BuildRoot: %{_tmppath}/%{name}-%{main_version}-%{release}-root Summary: The RabbitMQ server +Requires(post): chkconfig +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. -%define _libdir /usr/lib/erlang -%define _docdir /usr/share/doc -%define _maindir $RPM_BUILD_ROOT%{_libdir}/lib/rabbitmq_server-%{main_version} -%define package_name rabbitmq-server-dist +%define _mandir /usr/share/man +%define _sbindir /usr/sbin +%define _libdir %(erl -noshell -eval "io:format('~s~n', [code:lib_dir()]), halt().") +%define _maindir %{buildroot}%{_libdir}/rabbitmq_server-%{main_version} %pre if [ $1 -gt 1 ]; then - #Upgrade - stop and remove previous instance of rabbitmq init.d script - /etc/init.d/rabbitmq-server stop + #Upgrade - stop and remove previous instance of rabbitmq-server init.d script + /sbin/service rabbitmq-server stop /sbin/chkconfig --del rabbitmq-server fi %prep -%setup -n %{source_name}-%{main_version} +%setup -n %{name}-%{main_version} %build -mkdir %{package_name} -mkdir %{package_name}/sbin -make install TARGET_DIR=`pwd`/%{package_name} \ - SBIN_DIR=`pwd`/%{package_name}/sbin \ - VERSION=%{main_version} +make %install -mkdir -p %{_maindir} -mkdir -p $RPM_BUILD_ROOT%{_docdir}/rabbitmq-server -mkdir -p $RPM_BUILD_ROOT/etc/init.d -mkdir -p $RPM_BUILD_ROOT/usr/sbin +rm -rf %{buildroot} -mkdir -p $RPM_BUILD_ROOT/var/lib/rabbitmq/mnesia -mkdir -p $RPM_BUILD_ROOT/var/log/rabbitmq +make install TARGET_DIR=%{_maindir} \ + SBIN_DIR=%{buildroot}%{_sbindir} \ + MAN_DIR=%{buildroot}%{_mandir} + VERSION=%{main_version} + +mkdir -p %{buildroot}/var/lib/rabbitmq/mnesia +mkdir -p %{buildroot}/var/log/rabbitmq +mkdir -p %{buildroot}/etc/rc.d/init.d/ #Copy all necessary lib files etc. -cp -r %{package_name}/ebin %{_maindir} -cp -r %{package_name}/src %{_maindir} -cp -r %{package_name}/include %{_maindir} -chmod 755 %{package_name}/sbin/* -cp %{package_name}/sbin/* $RPM_BUILD_ROOT/usr/sbin/ +cp ../init.d %{buildroot}/etc/rc.d/init.d/rabbitmq-server +chmod 0755 %{buildroot}/etc/rc.d/init.d/rabbitmq-server + +mv %{buildroot}/usr/sbin/rabbitmqctl %{buildroot}/usr/sbin/rabbitmqctl_real +cp ../rabbitmqctl_wrapper %{buildroot}/usr/sbin/rabbitmqctl +chmod 0755 %{buildroot}/usr/sbin/rabbitmqctl -cp ../init.d $RPM_BUILD_ROOT/etc/init.d/rabbitmq-server -chmod 775 $RPM_BUILD_ROOT/etc/init.d/rabbitmq-server +cp %{buildroot}%{_mandir}/man1/rabbitmqctl.1.gz %{buildroot}%{_mandir}/man1/rabbitmqctl_real.1.gz -mv $RPM_BUILD_ROOT/usr/sbin/rabbitmqctl $RPM_BUILD_ROOT/usr/sbin/rabbitmqctl_real -cp ../rabbitmqctl_wrapper $RPM_BUILD_ROOT/usr/sbin/rabbitmqctl -chmod 755 $RPM_BUILD_ROOT/usr/sbin/rabbitmqctl +mkdir -p %{buildroot}/etc/logrotate.d +cp ../rabbitmq-server.logrotate %{buildroot}/etc/logrotate.d/rabbitmq-server %post # create rabbitmq group @@ -75,64 +77,59 @@ if ! getent passwd rabbitmq >/dev/null; then usermod -c "Rabbit AMQP Messaging Server" rabbitmq fi -# On 64bit /usr/lib64 contains Erlang, not /usr/lib. Fix with a symlink -ERL_LIB_DIR=$(erl -noshell -eval "io:format(\"~s~n\", [code:lib_dir()]), halt().") -if [ ! ${ERL_LIB_DIR} = "/usr/lib/erlang/lib" ] ; then - ln -s /usr/lib/erlang/lib/rabbitmq_server-%{main_version} ${ERL_LIB_DIR} -fi - chown -R rabbitmq:rabbitmq /var/lib/rabbitmq chown -R rabbitmq:rabbitmq /var/log/rabbitmq -/sbin/chkconfig --add rabbitmq-server -/etc/init.d/rabbitmq-server start +/sbin/chkconfig --add %{name} +/sbin/service rabbitmq-server start %preun if [ $1 = 0 ]; then #Complete uninstall - /etc/init.d/rabbitmq-server stop + /sbin/service rabbitmq-server stop /sbin/chkconfig --del rabbitmq-server - - # Remove symlink we added above - ERL_LIB_DIR=$(erl -noshell -eval "io:format(\"~s~n\", [code:lib_dir()]), halt().") - if [ ! ${ERL_LIB_DIR} = "/usr/lib/erlang/lib" ] ; then - rm ${ERL_LIB_DIR}/rabbitmq_server-%{main_version} - fi - # We do not remove log and lib directories + # We do not remove /var/log and /var/lib directories # Leave rabbitmq user and group fi %files -%defattr(-,root,root) -%{_libdir}/lib/rabbitmq_server-%{main_version}/ -%{_docdir}/rabbitmq-server/ -/usr/sbin/rabbitmq-server -/usr/sbin/rabbitmq-multi -/usr/sbin/rabbitmqctl -/usr/sbin/rabbitmqctl_real -/var/lib/rabbitmq -/var/log/rabbitmq -/etc/init.d/rabbitmq-server +%defattr(-,root,root,-) +%{_libdir}/rabbitmq_server-%{main_version}/ +%{_mandir}/man1/rabbitmq-multi.1.gz +%{_mandir}/man1/rabbitmq-server.1.gz +%{_mandir}/man1/rabbitmqctl.1.gz +%{_mandir}/man1/rabbitmqctl_real.1.gz +%{_sbindir}/rabbitmq-multi +%{_sbindir}/rabbitmq-server +%{_sbindir}/rabbitmqctl +%{_sbindir}/rabbitmqctl_real +/var/lib/rabbitmq/ +/var/log/rabbitmq/ +/etc/rc.d/init.d/rabbitmq-server +%config(noreplace) /etc/logrotate.d/rabbitmq-server %clean -rm -rf $RPM_BUILD_ROOT +rm -rf %{buildroot} %changelog -* Mon Mar 3 2008 Adrien Pierard <adrian@lshift.net> 1.3.0 +* 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 +* 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 +* 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-alpha +* 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> hubert-20070607 +* 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-alpha +* Mon May 21 2007 Hubert Plociniczak <hubert@lshift.net> 1.0.0-1.alpha - Initial build of server library of RabbitMQ package diff --git a/packaging/debs/Debian/Makefile b/packaging/debs/Debian/Makefile index b49094e2a7..3e74cb5231 100644 --- a/packaging/debs/Debian/Makefile +++ b/packaging/debs/Debian/Makefile @@ -1,5 +1,6 @@ TARBALL_DIR=../../../dist TARBALL=$(shell (cd $(TARBALL_DIR); echo rabbitmq-server-[0-9]*.tar.gz)) +DEBIAN_ORIG_TARBALL=$(shell echo $(TARBALL) | sed -e 's:\(.*\)-\(.*\)\(\.tar\.gz\):\1_\2\.orig\3:g') VERSION=$(shell echo $(TARBALL) | sed -e 's:rabbitmq-server-\(.*\)\.tar\.gz:\1:g') UNPACKED_DIR=rabbitmq-server-$(VERSION) PACKAGENAME=rabbitmq-server @@ -16,11 +17,12 @@ all: package: clean make -C ../.. check_tools - tar -zxvf $(TARBALL_DIR)/$(TARBALL) + cp $(TARBALL_DIR)/$(TARBALL) $(DEBIAN_ORIG_TARBALL) + tar -zxvf $(DEBIAN_ORIG_TARBALL) cp -r debian $(UNPACKED_DIR) - chmod -R a+x $(UNPACKED_DIR)/debian + chmod a+x $(UNPACKED_DIR)/debian/rules UNOFFICIAL_RELEASE=$(UNOFFICIAL_RELEASE) VERSION=$(VERSION) ./check-changelog.sh rabbitmq-server $(UNPACKED_DIR) - cd $(UNPACKED_DIR); dpkg-buildpackage -rfakeroot $(SIGNING) + cd $(UNPACKED_DIR); GNUPGHOME=$(GNUPG_PATH)/.gnupg dpkg-buildpackage -rfakeroot $(SIGNING) rm -rf $(UNPACKED_DIR) clean: diff --git a/packaging/debs/Debian/debian/changelog b/packaging/debs/Debian/debian/changelog index 08b760e9f9..07f5a8dd41 100644 --- a/packaging/debs/Debian/debian/changelog +++ b/packaging/debs/Debian/debian/changelog @@ -1,3 +1,9 @@ +rabbitmq-server (1.4.0-1) testing; urgency=low + + * New Upstream Release + + -- Tony Garnock-Jones <tonyg@lshift.net> Thu, 24 Jul 2008 13:21:48 +0100 + rabbitmq-server (1.3.0-1) testing; urgency=low * New Upstream Release diff --git a/packaging/debs/Debian/debian/control b/packaging/debs/Debian/debian/control index ae698e1edb..675e15f490 100644 --- a/packaging/debs/Debian/debian/control +++ b/packaging/debs/Debian/debian/control @@ -2,14 +2,14 @@ Source: rabbitmq-server Section: net Priority: extra Maintainer: Tony Garnock-Jones <tonyg@rabbitmq.com> -Build-Depends: cdbs, debhelper (>= 5), erlang-base | erlang-base-hipe, erlang-nox, erlang-dev, erlang-src, make, python +Build-Depends: cdbs, debhelper (>= 5), erlang-base | erlang-base-hipe, erlang-nox, erlang-dev, erlang-src, make, python, python-json Standards-Version: 3.7.2 Package: rabbitmq-server Architecture: all -Depends: erlang-nox, adduser +Depends: erlang-nox, adduser, logrotate Description: An AMQP server written in Erlang 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. - Homepage: http://www.rabbitmq.com/ +Homepage: http://www.rabbitmq.com/ diff --git a/packaging/debs/Debian/debian/copyright b/packaging/debs/Debian/debian/copyright index e16996e5db..9f9f8672bc 100644 --- a/packaging/debs/Debian/debian/copyright +++ b/packaging/debs/Debian/debian/copyright @@ -5,7 +5,7 @@ It was downloaded from http://www.rabbitmq.com/ Upstream Author: The RabbitMQ team <info@rabbitmq.com> -Copyright: 2006-2008 LShift Ltd. +Copyright: 2006-2008 Rabbit Technologies Ltd. License: The RabbitMQ server is licensed under the MPL. @@ -485,7 +485,7 @@ EXHIBIT A -Mozilla Public License. If you have any questions regarding licensing, please contact us at info@rabbitmq.com. -The Debian packaging is (C) 2007, Tony Garnock-Jones <tonyg@rabbitmq.com> and -is licensed under the GPL, see `/usr/share/common-licenses/GPL'. +The Debian packaging is (C) 2007-2008, Rabbit Technologies Ltd. <info@rabbitmq.com> +and is licensed under the MPL 1.1, see above. diff --git a/packaging/debs/Debian/debian/dirs b/packaging/debs/Debian/debian/dirs index 74ff60e236..74f8631437 100644 --- a/packaging/debs/Debian/debian/dirs +++ b/packaging/debs/Debian/debian/dirs @@ -1,6 +1,7 @@ usr/lib/erlang/lib usr/sbin -usr/share/linda/overrides +usr/share/man var/lib/rabbitmq/mnesia var/log/rabbitmq +etc/logrotate.d diff --git a/packaging/debs/Debian/debian/init.d b/packaging/debs/Debian/debian/init.d index f399988845..a93f306692 100644 --- a/packaging/debs/Debian/debian/init.d +++ b/packaging/debs/Debian/debian/init.d @@ -5,7 +5,8 @@ # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 -# Short-Description: Enable AMQP service provided by RabbitMQ. +# Description: RabbitMQ broker +# Short-Description: Enable AMQP service provided by RabbitMQ broker ### END INIT INFO PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin @@ -14,6 +15,7 @@ NAME=rabbitmq-server DESC=rabbitmq-server USER=rabbitmq NODE_COUNT=1 +ROTATE_SUFFIX= test -x $DAEMON || exit 0 @@ -22,56 +24,97 @@ if [ -f /etc/default/rabbitmq ] ; then . /etc/default/rabbitmq fi +RETVAL=0 set -e cd / start_rabbitmq () { - set +e - su rabbitmq -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup.log 2> /var/log/rabbitmq/startup.err - case "$?" in - 0) - echo SUCCESS;; - 1) - echo TIMEOUT - check /var/log/rabbitmq/startup.\{log,err\};; - *) - echo FAILED - check /var/log/rabbitmq/startup.log, .err - exit 1;; - esac - set -e + set +e + su $USER -s /bin/sh -c "$DAEMON start_all ${NODE_COUNT}" > /var/log/rabbitmq/startup_log 2> /var/log/rabbitmq/startup_err + case "$?" in + 0) + echo SUCCESS + RETVAL=0 + ;; + 1) + echo TIMEOUT - check /var/log/rabbitmq/startup_\{log,err\} + RETVAL=1 + ;; + *) + echo FAILED - check /var/log/rabbitmq/startup_log, _err + RETVAL=1 + ;; + esac + set -e } stop_rabbitmq () { set +e - su rabbitmq -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown.log 2> /var/log/rabbitmq/shutdown.err + status_rabbitmq quiet + if [ $RETVAL == 0 ] ; then + su $USER -s /bin/sh -c "$DAEMON stop_all" > /var/log/rabbitmq/shutdown_log 2> /var/log/rabbitmq/shutdown_err + RETVAL=$? + if [ $RETVAL != 0 ] ; then + echo FAILED - check /var/log/rabbitmq/shutdown_log, _err + fi + else + echo No nodes running + RETVAL=0 + fi + set -e +} + +status_rabbitmq() { + set +e + if [ "$1" != "quiet" ] ; then + su $USER -s /bin/sh -c "$DAEMON status" 2>&1 + else + su $USER -s /bin/sh -c "$DAEMON status" > /dev/null 2>&1 + fi if [ $? != 0 ] ; then - echo FAILED - check /var/log/rabbitmq/shutdown.log, .err - exit 0 + RETVAL=1 fi set -e } +rotate_logs_rabbitmq() { + set +e + su $USER -s /bin/sh -c "$DAEMON rotate_logs ${ROTATE_SUFFIX}" 2>&1 + set -e +} + +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." - ;; - force-reload|restart) - echo -n "Restarting $DESC: " - stop_rabbitmq - start_rabbitmq - echo "$NAME." - ;; - *) - N=/etc/init.d/$NAME - echo "Usage: $N {start|stop|restart|force-reload}" >&2 - exit 1 - ;; + 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|restart) + echo -n "Restarting $DESC: " + restart_rabbitmq + echo "$NAME." + ;; + *) + echo "Usage: $0 {start|stop|status|rotate-logs|restart|force-reload}" >&2 + RETVAL=1 + ;; esac -exit 0 +exit $RETVAL diff --git a/packaging/debs/Debian/debian/rabbitmq-server.logrotate b/packaging/debs/Debian/debian/rabbitmq-server.logrotate new file mode 100644 index 0000000000..247635d19a --- /dev/null +++ b/packaging/debs/Debian/debian/rabbitmq-server.logrotate @@ -0,0 +1,12 @@ +/var/log/rabbitmq/*.log { + weekly + missingok + rotate 20 + compress + delaycompress + notifempty + sharedscripts + postrotate + /etc/init.d/rabbitmq-server rotate-logs + endscript +}
\ No newline at end of file diff --git a/packaging/debs/Debian/debian/rules b/packaging/debs/Debian/debian/rules index 15b0d50a83..39af711c13 100644 --- a/packaging/debs/Debian/debian/rules +++ b/packaging/debs/Debian/debian/rules @@ -5,7 +5,7 @@ include /usr/share/cdbs/1/class/makefile.mk RABBIT_LIB=$(DEB_DESTDIR)usr/lib/erlang/lib/rabbitmq_server-$(DEB_UPSTREAM_VERSION) -DEB_MAKE_INSTALL_TARGET := install TARGET_DIR=$(RABBIT_LIB)/ SBIN_DIR=$(DEB_DESTDIR)usr/sbin +DEB_MAKE_INSTALL_TARGET := install TARGET_DIR=$(RABBIT_LIB)/ SBIN_DIR=$(DEB_DESTDIR)usr/sbin MAN_DIR=$(DEB_DESTDIR)usr/share/man DOCDIR=$(DEB_DESTDIR)usr/share/doc/rabbitmq-server/ @@ -14,5 +14,6 @@ install/rabbitmq-server:: rm $(RABBIT_LIB)/LICENSE* mv $(DEB_DESTDIR)usr/sbin/rabbitmqctl $(DEB_DESTDIR)usr/sbin/rabbitmqctl_real cp debian/rabbitmqctl_wrapper $(DEB_DESTDIR)usr/sbin/rabbitmqctl + cp debian/rabbitmq-server.logrotate $(DEB_DESTDIR)etc/logrotate.d/rabbitmq-server + cp $(DEB_DESTDIR)usr/share/man/man1/rabbitmqctl.1.gz $(DEB_DESTDIR)usr/share/man/man1/rabbitmqctl_real.1.gz chmod a+x $(DEB_DESTDIR)usr/sbin/rabbitmqctl - echo "Tag: usr-lib-in-arch-all" > $(DEB_DESTDIR)usr/share/linda/overrides/rabbitmq-server diff --git a/packaging/generic-unix/Makefile b/packaging/generic-unix/Makefile index 132575226c..b398869693 100644 --- a/packaging/generic-unix/Makefile +++ b/packaging/generic-unix/Makefile @@ -7,11 +7,10 @@ dist: make -C ../.. VERSION=$(VERSION) srcdist tar -zxvf ../../dist/$(SOURCE_DIR).tar.gz - mkdir $(TARGET_DIR) - mkdir $(TARGET_DIR)/sbin make -C $(SOURCE_DIR) \ TARGET_DIR=`pwd`/$(TARGET_DIR) \ SBIN_DIR=`pwd`/$(TARGET_DIR)/sbin \ + MAN_DIR=`pwd`/$(TARGET_DIR)/share/man \ install tar -zcf $(TARGET_TARBALL).tar.gz $(TARGET_DIR) diff --git a/packaging/windows/Makefile b/packaging/windows/Makefile index 077461c5e0..f9437da7ca 100644 --- a/packaging/windows/Makefile +++ b/packaging/windows/Makefile @@ -15,6 +15,7 @@ dist: rm -rf $(SOURCE_DIR)/scripts rm -rf $(SOURCE_DIR)/codegen* $(SOURCE_DIR)/Makefile rm -f $(SOURCE_DIR)/BUILD + rm -rf $(SOURCE_DIR)/docs mv $(SOURCE_DIR) $(TARGET_DIR) zip -r $(TARGET_ZIP).zip $(TARGET_DIR) |
