freebsd-ports/net-im/ejabberd/Makefile
2022-10-30 09:52:21 +00:00

196 lines
7.1 KiB
Makefile

PORTNAME= ejabberd
PORTVERSION= 22.10
CATEGORIES= net-im
MAINTAINER= ashish@FreeBSD.org
COMMENT= Free and Open Source distributed fault-tolerant Jabber server
WWW= https://www.ejabberd.im/
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN_riscv64= fails to build: Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension
BUILD_DEPENDS= erlc:lang/erlang
RUN_DEPENDS= erl:lang/erlang
LIB_DEPENDS= libexpat.so:textproc/expat2 \
libyaml.so:textproc/libyaml \
libgd.so:graphics/gd \
libpng.so:graphics/png \
libwebp.so:graphics/webp
USES= compiler:c11 cpe gmake pkgconfig shebangfix ssl jpeg \
autoreconf:build
USERS= ejabberd
GROUPS= ${USERS}
GNU_CONFIGURE= yes
USE_RC_SUBR= ${PORTNAME}
NOPRECIOUSMAKEVARS= yes
CPE_VENDOR= process-one
USE_GITHUB= yes
GH_ACCOUNT= processone
GH_TUPLE= processone:p1_utils:${P1_UTILS_VER}:p1_utils/deps/p1_utils \
processone:cache_tab:${CACHE_TAB_VER}:cache_tab/deps/cache_tab \
processone:fast_tls:${FAST_TLS_VER}:fast_tls/deps/fast_tls \
processone:stringprep:${STRINGPREP_VER}:stringprep/deps/stringprep \
processone:fast_xml:${FAST_XML_VER}:fast_xml/deps/fast_xml \
processone:xmpp:${XMPP_VER}:xmpp/deps/xmpp \
processone:fast_yaml:${FAST_YAML_VER}:fast_yaml/deps/fast_yaml \
davisp:jiffy:${JIFFY_VER}:jiffy/deps/jiffy \
processone:p1_oauth2:${P1_OAUTH2_VER}:p1_oauth2/deps/p1_oauth2 \
potatosalad:erlang-jose:${JOSE_VER}:jose/deps/jose \
processone:eimp:${EIMP_VER}:eimp/deps/eimp \
dvv:base64url:${BASE64URL_VER}:base64url/deps/base64url \
processone:ezlib:${EZLIB_VER}:ezlib/deps/ezlib \
processone:pkix:${PKIX_VER}:pkix/deps/pkix \
processone:mqtree:${MQTREE_VER}:mqtree/deps/mqtree \
processone:yconf:${YCONF_VER}:yconf/deps/yconf \
processone:p1_acme:${P1_ACME_VER}:p1_acme/deps/p1_acme \
benoitc:erlang-idna:${IDNA_VER}:idna/deps/idna \
benoitc:unicode_util_compat:${UNICODE_UTIL_COMPAT_VER}:unicode_util_compat/deps/unicode_util_compat
OPTIONS_DEFINE= ODBC PAM DOCS LUA MYSQL PGSQL REDIS SIP SQLITE \
STUN TOOLS FULLXML
OPTIONS_DEFAULT=STUN
EJABBERD_LIBDIR=lib/erlang/lib
MAKE_ENV= PORTVERSION=${PORTVERSION}
CONFIGURE_ARGS+=--localstatedir=/var --libdir=${PREFIX}/${EJABBERD_LIBDIR}
MAKE_ARGS= "CPPFLAGS=${CPPFLAGS}" "CFLAGS=${CFLAGS}" "LDFLAGS=${LDFLAGS}"
CPPFLAGS+= -I${LOCALBASE}/include
CFLAGS+= -I${LOCALBASE}/include
LDFLAGS+= -L${LOCALBASE}/lib
SUBS= PORTNAME=${PORTNAME} PORTVERSION=${PORTVERSION} \
EJABBERD_LIBDIR=${EJABBERD_LIBDIR} \
BASE64URL_VER=${BASE64URL_VER} \
CACHE_TAB_VER=${CACHE_TAB_VER} EIMP_VER=${EIMP_VER} \
EPAM_VER=${EPAM_VER} EREDIS_VER=${EREDIS_VER} \
ESIP_VER=${ESIP_VER} EZLIB_VER=${EZLIB_VER} \
FAST_TLS_VER=${FAST_TLS_VER} \
FAST_XML_VER=${FAST_XML_VER} \
FAST_YAML_VER=${FAST_YAML_VER} \
IDNA_VER=${IDNA_VER} \
JIFFY_VER=${JIFFY_VER} JOSE_VER=${JOSE_VER} \
LUERL_VER=${LUERL_VER} \
MQTREE_VER=${MQTREE_VER} \
P1_ACME_VER=${P1_ACME_VER} \
P1_MYSQL_VER=${P1_MYSQL_VER} \
P1_OAUTH2_VER=${P1_OAUTH2_VER} \
P1_PGSQL_VER=${P1_PGSQL_VER} \
P1_UTILS_VER=${P1_UTILS_VER} PKIX_VER=${PKIX_VER} \
SQLITE3_VER=${SQLITE3_VER} \
STRINGPREP_VER=${STRINGPREP_VER} STUN_VER=${STUN_VER} \
UNICODE_UTIL_COMPAT_VER=${UNICODE_UTIL_COMPAT_VER} \
XMPP_VER=${XMPP_VER} YCONF_VER=${YCONF_VER}
SUB_FILES= pkg-message pkg-install
PLIST_SUB= ${SUBS}
SUB_LIST= ${SUBS} \
USERS=${USERS} GROUPS=${GROUPS} SHAREMODE=${SHAREMODE} \
SHAREOWN=${SHAREOWN} SHAREGRP=${SHAREGRP} \
EJABBERD_LIBDIR=${EJABBERD_LIBDIR}
SHEBANG_FILES= ${WRKSRC}/ejabberdctl.template
BASE64URL_VER= 1.0.1
CACHE_TAB_VER= 1.0.30
EIMP_VER= 1.0.22
EJABBERD_PO_VER= 0.0.0
EPAM_VER= 1.0.12
EREDIS_VER= 1.2.0
ESIP_VER= 1.0.48
EZLIB_VER= 1.0.12
FAST_TLS_VER= 1.1.16
FAST_XML_VER= 1.1.49
FAST_YAML_VER= 1.0.34
IDNA_VER= 6.0.0
JIFFY_VER= 1.1.1
JOSE_VER= 1.11.1
LUERL_VER= 1.0
MQTREE_VER= 1.0.15
P1_ACME_VER= 1.0.20
P1_MYSQL_VER= 1.0.20
P1_OAUTH2_VER= 0.6.11
P1_PGSQL_VER= 1.1.19
P1_UTILS_VER= 1.0.25
PKIX_VER= 1.0.9
SQLITE3_VER= 1.1.13
STRINGPREP_VER= 1.0.29
STUN_VER= 1.2.6
UNICODE_UTIL_COMPAT_VER= 0.4.1
XMPP_VER= 1.6.0
YCONF_VER= 1.0.14
OPTIONS_SUB= yes
SIP_DESC= SIP support
STUN_DESC= STUN/TURN support
TOOLS_DESC= Build development tools
FULLXML_DESC= Full XML support
PAM_CONFIGURE_ENABLE= pam
PAM_GH_TUPLE= processone:epam:${EPAM_VER}:epam/deps/epam
ODBC_CONFIGURE_ENABLE= odbc
MYSQL_CONFIGURE_ENABLE= mysql
MYSQL_GH_TUPLE= processone:p1_mysql:${P1_MYSQL_VER}:p1_mysql/deps/p1_mysql
PGSQL_CONFIGURE_ENABLE= pgsql
PGSQL_GH_TUPLE= processone:p1_pgsql:${P1_PGSQL_VER}:p1_pgsql/deps/p1_pgsql
REDIS_CONFIGURE_ENABLE= redis
REDIS_GH_TUPLE= wooga:eredis:v${EREDIS_VER}:eredis/deps/eredis
REDIS_EXTRA_PATCHES= ${PATCHDIR}/extrapatch-deps_eredis_src_eredis.app.src
SIP_CONFIGURE_ENABLE= sip
SIP_GH_TUPLE= processone:esip:${ESIP_VER}:esip/deps/esip
SIP_IMPLIES= STUN
STUN_CONFIGURE_ENABLE= stun
STUN_GH_TUPLE= processone:stun:${STUN_VER}:stun/deps/stun
SQLITE_CONFIGURE_ENABLE=sqlite
SQLITE_GH_TUPLE= processone:erlang-sqlite3:${SQLITE3_VER}:sqlite3/deps/sqlite3
TOOLS_CONFIGURE_ENABLE= tools
TOOLS_GH_TUPLE=processone:ejabberd-po:e909d88:ejabberdpo/deps/ejabberd_po
FULLXML_CONFIGURE_ENABLE= full-xml
SQLITE_USES= sqlite
DOCS_MAKE_ARGS_OFF= NOPORTDOCS=yes
LUA_CONFIGURE_ENABLE= lua
LUA_GH_TUPLE= rvirding:luerl:v${LUERL_VER}:luerl/deps/luerl
.include <bsd.port.pre.mk>
pre-everything::
@if ${PKG_BIN} query %n-%v net-im/ejabberd; then \
${ECHO_MSG} needs to be uninstalled, before this port build could proceed. ; \
${ECHO_MSG} For details: https://github.com/processone/ejabberd/issues/2194 ; \
${ECHO_MSG} Sorry for the inconvenience. ; \
exit 1; \
fi
post-patch:
@${REINPLACE_CMD} -e 's,^convert,${LOCALBASE}/bin/convert,' ${WRKSRC}/tools/captcha.sh
@${REINPLACE_CMD} -e 's,%%PORTVERSION%%,${PORTVERSION},' ${WRKSRC}/configure.ac
pre-configure:
cd ${WRKSRC} && ${SH} autogen.sh
@${REINPLACE_CMD} -e 's,/usr/local,${LOCALBASE},g' ${WRKSRC}/configure
pre-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}
post-install-PAM-on:
${INSTALL} -m 444 ${FILESDIR}/pam_ejabberd \
${STAGEDIR}${PREFIX}/etc/pam.d/ejabberd
${INSTALL} -m 0750 ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/epam-${EPAM_VER}/priv/bin/epam \
${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/bin/epam
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/epam-${EPAM_VER}/priv/bin/epam \
${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/bin/epam
post-install:
@${FIND} ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR} -type f \
-name '*.so' -exec ${STRIP_CMD} {} \;
@${MKDIR} ${STAGEDIR}${DATADIR}
${INSTALL_SCRIPT} ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/bin/captcha.sh \
${STAGEDIR}${DATADIR}
@${CHMOD} +x ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/eimp-${EIMP_VER}/priv/bin/eimp
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/eimp-${EIMP_VER}/priv/bin/eimp
@cd ${WRKSRC}/sql && ${COPYTREE_SHARE} . ${STAGEDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/sql
.include <bsd.port.post.mk>