pkgsrc/chat/unrealircd/Makefile
nia 6ce241eb92 unrealircd: Update to 5.0.8
UnrealIRCd 5.0.8 Release Notes
===============================

The main purpose of this release is to enhance the
[reputation](https://www.unrealircd.org/docs/Reputation_score)
functionality. There have also been some other changes and minor
bug fixes. For more information, see below.

Enhancements:
* Support for [security groups](https://www.unrealircd.org/docs/Security-group_block),
  of which four groups always exist by default: known-users, unknown-users,
  tls-users and tls-and-known-users.
* New extended ban ```~G:securitygroupname```. Typical usage would be
  ```MODE #chan +b ~G:unknown-users``` which will ban all users from the
  channel that are not identified to services and have a reputation
  score below 25 (by default). The exact settings can be tweaked in the
  [security group block](https://www.unrealircd.org/docs/Security-group_block).
* The reputation command (IRCOp-only) has been extended to make it
  easier to look for potential troublemakers:
  * ```REPUTATION Nick``` shows reputation about the nick name
  * ```REPUTATION IP``` shows reputation about the IP address
  * ```REPUTATION #channel``` lists users in channel with their reputation score
  * ```REPUTATION <NN``` lists users with reputation scores below value NN
* Only send the first 1000 matches on ```STATS gline``` or a
  similar command. This to prevent the IRCOp from being flooded off.
  This value can be changed via
  [set::max-stats-matches](https://www.unrealircd.org/docs/Set_block#set::max-stats-matches)
* Warn when the SSL/TLS server certificate is expired or expires soon
  (within 7 days).
* New option allow::options::reject-on-auth-failure if you want to
  stop matching on a passworded allow block, see the
  [allow password documentation](https://www.unrealircd.org/docs/Allow_block#password)
  for more information. Note that most people won't use this.

Fixes:
* The ```WHO``` command searched on nick name even if it was told
  to search on a specific account name via WHOX options.
* Some typos in the Config script and a warning
* Counting clients twice in some circumstances

Changes:
* Support for $(DESTDIR) in 'make install' if packaging for a distro
* Mention the ban reason in Q-line server notices
* Add self-test to module manager and improve the error message in case
  the IRCd source directory does not exist.
* Print out a more helpful error if you run the unrealircd binary
  rather than the unrealircd script with an argument like 'mkpasswd' etc.
* On *NIX create a symlink 'source' to the UnrealIRCd source

Module coders / Developers:
* The [Doxygen module API docs](https://www.unrealircd.org/api/5/index.html)
  have been improved, in particular the
  [Hook API](https://www.unrealircd.org/api/5/group__HookAPI.html)
  is now 100% documented.
2021-01-25 11:17:36 +00:00

134 lines
5.1 KiB
Makefile

# $NetBSD: Makefile,v 1.76 2021/01/25 11:17:36 nia Exp $
DISTNAME= unrealircd-5.0.8
CATEGORIES= chat
MASTER_SITES= https://www.unrealircd.org/downloads/
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.unrealircd.org/
COMMENT= Advanced IRC server with IPv6 and SSL support
LICENSE= gnu-gpl-v2
CONFLICTS+= ircu-[0-9]*
GNU_CONFIGURE= YES
USE_TOOLS+= gmake gunzip pkg-config
.include "options.mk"
SUBST_CLASSES+= argon2
SUBST_STAGE.argon2= pre-configure
SUBST_MESSAGE.argon2= Fixing Argon2 version number
SUBST_FILES.argon2+= configure
SUBST_SED.argon2+= -e 's|0~20161029|ZERO|g'
PKG_SYSCONFSUBDIR= unrealircd
# Quoth ./configure,
# "noone knows if disabling dynamic linking actually does anything or not".
# Also needed to configure non-interactively.
CONFIGURE_ARGS+= --enable-dynamic-linking
CONFIGURE_ARGS+= --enable-ssl=${BUILDLINK_PREFIX.openssl}
CONFIGURE_ARGS+= --with-system-cares
CONFIGURE_ARGS+= --with-system-pcre2
CONFIGURE_ARGS+= --with-permissions=0660
CONFIGURE_ARGS+= --with-datadir=${PREFIX}/unrealircd/data
CONFIGURE_ARGS+= --with-cachedir=${PREFIX}/unrealircd/cache
CONFIGURE_ARGS+= --with-logdir=${PREFIX}/unrealircd/logs
CONFIGURE_ARGS+= --with-tmpdir=${PREFIX}/unrealircd/tmp
CONFIGURE_ARGS+= --with-pidfile=${PREFIX}/unrealircd/ircd.pid
CONFIGURE_ARGS+= --with-scriptdir=${PREFIX}/unrealircd/scripts
CONFIGURE_ARGS+= --with-bindir=${PREFIX}/bin
CONFIGURE_ARGS+= --with-modulesdir=${PREFIX}/lib/unrealircd/modules
CONFIGURE_ARGS+= --with-docdir=${PREFIX}/share/doc/unrealircd
CONFIGURE_ARGS+= --with-confdir=${PKG_SYSCONFDIR}
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/data ${UIRCD_USER} ${UIRCD_GROUP} 0700
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/cache ${UIRCD_USER} ${UIRCD_GROUP} 0700
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/logs ${UIRCD_USER} ${UIRCD_GROUP} 0700
OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/tmp ${UIRCD_USER} ${UIRCD_GROUP} 0700
CONFIGURE_ARGS+= --with-nick-history=${UIRCD_NICKHIST:Q}
CONFIGURE_ENV.SunOS+= ac_cv_func_epoll_create=no
CONFIGURE_ENV.SunOS+= ac_cv_func_epoll_ctl=no
CONFIGURE_ENV.SunOS+= ac_cv_func_epoll_wait=no
IRCD_EG= ${PREFIX}/share/examples/unrealircd
BUILD_DEFS+= UIRCD_NICKHIST VARBASE
PTHREAD_OPTS+= require
.include "../../mk/bsd.prefs.mk"
# The defaults for most of these here are from the standard Conf
# script supplied with the UnrealIRCd package.
#
UIRCD_NICKHIST?= 2000
UIRCD_USER?= uircd
UIRCD_GROUP?= uircd
PKG_USERS_VARS+= UIRCD_USER
PKG_GROUPS_VARS+= UIRCD_GROUP
PKG_GROUPS= ${UIRCD_GROUP}
PKG_USERS= ${UIRCD_USER}:${UIRCD_GROUP}
PKG_GECOS.${UIRCD_USER}= UnrealIRCD user
RCD_SCRIPTS= unrealircd
FILES_SUBST+= UIRCD_USER=${UIRCD_USER}
FILES_SUBST+= UIRCD_GROUP=${UIRCD_GROUP}
CFLAGS.Darwin+= -DUSE_LOCALE
CFLAGS.SunOS+= -DUSE_LOCALE
INSTALLATION_DIRS+= bin
INSTALLATION_DIRS+= unrealircd/scripts
INSTALLATION_DIRS+= lib/unrealircd/modules
INSTALLATION_DIRS+= lib/unrealircd/modules/usermodes
INSTALLATION_DIRS+= lib/unrealircd/modules/chanmodes
INSTALLATION_DIRS+= lib/unrealircd/modules/snomasks
INSTALLATION_DIRS+= lib/unrealircd/modules/extbans
INSTALLATION_DIRS+= lib/unrealircd/modules/third
INSTALLATION_DIRS+= share/doc/unrealircd
INSTALLATION_DIRS+= ${IRCD_EG}
INSTALLATION_DIRS+= ${IRCD_EG}/aliases
INSTALLATION_DIRS+= ${IRCD_EG}/help
INSTALLATION_DIRS+= ${IRCD_EG}/tls
OWN_DIRS_PERMS+= unrealircd/tmp ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= unrealircd/logs ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= unrealircd/data ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= unrealircd/cache ${UIRCD_USER} ${UIRCD_GROUP} 0755
OWN_DIRS_PERMS+= ${PKG_SYSCONFDIR} ${UIRCD_USER} ${UIRCD_GROUP} 0755
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/src/ircd ${DESTDIR}${PREFIX}/bin/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/Authors ${DESTDIR}${PREFIX}/share/doc/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/coding-guidelines ${DESTDIR}${PREFIX}/share/doc/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/tao.of.irc ${DESTDIR}${PREFIX}/share/doc/unrealircd
${INSTALL_DATA} ${WRKSRC}/doc/conf/*.conf ${DESTDIR}${IRCD_EG}
${INSTALL_DATA} ${WRKSRC}/doc/conf/examples/*.conf ${DESTDIR}${IRCD_EG}
${INSTALL_DATA} ${WRKSRC}/doc/conf/aliases/*.conf ${DESTDIR}${IRCD_EG}/aliases
${INSTALL_DATA} ${WRKSRC}/doc/conf/help/*.conf ${DESTDIR}${IRCD_EG}/help
${INSTALL_DATA} ${WRKSRC}/doc/conf/tls/curl-ca-bundle.crt ${DESTDIR}${IRCD_EG}/tls
${INSTALL_SCRIPT} ${WRKSRC}/unrealircd ${DESTDIR}${PREFIX}/unrealircd/scripts
${INSTALL_LIB} ${WRKSRC}/src/modules/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules
${INSTALL_LIB} ${WRKSRC}/src/modules/usermodes/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/usermodes
${INSTALL_LIB} ${WRKSRC}/src/modules/chanmodes/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/chanmodes
${INSTALL_LIB} ${WRKSRC}/src/modules/snomasks/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/snomasks
${INSTALL_LIB} ${WRKSRC}/src/modules/extbans/*.so ${DESTDIR}${PREFIX}/lib/unrealircd/modules/extbans
.include "../../net/libcares/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../devel/pcre2/buildlink3.mk"
.include "../../security/argon2/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"