freebsd-ports/net/rabbitmq/Makefile
Jimmy Olgeni bfde8c03da Avoid calling "rabbitmqctl status" in a loop to make sure that RabbitMQ is
started.

"rabbitmqctl wait" alone should suffice, and the loop seems to cause some
kind of race condition that causes a segfault in the Erlang VM.

RabbitMQ would start anyway, but users would get a segmentation fault
message on the console.

We also wait on daemon(8)'s pid to make sure that restarts are synchronized
(i.e. daemon(8) is stopped before starting it again with the same pidfile).

PR:		204147
Submitted by:	elofu17@hotmail.com
2015-12-30 22:44:36 +00:00

81 lines
2.5 KiB
Makefile

# Created by: Phillip Neumann <pneumann@gmail.com>
# $FreeBSD$
PORTNAME= rabbitmq
PORTVERSION= 3.5.7
PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= http://www.rabbitmq.com/releases/rabbitmq-server/v${PORTVERSION}/
DISTNAME= ${PORTNAME}-server-${PORTVERSION}
MAINTAINER= olgeni@FreeBSD.org
COMMENT= RabbitMQ is an implementation of AMQP
LICENSE= MPL
BUILD_DEPENDS= erl:${PORTSDIR}/lang/erlang \
${PYTHON_PKGNAMEPREFIX}simplejson>=2.0:${PORTSDIR}/devel/py-simplejson \
xmlto:${PORTSDIR}/textproc/xmlto \
unzip:${PORTSDIR}/archivers/unzip \
zip:${PORTSDIR}/archivers/zip
RUN_DEPENDS= erl:${PORTSDIR}/lang/erlang
OPTIONS_DEFINE= ADMIN
OPTIONS_SUB= yes
ADMIN_DESC= Install rabbitmqadmin script
USES= cpe gmake python:build shebangfix
USE_RC_SUBR= rabbitmq
SHEBANG_FILES= calculate-relative plugins-src/rabbitmq-amqp1.0/codegen.py
python_OLD_CMD= .*python
NO_ARCH= yes
USERS= rabbitmq
GROUPS= rabbitmq
PLIST_SUB= VERSION=${PORTVERSION}
CPE_VENDOR= pivotal_software
SCRIPTS_DIR= ${WRKSRC}/scripts/
MAKE_ARGS+= PYTHON=${PYTHON_CMD}
MAKE_ENV+= TARGET_DIR="${STAGEDIR}${PREFIX}/lib/erlang/lib/rabbitmq_server-${PORTVERSION}" \
SBIN_DIR="${STAGEDIR}${PREFIX}/sbin/" \
MAN_DIR="${STAGEDIR}${PREFIX}/man" \
DOC_INSTALL_DIR="${STAGEDIR}${EXAMPLESDIR}"
MAKE_JOBS_UNSAFE= yes
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MADMIN}
USES+= python:run
.endif
post-patch:
@${REINPLACE_CMD} -e 's|/etc/rabbitmq|${PREFIX}/etc/rabbitmq|g ; s|/var/lib|/var/db|g ; s|$${ERL_DIR}erl|${PREFIX}/bin/erl|g' \
${SCRIPTS_DIR}/rabbitmq-server ${SCRIPTS_DIR}/rabbitmqctl \
${SCRIPTS_DIR}/rabbitmq-env ${SCRIPTS_DIR}/rabbitmq-plugins \
${SCRIPTS_DIR}/rabbitmq-defaults \
${WRKSRC}/docs/rabbitmq-env.conf.5.xml
@${REINPLACE_CMD} -e 's|VERSION=0.0.0|VERSION=${PORTVERSION}|g' \
${WRKSRC}/plugins-src/rabbitmq-erlang-client/Makefile \
${WRKSRC}/plugins-src/release.mk
@${REINPLACE_CMD} -e 's|VERSION:=0.0.0|VERSION:=${PORTVERSION}|g' \
${WRKSRC}/plugins-src/Makefile
@${REINPLACE_CMD} -e 's|VERSION?=0.0.0|VERSION?=${PORTVERSION}|g' \
${WRKSRC}/Makefile
@${FIND} ${WRKSRC} -name "*.bak" -delete
post-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/etc/rabbitmq
@${MKDIR} ${STAGEDIR}/var/db/rabbitmq/mnesia
@${MKDIR} ${STAGEDIR}/var/log/rabbitmq
${INSTALL_DATA} ${WRKSRC}/docs/rabbitmq.config.example \
${STAGEDIR}${PREFIX}/etc/rabbitmq/rabbitmq.config.sample
.if ${PORT_OPTIONS:MADMIN}
${INSTALL} ${WRKSRC}/plugins-src/rabbitmq-management/bin/rabbitmqadmin ${STAGEDIR}${PREFIX}/bin
.endif
.include <bsd.port.mk>