1PORTNAME= ejabberd 2PORTVERSION= 25.04 3CATEGORIES= net-im 4 5MAINTAINER= ports@MidnightBSD.org 6COMMENT= Free and Open Source distributed fault-tolerant XMPP server 7WWW= https://www.ejabberd.im/ 8 9LICENSE= gpl2 10LICENSE_FILE= ${WRKSRC}/COPYING 11 12BROKEN_riscv64= fails to build: Hard-float 'd' ABI can't be used for a target that doesn't support the D instruction set extension 13 14BUILD_DEPENDS= erlc:lang/erlang 15RUN_DEPENDS= erl:lang/erlang 16LIB_DEPENDS= libexpat.so:textproc/expat2 \ 17 libyaml.so:textproc/libyaml \ 18 libgd.so:graphics/gd \ 19 libpng.so:graphics/png \ 20 libwebp.so:graphics/webp 21 22USES= compiler:c11 cpe gmake pkgconfig shebangfix ssl jpeg \ 23 autoreconf:build 24 25USERS= ejabberd 26GROUPS= ${USERS} 27 28GNU_CONFIGURE= yes 29GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share 30USE_RC_SUBR= ${PORTNAME} 31NOPRECIOUSMAKEVARS= yes 32CPE_VENDOR= process-one 33 34USE_GITHUB= yes 35GH_ACCOUNT= processone 36GH_TUPLE= processone:p1_utils:${P1_UTILS_VER}:p1_utils/deps/p1_utils \ 37 processone:cache_tab:${CACHE_TAB_VER}:cache_tab/deps/cache_tab \ 38 processone:fast_tls:${FAST_TLS_VER}:fast_tls/deps/fast_tls \ 39 processone:stringprep:${STRINGPREP_VER}:stringprep/deps/stringprep \ 40 processone:fast_xml:${FAST_XML_VER}:fast_xml/deps/fast_xml \ 41 processone:xmpp:${XMPP_VER}:xmpp/deps/xmpp \ 42 processone:fast_yaml:${FAST_YAML_VER}:fast_yaml/deps/fast_yaml \ 43 davisp:jiffy:${JIFFY_VER}:jiffy/deps/jiffy \ 44 processone:p1_oauth2:${P1_OAUTH2_VER}:p1_oauth2/deps/p1_oauth2 \ 45 potatosalad:erlang-jose:${JOSE_VER}:jose/deps/jose \ 46 processone:eimp:${EIMP_VER}:eimp/deps/eimp \ 47 dvv:base64url:${BASE64URL_VER}:base64url/deps/base64url \ 48 processone:ezlib:${EZLIB_VER}:ezlib/deps/ezlib \ 49 processone:pkix:${PKIX_VER}:pkix/deps/pkix \ 50 processone:mqtree:${MQTREE_VER}:mqtree/deps/mqtree \ 51 processone:yconf:${YCONF_VER}:yconf/deps/yconf \ 52 processone:p1_acme:${P1_ACME_VER}:p1_acme/deps/p1_acme \ 53 benoitc:erlang-idna:${IDNA_VER}:idna/deps/idna \ 54 benoitc:unicode_util_compat:${UNICODE_UTIL_COMPAT_VER}:unicode_util_compat/deps/unicode_util_compat 55 56OPTIONS_DEFINE= ODBC PAM DOCS LUA MYSQL PGSQL REDIS SIP SQLITE \ 57 STUN FULLXML 58OPTIONS_DEFAULT=SQLITE STUN 59 60EJABBERD_LIBDIR=lib/erlang/lib 61MAKE_ENV= PORTVERSION=${PORTVERSION} 62CONFIGURE_ARGS+=--localstatedir=/var --libdir=${PREFIX}/${EJABBERD_LIBDIR} --with-rebar=rebar 63MAKE_ARGS= "CPPFLAGS=${CPPFLAGS}" "CFLAGS=${CFLAGS}" "LDFLAGS=${LDFLAGS}" 64CPPFLAGS+= -I${LOCALBASE}/include 65CFLAGS+= -I${LOCALBASE}/include 66LDFLAGS+= -L${LOCALBASE}/lib 67SUBS= PORTNAME=${PORTNAME} PORTVERSION=${PORTVERSION} \ 68 EJABBERD_LIBDIR=${EJABBERD_LIBDIR} \ 69 BASE64URL_VER=${BASE64URL_VER} \ 70 CACHE_TAB_VER=${CACHE_TAB_VER} EIMP_VER=${EIMP_VER} \ 71 EPAM_VER=${EPAM_VER} EREDIS_VER=${EREDIS_VER} \ 72 ESIP_VER=${ESIP_VER} EZLIB_VER=${EZLIB_VER} \ 73 FAST_TLS_VER=${FAST_TLS_VER} \ 74 FAST_XML_VER=${FAST_XML_VER} \ 75 FAST_YAML_VER=${FAST_YAML_VER} \ 76 IDNA_VER=${IDNA_VER} \ 77 JIFFY_VER=${JIFFY_VER} JOSE_VER=${JOSE_VER} \ 78 LUERL_VER=${LUERL_VER} \ 79 MQTREE_VER=${MQTREE_VER} \ 80 P1_ACME_VER=${P1_ACME_VER} \ 81 P1_MYSQL_VER=${P1_MYSQL_VER} \ 82 P1_OAUTH2_VER=${P1_OAUTH2_VER} \ 83 P1_PGSQL_VER=${P1_PGSQL_VER} \ 84 P1_UTILS_VER=${P1_UTILS_VER} PKIX_VER=${PKIX_VER} \ 85 SQLITE3_VER=${SQLITE3_VER} \ 86 STRINGPREP_VER=${STRINGPREP_VER} STUN_VER=${STUN_VER} \ 87 UNICODE_UTIL_COMPAT_VER=${UNICODE_UTIL_COMPAT_VER} \ 88 XMPP_VER=${XMPP_VER} YCONF_VER=${YCONF_VER} 89 90SUB_FILES= pkg-message pkg-install 91PLIST_SUB= ${SUBS} 92SUB_LIST= ${SUBS} \ 93 USERS=${USERS} GROUPS=${GROUPS} SHAREMODE=${SHAREMODE} \ 94 SHAREOWN=${SHAREOWN} SHAREGRP=${SHAREGRP} \ 95 EJABBERD_LIBDIR=${EJABBERD_LIBDIR} 96SHEBANG_FILES= ${WRKSRC}/ejabberdctl.template 97 98BASE64URL_VER= 1.0.1 99CACHE_TAB_VER= 1.0.31 100EIMP_VER= 1.0.24 101EPAM_VER= 1.0.14 102EREDIS_VER= 1.2.0 103ESIP_VER= 1.0.57 104EZLIB_VER= 1.0.13 105FAST_TLS_VER= 1.1.22 106FAST_XML_VER= 1.1.55 107FAST_YAML_VER= 1.0.37 108IDNA_VER= 6.0.0 109JIFFY_VER= 1.1.1 110JOSE_VER= 1.11.10 111LUERL_VER= 1.2 112MQTREE_VER= 1.0.17 113P1_ACME_VER= 1.0.25 114P1_MYSQL_VER= 1.0.26 115P1_OAUTH2_VER= 0.6.14 116P1_PGSQL_VER= 1.1.32 117P1_UTILS_VER= 1.0.27 118PKIX_VER= 1.0.10 119SQLITE3_VER= 1.1.15 120STRINGPREP_VER= 1.0.31 121STUN_VER= 1.2.17 122UNICODE_UTIL_COMPAT_VER= 0.4.1 123XMPP_VER= 1.10.0 124YCONF_VER= 1.0.18 125 126OPTIONS_SUB= yes 127SIP_DESC= SIP support 128STUN_DESC= STUN/TURN support 129FULLXML_DESC= Full XML support 130PAM_CONFIGURE_ENABLE= pam 131PAM_GH_TUPLE= processone:epam:${EPAM_VER}:epam/deps/epam 132ODBC_CONFIGURE_ENABLE= odbc 133MYSQL_CONFIGURE_ENABLE= mysql 134MYSQL_GH_TUPLE= processone:p1_mysql:${P1_MYSQL_VER}:p1_mysql/deps/p1_mysql 135PGSQL_CONFIGURE_ENABLE= pgsql 136PGSQL_GH_TUPLE= processone:p1_pgsql:${P1_PGSQL_VER}:p1_pgsql/deps/p1_pgsql 137REDIS_CONFIGURE_ENABLE= redis 138REDIS_GH_TUPLE= wooga:eredis:v${EREDIS_VER}:eredis/deps/eredis 139REDIS_EXTRA_PATCHES= ${PATCHDIR}/extrapatch-deps_eredis_src_eredis.app.src 140SIP_CONFIGURE_ENABLE= sip 141SIP_GH_TUPLE= processone:esip:${ESIP_VER}:esip/deps/esip 142SIP_IMPLIES= STUN 143STUN_CONFIGURE_ENABLE= stun 144STUN_GH_TUPLE= processone:stun:${STUN_VER}:stun/deps/stun 145SQLITE_CONFIGURE_ENABLE=sqlite 146SQLITE_GH_TUPLE= processone:erlang-sqlite3:${SQLITE3_VER}:sqlite3/deps/sqlite3 147SQLITE_USES= sqlite 148DOCS_MAKE_ARGS_OFF= NOPORTDOCS=yes 149LUA_CONFIGURE_ENABLE= lua 150LUA_GH_TUPLE= rvirding:luerl:v${LUERL_VER}:luerl/deps/luerl 151 152.include <bsd.port.pre.mk> 153 154pre-everything:: 155 @if ${PKG_BIN} query %n-%v net-im/ejabberd; then \ 156 ${ECHO_MSG} needs to be uninstalled, before this port build could proceed. ; \ 157 ${ECHO_MSG} For details: https://github.com/processone/ejabberd/issues/2194 ; \ 158 ${ECHO_MSG} Sorry for the inconvenience. ; \ 159 exit 1; \ 160 fi 161 162post-patch: 163 @${REINPLACE_CMD} -e 's,^convert,${LOCALBASE}/bin/convert,' ${WRKSRC}/tools/captcha.sh 164 @${REINPLACE_CMD} -e '/^AC_INIT(ejabberd,/s,m4_esyscmd([^)]*),${PORTVERSION},' \ 165 ${WRKSRC}/configure.ac 166 167pre-configure: 168 cd ${WRKSRC} && ${SH} autogen.sh 169 @${REINPLACE_CMD} -e 's,/usr/local,${LOCALBASE},g' ${WRKSRC}/configure 170 171pre-install: 172 @${MKDIR} ${PREFIX}/${EJABBERD_LIBDIR} 173 174post-install-PAM-on: 175 ${INSTALL} -m 444 ${FILESDIR}/pam_ejabberd \ 176 ${FAKE_DESTDIR}${PREFIX}/etc/pam.d/ejabberd 177 ${INSTALL} -m 0750 ${FAKE_DESTDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/epam-${EPAM_VER}/priv/bin/epam \ 178 ${FAKE_DESTDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/bin/epam 179 @${STRIP_CMD} ${FAKE_DESTDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/epam-${EPAM_VER}/priv/bin/epam \ 180 ${FAKE_DESTDIR}${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/bin/epam 181 182post-install: 183 @${FIND} ${PREFIX}/${EJABBERD_LIBDIR} -type f \ 184 -name '*.so' -exec ${STRIP_CMD} {} \; 185 @${MKDIR} ${DATADIR} 186 ${INSTALL_SCRIPT} ${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/bin/captcha.sh \ 187 ${DATADIR} 188 @${CHMOD} +x ${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/eimp-${EIMP_VER}/priv/bin/eimp 189 @${STRIP_CMD} ${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/lib/eimp-${EIMP_VER}/priv/bin/eimp 190 @cd ${WRKSRC}/sql && ${COPYTREE_SHARE} . ${PREFIX}/${EJABBERD_LIBDIR}/${PORTNAME}-${PORTVERSION}/priv/sql 191 192.include <bsd.port.post.mk> 193