Hello!
Last weekend, I prepared the first release candidate for our next major release: ngIRCd 20~rc1.
There have been more than 170 commits since our last release (19.2), and quite a few bug reporters and coders have contributed their ideas, written patches, or discussed new features -- thanks a lot!
Please (please!) test this release candidate and report all problems, errors, and regressions you encounter! Best is to file bugs and feature requests here:
ngIRCd Bug Tracker: http://ngircd.barton.de/bugzilla/
The NEWS file lists quite a few new features:
• Update doc/Services.txt: describe the upcoming version of Anope 1.9.8, then including a protocol module for ngIRCd. And remove our own patches in ./contrib/Anope because they aren't supported any more ... • Implement new "METADATA" command which can be used by remote servers and IRC services to update client metadata like the client info text ("real name"), user name, and hostname, and use this command to configure an cloaked hostname (user mode "+x") on remote servers: This prevents "double cloaking" of hostnames and even cloaked hostnames are in sync on all servers supporting "METADATA" now. • Implement new IRC "SVSNICK" command to allow remote servers (and IRC services) to change nicknames of already registered users. The SVSNICK command itself doesn't change the nickname, but it becomes forwarded to the server to which the user is connected to. And then this server initiates the real nickname changing using regular NICK commands. This allows to run mixed networks with old servers not supporting the SVSNICK command, because SVSNICK commands for nicknames on such servers are silently ignored and don't cause a desynchronization of the network. • New configuration option "MaxListSize" to configure the maximum number of channels returned by a LIST command. The default is 100, as before. • Implement user mode "b", "block messages": when a user has set mode "b", all private messages and notices to this user are blocked if they don't originate from a registered user, an IRC Op, server or service. The originator gets an error numeric sent back in this case, ERR_NONONREG_MSG (486), which is used by UnrealIRCd, too. (Closes #144) • Implement channel mode "V" (invite disallow): If the new channel mode "V" is set, the INVITE command becomes invalid and all clients get the new ERR_NOINVITE_MSG (518) reply. (Closes #143) • Implement channel mode "Q" and user mode "q": Both modes protect users from channel kicks: only IRC operators and servers can kick users having mode "q" or in channels with mode "Q". (Closes #141) • Allow users to "cloak" their hostname only when the configuration variable "CloakHostModeX" (introduced in 19.2) is set. Otherwise, only IRC operators, other servers, and services are allowed to set the user mode "+x": this prevents regular users from changing their hostmask to the name of the IRC server itself, which confused quite a few people ;-) (Closes #133) • New configuration option "OperChanPAutoOp": If disabled, IRC operators don't become channel operators in persistent channels when joining. Enabled by default, which has been the behavior of ngIRCd up to this patch. (Closes #135) • Allow IRC operators to see secret (+s) channels in LIST command as long as the "MorePrivacy" configuration option isn't enabled in the configuration file. (Closes #136) • Implement new (optional) IRC+ "CHARCONV" command to set a client character set that the server translates all messages to/from UTF-8. This feature requires the "libiconv" library and must be enabled using the new "--with-iconv" option of the ./configure script. See doc/Protocol.txt for details. (Closes #109) • Implement user mode "B" ("Bot flag"): it is settable and unsettable by every (non-restricted) client. This is how Unreal and InspIRCd do behave, and so do we :-) • Implement channel mode "M": Only the server, identified users and IRC operators are able to talk in such a channel. • Block nicknames that are reserved for services and are defined using the configuration variable "ServiceMask" in "Server" blocks; And this variable now can handle more than one mask separated by commas. • Implemented XOP channel user modes: "Half Op" ("+h", prefix "%") can set the channel modes +imntvIbek and kick all +v and normal users; "Admin" ("+a", prefix "&") can set channel modes +imntvIbekoRsz and kick all +o, +h, +v and normal users; and "Owner" ("+q", prefix "~") can set channel modes +imntvIbekoRsz and kick all +a, +o, +h, +v and normal users. • Implement hashed cloaked hostnames for both the "CloakHost" and "CloakHostModeX" configuration options: now the admin can use the new '%x' placeholder to insert a hashed version of the clients hostname, and the new configuration option "CloakHostSalt" defines the salt for the hash function. When "CloakHostSalt" is not set (the default), a random salt will be generated after each server restart.
You can find more information on our homepage at http://ngircd.barton.de/ and its mirror http://ngircd.berlios.de/. The primary download locations are:
• ftp://ftp.berlios.de/pub/ngircd/ • http://ngircd.barton.de/pub/ngircd/
Have fun!
Alex
Alexander Barton wrote...
Please (please!) test this release candidate and report all problems, errors, and regressions you encounter!
The patch attached was required to build ngircd here. Should be pretty obvious ...
Christoph
diff --git a/src/testsuite/tests.sh b/src/testsuite/tests.sh index 8ecf8ab..8042c9c 100755 --- a/src/testsuite/tests.sh +++ b/src/testsuite/tests.sh @@ -42,6 +42,8 @@ if test -t 1 2>/dev/null; then sed -e 's|^expect |puts -nonewline stderr "."; expect |g' \ "$e_in" >"$e_tmp" [ $? -eq 0 ] && e_exec="$e_tmp" +else + e_tmp="$e_in" fi
echo_n "running ${test} ..."
Hi Christoph!
Am 16.11.2012 um 21:58 schrieb Christoph Biedl ngircd.anoy@manchmal.in-ulm.de:
Alexander Barton wrote...
Please (please!) test this release candidate and report all problems, errors, and regressions you encounter!
The patch attached was required to build ngircd here. Should be pretty obvious ...
Christoph
diff --git a/src/testsuite/tests.sh b/src/testsuite/tests.sh index 8ecf8ab..8042c9c 100755 --- a/src/testsuite/tests.sh +++ b/src/testsuite/tests.sh @@ -42,6 +42,8 @@ if test -t 1 2>/dev/null; then sed -e 's|^expect |puts -nonewline stderr "."; expect |g' \ "$e_in" >"$e_tmp" [ $? -eq 0 ] && e_exec="$e_tmp" +else
- e_tmp="$e_in"
fi
echo_n "running ${test} …"
Hm, I think the "correct" fix is the one in commit 8061056c, no?
diff --git a/src/testsuite/tests.sh b/src/testsuite/tests.sh index 8ecf8ab..1989205 100755 --- a/src/testsuite/tests.sh +++ b/src/testsuite/tests.sh @@ -45,7 +45,7 @@ if test -t 1 2>/dev/null; then fi
echo_n "running ${test} ..." -expect "$e_tmp" > logs/${test}.log; r=$? +expect "$e_exec" > logs/${test}.log; r=$? [ $r -eq 0 ] && echo " ok." || echo " failure!"
rm -f "$e_tmp"
Alex
Alexander Barton wrote...
Hm, I think the "correct" fix is the one in commit 8061056c, no?
That one does the trick, too. RFC 1925 (1) applies. Looking briefly at the other commits since ~rc1, I'd suggest an ~rc2 based on the current HEAD.
A different question, was this a test whether anybody actually tries release candidates? :->
Christoph
On Sun, Nov 18, 2012 at 10:56:57PM +0100, Christoph Biedl wrote:
Alexander Barton wrote...
Hm, I think the "correct" fix is the one in commit 8061056c, no?
That one does the trick, too. RFC 1925 (1) applies. Looking briefly at the other commits since ~rc1, I'd suggest an ~rc2 based on the current HEAD.
I thought about that, too, and I hope to find some time to create a 20~rc2 release today ...
A different question, was this a test whether anybody actually tries release candidates? :->
Huhm ... ;-)
Regards Alex