pkgsrc/chat/jabberd2/Makefile
2023-10-24 22:08:07 +00:00

135 lines
4.4 KiB
Makefile

# $NetBSD: Makefile,v 1.145 2023/10/24 22:08:21 wiz Exp $
DISTNAME= jabberd-2.7.0
PKGREVISION= 18
CATEGORIES= chat
MASTER_SITES= ${MASTER_SITE_GITHUB:=jabberd2/jabberd2/releases/download/${DISTNAME}/}
EXTRACT_SUFX= .tar.xz
MAINTAINER= adam@NetBSD.org
HOMEPAGE= https://jabberd2.org/
COMMENT= XMPP (Jabber) instant messaging server
LICENSE= gnu-gpl-v2
CONFLICTS= jabberd-[0-9]* sendfile-[0-9]*
USE_LANGUAGES= c c++
USE_LIBTOOL= yes
USE_TOOLS+= perl:run pkg-config
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --enable-anon
CONFIGURE_ARGS+= --enable-pipe
CONFIGURE_ARGS+= --enable-ssl
CONFIGURE_ARGS+= --enable-fs
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
# XXX force linking against pthread, so some modules do not fail to dlopen()
LDFLAGS+= ${PTHREAD_LDFLAGS}
LIBS+= ${PTHREAD_LIBS}
CFLAGS.SunOS+= -D__EXTENSIONS__ # sockaddr_storage
SUBST_CLASSES+= path
SUBST_STAGE.path= pre-configure
SUBST_FILES.path= configure
SUBST_MESSAGE.path= Fixing configure script.
SUBST_SED.path= -e "s,/usr/local,${PREFIX},g"
SUBST_SED.path+= -e "s,\$$sysconfdir/jabberd,\$$sysconfdir,g"
REPLACE_PERL+= tools/*.pl
.include "../../mk/bsd.prefs.mk"
JABBERD_DBDIR?= ${VARBASE}/db/jabberd
BUILD_DEFS+= VARBASE JABBERD_USER JABBERD_GROUP
BUILD_DEFS+= JABBERD_LOGDIR JABBERD_PIDDIR JABBERD_DBDIR
PKG_SYSCONFSUBDIR= jabberd
RCD_SCRIPTS= jabberd c2s sm router s2s
FILES_SUBST+= JABBERD_USER=${JABBERD_USER}
FILES_SUBST+= JABBERD_GROUP=${JABBERD_GROUP}
FILES_SUBST+= JABBERD_PIDDIR=${JABBERD_PIDDIR}
FILES_SUBST+= JABBERD_LOGDIR=${JABBERD_LOGDIR}
PKG_USERS_VARS+= JABBERD_USER
PKG_GROUPS_VARS+= JABBERD_GROUP
PKG_GROUPS= ${JABBERD_GROUP}
PKG_USERS= ${JABBERD_USER}:${JABBERD_GROUP}
BINDIR= ${PREFIX}/bin
EGDIR= ${PREFIX}/share/examples/jabberd
DOCDIR= ${PREFIX}/share/doc/jabberd
FILES= jabberd.cfg c2s.xml router.xml router-users.xml \
router-filter.xml s2s.xml sm.xml
DBFILES= db-jd14-2-jd2.sql db-setup.mysql db-setup.pgsql \
db-setup.sqlite db-update.mysql db-update.pgsql \
db-update.sqlite
DOCFILES= README README.config README.md README.protocol NEWS
INSTALLATION_DIRS= bin ${EGDIR} ${DOCDIR}
.for f in ${FILES}
CONF_FILES+= ${EGDIR}/${f} ${PKG_SYSCONFDIR}/${f}
.endfor
CONF_FILES+= ${EGDIR}/roster.xml ${PKG_SYSCONFDIR}/roster.xml
.include "options.mk"
.for f in ${JABBERD_LOGDIR} ${JABBERD_DBDIR} ${JABBERD_PIDDIR}
OWN_DIRS_PERMS+= ${f} ${JABBERD_USER} ${JABBERD_GROUP} 770
.endfor
post-extract:
.for f in ${FILES}
mv ${WRKSRC}/etc/${f}.dist.in ${WRKSRC}/etc/${f}.in
.endfor
pre-configure:
.for f in ${FILES}
sed -e "s|@bindir@|${PREFIX}/bin|g" \
-e "s|@jabberd_router_bin@|router|g" \
-e "s|@jabberd_c2s_bin@|c2s|g" \
-e "s|@jabberd_s2s_bin@|s2s|g" \
-e "s|@jabberd_sm_bin@|sm|g" \
-e "s|@localstatedir@/@package@/db|${JABBERD_DBDIR}|g" \
-e "s|@localstatedir@/@package@/log|${JABBERD_LOGDIR}|g" \
-e "s|@localstatedir@/@package@/pid|${JABBERD_PIDDIR}|g" \
-e "s|@localstatedir@/@package@/run|${JABBERD_PIDDIR}|g" \
-e "s|@localstatedir@/@package@/stats|${JABBERD_LOGDIR}|g"\
-e "s|@localstatedir@/lib/jabberd2|${JABBERD_DBDIR}|g" \
-e "s|@pkglibdir@|${PREFIX}/lib/jabberd|g" \
-e "s|<cachain>@sysconfdir@|<cachain>${SSLCERTS}|g" \
-e "s|<pemfile>@sysconfdir@|<pemfile>${SSLCERTS}|g" \
-e "s|cachain='@sysconfdir@|cachain='${SSLCERTS}|g" \
-e "s|pemfile='@sysconfdir@|pemfile='${SSLCERTS}|g" \
-e "s|@sysconfdir@/templates|${PKG_SYSCONFDIR}|g" \
-e "s|@sysconfdir@|${PKG_SYSCONFDIR}|g" \
${WRKSRC}/etc/${f}.in > ${WRKSRC}/etc/${f}
.endfor
post-install:
${INSTALL_DATA} ${WRKSRC}/etc/templates/roster.xml.dist.in \
${DESTDIR}${EGDIR}/roster.xml
${INSTALL_SCRIPT} ${WRKSRC}/tools/bdbdump.pl ${DESTDIR}${BINDIR}
${INSTALL_SCRIPT} ${WRKSRC}/tools/pipe-auth.pl ${DESTDIR}${BINDIR}
.for f in ${DBFILES}
${INSTALL_DATA} ${WRKSRC}/tools/${f} ${DESTDIR}${EGDIR}
.endfor
.for f in ${FILES}
${INSTALL_DATA} ${WRKSRC}/etc/${f} ${DESTDIR}${EGDIR}
.endfor
.for f in ${DOCFILES}
${INSTALL_DATA} ${WRKSRC}/${f} ${DESTDIR}${DOCDIR}
.endfor
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/libidn/buildlink3.mk"
.include "../../net/udns/buildlink3.mk"
.include "../../security/gsasl/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../textproc/expat/buildlink3.mk"
.include "../../mk/curses.buildlink3.mk"
.include "../../mk/dlopen.buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"