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(a)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(a)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(a)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(a)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(a)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(a)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(a)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(a)mailoo.org> and
Christoph Biedl <debian.axhn(a)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