Skip to content

Commit

Permalink
Merge branch 'stable'
Browse files Browse the repository at this point in the history
  • Loading branch information
dumbbell committed Dec 7, 2016
2 parents e18f65e + 2c83f89 commit 635c99d
Show file tree
Hide file tree
Showing 7 changed files with 82 additions and 51 deletions.
66 changes: 26 additions & 40 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,36 +1,19 @@
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).
PACKAGES_DIR ?= $(abspath PACKAGES)

DEPS = rabbit_common rabbit $(PLUGINS)

# List of plugins to include in a RabbitMQ release.
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_stomp \
rabbitmq_web_stomp_examples \
rabbitmq_web_mqtt \
rabbitmq_web_mqtt_examples
include plugins.mk

DEPS = rabbit_common rabbit $(PLUGINS)

DEP_PLUGINS = rabbit_common/mk/rabbitmq-run.mk \
rabbit_common/mk/rabbitmq-dist.mk \
Expand All @@ -53,7 +36,7 @@ include erlang.mk

SOURCE_DIST_BASE ?= rabbitmq-server
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
# type changes, you must update all packages' Makefile.
Expand All @@ -79,15 +62,15 @@ RSYNC_FLAGS += -a $(RSYNC_V) \
--exclude '.travis.yml' \
--exclude '.*.plt' \
--exclude '$(notdir $(ERLANG_MK_TMP))' \
--exclude 'ebin' \
--exclude 'packaging' \
--exclude 'erl_crash.dump' \
--exclude 'MnesiaCore.*' \
--exclude 'cover/' \
--exclude 'deps/' \
--exclude 'ebin/' \
--exclude 'erl_crash.dump' \
--exclude 'MnesiaCore.*' \
--exclude '$(notdir $(DEPS_DIR))/' \
--exclude 'hexer*' \
--exclude 'logs/' \
--exclude 'packaging' \
--exclude '/plugins/' \
--include 'cli/plugins' \
--exclude '$(notdir $(DIST_DIR))/' \
Expand Down Expand Up @@ -121,12 +104,14 @@ ZIP_V_2 =
ZIP_V = $(ZIP_V_$(V))

.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)
$(verbose) mkdir -p $(dir $@)
$(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) mkdir -p $@/deps/licensing
$(verbose) for dep in $$(cat $(ERLANG_MK_RECURSIVE_DEPS_LIST) | LC_COLLATE=C sort); do \
Expand All @@ -152,11 +137,12 @@ $(SOURCE_DIST): $(ERLANG_MK_RECURSIVE_DEPS_LIST)
$(verbose) find $@/deps/licensing -name 'LICENSE-*' -exec cp '{}' $@ \;
$(verbose) for file in $$(find $@ -name '*.app.src'); do \
sed -E -i.bak \
-e 's/[{]vsn[[:blank:]]*,[[:blank:]]*(""|"0.0.0")[[:blank:]]*}/{vsn, "$(VERSION)"}/' \
-e 's/[{]broker_version_requirements[[:blank:]]*,[[:blank:]]*\[\][[:blank:]]*}/{broker_version_requirements, ["$(VERSION)"]}/' \
-e 's/[{]vsn[[:blank:]]*,[[:blank:]]*(""|"0.0.0")[[:blank:]]*}/{vsn, "$(PROJECT_VERSION)"}/' \
-e 's/[{]broker_version_requirements[[:blank:]]*,[[:blank:]]*\[\][[:blank:]]*}/{broker_version_requirements, ["$(PROJECT_VERSION)"]}/' \
$$file; \
rm $$file.bak; \
done
$(verbose) echo "PLUGINS := $(PLUGINS)" > $@/plugins.mk

# TODO: Fix file timestamps to have reproducible source archives.
# $(verbose) find $@ -not -name 'git-revisions.txt' -print0 | xargs -0 touch -r $@/git-revisions.txt
Expand Down Expand Up @@ -188,15 +174,15 @@ $(SOURCE_DIST).zip: $(SOURCE_DIST)
clean:: clean-source-dist clean-upgrade

clean-upgrade:
cd upgrade && make clean
$(MAKE) -C upgrade clean

clean-source-dist:
$(gen_verbose) rm -rf -- $(SOURCE_DIST_BASE)-*

distclean:: distclean-packages distclean-upgrade

distclean-upgrade:
cd upgrade && make distclean
$(MAKE) -C upgrade distclean

distclean-packages:
$(gen_verbose) rm -rf -- $(PACKAGES_DIR)
Expand Down Expand Up @@ -244,13 +230,13 @@ manpages web-manpages distclean-manpages:
DESTDIR ?=

PREFIX ?= /usr/local
WINDOWS_PREFIX ?= rabbitmq-server-windows-$(VERSION)
WINDOWS_PREFIX ?= rabbitmq-server-windows-$(PROJECT_VERSION)

MANDIR ?= $(PREFIX)/share/man
RMQ_ROOTDIR ?= $(PREFIX)/lib/erlang
RMQ_BINDIR ?= $(RMQ_ROOTDIR)/bin
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 \
rabbitmq-env \
Expand Down
1 change: 0 additions & 1 deletion packaging/debs/Debian/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ all: package
package: clean
cp -a $(SOURCE_DIST_FILE) $(DEBIAN_ORIG_TARBALL)
xzcat $(DEBIAN_ORIG_TARBALL) | tar -xf -
cp -a debian $(UNPACKED_DIR)
rsync -a \
--exclude '.sw?' --exclude '.*.sw?' \
--exclude '.git*' \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,5 +61,3 @@ esac
#DEBHELPER#

exit 0


10 changes: 3 additions & 7 deletions packaging/debs/Debian/debian/rules
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
#export DH_VERBOSE=1

DEB_DESTDIR = debian/rabbitmq-server
VERSION = $(shell dpkg-parsechangelog | awk '/^Version:/ {version=$$0; sub(/Version: /, "", version); sub(/-.*/, "", version); print version;}')

unexport DEPS_DIR

Expand All @@ -26,14 +25,11 @@ export PREFIX RMQ_ROOTDIR

override_dh_auto_install: PREFIX = /usr
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:
dh_auto_install -- VERSION=$(VERSION)
dh_auto_install

$(MAKE) install-bin DESTDIR=$(DEB_DESTDIR) VERSION=$(VERSION)

sed -e 's|@RABBIT_LIB@|$(RMQ_ERLAPP_DIR)|g' \
< debian/postrm.in > debian/postrm
$(MAKE) install-bin DESTDIR=$(DEB_DESTDIR)

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"|' \
Expand Down
31 changes: 31 additions & 0 deletions plugins.mk
Original file line number Diff line number Diff line change
@@ -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
21 changes: 21 additions & 0 deletions rabbitmq-components.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ ifeq ($(.DEFAULT_GOAL),)
.DEFAULT_GOAL = all
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.
# --------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion upgrade/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -114,4 +114,4 @@ clean:
rm -rf rabbitmqadmin

distclean: clean
rm -rf rabbitmq-server-generic-unix-*
rm -rf rabbitmq-server-generic-unix-*

0 comments on commit 635c99d

Please sign in to comment.