7a5976fd29
RabbitMQ 3.8.2 Changes Core Server Enhancements Raft implementation optimizations. Quorum queue optimization: enables local (not going through the leader) delivery from Raft followers when appropriate and safe. If x-queue-type argument is not provided at queue declaration time, the type is assumed to be classic instead of missing. Quorum queue consumer timeout now can be configured using new style configuration file: # Hard timeout for quorum queue consumer acknowledgemnts of two minutes consumer_timeout = 120000 Bug Fixes A quorum queue could produce an empty Raft log segment if node is killed at a particular moment in time, which would prevent the node from successfully recovering the log after restart. Quorum queue consumer count metric could be duplicated when reported via HTTP API or to a Prometheus scraper. Quorum queue with single active consumer enabled crashes after some basic.get calls. Quorum queues now forbid basic.get when single active consumer is enabled. CLI Tools Enhancements It is now possible to export and import definitions without the use of plugins with rabbitmqctl export_definitions and rabbitmqctl import_definitions: # export as a JSON file rabbitmqctl export_definitions /path/to/target.file.json # export as JSON to standard output and pipe to jq rabbitmqctl export_definitions "-" | jq # export as a compressed Erlang term file rabbitmqctl export_definitions /path/to/target.file --format=erlang # learn more rabbitmqctl help export_definitions # import from a JSON file rabbitmqctl import_definitions /path/to/target.file.json # import JSON from standard input cat /path/to/definitions.json | rabbitmqctl import_definitions "-" # import from a compressed Erlang term file rabbitmqctl import_definitions /path/to/target.file --format=erlang # learn more rabbitmqctl help import_definitions Entities with amq.* prefixes are now skipped during import instead of producing an error. Bug Fixes rabbitmqctl await_startup failed with an exception when RabbitMQ application was stopped but the runtime (Erlang VM) was running. Management Plugin Bug Fixes Definition import via HTTP API could fail in if performed via HTTP API (but not management UI) and contained operator policies. Enhancements Metric aggregation optimizations. MQTT Plugin Enhancements Throughput improvements ranging from 14 to 60 percent depending on workload. Throughput improvements and reduced CPU usage but slightly higher per connection RAM footprint. Bug Fixes Client ID tracker could produce an empty Raft log segment if node is killed at a particular moment in time, which would prevent the node from successfully recovering the log after restart. Last Will messages that use QoS 2 will now be downgraded to QoS 1 just like with "regular" published messages. AMQP 1.0 Plugin Enhancements Throughput improvements. STOMP Plugin Enhancements Throughput improvements. Web STOMP Plugin Enhancements Clients now can authenticate using an x.509 (TLS) certificate. Prometheus Plugin A small number of queue metrics were not read from the metric store correctly.
109 lines
3.8 KiB
Makefile
109 lines
3.8 KiB
Makefile
# $NetBSD: Makefile,v 1.45 2020/02/13 18:31:07 adam Exp $
|
|
|
|
DISTNAME= rabbitmq-server-3.8.2
|
|
PKGNAME= ${DISTNAME:S/-server//}
|
|
CATEGORIES= net
|
|
MASTER_SITES= ${MASTER_SITE_GITHUB:=rabbitmq/}
|
|
EXTRACT_SUFX= .tar.xz
|
|
GITHUB_PROJECT= rabbitmq-server
|
|
GITHUB_RELEASE= v${PKGVERSION_NOREV}
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= https://www.rabbitmq.com/
|
|
COMMENT= Implementation of AMQP that provides robust messaging for applications
|
|
LICENSE= mpl-1.1
|
|
|
|
USE_TOOLS+= bash:run gmake unzip zip
|
|
|
|
BUILD_DEPENDS+= elixir-[0-9]*:../../lang/elixir
|
|
BUILD_DEPENDS+= libxslt-[0-9]*:../../textproc/libxslt
|
|
BUILD_DEPENDS+= ${PYPKGPREFIX}-expat-[0-9]*:../../textproc/py-expat
|
|
BUILD_DEPENDS+= rsync-[0-9]*:../../net/rsync
|
|
BUILD_DEPENDS+= xmlto-[0-9]*:../../textproc/xmlto
|
|
DEPENDS+= ${PYPKGPREFIX}-simplejson>=2:../../converters/py-simplejson
|
|
|
|
BUILD_DEFS+= VARBASE
|
|
|
|
# Create a mix tool to avoid nested interpreter issues.
|
|
TOOLS_CREATE+= mix
|
|
TOOLS_SCRIPT.mix= ${PREFIX}/bin/elixir -r ${PREFIX}/bin/mix -- "$$@"
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
RMQ_USER?= rabbitmq
|
|
RMQ_GROUP?= ${RMQ_USER}
|
|
RMQ_SHELL?= ${TOOLS_PATH.bash}
|
|
RMQ_DIR?= ${VARBASE}/db/rabbitmq
|
|
RMQ_LOG?= ${VARBASE}/log/rabbitmq
|
|
|
|
OWN_DIRS_PERMS+= ${RMQ_DIR} ${RMQ_USER} ${RMQ_GROUP} 0770
|
|
OWN_DIRS_PERMS+= ${RMQ_LOG} ${RMQ_USER} ${RMQ_GROUP} 0770
|
|
|
|
PKG_GROUPS+= ${RMQ_GROUP}
|
|
PKG_USERS+= ${RMQ_USER}:${RMQ_GROUP}
|
|
PKG_GECOS.${RMQ_USER}= RabbitMQ Server User
|
|
PKG_HOME.${RMQ_USER}= ${RMQ_DIR}
|
|
PKG_SHELL.${RMQ_USER}= ${RMQ_SHELL}
|
|
|
|
PKG_SYSCONFSUBDIR= ${PKGBASE}
|
|
CONF_FILES+= share/examples/rabbitmq/rabbitmq-env.conf \
|
|
${PKG_SYSCONFDIR}/rabbitmq-env.conf
|
|
CONF_FILES+= share/examples/rabbitmq/rabbitmq.conf.example \
|
|
${PKG_SYSCONFDIR}/rabbitmq.conf
|
|
|
|
FILES_SUBST+= RMQ_USER=${RMQ_USER}
|
|
FILES_SUBST+= RMQ_GROUP=${RMQ_GROUP}
|
|
FILES_SUBST+= RMQ_DIR=${RMQ_DIR}
|
|
|
|
RABBITMQ_HOME= lib/erlang/lib/rabbitmq_server-${PKGVERSION_NOREV}
|
|
|
|
INSTALLATION_DIRS+= share/examples/rabbitmq
|
|
|
|
SCRIPTS_DIR= ${WRKSRC}/deps/rabbit/scripts
|
|
|
|
SUBST_CLASSES+= paths
|
|
SUBST_MESSAGE.paths= Setting standard paths
|
|
SUBST_STAGE.paths= pre-build
|
|
SUBST_FILES.paths= ${SCRIPTS_DIR}/rabbitmq-env
|
|
SUBST_FILES.paths+= ${SCRIPTS_DIR}/rabbitmq-server
|
|
SUBST_FILES.paths+= ${SCRIPTS_DIR}/rabbitmq-defaults
|
|
SUBST_SED.paths= -e 's|/etc/rabbitmq|${PKG_SYSCONFDIR}|g'
|
|
SUBST_SED.paths+= -e 's|/var/lib|${VARBASE}/db|g'
|
|
SUBST_SED.paths+= -e 's|/var/log|${VARBASE}/log|g'
|
|
SUBST_SED.paths+= -e 's|erl|${PREFIX}/bin/erl|g'
|
|
SUBST_SED.paths+= -e 's|@RABBITMQ_HOME@|${PREFIX}/${RABBITMQ_HOME}|g'
|
|
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmqctl
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmq-defaults
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmq-env
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmq-plugins
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmq-queues
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmq-server
|
|
REPLACE_BASH+= ${SCRIPTS_DIR}/rabbitmq-upgrade
|
|
|
|
# Too much effort to replace the shebang on generated files
|
|
CHECK_INTERPRETER_SKIP+= ${RABBITMQ_HOME}/escript/rabbitmq-diagnostics
|
|
CHECK_INTERPRETER_SKIP+= ${RABBITMQ_HOME}/escript/rabbitmq-plugins
|
|
CHECK_INTERPRETER_SKIP+= ${RABBITMQ_HOME}/escript/rabbitmq-queues
|
|
CHECK_INTERPRETER_SKIP+= ${RABBITMQ_HOME}/escript/rabbitmq-upgrade
|
|
CHECK_INTERPRETER_SKIP+= ${RABBITMQ_HOME}/escript/rabbitmqctl
|
|
CHECK_INTERPRETER_SKIP+= ${RABBITMQ_HOME}/sbin/cuttlefish
|
|
|
|
MAKE_ENV+= MANDIR="${PREFIX}/${PKGMANDIR}"
|
|
MAKE_ENV+= RMQ_BINDIR="${PREFIX}/sbin"
|
|
MAKE_ENV+= RMQ_LIBDIR="${PREFIX}/lib/erlang/lib"
|
|
MAKE_ENV+= RSYNC="${PREFIX}/bin/rsync"
|
|
MAKE_ENV+= VERSION="${PKGVERSION_NOREV}"
|
|
|
|
INSTALL_TARGET= install-erlapp install-scripts install-bin install-man
|
|
TEST_TARGET= check
|
|
|
|
post-install:
|
|
${INSTALL_DATA} ${WRKSRC}/deps/rabbit/docs/rabbitmq.conf.example \
|
|
${DESTDIR}${PREFIX}/share/examples/rabbitmq
|
|
${INSTALL_DATA} ${FILESDIR}/rabbitmq-env.conf \
|
|
${DESTDIR}${PREFIX}/share/examples/rabbitmq
|
|
|
|
.include "../../lang/erlang/buildlink3.mk"
|
|
.include "../../lang/python/application.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|