summaryrefslogtreecommitdiff
path: root/deprecated-ngircd/INSTALL.md
diff options
context:
space:
mode:
authorMistivia <i@mistivia.com>2025-11-05 15:34:49 +0800
committerMistivia <i@mistivia.com>2025-11-05 15:34:49 +0800
commit95caa5bdaff4e5b5a924a9141b51c756a57abc0f (patch)
treebb0ff8eddfe8a06558317464cea14405e76b7ebc /deprecated-ngircd/INSTALL.md
parent8532af453ccc9071ddc919b063788d6b496af991 (diff)
remove deprecated
Diffstat (limited to 'deprecated-ngircd/INSTALL.md')
-rw-r--r--deprecated-ngircd/INSTALL.md411
1 files changed, 0 insertions, 411 deletions
diff --git a/deprecated-ngircd/INSTALL.md b/deprecated-ngircd/INSTALL.md
deleted file mode 100644
index 16c7ea4..0000000
--- a/deprecated-ngircd/INSTALL.md
+++ /dev/null
@@ -1,411 +0,0 @@
-# [ngIRCd](https://ngircd.barton.de) - Installation
-
-This document describes how to install ngIRCd, the lightweight Internet Relay
-Chat (IRC) server.
-
-The first section lists noteworthy changes to earlier releases; you definitely
-should read this when upgrading your setup! But you can skip over this section
-when you are working on a fresh installation.
-
-The subsequent sections describe the steps required to build and install ngIRCd
-_from sources_. The information given here is not relevant when you are using
-packages provided by your operating system vendor or third-party repositories!
-
-Please see the file `doc/QuickStart.md` in the `doc/` directory or on
-[GitHub](https://github.com/ngircd/ngircd/blob/master/doc/QuickStart.md) for
-information about _setting up_ and _running_ ngIRCd, including some real-world
-configuration examples.
-
-## Upgrade Information
-
-This section lists important updates and breaking changes that you should be
-aware of *before* starting the upgrade:
-
-Differences to version 26
-
-- **Attention**:
- Starting with release 27, ngIRCd validates SSL/TLS certificates on outgoing
- server-server links by default and drops(!) connections when the remote
- certificate is invalid (for example self-signed, expired, not matching the
- host name, ...). Therefore you have to make sure that all relevant
- *certificates are valid* (or to disable certificate validation on this
- connection using the new `SSLVerify = false` setting in the affected
- `[Server]` block, where the remote certificate is not valid and you can not
- fix this issue).
-
-Differences to version 25
-
-- **Attention**:
- All already deprecated legacy options (besides the newly deprecated *Key* and
- *MaxUsers* settings, see below) were removed in ngIRCd 26, so make sure to
- update your configuration before upgrading, if you haven't done so already
- (you got a warning on daemon startup when using deprecated options): you can
- check your configuration using `ngircd --configtest` -- which is a good idea
- anyway ;-)
-
-- Setting modes for predefined channels in *[Channel]* sections has been
- enhanced: now you can set *all* modes, like in IRC "MODE" commands, and have
- this setting multiple times per *[Channel]* block. Modifying lists (ban list,
- invite list, exception list) is supported, too.
-
- Both the *Key* and *MaxUsers* settings are now deprecated and should be
- replaced by `Modes = +l <limit>` and `Modes = +k <key>` respectively.
-
-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.
-
-- The structure of `ngircd.conf` has been cleaned up and three new configuration
- sections have been introduced: *[Limits]*, *[Options]*, and *[SSL]*.
-
- Lots of configuration variables stored in the *[Global]* section are now
- deprecated there and should be stored in one of these new sections (but
- still work in *[Global]*):
-
- - *AllowRemoteOper* -> [Options]
- - *ChrootDir* -> [Options]
- - *ConnectIPv4* -> [Options]
- - *ConnectIPv6* -> [Options]
- - *ConnectRetry* -> [Limits]
- - *MaxConnections* -> [Limits]
- - *MaxConnectionsIP* -> [Limits]
- - *MaxJoins* -> [Limits]
- - *MaxNickLength* -> [Limits]
- - *NoDNS* -> [Options], and renamed to *DNS*
- - *NoIdent* -> [Options], and renamed to *Ident*
- - *NoPAM* -> [Options], and renamed to *PAM*
- - *OperCanUseMode* -> [Options]
- - *OperServerMode* -> [Options]
- - *PingTimeout* -> [Limits]
- - *PongTimeout* -> [Limits]
- - *PredefChannelsOnly* -> [Options]
- - *SSLCertFile* -> [SSL], and renamed to *CertFile*
- - *SSLDHFile* -> [SSL], and renamed to *DHFile*
- - *SSLKeyFile* -> [SSL], and renamed to *KeyFile*
- - *SSLKeyFilePassword* -> [SSL], and renamed to *KeyFilePassword*
- - *SSLPorts* -> [SSL], and renamed to *Ports*
- - *SyslogFacility* -> [Options]
- - *WebircPassword* -> [Options]
-
- 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.x
-
-- Changes to the *MotdFile* specified in `ngircd.conf` now require a ngIRCd
- configuration reload to take effect (HUP signal, *REHASH* command).
-
-Differences to version 0.9.x
-
-- The option of the configure script to enable support for Zeroconf/Bonjour/
- Rendezvous/WhateverItIsNamedToday has been renamed:
-
- - `--with-rendezvous` -> `--with-zeroconf`
-
-Differences to version 0.8.x
-
-- The maximum length of passwords has been raised to 20 characters (instead
- of 8 characters). If your passwords are longer than 8 characters then they
- are cut at an other position now.
-
-Differences to version 0.6.x
-
-- Some options of the configure script have been renamed:
-
- - `--disable-syslog` -> `--without-syslog`
- - `--disable-zlib` -> `--without-zlib`
-
- Please call `./configure --help` to review the full list of options!
-
-Differences to version 0.5.x
-
-- Starting with version 0.6.0, other servers are identified using asynchronous
- passwords: therefore the variable *Password* in *[Server]*-sections has been
- replaced by *MyPassword* and *PeerPassword*.
-
-- New configuration variables, section *[Global]*: *MaxConnections*, *MaxJoins*
- (see example configuration file `doc/sample-ngircd.conf`!).
-
-## Standard Installation
-
-*Note*: This sections describes installing ngIRCd *from sources*. If you use
-packages available for your operating system distribution you should skip over
-and continue with the *Configuration* section, see below.
-
-ngIRCd is developed for UNIX-based systems, which means that the installation
-on modern UNIX-like systems that are supported by GNU autoconf and GNU
-automake ("`configure` script") should be no problem.
-
-The normal installation procedure after getting (and expanding) the source
-files (using a distribution archive or Git) is as following:
-
-1) Satisfy prerequisites
-2) `./autogen.sh` [only necessary when using "raw" sources with Git]
-3) `./configure`
-4) `make`
-5) `make install`
-
-(Please see details below!)
-
-Now the newly compiled executable "ngircd" is installed in its standard
-location, `/usr/local/sbin/`.
-
-If no previous version of the configuration file exists (the standard name
-is `/usr/local/etc/ngircd.conf)`, a sample configuration file containing all
-possible options will be installed there. You'll find its template in the
-`doc/` directory: `sample-ngircd.conf`.
-
-The next step is to configure and afterwards start the daemon. See the section
-*Configuration* below.
-
-### Satisfy prerequisites
-
-When building from source, you'll need some other software to build ngIRCd:
-for example a working C compiler, make tool, and a few libraries depending on
-the feature set you want to enable at compile time (like IDENT, SSL, and PAM).
-
-And if you aren't using a distribution archive ("tar.gz" file), but cloned the
-plain source archive, you need a few additional tools to generate the build
-system itself: GNU automake and autoconf, as well as pkg-config.
-
-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
-
-``` shell
- yum install \
- autoconf automake expect gcc glibc-devel gnutls-devel \
- libident-devel make pam-devel pkg-config tcp_wrappers-devel \
- telnet zlib-devel
-```
-
-*Note:* More recent versions use the DNF package manager; so substitute "yum"
-with "dnf" in the command above. And neither "libident-devel" (IDENT support)
-nor "tcp_wrappers-devel" (TCP Wrappers) are provided any more!
-
-So the resulting command looks like this:
-
-``` shell
- dnf install \
- autoconf automake expect gcc glibc-devel gnutls-devel \
- make pam-devel pkg-config telnet zlib-devel
-```
-
-#### Debian / Ubuntu based distributions
-
-``` shell
- apt-get install \
- autoconf automake build-essential expect libgnutls28-dev \
- libident-dev libpam-dev pkg-config libwrap0-dev libz-dev telnet
-```
-
-#### ArchLinux based distributions
-
-``` shell
- pacman -S --needed \
- autoconf automake expect gcc gnutls inetutils libident libwrap \
- make pam pkg-config zlib
-```
-
-#### macOS with Homebrew
-
-To build ngIRCd on Apple macOS, you need either Xcode or the command line
-development tools. You can install the latter with the `xcode-select --install`
-command.
-
-Additional tools and libraries that are not part of macOS itself are best
-installed with the [Homebrew](https://brew.sh) package manager:
-
-``` shell
- brew install autoconf automake gnutls libident pkg-config
-```
-
-Note: To actually use the GnuTLS and IDENT libraries installed by Homebrew, you
-need to pass the installation path to the `./configure` command (see below). For
-example like this:
-
-``` shell
- ./configure --with-gnutls=$(brew --prefix) --with-ident=$(brew --prefix) [...]
-```
-
-### `./autogen.sh`
-
-The first step, to run `./autogen.sh`, is *only* necessary if the `configure`
-script itself isn't already generated and available. This never happens in
-official ("stable") releases in "tar.gz" archives, but when cloning the source
-code repository using Git.
-
-**This step is therefore only interesting for developers!**
-
-The `autogen.sh` script produces the `Makefile.in`'s, which are necessary for
-the configure script itself, and some more files for `make(1)`.
-
-To run `autogen.sh` you'll need GNU autoconf, GNU automake and pkg-config: 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 and neither need GNU autoconf nor GNU
-automake at all!
-
-### `./configure`
-
-The `configure` script is used to detect local system dependencies.
-
-In the perfect case, `configure` should recognize all needed libraries, header
-files and so on. If this shouldn't work, `./configure --help` shows all
-possible options.
-
-In addition, you can pass some command line options to `configure` to enable
-and/or disable some features of ngIRCd. All these options are shown using
-`./configure --help`, too.
-
-Compiling a static binary will avoid you the hassle of feeding a chroot dir
-(if you want use the chroot feature). Just do something like:
-
-``` shell
- CFLAGS=-static ./configure [--your-options ...]
-```
-
-Then you can use a void directory as ChrootDir (like OpenSSH's `/var/empty`).
-
-### `make`
-
-The `make(1)` command uses the `Makefile`'s produced by `configure` and
-compiles the ngIRCd daemon.
-
-### `make install`
-
-Use `make install` to install the server and a sample configuration file on
-the local system. Normally, root privileges are necessary to complete this
-step. If there is already an older configuration file present, it won't be
-overwritten.
-
-These files and folders will be installed by default:
-
-- `/usr/local/sbin/ngircd`: executable server
-- `/usr/local/etc/ngircd.conf`: sample configuration (if not already present)
-- `/usr/local/share/doc/ngircd/`: documentation
-- `/usr/local/share/man/`: manual pages
-
-### Additional features
-
-The following optional features can be compiled into the daemon by passing
-options to the `configure` script. Most options can handle a `<path>` argument
-which will be used to search for the required libraries and header files in
-the given paths (`<path>/lib/...`, `<path>/include/...`) in addition to the
-standard locations.
-
-- Syslog Logging (autodetected by default):
-
- `--with-syslog[=<path>]` / `--without-syslog`
-
- Enable (disable) support for logging to "syslog", which should be
- available on most modern UNIX-like operating systems by default.
-
-- ZLib Compression (autodetected by default):
-
- `--with-zlib[=<path>]` / `--without-zlib`
-
- 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`
-
- ngIRCd can use different IO "backends": the "old school" `select(2)` and
- `poll(2)` API which should be supported by most UNIX-like operating systems,
- or the more efficient and flexible `epoll(7)` (Linux >=2.6), `kqueue(2)`
- (BSD) and `/dev/poll` APIs.
-
- By default the IO backend is autodetected, but you can use `--without-xxx`
- to disable a more enhanced API.
-
- When using the `epoll(7)` API, support for `select(2)` is compiled in as
- well by default, to enable the binary to run on older Linux kernels (<2.6),
- too.
-
-- IDENT-Support:
-
- `--with-ident[=<path>]`
-
- Include support for IDENT ("AUTH") lookups. The "ident" library is
- required for this option.
-
-- TCP-Wrappers:
-
- `--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}`.
- The "libwrap" is required for this option.
-
-- PAM:
-
- `--with-pam[=<path>]`
-
- Enable support for PAM, the Pluggable Authentication Modules library.
- See `doc/PAM.txt` for details.
-
-- SSL:
-
- - `--with-openssl[=<path>]`
- - `--with-gnutls[=<path>]`
-
- Enable support for SSL/TLS using OpenSSL or GnuTLS libraries.
- See `doc/SSL.md` for details.
-
-- IPv6 (autodetected by default):
-
- `--enable-ipv6` / `--disable-ipv6`
-
- Enable (disable) support for version 6 of the Internet Protocol, which should
- be available on most modern UNIX-like operating systems by default.