Hello all!
After two release candidates, here it is, the next major release of
ngIRCd, the free, portable and lightweight Internet Relay Chat server
for small or private networks: Release 26!
This release contains all fixes and enhancements since ngIRCd 25, please
see the ChangeLog file for a detailed list of all changes. You can find
it online here: https://github.com/ngircd/ngircd/blob/rel-26/ChangeLog
The NEWS file (https://github.com/ngircd/ngircd/blob/rel-26/NEWS) lists
the following new features since ngIRCd 25:
• Add AppStream metadata file (contrib/de.barton.ngircd.metainfo.xml).
• Various bug fixes, see the ChangeLog. No new or changed functionality.
• 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).
• 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 runtime.
• 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>!
• 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.
• 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>.
• 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
• 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.
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/
Thanks a lot to all contributors & testers!
Stay safe and have fun!
Alex
Hi there,
I’m currently hitting 1 test failure (server-login-test) since ngircd-25, same with 26 (not tested 24, IIRC).
I’ve pasted the relevant test logs, let me know if any more can be provided that are useful.
Any ideas on this? It seems to happen independent of architecture.
$ cat ngircd-test3.log
[19907:5 0] ngIRCd 26-IPv6+PAM+SSL+SYSLOG+ZLIB-x86_64/pc/linux-gnu starting ...
[19907:6 0] Using configuration file "./ngircd-test3.conf" ...
[19907:3 0] Can't read help text file "/usr/share/doc/ngircd-26/Commands.txt": No such file or directory
[19907:4 0] No help text available, HELP command will be of limited use.
[19907:4 0] Not specifying a full path name to "./ngircd-test3.conf" can cause problems when rehashing the server!
[19907:4 0] Maximum penalty increase ('MaxPenaltyTime') is set to 1, this is not recommended!
[19907:6 0] OpenSSL 1.1.1g 21 Apr 2020 initialized.
[19907:6 0] ServerUID must not be root(0), using "nobody" instead.
[19907:6 0] Running as user nobody(65534), group nobody(65534), with PID 19907.
[19907:6 0] Not running with changed root directory.
[19907:6 0] IO subsystem: epoll (hint size 100, initial maxfd 100, masterfd 3).
[19907:6 0] Now listening on [127.0.0.1]:6789 (socket 6).
[19907:6 0] Now listening on [127.0.0.1]:6790 (socket 7).
[19907:5 0] Server "ngircd.test.server" (on "gentoo") ready.
[19907:6 1] Accepted connection 8 from "127.0.0.1:44330" on socket 7.
[19907:6 1] Connection 8: initialized TLSv1.3 using cipher TLS_AES_256_GCM_SHA384.
[19907:6 4] Shutting down connection 8 (Got QUIT command) with "127.0.0.1:44330" ...
[19907:5 4] Client unregistered (connection 8): Got QUIT command.
[19907:6 4] Connection 8 with "127.0.0.1:44330" closed (in: 0.0k, out: 0.1k).
[19907:6 4] Got signal "Hangup" ...
[19907:5 4] Re-reading configuration NOW!
[19907:6 4] Using configuration file "./ngircd-test3.conf" ...
[19907:3 4] Can't read help text file "/usr/share/doc/ngircd-26/Commands.txt": No such file or directory
[19907:4 4] No help text available, HELP command will be of limited use.
[19907:4 4] Not specifying a full path name to "./ngircd-test3.conf" can cause problems when rehashing the server!
[19907:4 4] Maximum penalty increase ('MaxPenaltyTime') is set to 1, this is not recommended!
[19907:6 4] Shutting down all listening sockets (2 total) ...
[19907:6 4] OpenSSL 1.1.1g 21 Apr 2020 initialized.
[19907:6 4] Now listening on [127.0.0.1]:6789 (socket 6).
[19907:6 4] Now listening on [127.0.0.1]:6790 (socket 7).
[19907:5 4] Re-reading of configuration done.
[19907:6 4] Accepted connection 8 from "127.0.0.1:44332" on socket 7.
[19907:6 4] Connection 8: initialized TLSv1.3 using cipher TLS_AES_256_GCM_SHA384.
[19907:6 7] Shutting down connection 8 (Got QUIT command) with "127.0.0.1:44332" ...
[19907:5 7] Client unregistered (connection 8): Got QUIT command.
[19907:6 7] Connection 8 with "127.0.0.1:44332" closed (in: 0.0k, out: 0.1k).
[19907:6 7] Got signal "Terminated" ...
[19907:5 7] Server going down NOW!
[19907:6 7] Shutting down all listening sockets (2 total) ...
[19907:5 7] ngIRCd done, served 2 connections.
$ cat src/testsuite/logs/server-login-test.log
spawn telnet 127.0.0.1 6789
Trying 127.0.0.1...
Connected to 127.0.0.1.PASS pwd1 0210-IRC+ ngIRCd|testsuite0:CHLMSX P
SERVER ngircd.test.server3 :Testsuite Server Emulation
Escape character is '^]'.
:ngircd.test.server PASS pwd3 0210-IRC ngIRCd|26 PZ
:ngircd.test.server SERVER ngircd.test.server 1 :ngIRCd Test-Server 1
:ngircd.test.server SERVER ngircd.test.server2 2 2 :ngIRCd Test-Server 2
:ngircd.test.server PING :ngircd.test.server
Full log:
$ make check
make ngircd-TEST-Binary tests.sh
make[1]: Entering directory '/var/tmp/portage/net-irc/ngircd-26/work/ngircd-26/src/testsuite'
cp ../ngircd/ngircd T-ngircd1
cp ../ngircd/ngircd T-ngircd2
cp ../ngircd/ngircd T-ngircd3
[ -f getpid.sh ] || ln -s ./getpid.sh .
rm -f tests-skipped.lst
make[1]: Nothing to be done for 'tests.sh'.
make[1]: Leaving directory '/var/tmp/portage/net-irc/ngircd-26/work/ngircd-26/src/testsuite'
make check-TESTS
make[1]: Entering directory '/var/tmp/portage/net-irc/ngircd-26/work/ngircd-26/src/testsuite'
starting server 1 ... ok.
PASS: start-server1
running connect-test ...... ok.
PASS: connect-test
starting server 2 ... ok.
PASS: start-server2
running channel-test ....................... ok.
PASS: channel-test
running invite-test ...................... ok.
PASS: invite-test
running join-test ...............
....... ok.
PASS: join-test
running kick-test ....................... ok.
PASS: kick-test
running message-test ............................ ok.
PASS: message-test
running misc-test ............................. ok.
PASS: misc-test
running mode-test ................................. ok.
PASS: mode-test
running opless-channel-test ........ ok.
PASS: opless-channel-test
running who-test ..................................... ok.
PASS: who-test
running whois-test ............
.... ok.
PASS: whois-test
running server-link-test ........... ok.
PASS: server-link-test
running server-login-test ..... failure!
FAIL: server-login-test
stopping server 2 ... ok.
PASS: stop-server2
stressing server with 5 clients (be patient!):
checking stress script ... ok.
started client 1/5.
started client 2/5.
started client 3/5.
started client 4/5.
started client 5/5.
waiting for clients to complete: ... ok.
PASS: stress-server.sh
stopping server 1 ... ok.
PASS: stop-server1
PASS: prep-server3
starting server 3 ... ok.
PASS: start-server3
running connect-ssl-cert1-test ...... ok.
PASS: connect-ssl-cert1-test
PASS: switch-server3
reloading server 3 ... ok.
PASS: reload-server3
running connect-ssl-cert2-test ...... ok.
PASS: connect-ssl-cert2-test
PASS: cleanup-server3
stopping server 3 ... ok.
PASS: stop-server3
===========================================
1 of 26 tests failed
Please report to ngircd-ml(a)ngircd.barton.de
===========================================
make[1]: *** [Makefile:335: check-TESTS] Error 1
make[1]: Leaving directory '/var/tmp/portage/net-irc/ngircd-26/work/ngircd-26/src/testsuite'
make: *** [Makefile:462: check-am] Error 2
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
Sir, if ngircd is chrooted to /var/ngircd then what are changes made to
ngircd.conf files are acceptable by rehasing ?
i tried to change nicklen, it didnt accept
though i cud restart ngircd to change nicklen
could u be kind to answer my question ?
Thanks & regards
--
Using Opera's mail client: http://www.opera.com/mail/