ngIRCd - Next Generation IRC Server
http://ngircd.barton.de/
- (c)2001-2012 Alexander Barton and Contributors.
+ (c)2001-2019 Alexander Barton and Contributors.
ngIRCd is free software and published under the
terms of the GNU General Public License.
I. Upgrade Information
~~~~~~~~~~~~~~~~~~~~~~
-Differences to version 17
+Differences to version 22.x
+
+- The "NoticeAuth" ngircd.conf configuration variable has been renamed to
+ "NoticeBeforeRegistration". The old "NoticeAuth" variable still works but
+ is deprecated now.
+
+- The default value of the SSL "CipherList" variable has been changed to
+ "HIGH:!aNULL:@STRENGTH:!SSLv3" (OpenSSL) and "SECURE128:-VERS-SSL3.0"
+ (GnuTLS) to disable the old SSLv3 protocol by default.
+ To enable connections of clients still requiring the weak SSLv3 protocol,
+ the "CipherList" must be set to its old value (not recommended!), which
+ was "HIGH:!aNULL:@STRENGTH" (OpenSSL) and "SECURE128" (GnuTLS), see below.
+
+Differences to version 20.x
+
+- Starting with ngIRCd 21, the ciphers used by SSL are configurable and
+ default to "HIGH:!aNULL:@STRENGTH" (OpenSSL) or "SECURE128" (GnuTLS).
+ Previous version were using the OpenSSL or GnuTLS defaults, "DEFAULT"
+ and "NORMAL" respectively.
+
+- When adding GLINE's or KLINE's to ngIRCd 21 (or newer), all clients matching
+ the new mask will be KILL'ed. This was not the case with earlier versions
+ that only added the mask but didn't kill already connected users.
+
+- The "PredefChannelsOnly" configuration variable has been superseded by the
+ new "AllowedChannelTypes" variable. It is still supported and translated to
+ the appropriate "AllowedChannelTypes" setting but is deprecated now.
+
+Differences to version 19.x
+
+- Starting with ngIRCd 20, users can "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 mode +x. This prevents regular users from changing their hostmask to
+ the name of the IRC server itself, which confused quite a few people ;-)
+
+Differences to version 17.x
- Support for ZeroConf/Bonjour/Rendezvous service registration has been
removed. The configuration option "NoZeroconf" is no longer available.
You should adjust your ngircd.conf and run "ngircd --configtest" to make
sure that your settings are correct and up to date!
-Differences to version 16
+Differences to version 16.x
- Changes to the "MotdFile" specified in ngircd.conf now require a ngircd
configuration reload to take effect (HUP signal, REHASH command).
The normal installation procedure after getting (and expanding) the source
files (using a distribution archive or GIT) is as following:
- 1) ./autogen.sh [only necessary when using GIT]
+ 0) Satisfy prerequisites
+ 1) ./autogen.sh [only necessary when using GIT]
2) ./configure
3) make
4) make install
doc/ directory: sample-ngircd.conf.
+0): Satisfy prerequisites
+
+When building from source, you'll need some other software to build ngIRCd:
+for example a working C compiler, make tool, GNU automake and autoconf (only
+when not using a distribution archive), and a few libraries depending on the
+features you want to compile in (like IDENT support, SSL, and PAM).
+
+If you are using one of the "big" operating systems or Linux distributions,
+you can use the following commands to install all the required packages to
+build the sources including all optional features and to run the test suite:
+
+* Red Hat / Fedora based distributions:
+
+ yum install \
+ autoconf automake expect gcc glibc-devel gnutls-devel \
+ libident-devel make pam-devel tcp_wrappers-devel telnet zlib-devel
+
+* Debian / Ubuntu based distributions:
+
+ apt-get install \
+ autoconf automake build-essential expect libgnutls-dev \
+ libident-dev libpam-dev libwrap0-dev libz-dev telnet
+
+
1): "autogen.sh"
The first step, autogen.sh, is only necessary if the configure-script isn't
autogen.sh produces the Makefile.in's, which are necessary for the configure
script itself, and some more files for make. To run autogen.sh you'll need
-GNU autoconf and GNU automake (use recent versions! autoconf 2.53 and
-automake 1.6.1 are known to work).
+GNU autoconf and GNU automake: at least autoconf 2.61 and automake 1.10 are
+required, newer is better. But don't use automake 1.12 or newer for creating
+distribution archives: it will work but lack "de-ANSI-fication" support in the
+generated Makefile's! Stick with automake 1.11.x for this purpose ...
+So automake 1.11.x and autoconf 2.67+ is recommended.
-Again: "end users" do not need this step!
+Again: "end users" do not need this step and neither need GNU autoconf nor GNU
+automake at all!
2): "./configure"
the given paths ("<path>/lib/...", "<path>/include/...") in addition to the
standard locations.
-* Syslog Logging (autodetected by default):
+* Syslog Logging (autodetected by default):
--with-syslog[=<path>] / --without-syslog
Enable (disable) support for logging to "syslog", which should be
Enable (disable) support for compressed server-server links.
The Z compression library ("libz") is required for this option.
-
+
* IO Backend (autodetected by default):
--with-select[=<path>] / --without-select
--with-poll[=<path>] / --without-poll
--with-devpoll[=<path>] / --without-devpoll
--with-epoll[=<path>] / --without-epoll
- --with-kqueue[=<path>] / --without-kqueue
+ --with-kqueue[=<path>] / --without-kqueue
ngIRCd can use different IO "backends": the "old school" select() and poll()
API which should be supported by most UNIX-like operating systems, or the
required for this option.
* TCP-Wrappers:
- --with-tcp-wrappers[=<path>]
+ --with-tcp-wrappers[=<path>]
Include support for Wietse Venemas "TCP Wrappers" to limit client access
to the daemon, for example by using "/etc/hosts.{allow|deny}".
servers are configured in [Server] sections, and [Channel] blocks are
used to configure pre-defined ("persistent") IRC channels.
-The meaning of the variables in the configuration file is explained in the
+The meaning of the variables in the configuration file is explained in the
"doc/sample-ngircd.conf", which is used as sample configuration file in
/usr/local/etc after running "make install" (if you don't already have one)
and in the ngircd.conf(5) manual page.