Hello all!
It's bee a while since our last release, ngIRCd 25 back in January 2019, but eventually we will have a next release "really soon" – at least compared to this time frame ;)
Please welcome the 1st release candidate for ngIRCd 26!
You can download ngIRCd 26~rc1 from the download section on our homepage at https://ngircd.barton.de (mirror: https://ngircd.sourceforge.io). The primary download locations are:
• https://github.com/ngircd/ngircd/releases • https://ngircd.barton.de/pub/ngircd/ • https://ngircd.sourceforge.io/pub/ngircd/
Your help with testing ngIRCd 26~rc1 is highly appreciated! Please report any issues and glitches you find to this mailing list, the GitHub issue tracker (https://github.com/ngircd/ngircd/issues) or to the #ngircd channel on IRC: irc://irc.barton.de/ngircd. Enhancements and additions to the documentation, manual pages and the homepage are welcome as well!
The easiest way to test ngIRCd is to run the ./contrib/platformtest.sh script which is included in the distribution archives, for example like this:
$ curl -#LO "https://ngircd.barton.de/pub/ngircd/ngircd-26~rc1.tar.gz" $ tar xzf "ngircd-26~rc1.tar.gz" $ cd ngircd-26~rc1 $ ./contrib/platformtest.sh
This will take a few minutes (4-5) as our test suite takes some time because of the "penalties" that the test clients have to cope with (the compile run itself is quite fast), and should result in a nice summary like this:
the executable works ("runs") as expected --+ tests run successfully ("make check") --+ | ngIRCd compiles ("make") --+ | | ./configure works --+ | | | | | | |
Platform Compiler ngIRCd Date Tester C M T R *
x86_64/pc/linux-gnu gcc 8.3.0 26~rc1 20-05-10 alex Y Y Y Y 1
The ChangeLog lists the following items for ngIRCd 26~rc1, since release 25 back in January 2019:
• Tweak & update doc/HowToRelease.txt, .mailmap and AUTHORS files. • Allow up to 512 characters per line in MOTD and help text files (but keep in mind that lines can't get that long, because they have to be prefixed before being sent to the client). But this allows for more fancy MOTDs :-) Closes #271. • Show the actually allowed channel types in the ISUPPORT(005) numeric which are configured by the "AllowedChannelTypes" configuration variable. Closes #273. • Handle commands in the read buffer before reading more data and don't wait for the network in this case: If there are more bytes in the read buffer already than a single valid IRC command can get long (513 bytes), wait for this/those command(s) to be handled first and don't try to read even more data from the network (which most probably would overflow the read buffer of this connection soon). • Update Travis-CI configuration, "sudo" is deprecated • Log G-/K-Line changes only when not initiated by a server: this prevents the log from becoming spammed during "net bursts". • Update test suite to include SSL tests, including checking for reloading certificates during run time • Makefile.am: Replace "make" with "${MAKE}". This fixes warnings like this: "warning: jobserver unavailable: using -j1. Add `+' to parent make rule." Thanks to Sam James (sam_c) sam@cmpct.info! Closes #270. • Add support for GnuTLS certificate reload, which is quite handy when using Let's Encrypt, for example. Until now this was only supported when linked with OpenSSL. Thanks a lot, Hilko Bengen bengen@hilluzination.de! • Remove deprecated legacy configuration options and related functions that have been marked for removal for quite some time: • PredefChannelsOnly (v22) • NoticeAuth (v24) • NoXXX (v19) • Old '[GLOBAL]' section handling (v19) Thanks to Michi michi+ngircd@dataswamp.org for the patch! • Fix recursion bug on write errors: Depending on the stack size, too many clients on the same channel quitting at the same time would trigger a crash due to too many recursive calls to Conn_Close(). Thanks to Michi michi+ngircd@dataswamp.org for the patch! • Fix builds using GCC option -fno-common, which is the default starting with GCC 10. Thanks to Michi michi+ngircd@dataswamp.org for the patch! Closes #266. • Convert INSTALL and README files to Markdown. • Allow setting arbitrary channel modes in the configuration file by handling them like in MODE commands, and allow multiple "Modes =" lines per [Channel] section. Thanks to Michi michi+ngircd@dataswamp.org! Closes #55. • Add "FNC" (forced nick changes) to ISUPPORT(005) numeric. Most probably this doesn't make any difference to any client, but it seems correct. See http://www.irc.org/tech_docs/005.html for details. • Reuse old SSL key if loading a new one failed. • Remove outdated OpenBSD/NetBSD systrace.policy. • Enhance handling of command line errors, and return with exit code 0 ("no error") when "--help" or "--version" is used (which resulted in exit code 1, "error" before). Exit with code 2 ("command line error") for all other invalid command line options, and show the error message itself on stderr (instead of stdout and exit code 1, "generic error", as before). This new behavior is more in line with the GNU "coding standards", see https://www.gnu.org/prep/standards/html_node/_002d_002dhelp.html. • Fix and update Xcode project: Reference correct contrib/Makefile.am file, correctly sort contrib/nglog.sh and add "ORGANIZATIONNAME" setting. • contrib/ngindent.sh: Add more GNU indent options for better results, and add the ".sh" suffix to bring this script in line with the others in the contrib/ folder. • Add ./contrib/nglog.sh: This script parses the log output of ngircd(8), and colorizes the messages according to their log level. Example usage: ngircd -f $PWD/doc/sample-ngircd.conf -np | ./contrib/nglog.sh • Log received signals with their names using strsignal(3), when available. • Make test suite compatible with Haiku OS. • Fix host mask cloaking bug, don't cloak multiple times: Previously, each server would cloak every user's host mask. The problem is that if a network has more than one server, then a user's host mask would get cloaked twice. This patch ensures that a server only cloaks the host mask if it has not yet been cloaked (the period indicates it's still an IP address). Thanks to JRMU jrmu@lecturify.com for the patch! Closes #228. • Enlarge buffers of info texts to 128 bytes. This includes: • "Real name" of a client (4th filed of the USER command). • Server info text ("Info" configuration option). • Admin info texts and email address ("AdminInfo1", "AdminInfo2" and "AdminEmail" configuration options). • Network name ("Network" configuration option). The limit was 64 bytes before ... Closes #258. • Streamline handling of invalid and unset server name: Don't exit during runtime (REHASH command, HUP signal), because the server name can't be changed in this case anyway and the new invalid name will be ignored. • Fix and extend documentation: Fix some typos, fix syntax of LINKS and LIST commands, whitespace and spelling fixes, update dependencies and add some more information about IRCv3 support. Thanks to Thanks Windree, Étienne Mollier etienne.mollier@mailoo.org and Christoph Biedl debian.axhn@manchmal.in-ulm.de. Closes #264. • Slightly reorder startup steps, and enhance logging: • Show name of configuration file at the beginning of start up. • Add a message when ngIRCd is ready, including its host name. • Show name of configuration file on REHASH (SIGHUP), too. • Change level of "done message" to NOTICE, like "starting" & "ready". • Initialize IO functions before channels, connections, clients, ... • configure.ng: OpenSSL can depends on lz or latomic so use pkg-config to find those dependencies and fallback to existing mechanism. Closes #256. • ngircd.conf.5: Fix wording as suggested by lintian.
Thanks a lot to all contributors & testers!
Stay safe and have fun! Alex