X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=INSTALL.md;h=16c7ea4b0cb176f28e44f1ae0040b365ad9ad5fa;hb=HEAD;hp=7a7712af6236d1bba13321041629c24bc4100bc5;hpb=9c5e42458ea8dc2aa8db5f122aaa4296d31df67b;p=ngircd.git diff --git a/INSTALL.md b/INSTALL.md index 7a7712af..16c7ea4b 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,19 +1,48 @@ -# [ngIRCd](https://ngircd.barton.de) - Internet Relay Chat Server +# [ngIRCd](https://ngircd.barton.de) - Installation -This document explains how to install ngIRCd, the lightweight Internet Relay +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 do a fresh installation. +when you are working on a fresh installation. -All the subsequent sections describe the steps required to install and -configure ngIRCd. +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, @@ -190,6 +219,18 @@ build the sources including all optional features and to run the test suite: 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 @@ -198,6 +239,35 @@ build the sources including all optional features and to run the test suite: 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` @@ -331,73 +401,11 @@ standard locations. - `--with-gnutls[=]` Enable support for SSL/TLS using OpenSSL or GnuTLS libraries. - See `doc/SSL.txt` for details. - -- IPv6: - - `--enable-ipv6` - - Adds support for version 6 of the Internet Protocol. - -## Configuration - -Please have a look at the `ngircd(8)` and `ngircd.conf(5)` manual pages for -details and all possible command line and configuration options -- **and don't -forget to run `ngircd --configtest` to validate your configuration file!** - -After installing ngIRCd, a sample configuration file will be set up (if it -does not exist already). By default, when installing from sources, the file is -named `/usr/local/etc/ngircd.conf` (other common names, especially for -distribution packages, are `/etc/ngircd.conf` or `/etc/ngircd/ngircd.conf`). - -You can find the template of the sample configuration file in the `doc/` -directory as `sample-ngircd.conf` and -[online](https://ngircd.barton.de/doc/sample-ngircd.conf) on the homepage. It -contains all available options. - -In the sample configuration file, there are comments beginning with `#` *or* -`;` -- this is only for the better understanding of the file, both comment -styles are equal. - -The file is separated in five blocks: *[Global]*, *[Features]*, *[Operator]*, -*[Server]*, and *[Channel]*. - -In the *[Global]* section, there is the main configuration like the server -name and the ports, on which the server should be listening. Options in -the *[Features]* section enable or disable functionality in the daemon. -IRC operators of this server are defined in *[Operator]* blocks, remote -servers are configured in *[Server]* sections, and *[Channel]* blocks are -used to configure pre-defined ("persistent") IRC channels. - -### Manual Pages Online - -- Daemon: [ngircd.8](https://manpages.debian.org/ngircd.8) -- Configutation file: [ngircd.conf.5](https://manpages.debian.org/ngircd.conf.5) - -## Command line options - -ngIRCd supports the following command line options: - -- `-f`, `--config ` - - The daemon uses the file `` as configuration file rather than - the standard configuration `/usr/local/etc/ngircd.conf`. - -- `-n`, `--nodaemon` - - ngIRCd should be running as a foreground process. - -- `-p`, `--passive` - - Server-links won't be automatically established. - -- `-t`, `--configtest` + See `doc/SSL.md` for details. - Reads, validates and dumps the configuration file as interpreted - by the server. Then exits. +- IPv6 (autodetected by default): -Use `--help` to see a short help text describing all available parameters -the server understands, with `--version` the ngIRCd shows its version -number. In both cases the server exits after the output. + `--enable-ipv6` / `--disable-ipv6` -Please see the `ngircd(8)` manual page for more details! + Enable (disable) support for version 6 of the Internet Protocol, which should + be available on most modern UNIX-like operating systems by default.