Skip to content

Commit

Permalink
net/rabbitmq: update to v3.12.13 and new tarball
Browse files Browse the repository at this point in the history
Summary:
RabbitMQ has long provided a generic unix tarball which is better
suited for a FreeBSD port. There should be no functional changes
for this approach, and it simplifies build and release by aligning
better with upstream deployment, removing dependency on lang/elixir
releases.

Once the 2024Q2 branch is created, the next RabbitMQ release will
be updated, as users need to migrate from 3.11 -> 3.12 -> 3.13
without skipping in between versions.

https://rabbitmq.com/install-generic-unix.html

Differential Revision: https://reviews.freebsd.org/D43954
PR:		275838
  • Loading branch information
dch committed Mar 16, 2024
1 parent f6bffca commit ddf5b19
Show file tree
Hide file tree
Showing 4 changed files with 465 additions and 480 deletions.
79 changes: 36 additions & 43 deletions net/rabbitmq/Makefile
@@ -1,8 +1,10 @@
PORTNAME= rabbitmq
DISTVERSION= 3.11.28
DISTVERSION= 3.12.13
CATEGORIES= net
MASTER_SITES= https://github.com/rabbitmq/rabbitmq-server/releases/download/v${PORTVERSION}/
DISTNAME= ${PORTNAME}-server-${PORTVERSION}
# https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.12/rabbitmq-server-generic-unix-3.12.12.tar.xz
# https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.12.13/rabbitmq-server_3.12.13.orig.tar.xz
DISTNAME= ${PORTNAME}-server-generic-unix-${PORTVERSION}

MAINTAINER= erlang@FreeBSD.org
COMMENT= Erlang implementation of AMQP
Expand All @@ -11,74 +13,65 @@ WWW= https://www.rabbitmq.com/
LICENSE= MPL20
LICENSE_FILE= ${WRKSRC}/LICENSE-MPL-RabbitMQ

BUILD_DEPENDS= erlang-runtime${_ERLANG_VER}>=${_ERLANG_VER}:lang/erlang-runtime${_ERLANG_VER} \
elixir>=1.13.4:lang/elixir \
${PYTHON_PKGNAMEPREFIX}simplejson>=2.0:devel/py-simplejson@${PY_FLAVOR} \
xmlto:textproc/xmlto \
zip:archivers/zip \
rsync:net/rsync
RUN_DEPENDS= erlang-runtime${_ERLANG_VER}>=${_ERLANG_VER}:lang/erlang-runtime${_ERLANG_VER}
# ${PYTHON_PKGNAMEPREFIX}simplejson>=2.0:devel/py-simplejson@${PY_FLAVOR}

USES= cpe gmake shebangfix tar:xz
USES= cpe shebangfix tar:xz
CPE_VENDOR= pivotal_software
USE_LOCALE= en_US.UTF-8
USE_RC_SUBR= rabbitmq
SHEBANG_FILES= deps/rabbitmq_management/bin/rabbitmqadmin
MAKE_ARGS+= PYTHON=${PYTHON_CMD}
MAKE_ENV+= PATH="${LOCALBASE}/lib/${_ERLANG_LIB}/bin:${PATH}" \
RMQ_LIBDIR="${PREFIX}/lib" \
MANDIR="${PREFIX}/share/man" \
DESTDIR="${STAGEDIR}"
MAKE_JOBS_UNSAFE= yes
ALL_TARGET= install
# SHEBANG_FILES= plugins/rabbitmq_management-*/priv/www/cli/rabbitmqadmin

REINPLACE_ARGS= -i ""
NO_ARCH= yes
NO_BUILD= yes
SUB_LIST+= _ERLANG_LIB=${_ERLANG_LIB}

USERS= rabbitmq
GROUPS= rabbitmq

PLIST_SUB= VERSION=${PORTVERSION}

OPTIONS_DEFINE= ADMIN
OPTIONS_SUB= yes

ADMIN_DESC= Install rabbitmqadmin script
ADMIN_USES= python
ADMIN_USES_OFF= python:build

_ERLANG_VER= 25
_ERLANG_VER= 26
_ERLANG_LIB= erlang${_ERLANG_VER}

.include <bsd.port.options.mk>

do-extract:
${MKDIR} ${WRKSRC}
${TAR} -C ${WRKSRC} -xf ${DISTDIR}/${DISTFILES} --strip-components 1

post-patch:
# ensure our OTP is always preferred over other installed versions
@${REINPLACE_CMD} -e 's|LOCALBASE|${LOCALBASE}|' \
-e 's|ERLANG_LIB|${_ERLANG_LIB}|' \
${WRKSRC}/deps/rabbit/scripts/rabbitmq-defaults
# ensure docs match heir(7) paths
@${REINPLACE_CMD} -i '' \
-e 's|/etc/rabbitmq|${PREFIX}/etc/rabbitmq|g' \
-e 's|/var/lib|/var/db|g' \
${WRKSRC}/deps/rabbit/docs/*
@${REINPLACE_CMD} -i '' -e 's|/usr/bin/env escript|${LOCALBASE}/lib/${_ERLANG_LIB}/bin/escript|' \
${WRKSRC}/escript/*
@${REINPLACE_CMD} -i '' -e 's|LOCALBASE|${LOCALBASE}|' \
-e 's|_ERLANG_LIB|${_ERLANG_LIB}|' \
${WRKSRC}/sbin/rabbitmq-defaults
# # ensure docs match heir(7) paths
# @${REINPLACE_CMD} -i '' \
# -e 's|/etc/rabbitmq|${PREFIX}/etc/rabbitmq|g' \
# -e 's|/var/lib|/var/db|g' \
# ${WRKSRC}/deps/rabbit/docs/*

do-install:
${MKDIR} ${STAGEDIR}${PREFIX}/lib/rabbitmq_server-${PORTVERSION}
(cd ${WRKSRC} && ${COPYTREE_BIN} escript ${STAGEDIR}${PREFIX}/lib/rabbitmq_server-${PORTVERSION}/)
(cd ${WRKSRC} && ${COPYTREE_BIN} sbin ${STAGEDIR}${PREFIX}/lib/rabbitmq_server-${PORTVERSION}/)
(cd ${WRKSRC} && ${COPYTREE_SHARE} plugins ${STAGEDIR}${PREFIX}/lib/rabbitmq_server-${PORTVERSION}/)

post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/rabbitmq
@${MKDIR} ${STAGEDIR}/var/db/rabbitmq/mnesia
@${MKDIR} ${STAGEDIR}/var/log/rabbitmq
${INSTALL_DATA} ${WRKSRC}/deps/rabbit/docs/advanced.config.example \
${STAGEDIR}${PREFIX}/etc/rabbitmq/advanced.config.sample
${INSTALL_DATA} ${WRKSRC}/deps/rabbit/docs/rabbitmq.conf.example \
${STAGEDIR}${PREFIX}/etc/rabbitmq/rabbitmq.conf.sample
# ${INSTALL_DATA} ${WRKSRC}/deps/rabbit/docs/advanced.config.example \
# ${STAGEDIR}${PREFIX}/etc/rabbitmq/advanced.config.sample
# ${INSTALL_DATA} ${WRKSRC}/deps/rabbit/docs/rabbitmq.conf.example \
# ${STAGEDIR}${PREFIX}/etc/rabbitmq/rabbitmq.conf.sample
.for _file in rabbitmq-defaults rabbitmq-diagnostics rabbitmq-env rabbitmq-plugins rabbitmq-queues rabbitmq-server rabbitmq-streams rabbitmq-tanzu rabbitmq-upgrade rabbitmqctl vmware-rabbitmq
${LN} -s ../lib/rabbitmq_server-${PORTVERSION}/sbin/${_file} ${STAGEDIR}${PREFIX}/sbin
.endfor
${INSTALL_MAN} ${WRKSRC}/deps/rabbit/docs/*.8 ${STAGEDIR}${PREFIX}/share/man/man8
${INSTALL_MAN} ${WRKSRC}/deps/rabbit/docs/rabbitmq-env.conf.5 ${STAGEDIR}${PREFIX}/share/man/man5

post-install-ADMIN-on:
${INSTALL} ${WRKSRC}/deps/rabbitmq_management/bin/rabbitmqadmin ${STAGEDIR}${PREFIX}/bin
${INSTALL_MAN} ${WRKSRC}/share/man/man5/*.5.gz ${STAGEDIR}${PREFIX}/share/man/man5
${INSTALL_MAN} ${WRKSRC}/share/man/man8/*.8.gz ${STAGEDIR}${PREFIX}/share/man/man8
# ${INSTALL} ${WRKSRC}/plugins/rabbitmq_management-*/priv/www/cli/rabbitmqadmin ${STAGEDIR}${PREFIX}/bin

.include <bsd.port.mk>
6 changes: 3 additions & 3 deletions net/rabbitmq/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1708119569
SHA256 (rabbitmq-server-3.11.28.tar.xz) = 85e3b3621b6a127214f13b753f9afd9776d8652f6b1469e49d98027f75f41caa
SIZE (rabbitmq-server-3.11.28.tar.xz) = 4439280
TIMESTAMP = 1708166886
SHA256 (rabbitmq-server-generic-unix-3.12.13.tar.xz) = 98bc1fee2c961c0a131e6b0e6ff3854f40e80cd40ed7f3daf50828db2437abda
SIZE (rabbitmq-server-generic-unix-3.12.13.tar.xz) = 15703612
@@ -1,13 +1,13 @@
--- deps/rabbit/scripts/rabbitmq-defaults.orig 2021-06-24 16:41:31 UTC
+++ deps/rabbit/scripts/rabbitmq-defaults
@@ -6,7 +6,13 @@
## Copyright (c) 2007-2021 VMware, Inc. or its affiliates. All rights reserved.
--- sbin/rabbitmq-defaults.orig 2024-02-17 11:42:49 UTC
+++ sbin/rabbitmq-defaults
@@ -7,7 +7,13 @@
##

### next line potentially updated in package install steps
-SYS_PREFIX=
-SYS_PREFIX=${RABBITMQ_HOME}
+SYS_PREFIX=LOCALBASE
+# https://www.rabbitmq.com/relocate.html#unix
+export PATH=LOCALBASE/lib/ERLANG_LIB/bin:$PATH
+export PATH=LOCALBASE/lib/_ERLANG_LIB/bin:$PATH
+export RABBITMQ_MNESIA_BASE=/var/db/rabbitmq/mnesia
+export RABBITMQ_LOG_BASE=/var/log/rabbitmq
+# ensure VM and Elixir scripts are running under the same locale
Expand Down

0 comments on commit ddf5b19

Please sign in to comment.