diff options
| author | Karl Nilsson <knilsson@pivotal.io> | 2016-08-31 14:22:47 +0000 |
|---|---|---|
| committer | Karl Nilsson <knilsson@pivotal.io> | 2016-08-31 14:22:47 +0000 |
| commit | 7b8f649e762c00f792b8472ccb4c059f95ff4fed (patch) | |
| tree | a38ba7410037ad1cf93d0fb26c144280fed54a47 /packaging | |
| parent | f944b548dce9a7cda30e1816b3aa5e0c6eebdeff (diff) | |
| parent | 68b1a91589ce10d2e5ef0c3d3bd32a2c4224a5bc (diff) | |
| download | rabbitmq-server-git-7b8f649e762c00f792b8472ccb4c059f95ff4fed.tar.gz | |
merge
Diffstat (limited to 'packaging')
| -rw-r--r-- | packaging/Makefile | 9 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/Makefile | 16 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/rabbitmq-server.service | 16 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/rabbitmq-server.spec | 86 | ||||
| -rw-r--r-- | packaging/RPMS/Fedora/rabbitmq-server.tmpfiles | 1 |
5 files changed, 117 insertions, 11 deletions
diff --git a/packaging/Makefile b/packaging/Makefile index 02820bdb23..64a1243b51 100644 --- a/packaging/Makefile +++ b/packaging/Makefile @@ -35,6 +35,7 @@ all: packages .PHONY: packages package-deb \ package-rpm package-rpm-fedora package-rpm-suse \ + package-rpm-rhel6 package-rpm-rhel7 \ package-windows package-standalone-macosx \ package-generic-unix @@ -70,12 +71,18 @@ packages: package-deb package-rpm package-windows package-generic-unix package-deb: $(SOURCE_DIST_FILE) $(gen_verbose) $(MAKE) -C debs/Debian $(VARS) all $(DO_CLEAN) -package-rpm: package-rpm-fedora package-rpm-suse +package-rpm: package-rpm-rhel6 package-rpm-rhel7 package-rpm-suse @: package-rpm-fedora: $(SOURCE_DIST_FILE) $(gen_verbose) $(MAKE) -C RPMS/Fedora $(VARS) all $(DO_CLEAN) +package-rpm-rhel6: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C RPMS/Fedora $(VARS) RPM_OS=rhel6 all $(DO_CLEAN) + +package-rpm-rhel7: $(SOURCE_DIST_FILE) + $(gen_verbose) $(MAKE) -C RPMS/Fedora $(VARS) RPM_OS=rhel7 all $(DO_CLEAN) + package-rpm-suse: $(SOURCE_DIST_FILE) $(gen_verbose) $(MAKE) -C RPMS/Fedora $(VARS) RPM_OS=suse all $(DO_CLEAN) diff --git a/packaging/RPMS/Fedora/Makefile b/packaging/RPMS/Fedora/Makefile index 5763cadf04..11ecaff652 100644 --- a/packaging/RPMS/Fedora/Makefile +++ b/packaging/RPMS/Fedora/Makefile @@ -5,7 +5,7 @@ ifeq ($(SOURCE_DIST_FILE),) $(error Cannot find source archive; please specify SOURCE_DIST_FILE) endif ifneq ($(words $(SOURCE_DIST_FILE)),1) -$(error Multile source archives found; please specify SOURCE_DIST_FILE) +$(error Multiple source archives found; please specify SOURCE_DIST_FILE) endif VERSION ?= $(patsubst rabbitmq-server-%.tar.xz,%,$(notdir $(SOURCE_DIST_FILE))) @@ -34,7 +34,13 @@ else FUNCTION_LIBRARY=\# Source function library.\n. /etc/init.d/functions REQUIRES=chkconfig initscripts OS_DEFINES=--define '_initrddir /etc/rc.d/init.d' +ifeq "$(RPM_OS)" "rhel6" +SPEC_DEFINES=--define 'group_tag Development/Libraries' --define 'dist .el6' --define 'rhel 6' +else ifeq "$(RPM_OS)" "rhel7" +SPEC_DEFINES=--define 'group_tag Development/Libraries' --define '_unitdir /usr/lib/systemd/system' --define 'dist .el7' --define 'rhel 7' +else SPEC_DEFINES=--define 'group_tag Development/Libraries' +endif START_PROG=daemon endif @@ -53,17 +59,13 @@ prepare: sed -i 's|%%VERSION%%|$(VERSION)|;s|%%REQUIRES%%|$(REQUIRES)|' \ SPECS/rabbitmq-server.spec + cp rabbitmq-server.service SOURCES/rabbitmq-server.service + cp rabbitmq-server.tmpfiles SOURCES/rabbitmq-server.tmpfiles 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 - cp rabbitmq-server.logrotate SOURCES/rabbitmq-server.logrotate server: prepare diff --git a/packaging/RPMS/Fedora/rabbitmq-server.service b/packaging/RPMS/Fedora/rabbitmq-server.service new file mode 100644 index 0000000000..7fe15fe36c --- /dev/null +++ b/packaging/RPMS/Fedora/rabbitmq-server.service @@ -0,0 +1,16 @@ +[Unit] +Description=RabbitMQ broker +After=syslog.target network.target + +[Service] +Type=notify +User=rabbitmq +Group=rabbitmq +WorkingDirectory=/var/lib/rabbitmq +ExecStart=/usr/sbin/rabbitmq-server +ExecStop=/usr/sbin/rabbitmqctl stop +NotifyAccess=all +TimeoutStartSec=3600 + +[Install] +WantedBy=multi-user.target diff --git a/packaging/RPMS/Fedora/rabbitmq-server.spec b/packaging/RPMS/Fedora/rabbitmq-server.spec index 811cc58526..7215c3969b 100644 --- a/packaging/RPMS/Fedora/rabbitmq-server.spec +++ b/packaging/RPMS/Fedora/rabbitmq-server.spec @@ -1,4 +1,5 @@ %define debug_package %{nil} +%define erlang_minver R16B-03 Name: rabbitmq-server Version: %%VERSION%% @@ -8,14 +9,28 @@ Group: %{group_tag} Source: http://www.rabbitmq.com/releases/rabbitmq-server/v%{version}/%{name}-%{version}.tar.xz Source1: rabbitmq-server.init Source2: rabbitmq-server.logrotate +Source3: rabbitmq-server.service +Source4: rabbitmq-server.tmpfiles URL: http://www.rabbitmq.com/ BuildArch: noarch -BuildRequires: erlang >= R16B-03, python-simplejson, xmlto, libxslt, gzip, sed, zip, rsync -Requires: erlang >= R16B-03, logrotate, socat +BuildRequires: erlang >= %{erlang_minver}, python-simplejson, xmlto, libxslt, gzip, sed, zip, rsync + +%if 0%{?fedora} || 0%{?rhel} >= 7 +BuildRequires: systemd +%endif + +Requires: erlang >= %{erlang_minver}, logrotate, socat BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-%{_arch}-root Summary: The RabbitMQ server + +%if 0%{?fedora} || 0%{?rhel} >= 7 +Requires(pre): systemd +Requires(post): systemd +Requires(preun): systemd +%else Requires(post): %%REQUIRES%% Requires(pre): %%REQUIRES%% +%endif %description RabbitMQ is an open source multi-protocol messaging broker. @@ -47,7 +62,13 @@ mkdir -p %{buildroot}%{_localstatedir}/lib/rabbitmq/mnesia mkdir -p %{buildroot}%{_localstatedir}/log/rabbitmq #Copy all necessary lib files etc. + +%if 0%{?fedora} || 0%{?rhel} >= 7 +install -p -D -m 0644 %{S:3} %{buildroot}%{_unitdir}/%{name}.service +%else install -p -D -m 0755 %{S:1} %{buildroot}%{_initrddir}/rabbitmq-server +%endif + install -p -D -m 0755 %{_rabbit_server_ocf} %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server install -p -D -m 0755 %{_rabbit_server_ha_ocf} %{buildroot}%{_exec_prefix}/lib/ocf/resource.d/rabbitmq/rabbitmq-server-ha install -p -D -m 0644 %{S:2} %{buildroot}%{_sysconfdir}/logrotate.d/rabbitmq-server @@ -65,6 +86,10 @@ for script in rabbitmq-server rabbitmq-plugins; do \ %{buildroot}%{_sbindir}/$script; \ done +%if 0%{?fedora} > 14 || 0%{?rhel} >= 7 +install -D -p -m 0644 %{SOURCE4} %{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf +%endif + rm %{_maindir}/LICENSE* %{_maindir}/INSTALL #Build the list of files @@ -74,7 +99,8 @@ find %{buildroot} -path %{buildroot}%{_sysconfdir} -prune -o '!' -type d -printf %pre if [ $1 -gt 1 ]; then - # Upgrade - stop previous instance of rabbitmq-server init.d script + # Upgrade - stop previous instance of rabbitmq-server init.d (this + # will also activate systemd if it was used) script. /sbin/service rabbitmq-server stop fi @@ -90,14 +116,35 @@ if ! getent passwd rabbitmq >/dev/null; then fi %post + +%if 0%{?fedora} || 0%{?rhel} >= 7 +# %%systemd_post %%{name}.service +# manual expansion of systemd_post as this doesn't appear to +# expand correctly on debian machines +if [ $1 -eq 1 ] ; then + # Initial installation + systemctl preset %{name}.service >/dev/null 2>&1 || : +fi +/bin/systemctl daemon-reload +%else /sbin/chkconfig --add %{name} +%endif + +if [ -f %{_sysconfdir}/rabbitmq/rabbitmq.conf ] && [ ! -f %{_sysconfdir}/rabbitmq/rabbitmq-env.conf ]; then + mv %{_sysconfdir}/rabbitmq/rabbitmq.conf %{_sysconfdir}/rabbitmq/rabbitmq-env.conf +fi + chmod -R o-rwx,g-w %{_localstatedir}/lib/rabbitmq/mnesia %preun if [ $1 = 0 ]; then #Complete uninstall +%if 0%{?fedora} || 0%{?rhel} >= 7 + systemctl stop rabbitmq-server +%else /sbin/service rabbitmq-server stop /sbin/chkconfig --del rabbitmq-server +%endif # We do not remove /var/log and /var/lib directories # Leave rabbitmq user and group @@ -109,13 +156,46 @@ for ext in rel script boot ; do rm -f %{_rabbit_erllibdir}/ebin/rabbit.$ext done +%postun +%if 0%{?fedora} || 0%{?rhel} >= 7 +# %%systemd_postun_with_restart %%{name}.service +# manual expansion of systemd_postun_with_restart as this doesn't appear to +# expand correctly on debian machines +if [ $1 -ge 1 ] ; then + # Package upgrade, not uninstall + systemctl try-restart %{name}.service >/dev/null 2>&1 || : +fi +%else +if [ $1 -gt 1 ]; then + /sbin/service %{name} try-restart +fi +%endif + +%if 0%{?fedora} > 17 || 0%{?rhel} >= 7 +# For prior versions older than this, do a conversion +# from sysv to systemd +%triggerun -- %{name} < 3.6.5 +# Save the current service runlevel info +# User must manually run systemd-sysv-convert --apply opensips +# to migrate them to systemd targets +/usr/bin/systemd-sysv-convert --save %{name} >/dev/null 2>&1 ||: + +# Run these because the SysV package being removed won't do them +/sbin/chkconfig --del %{name} >/dev/null 2>&1 || : +/bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : +%endif + %files -f ../%{name}.files %defattr(-,root,root,-) %attr(0755, rabbitmq, rabbitmq) %dir %{_localstatedir}/lib/rabbitmq %attr(0750, rabbitmq, rabbitmq) %dir %{_localstatedir}/lib/rabbitmq/mnesia %attr(0755, rabbitmq, rabbitmq) %dir %{_localstatedir}/log/rabbitmq %dir %{_sysconfdir}/rabbitmq + +%if 0%{?rhel} < 7 %{_initrddir}/rabbitmq-server +%endif + %config(noreplace) %{_sysconfdir}/logrotate.d/rabbitmq-server %doc LICENSE* %doc README diff --git a/packaging/RPMS/Fedora/rabbitmq-server.tmpfiles b/packaging/RPMS/Fedora/rabbitmq-server.tmpfiles new file mode 100644 index 0000000000..c2681827e0 --- /dev/null +++ b/packaging/RPMS/Fedora/rabbitmq-server.tmpfiles @@ -0,0 +1 @@ +D /var/run/rabbitmq 0755 rabbitmq rabbitmq - |
