Merge branch 'stable'

This commit is contained in:
Jean-Sébastien Pédron 2016-12-07 13:38:20 +01:00
commit 635c99dba5
No known key found for this signature in database
GPG Key ID: 39E99761A5FD94CC
7 changed files with 82 additions and 51 deletions

View File

@ -1,36 +1,19 @@
PROJECT = rabbitmq_server_release PROJECT = rabbitmq_server_release
VERSION ?= 0.0.0 PROJECT_DESCRIPTION = RabbitMQ Server
# Propagate PROJECT_VERSION (from the command line or environment) to
# other components. If PROJECT_VERSION is unset, then an empty variable
# is propagated and the default version will fallback to the default
# value from rabbitmq-components.mk.
export RABBITMQ_VERSION := $(PROJECT_VERSION)
# Release artifacts are put in $(PACKAGES_DIR). # Release artifacts are put in $(PACKAGES_DIR).
PACKAGES_DIR ?= $(abspath PACKAGES) PACKAGES_DIR ?= $(abspath PACKAGES)
DEPS = rabbit_common rabbit $(PLUGINS)
# List of plugins to include in a RabbitMQ release. # List of plugins to include in a RabbitMQ release.
PLUGINS := rabbitmq_amqp1_0 \ include plugins.mk
rabbitmq_auth_backend_ldap \
rabbitmq_auth_mechanism_ssl \ DEPS = rabbit_common rabbit $(PLUGINS)
rabbitmq_consistent_hash_exchange \
rabbitmq_event_exchange \
rabbitmq_federation \
rabbitmq_federation_management \
rabbitmq_jms_topic_exchange \
rabbitmq_management \
rabbitmq_management_agent \
rabbitmq_mqtt \
rabbitmq_recent_history_exchange \
rabbitmq_sharding \
rabbitmq_shovel \
rabbitmq_shovel_management \
rabbitmq_stomp \
rabbitmq_top \
rabbitmq_tracing \
rabbitmq_trust_store \
rabbitmq_web_dispatch \
rabbitmq_web_stomp \
rabbitmq_web_stomp_examples \
rabbitmq_web_mqtt \
rabbitmq_web_mqtt_examples
DEP_PLUGINS = rabbit_common/mk/rabbitmq-run.mk \ DEP_PLUGINS = rabbit_common/mk/rabbitmq-run.mk \
rabbit_common/mk/rabbitmq-dist.mk \ rabbit_common/mk/rabbitmq-dist.mk \
@ -53,7 +36,7 @@ include erlang.mk
SOURCE_DIST_BASE ?= rabbitmq-server SOURCE_DIST_BASE ?= rabbitmq-server
SOURCE_DIST_SUFFIXES ?= tar.xz zip SOURCE_DIST_SUFFIXES ?= tar.xz zip
SOURCE_DIST ?= $(PACKAGES_DIR)/$(SOURCE_DIST_BASE)-$(VERSION) SOURCE_DIST ?= $(PACKAGES_DIR)/$(SOURCE_DIST_BASE)-$(PROJECT_VERSION)
# The first source distribution file is used by packages: if the archive # The first source distribution file is used by packages: if the archive
# type changes, you must update all packages' Makefile. # type changes, you must update all packages' Makefile.
@ -79,15 +62,15 @@ RSYNC_FLAGS += -a $(RSYNC_V) \
--exclude '.travis.yml' \ --exclude '.travis.yml' \
--exclude '.*.plt' \ --exclude '.*.plt' \
--exclude '$(notdir $(ERLANG_MK_TMP))' \ --exclude '$(notdir $(ERLANG_MK_TMP))' \
--exclude 'ebin' \
--exclude 'packaging' \
--exclude 'erl_crash.dump' \
--exclude 'MnesiaCore.*' \
--exclude 'cover/' \ --exclude 'cover/' \
--exclude 'deps/' \ --exclude 'deps/' \
--exclude 'ebin/' \ --exclude 'ebin/' \
--exclude 'erl_crash.dump' \
--exclude 'MnesiaCore.*' \
--exclude '$(notdir $(DEPS_DIR))/' \ --exclude '$(notdir $(DEPS_DIR))/' \
--exclude 'hexer*' \
--exclude 'logs/' \ --exclude 'logs/' \
--exclude 'packaging' \
--exclude '/plugins/' \ --exclude '/plugins/' \
--include 'cli/plugins' \ --include 'cli/plugins' \
--exclude '$(notdir $(DIST_DIR))/' \ --exclude '$(notdir $(DIST_DIR))/' \
@ -121,12 +104,14 @@ ZIP_V_2 =
ZIP_V = $(ZIP_V_$(V)) ZIP_V = $(ZIP_V_$(V))
.PHONY: $(SOURCE_DIST) .PHONY: $(SOURCE_DIST)
.PHONY: clean-source-dist distclean-packages clean-unpacked-source-dist .PHONY: clean-source-dist distclean-packages clean-unpacked-source-dist \
clean-upgrade distclean-upgrade
$(SOURCE_DIST): $(ERLANG_MK_RECURSIVE_DEPS_LIST) $(SOURCE_DIST): $(ERLANG_MK_RECURSIVE_DEPS_LIST)
$(verbose) mkdir -p $(dir $@) $(verbose) mkdir -p $(dir $@)
$(gen_verbose) $(RSYNC) $(RSYNC_FLAGS) ./ $@/ $(gen_verbose) $(RSYNC) $(RSYNC_FLAGS) ./ $@/
$(verbose) echo "$(PROJECT) $$(git rev-parse HEAD) $$(git describe --tags --exact-match 2>/dev/null || git symbolic-ref -q --short HEAD)" > $@/git-revisions.txt $(verbose) echo "$(PROJECT_DESCRIPTION) $(PROJECT_VERSION)" > $@/git-revisions.txt
$(verbose) echo "$(PROJECT) $$(git rev-parse HEAD) $$(git describe --tags --exact-match 2>/dev/null || git symbolic-ref -q --short HEAD)" >> $@/git-revisions.txt
$(verbose) cat packaging/common/LICENSE.head > $@/LICENSE $(verbose) cat packaging/common/LICENSE.head > $@/LICENSE
$(verbose) mkdir -p $@/deps/licensing $(verbose) mkdir -p $@/deps/licensing
$(verbose) for dep in $$(cat $(ERLANG_MK_RECURSIVE_DEPS_LIST) | LC_COLLATE=C sort); do \ $(verbose) for dep in $$(cat $(ERLANG_MK_RECURSIVE_DEPS_LIST) | LC_COLLATE=C sort); do \
@ -152,11 +137,12 @@ $(SOURCE_DIST): $(ERLANG_MK_RECURSIVE_DEPS_LIST)
$(verbose) find $@/deps/licensing -name 'LICENSE-*' -exec cp '{}' $@ \; $(verbose) find $@/deps/licensing -name 'LICENSE-*' -exec cp '{}' $@ \;
$(verbose) for file in $$(find $@ -name '*.app.src'); do \ $(verbose) for file in $$(find $@ -name '*.app.src'); do \
sed -E -i.bak \ sed -E -i.bak \
-e 's/[{]vsn[[:blank:]]*,[[:blank:]]*(""|"0.0.0")[[:blank:]]*}/{vsn, "$(VERSION)"}/' \ -e 's/[{]vsn[[:blank:]]*,[[:blank:]]*(""|"0.0.0")[[:blank:]]*}/{vsn, "$(PROJECT_VERSION)"}/' \
-e 's/[{]broker_version_requirements[[:blank:]]*,[[:blank:]]*\[\][[:blank:]]*}/{broker_version_requirements, ["$(VERSION)"]}/' \ -e 's/[{]broker_version_requirements[[:blank:]]*,[[:blank:]]*\[\][[:blank:]]*}/{broker_version_requirements, ["$(PROJECT_VERSION)"]}/' \
$$file; \ $$file; \
rm $$file.bak; \ rm $$file.bak; \
done done
$(verbose) echo "PLUGINS := $(PLUGINS)" > $@/plugins.mk
# TODO: Fix file timestamps to have reproducible source archives. # TODO: Fix file timestamps to have reproducible source archives.
# $(verbose) find $@ -not -name 'git-revisions.txt' -print0 | xargs -0 touch -r $@/git-revisions.txt # $(verbose) find $@ -not -name 'git-revisions.txt' -print0 | xargs -0 touch -r $@/git-revisions.txt
@ -188,7 +174,7 @@ $(SOURCE_DIST).zip: $(SOURCE_DIST)
clean:: clean-source-dist clean-upgrade clean:: clean-source-dist clean-upgrade
clean-upgrade: clean-upgrade:
cd upgrade && make clean $(MAKE) -C upgrade clean
clean-source-dist: clean-source-dist:
$(gen_verbose) rm -rf -- $(SOURCE_DIST_BASE)-* $(gen_verbose) rm -rf -- $(SOURCE_DIST_BASE)-*
@ -196,7 +182,7 @@ clean-source-dist:
distclean:: distclean-packages distclean-upgrade distclean:: distclean-packages distclean-upgrade
distclean-upgrade: distclean-upgrade:
cd upgrade && make distclean $(MAKE) -C upgrade distclean
distclean-packages: distclean-packages:
$(gen_verbose) rm -rf -- $(PACKAGES_DIR) $(gen_verbose) rm -rf -- $(PACKAGES_DIR)
@ -244,13 +230,13 @@ manpages web-manpages distclean-manpages:
DESTDIR ?= DESTDIR ?=
PREFIX ?= /usr/local PREFIX ?= /usr/local
WINDOWS_PREFIX ?= rabbitmq-server-windows-$(VERSION) WINDOWS_PREFIX ?= rabbitmq-server-windows-$(PROJECT_VERSION)
MANDIR ?= $(PREFIX)/share/man MANDIR ?= $(PREFIX)/share/man
RMQ_ROOTDIR ?= $(PREFIX)/lib/erlang RMQ_ROOTDIR ?= $(PREFIX)/lib/erlang
RMQ_BINDIR ?= $(RMQ_ROOTDIR)/bin RMQ_BINDIR ?= $(RMQ_ROOTDIR)/bin
RMQ_LIBDIR ?= $(RMQ_ROOTDIR)/lib RMQ_LIBDIR ?= $(RMQ_ROOTDIR)/lib
RMQ_ERLAPP_DIR ?= $(RMQ_LIBDIR)/rabbitmq_server-$(VERSION) RMQ_ERLAPP_DIR ?= $(RMQ_LIBDIR)/rabbitmq_server-$(PROJECT_VERSION)
SCRIPTS = rabbitmq-defaults \ SCRIPTS = rabbitmq-defaults \
rabbitmq-env \ rabbitmq-env \

View File

@ -34,7 +34,6 @@ all: package
package: clean package: clean
cp -a $(SOURCE_DIST_FILE) $(DEBIAN_ORIG_TARBALL) cp -a $(SOURCE_DIST_FILE) $(DEBIAN_ORIG_TARBALL)
xzcat $(DEBIAN_ORIG_TARBALL) | tar -xf - xzcat $(DEBIAN_ORIG_TARBALL) | tar -xf -
cp -a debian $(UNPACKED_DIR)
rsync -a \ rsync -a \
--exclude '.sw?' --exclude '.*.sw?' \ --exclude '.sw?' --exclude '.*.sw?' \
--exclude '.git*' \ --exclude '.git*' \

View File

@ -61,5 +61,3 @@ esac
#DEBHELPER# #DEBHELPER#
exit 0 exit 0

View File

@ -5,7 +5,6 @@
#export DH_VERBOSE=1 #export DH_VERBOSE=1
DEB_DESTDIR = debian/rabbitmq-server DEB_DESTDIR = debian/rabbitmq-server
VERSION = $(shell dpkg-parsechangelog | awk '/^Version:/ {version=$$0; sub(/Version: /, "", version); sub(/-.*/, "", version); print version;}')
unexport DEPS_DIR unexport DEPS_DIR
@ -26,14 +25,11 @@ export PREFIX RMQ_ROOTDIR
override_dh_auto_install: PREFIX = /usr override_dh_auto_install: PREFIX = /usr
override_dh_auto_install: RMQ_ROOTDIR = $(PREFIX)/lib/rabbitmq override_dh_auto_install: RMQ_ROOTDIR = $(PREFIX)/lib/rabbitmq
override_dh_auto_install: RMQ_ERLAPP_DIR = $(RMQ_ROOTDIR)/lib/rabbitmq_server-$(VERSION) override_dh_auto_install: RMQ_ERLAPP_DIR = $(RMQ_ROOTDIR)/lib/rabbitmq_server-*
override_dh_auto_install: override_dh_auto_install:
dh_auto_install -- VERSION=$(VERSION) dh_auto_install
$(MAKE) install-bin DESTDIR=$(DEB_DESTDIR) VERSION=$(VERSION) $(MAKE) install-bin DESTDIR=$(DEB_DESTDIR)
sed -e 's|@RABBIT_LIB@|$(RMQ_ERLAPP_DIR)|g' \
< debian/postrm.in > debian/postrm
sed -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \ sed -e 's|@SU_RABBITMQ_SH_C@|su rabbitmq -s /bin/sh -c|' \
-e 's|@STDOUT_STDERR_REDIRECTION@|> "$$RABBITMQ_LOG_BASE/startup_log" 2> "$$RABBITMQ_LOG_BASE/startup_err"|' \ -e 's|@STDOUT_STDERR_REDIRECTION@|> "$$RABBITMQ_LOG_BASE/startup_log" 2> "$$RABBITMQ_LOG_BASE/startup_err"|' \

31
plugins.mk Normal file
View File

@ -0,0 +1,31 @@
# This is the list of Tier-1 plugins shipped with a release.
#
# IMPORTANT: This list is overriden in the server-release Concourse
# pipeline: Concourse takes all tested plugins and put them in the
# release. So if you want to add or remove a plugin to the distribution,
# you need to update the server-release pipeline!
PLUGINS := rabbitmq_amqp1_0 \
rabbitmq_auth_backend_ldap \
rabbitmq_auth_mechanism_ssl \
rabbitmq_consistent_hash_exchange \
rabbitmq_event_exchange \
rabbitmq_federation \
rabbitmq_federation_management \
rabbitmq_jms_topic_exchange \
rabbitmq_management \
rabbitmq_management_agent \
rabbitmq_mqtt \
rabbitmq_recent_history_exchange \
rabbitmq_sharding \
rabbitmq_shovel \
rabbitmq_shovel_management \
rabbitmq_stomp \
rabbitmq_top \
rabbitmq_tracing \
rabbitmq_trust_store \
rabbitmq_web_dispatch \
rabbitmq_web_mqtt \
rabbitmq_web_mqtt_examples \
rabbitmq_web_stomp \
rabbitmq_web_stomp_examples

View File

@ -5,6 +5,27 @@ ifeq ($(.DEFAULT_GOAL),)
.DEFAULT_GOAL = all .DEFAULT_GOAL = all
endif endif
# PROJECT_VERSION defaults to:
# 1. the version exported by rabbitmq-server-release;
# 2. the version stored in `git-revisions.txt`, if it exists;
# 3. a version based on git-describe(1), if it is a Git clone;
# 4. 0.0.0
PROJECT_VERSION = $(RABBITMQ_VERSION)
ifeq ($(PROJECT_VERSION),)
PROJECT_VERSION := $(shell \
if test -f git-revisions.txt; then \
head -n1 git-revisions.txt | \
awk '{print $$$(words $(PROJECT_DESCRIPTION) version);}'; \
else \
(git describe --dirty --abbrev=7 --tags --always --first-parent \
2>/dev/null || echo rabbitmq_v0_0_0) | \
sed -e 's/^rabbitmq_v//' -e 's/^v//' -e 's/_/./g' -e 's/-/+/' \
-e 's/-/./g'; \
fi)
endif
# -------------------------------------------------------------------- # --------------------------------------------------------------------
# RabbitMQ components. # RabbitMQ components.
# -------------------------------------------------------------------- # --------------------------------------------------------------------

View File

@ -114,4 +114,4 @@ clean:
rm -rf rabbitmqadmin rm -rf rabbitmqadmin
distclean: clean distclean: clean
rm -rf rabbitmq-server-generic-unix-* rm -rf rabbitmq-server-generic-unix-*