Sat Mar 2 15:44:33 2019 UTC ()
unrealircd: Update to 4.2.2.

Changes between version 4.2.1 and 4.2.2:

Improvements:

    Quicker connection handshake for clients which use CAP and/or SASL.
    With "TOPIC #chan" and "MODE #chan +b" (and +e/+I) you can see who set the topic and bans/exempts/invex. The default is to only show the nick of the person who set the item. This can be changed (not the default) by setting:

    set { topic-setter nick-user-host; };
    set { ban-setter nick-user-host; };

    The 'set by' and 'set at' information for +beI lists are now synchronized when servers link. You still see the MODE originating from the server, however when the banlist is queried you will now be able to see the original nick and time of the bansetter rather than serv.er.name. If you want the OLD behavior you can use: set { ban-setter-sync no; };
    The default maximum topic length has been increased from 307 to 360.
    You can now set more custom limits. The default settings are shown below:

    set {
            topic-length 360; /* maximum: 360 */
            away-length 307; /* maximum: 360 */
            quit-length 307; /* maximum: 395 */
            kick-length 307; /* maximum: 360 */
        };

    The message sent to users upon *LINE can now be adjusted completely via set::reject-message::kline and set::reject-message::gline.
    New set::anti-flood::max-concurrent-conversations which configures the maximum number of conversations a user can have with other users at the same time.
    Until now this was hardcoded at limiting /MSG and /INVITE to 20 different users in a 15 second period. The new default is 10 users, which serves as a protection measure against spambots.
    New set::max-targets-per-command which configures the maximum number of targets accepted for a command, such as 4 to allow e.g. /MSG nick1,nick2,nick3,nick4 hi.
    Also changed the following defaults (previously hardcoded):
        PRIVMSG from 20 to 4 targets, to counter /amsg spam
        NOTICE from 20 to 1 target, to counter /anotice spam
        KICK from 1 to 4 targets, to make it easier for channel operators to quickly kick a large amount of spambots
    Added INVITE and KNOCK flood protection (command rate limiting):
        set::anti-flood::invite-flood now defaults to 4 per 60 seconds (previously the effective limit was 1 invite per 6 seconds).
        set::anti-flood::knock-flood now defaults to 4 per 120 seconds.
    New set::outdated-tls-policy which describes what to do with clients that use outdated SSL/TLS protocols (eg: TLSv1.0) and ciphers.
    The default settings are to warn in all cases: users connecting, opers /OPER'ing up and servers linking in. The user will see a message telling them to upgrade their IRC client.
    This should help with migrating such users, since in the future, say one or two years from now, we would want to change the default to only allow TSLv1.2+ with ciphers that provide Forward Secrecy. Instead of rejecting clients without any error message, this provides a way to warn them and give them some time to upgrade their outdated IRC client.

Major issues fixed:

    Crash issue in the 'websocket' module.

Minor issues fixed:

    The advertised "link-security" was incorrectly downgraded from level 2 to 1 if spkifp was used as an authentication method.
    In case of a crash, the ./unrealircd backtrace script was not working correctly in non-English environments, leading to less accurate bug reports.
    Various crashes if a server receives incorrect commands from a trusted linked server.
    A number of memory leaks on REHASH (about 1K).
    SASL was not working post-registration, eg: when services link back in. This is now fixed in UnrealIRCd, but may require a services update as well.

Changed:

    The noctcp user mode (+T) will now only block CTCP's and not CTCP REPLIES. Also, IRCOps can bypass user mode +T restrictions.
    The server will warn if your ulines { } are matching UnrealIRCd servers.
    The m_whox module now contains various features that m_who already had.
    Also, m_whox will try to convert classic UnrealIRCd WHO requests such as "WHO +i 127.0.0.1" to whox style "WHO 127.0.0.1 i".
    Unfortunately auto-converting WHO requests is not always possible. When in doubt the WHOX syntax is assumed. Users are thus (still) encouraged to use the whox style when m_whox is loaded.

For module coders:

    New hook HOOKTYPE_WELCOME (aClient *acptr, int after_numeric): allows you to send a message at very specific places during the initial welcome.
    New Isupport functions: IsupportSet, IsupportSetFmt and IsupportDelByName.
    The M_ANNOUNCE flag in the command add functions should no longer be used as CMDS= is removed. Please update your module.
    New "SJSBY" in PROTOCTL, which is used in SJOIN to sync extra data. See the last part of the SJOIN documentation.
    For a command with 2 arguments, eg "PRIVMSG #a :txt", parv[1] is "#a", parv[2] is "txt" and parv[3] is NULL. Any arguments beyond that, such as parv[4] should not be accessed. To help module coders with detecting such bugs we now poison unused parv[] elements that should never be accessed. Note that without this poison your code will also crash, now it just crashes more consistently.

IRC protocol:
This section is intended for client coders and people interested in IRC protocol technicalities

    Many changes in the tokens used in numeric 005 (RPL_ISUPPORT):
        Removed CMDS= because this was an unnecessary abstraction and it was not picked up by any other IRCd.
        The tokens KNOCK MAP USERIP have been added (moved from CMDS=..)
        STARTTLS is no longer advertised in 005 since doing so would be too late. Also, STARTTLS is not the preferred method of using SSL/TLS.
        Added TARGMAX= to communicate set::max-targets-per-command limits.
        Removed the MAXTARGETS= token because TARGMAX= replaces it.
        Added DEAF=d to signal what user mode is used for "deaf"
        Added QUITLEN to communicate the set::quit-length setting (after all, why communicate length for KICK but not for QUIT?)
        The 005 tokens are now sorted alphabetically
    When hitting the TARGMAX limit (set::max-targets-per-command), for example with "/MSG k001,k002,k003,k004,k005 hi", you will see:
    :server 407 me k005 :Too many targets. The maximum is 4 for PRIVMSG.
    When hitting the set::anti-flood::max-concurrent-conversations limit (so not per command, but per time frame), you will see:
    :server 439 me k011 :Message target change too fast. Please wait 7 seconds
    When hitting the set::anti-flood::invite-flood limit you will get:
    :server 263 me INVITE :Flooding detected. Please wait a while and try again.
    When hitting the set::anti-flood::knock-flood limit you will get:
    :server 480 me :Cannot knock on #channel (You are KNOCK flooding)
    Not a protocol change. But when a server returns from a netsplit and syncs modes such as: :server MODE #chan +b this!is@an.old.ban
    Then later on you can query the banlist (MODE #chan b) and you may see the actual original setter and timestamp of the ban. So if a user wishes to see the banlist then IRC clients are encouraged to actively query the banlist before displaying it. Fortunately most clients do this.
    If the set::topic-setter or set::ban-setter are set to nick-user-host then the "added by" field in numerics that show these entries will contain nick!user@host instead of nick, eg:
    :server 367 me #channel this!is@some.ban bansetter!user@some.host 1549461765


(nia)
diff -r1.56 -r1.57 pkgsrc/chat/unrealircd/Makefile
diff -r1.20 -r1.21 pkgsrc/chat/unrealircd/distinfo

cvs diff -r1.56 -r1.57 pkgsrc/chat/unrealircd/Makefile (switch to unified diff)

--- pkgsrc/chat/unrealircd/Makefile 2019/02/09 15:23:15 1.56
+++ pkgsrc/chat/unrealircd/Makefile 2019/03/02 15:44:33 1.57
@@ -1,103 +1,103 @@ @@ -1,103 +1,103 @@
1# $NetBSD: Makefile,v 1.56 2019/02/09 15:23:15 nia Exp $ 1# $NetBSD: Makefile,v 1.57 2019/03/02 15:44:33 nia Exp $
2 2
3DISTNAME= unrealircd-4.2.1.1 3DISTNAME= unrealircd-4.2.2
4CATEGORIES= chat 4CATEGORIES= chat
5MASTER_SITES= https://www.unrealircd.org/unrealircd4/ 5MASTER_SITES= https://www.unrealircd.org/unrealircd4/
6 6
7MAINTAINER= pkgsrc-users@NetBSD.org 7MAINTAINER= pkgsrc-users@NetBSD.org
8HOMEPAGE= https://www.unrealircd.org/ 8HOMEPAGE= https://www.unrealircd.org/
9COMMENT= Advanced IRC server with IPv6 and SSL support 9COMMENT= Advanced IRC server with IPv6 and SSL support
10LICENSE= gnu-gpl-v2 10LICENSE= gnu-gpl-v2
11 11
12CONFLICTS+= ircu-[0-9]* 12CONFLICTS+= ircu-[0-9]*
13 13
14GNU_CONFIGURE= YES 14GNU_CONFIGURE= YES
15USE_TOOLS+= aclocal autoconf autoheader automake bash 15USE_TOOLS+= aclocal autoconf autoheader automake bash
16USE_TOOLS+= gmake gunzip pkg-config 16USE_TOOLS+= gmake gunzip pkg-config
17 17
18.include "options.mk" 18.include "options.mk"
19 19
20# Quoth ./configure, 20# Quoth ./configure,
21# "noone knows if disabling dynamic linking actually does anything or not". 21# "noone knows if disabling dynamic linking actually does anything or not".
22# Also needed to configure non-interactively. 22# Also needed to configure non-interactively.
23CONFIGURE_ARGS+= --enable-dynamic-linking 23CONFIGURE_ARGS+= --enable-dynamic-linking
24 24
25# not building without SSL is apparently unsupported but this still 25# not building without SSL is apparently unsupported but this still
26# seems to be required or the build breaks... 26# seems to be required or the build breaks...
27CONFIGURE_ARGS+= --enable-ssl 27CONFIGURE_ARGS+= --enable-ssl
28 28
29CONFIGURE_ARGS+= --with-system-cares 29CONFIGURE_ARGS+= --with-system-cares
30CONFIGURE_ARGS+= --with-system-tre 30CONFIGURE_ARGS+= --with-system-tre
31CONFIGURE_ARGS+= --with-system-pcre2 31CONFIGURE_ARGS+= --with-system-pcre2
32 32
33CONFIGURE_ARGS+= --with-permissions=0660 33CONFIGURE_ARGS+= --with-permissions=0660
34CONFIGURE_ARGS+= --with-datadir=${PREFIX}/unrealircd/data 34CONFIGURE_ARGS+= --with-datadir=${PREFIX}/unrealircd/data
35CONFIGURE_ARGS+= --with-cachedir=${PREFIX}/unrealircd/cache 35CONFIGURE_ARGS+= --with-cachedir=${PREFIX}/unrealircd/cache
36CONFIGURE_ARGS+= --with-logdir=${PREFIX}/unrealircd/logs 36CONFIGURE_ARGS+= --with-logdir=${PREFIX}/unrealircd/logs
37CONFIGURE_ARGS+= --with-tmpdir=${PREFIX}/unrealircd/tmp 37CONFIGURE_ARGS+= --with-tmpdir=${PREFIX}/unrealircd/tmp
38CONFIGURE_ARGS+= --with-pidfile=${PREFIX}/unrealircd/ircd.pid 38CONFIGURE_ARGS+= --with-pidfile=${PREFIX}/unrealircd/ircd.pid
39CONFIGURE_ARGS+= --with-scriptdir=${PREFIX}/unrealircd/scripts 39CONFIGURE_ARGS+= --with-scriptdir=${PREFIX}/unrealircd/scripts
40CONFIGURE_ARGS+= --with-bindir=${PREFIX}/bin 40CONFIGURE_ARGS+= --with-bindir=${PREFIX}/bin
41CONFIGURE_ARGS+= --with-modulesdir=${PREFIX}/lib/unrealircd/modules 41CONFIGURE_ARGS+= --with-modulesdir=${PREFIX}/lib/unrealircd/modules
42CONFIGURE_ARGS+= --with-docdir=${PREFIX}/share/doc/unrealircd 42CONFIGURE_ARGS+= --with-docdir=${PREFIX}/share/doc/unrealircd
43CONFIGURE_ARGS+= --with-confdir=${PKG_SYSCONFDIR}/unrealircd 43CONFIGURE_ARGS+= --with-confdir=${PKG_SYSCONFDIR}/unrealircd
44 44
45OWN_DIRS_PERMS+= ${PREFIX}/unrealircd ${UIRCD_USER} ${UIRCD_GROUP} 0755 45OWN_DIRS_PERMS+= ${PREFIX}/unrealircd ${UIRCD_USER} ${UIRCD_GROUP} 0755
46OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/data ${UIRCD_USER} ${UIRCD_GROUP} 0700 46OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/data ${UIRCD_USER} ${UIRCD_GROUP} 0700
47OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/cache ${UIRCD_USER} ${UIRCD_GROUP} 0700 47OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/cache ${UIRCD_USER} ${UIRCD_GROUP} 0700
48OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/logs ${UIRCD_USER} ${UIRCD_GROUP} 0700 48OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/logs ${UIRCD_USER} ${UIRCD_GROUP} 0700
49OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/tmp ${UIRCD_USER} ${UIRCD_GROUP} 0700 49OWN_DIRS_PERMS+= ${PREFIX}/unrealircd/tmp ${UIRCD_USER} ${UIRCD_GROUP} 0700
50 50
51CONFIGURE_ARGS+= --with-sendq=${UIRCD_SENDQ:Q} 51CONFIGURE_ARGS+= --with-sendq=${UIRCD_SENDQ:Q}
52CONFIGURE_ARGS+= --with-fd-setsize=${UIRCD_FDSIZE:Q} 52CONFIGURE_ARGS+= --with-fd-setsize=${UIRCD_FDSIZE:Q}
53CONFIGURE_ARGS+= --with-nick-history=${UIRCD_NICKHIST:Q} 53CONFIGURE_ARGS+= --with-nick-history=${UIRCD_NICKHIST:Q}
54 54
55IRCD_EG= ${PREFIX}/share/examples/unrealircd 55IRCD_EG= ${PREFIX}/share/examples/unrealircd
56 56
57BUILD_DEFS+= UIRCD_SENDQ UIRCD_NICKHIST UIRCD_FDSIZE VARBASE 57BUILD_DEFS+= UIRCD_SENDQ UIRCD_NICKHIST UIRCD_FDSIZE VARBASE
58 58
59PTHREAD_OPTS+= require 59PTHREAD_OPTS+= require
60 60
61.include "../../mk/bsd.prefs.mk" 61.include "../../mk/bsd.prefs.mk"
62 62
63# The defaults for most of these here are from the standard Conf 63# The defaults for most of these here are from the standard Conf
64# script supplied with the UnrealIRCd package. 64# script supplied with the UnrealIRCd package.
65# 65#
66UIRCD_SENDQ?= 3000000 66UIRCD_SENDQ?= 3000000
67UIRCD_NICKHIST?= 2000 67UIRCD_NICKHIST?= 2000
68UIRCD_FDSIZE?= 1024 68UIRCD_FDSIZE?= 1024
69UIRCD_USER?= uircd 69UIRCD_USER?= uircd
70UIRCD_GROUP?= uircd 70UIRCD_GROUP?= uircd
71 71
72PKG_USERS_VARS+= UIRCD_USER 72PKG_USERS_VARS+= UIRCD_USER
73PKG_GROUPS_VARS+= UIRCD_GROUP 73PKG_GROUPS_VARS+= UIRCD_GROUP
74 74
75PKG_GROUPS= ${UIRCD_GROUP} 75PKG_GROUPS= ${UIRCD_GROUP}
76PKG_USERS= ${UIRCD_USER}:${UIRCD_GROUP} 76PKG_USERS= ${UIRCD_USER}:${UIRCD_GROUP}
77 77
78PKG_GECOS.${UIRCD_USER}= UnrealIRCD user 78PKG_GECOS.${UIRCD_USER}= UnrealIRCD user
79 79
80RCD_SCRIPTS= unrealircd 80RCD_SCRIPTS= unrealircd
81 81
82FILES_SUBST+= UIRCD_USER=${UIRCD_USER} 82FILES_SUBST+= UIRCD_USER=${UIRCD_USER}
83FILES_SUBST+= UIRCD_GROUP=${UIRCD_GROUP} 83FILES_SUBST+= UIRCD_GROUP=${UIRCD_GROUP}
84 84
85CFLAGS.Darwin+= -DUSE_LOCALE 85CFLAGS.Darwin+= -DUSE_LOCALE
86CFLAGS.SunOS+= -DUSE_LOCALE 86CFLAGS.SunOS+= -DUSE_LOCALE
87 87
88INSTALLATION_DIRS+= unrealircd/scripts 88INSTALLATION_DIRS+= unrealircd/scripts
89INSTALLATION_DIRS+= ${IRCD_EG} 89INSTALLATION_DIRS+= ${IRCD_EG}
90 90
91pre-configure: 91pre-configure:
92 cd ${WRKSRC} && ${BASH} ./autogen.sh 92 cd ${WRKSRC} && ${BASH} ./autogen.sh
93 93
94post-install: 94post-install:
95 ${MV} ${DESTDIR}${PKG_SYSCONFDIR}/unrealircd/* ${DESTDIR}${IRCD_EG} 95 ${MV} ${DESTDIR}${PKG_SYSCONFDIR}/unrealircd/* ${DESTDIR}${IRCD_EG}
96 96
97.include "../../net/libcares/buildlink3.mk" 97.include "../../net/libcares/buildlink3.mk"
98.include "../../mk/pthread.buildlink3.mk" 98.include "../../mk/pthread.buildlink3.mk"
99.include "../../devel/tre/buildlink3.mk" 99.include "../../devel/tre/buildlink3.mk"
100.include "../../devel/pcre2/buildlink3.mk" 100.include "../../devel/pcre2/buildlink3.mk"
101.include "../../security/argon2/buildlink3.mk" 101.include "../../security/argon2/buildlink3.mk"
102.include "../../security/openssl/buildlink3.mk" 102.include "../../security/openssl/buildlink3.mk"
103.include "../../mk/bsd.pkg.mk" 103.include "../../mk/bsd.pkg.mk"

cvs diff -r1.20 -r1.21 pkgsrc/chat/unrealircd/distinfo (switch to unified diff)

--- pkgsrc/chat/unrealircd/distinfo 2019/02/09 15:23:15 1.20
+++ pkgsrc/chat/unrealircd/distinfo 2019/03/02 15:44:33 1.21
@@ -1,9 +1,9 @@ @@ -1,9 +1,9 @@
1$NetBSD: distinfo,v 1.20 2019/02/09 15:23:15 nia Exp $ 1$NetBSD: distinfo,v 1.21 2019/03/02 15:44:33 nia Exp $
2 2
3SHA1 (unrealircd-4.2.1.1.tar.gz) = be65901ab7e7823060cc54a9d1dce7ae47817608 3SHA1 (unrealircd-4.2.2.tar.gz) = 94448b4dc1bafc901430b9d485a81f44b3d3a5fc
4RMD160 (unrealircd-4.2.1.1.tar.gz) = 407ce52a28799dc44c68e1061a35353eb57a9ebb 4RMD160 (unrealircd-4.2.2.tar.gz) = 2ebdc7b88f64db0406d43a1bdc2c22011b6ecedc
5SHA512 (unrealircd-4.2.1.1.tar.gz) = e1c4a071fe47893d6cbe924cf6eece1939ca0c9531c6f2fd0b421d9a9b8850ca8fa407033409aa1f08e8257a8a4d73e8632db54dbe9f0365544b48d92db728fe 5SHA512 (unrealircd-4.2.2.tar.gz) = 5fd3cc2effb60aeca98bc206470096df227b9eb78976cf87f24a3b5937e470a2d1d5c44b43e08c2d47e851d903b882b8d803fb86125e9e3d29e4eca5fea1ad65
6Size (unrealircd-4.2.1.1.tar.gz) = 6039863 bytes 6Size (unrealircd-4.2.2.tar.gz) = 6060271 bytes
7SHA1 (patch-Makefile.in) = f42dbe01865c99f16db227bec251a0d78bdddd2c 7SHA1 (patch-Makefile.in) = f42dbe01865c99f16db227bec251a0d78bdddd2c
8SHA1 (patch-ac) = 644990fd93c6754778d4c0a8b3a2aab34a1bcbb3 8SHA1 (patch-ac) = 644990fd93c6754778d4c0a8b3a2aab34a1bcbb3
9SHA1 (patch-ae) = 14499974009921e55fbf2c1719f7588b17f1315c 9SHA1 (patch-ae) = 14499974009921e55fbf2c1719f7588b17f1315c