Hello all!
More than a year after our last stable release, quite a few patches and bug fixes found their way into our source tree. So here it is: the first release candidate for ngIRCd 24, the lightweight and portable Internet Relay Chat server for small and private networks.
You can download this release candidate from the download section on our homepage https://ngircd.barton.de (https://ngircd.mirror.3rz.org), the primary download locations are:
• https://ngircd.barton.de/pub/ngircd/ • https://ngircd.mirror.3rz.org/pub/ngircd/
Please help test this release candidate, and report any issues you find to this mailing list or on IRC: irc://irc.barton.de/ngircd. Enhancements to the documentation and the homepage are welcome as well!
The easiest way to test ngIRCd is to run the ./contrib/platformtest.sh script:
$ curl -#LO "https://ngircd.barton.de/pub/ngircd/ngircd-24~rc1.tar.gz" $ tar xzf "ngircd-24~rc1.tar.gz" $ cd "ngircd-24~rc1" $ ./contrib/platformtest.sh
This script runs quire some time, which is normal, but please report all problems! The result should look something 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 4.9.2 24~rc1 17-01-08 alex Y Y Y Y 1
In addition I'm curious to add and update systems to the list of tested platforms (doc/Platforms.txt); so please send updates for this file when you are on some "exotic" OS and/or compiler which is lacking or outdated there (I can test Linux and OS X myself, no need to report this).
Please feel free to use the issue tracker on GitHub and/or create "pull requests" there, so we can easily keep track of them:
• https://github.com/ngircd/ngircd • https://github.com/ngircd/ngircd/issues
The ChangeLog lists the following items since release 23:
• Log privilege violations and failed OPER request with log level "error" and send it to the "&SERVER" channel, too. • Immediately shut down connection when receiving an "ERROR" command, don't wait for the peer to close the connection. This allows the daemon to forward the received "ERROR" message in the network, instead of the very generic "client closed connection" message. • Fix sending of entry duration (no negative values!) when synchronizing "x-lines" (G-LINES). • List expiration (G-LINES): use same log level as when setting, and log this event to the &SERVER channel, too. • Explicitly forbid remote servers to modify "x-lines" (G-LINES) when the "AllowRemoteOper" configuration option isn't set, even when the command seems to originate from the remote server itself: this prevents GLINE's to become set during server handshake in this case (what wouldn't be possible during regular runtime when a remote IRC Op sends the command) and what can't be undone by IRC Ops later on (because of the missing "AllowRemoteOper" option) ... • Make scripts and init-files in ./contrib executable. • Fix building ngIRCd with OpenSSL 1.1. Thanks to Christoph Biedl ngircd.anoy@manchmal.in-ulm.de for the patch! • Fix code indentation warnings of gcc 6.2. • Update config.guess (2016-04-02) and config.sub (2016-03-30) files. • Fix warnings of the "shellcheck" linter in autogen.sh, contrib/ngindent and contrib/platformtest.sh. • Update Xcode project for latest Xcode version (8.0), and fix "duplicate symbols" error messages when building (linking) the binary. • Add "Documentation" variables to systemd configuration files. • Make sure that SYSCONFDIR is always set, which can be handy when using source code linters when ./configure hasn't been run already. • Add the new "PAMServiceName" configuration option to specify the name used as PAM service name. This setting allows to run multiple ngIRCd instances with different PAM configurations for each instance. Thanks to Christian Aistleitner christian@quelltextlich.at for the patch, closes #226. • Add an ".editorconfig" file to the project. • Travis-CI: use "container-based infrastructure". • Limit the number of message targets, and suppress duplicates: This prevents an user from flooding the server using commands like this: "PRIVMSG nick1,nick1,nick1,...". Duplicate targets are suppressed silently (channels and clients). In addition, the maximum number of targets per PRIVMSG, NOTICE, ... command are limited to MAX_HNDL_TARGETS (25). If there are more, the daemon sends the new 407 (ERR_TOOMANYTARGETS_MSG) numeric, containing the first target that hasn't been handled any more. Closes #187. • Test suite: Add new test for server-server logins. • contrib/ngindent: Fix shebang line. • Make contrib/platformtest.sh script more portable, and only show "runs=Y" when the test suite really has been passed successfully. • Code cleanup in the NJON handler and the function killing clients as well as the function sending messages to a "mask" (cleaner code, more fault tolerant, better code comments). • Update and enhance documentation: README file, doc/Platforms.txt, doc/Modes.txt, doc/Commands.txt, doc/PAM.txt. • Fix NJOIN not propagating "half ops" status: ngIRCd tested for the wrong prefix of "half ops" when processing NJOIN commands and therefore never classified a remote user as "half op". Thanks to wowaname for pointing this out on #ngircd!
Thanks a lot to all contributors!
Alex