]> jfr.im git - solanum.git/blame - README.md
check bans and quiets for cmode -n/nonmember PRIVMSG
[solanum.git] / README.md
CommitLineData
24508953 1# solanum ![Build Status](https://github.com/solanum-ircd/solanum/workflows/CI/badge.svg)
67603230 2
a6f63a82 3Solanum is an IRCv3 server designed to be highly scalable. It implements IRCv3.1 and some parts of IRCv3.2.
41976628 4
be9fb5ac 5It is meant to be used with an IRCv3-capable services implementation such as [Atheme][atheme] or [Anope][anope].
67603230 6
11f8fd45 7 [atheme]: https://atheme.github.io/
67603230
AC
8 [anope]: http://www.anope.org/
9
10# necessary requirements
11
12 * A supported platform
fcf13f6d
EM
13 * A working dynamic library system
14 * A working lex and yacc - flex and bison should work
15
16# platforms
17
fcd7f2da
DF
18Solanum is developed on Linux with glibc, but is currently portable to most POSIX-compatible operating systems.
19However, this portability is likely to be removed unless someone is willing to maintain it. If you'd like to be that
20person, please let us know on IRC.
fcf13f6d
EM
21
22# platform specific errata
23
fcd7f2da 24These are known issues and workarounds for various platforms.
fcf13f6d 25
c0d82abe
QP
26 * **macOS**: you must set the `LIBTOOLIZE` environment variable to point to glibtoolize before running autogen.sh:
27
28 ```bash
29 brew install libtool
30 export LIBTOOLIZE="/usr/local/bin/glibtoolize"
31 ./autogen.sh
32 ```
19ec5fb1 33
fcf13f6d
EM
34 * **FreeBSD**: if you are compiling with ipv6 you may experience
35 problems with ipv4 due to the way the socket code is written. To
2a833847 36 fix this you must: `sysctl net.inet6.ip6.v6only=0`
fcf13f6d 37
2a833847 38 * **Solaris**: you may have to set your `PATH` to include `/usr/gnu/bin` and `/usr/gnu/sbin` before `/usr/bin`
365feb39 39 and `/usr/sbin`. Solaris's default tools don't seem to play nicely with the configure script. When running
40 as a 32-bit binary, it should be started as:
41
42 ```bash
43 ulimit -n 4095 ; LD_PRELOAD_32=/usr/lib/extendedFILE.so.1 ./solanum
44 ```
67603230 45
75fd7ead 46# building
0409e18f 47
75fd7ead 48```bash
e5933299 49sudo apt install build-essential pkg-config automake libtool libsqlite3-dev # or equivalent for your distribution
75fd7ead
EK
50./autogen.sh
51./configure --prefix=/path/to/installation
52make
53make check # run tests
54make install
55```
56
57See `./configure --help` for build options.
0409e18f 58
67603230
AC
59# feature specific requirements
60
354fd351
AC
61 * For SSL/TLS client and server connections, one of:
62
2a833847
N
63 * OpenSSL 1.0.0 or newer (`--enable-openssl`)
64 * LibreSSL (`--enable-openssl`)
65 * mbedTLS (`--enable-mbedtls`)
66 * GnuTLS (`--enable-gnutls`)
354fd351 67
fd9f6521 68 * For certificate-based oper CHALLENGE, OpenSSL 1.0.0 or newer.
354fd351
AC
69 (Using CHALLENGE is not recommended for new deployments, so if you want to use a different TLS library,
70 feel free.)
67603230 71
fcd7f2da
DF
72 * For ECDHE under OpenSSL, on Solaris you will need to compile your own OpenSSL on these systems, as they
73 have removed support for ECC/ECDHE. Alternatively, consider using another library (see above).
67603230
AC
74
75# tips
76
2a833847 77 * To report bugs in Solanum, visit us at `#solanum` on [Libera Chat](https://libera.chat)
67603230 78
85d5888f 79 * Please read [doc/readme.txt](doc/readme.txt) to get an overview of the current documentation.
67603230 80
2a833847 81 * Read the [NEWS.md](NEWS.md) file for what's new in this release.
fcf13f6d 82
2a833847 83 * The files, `/etc/services`, `/etc/protocols`, and `/etc/resolv.conf`, SHOULD be
67603230 84 readable by the user running the server in order for ircd to start with
2a833847
N
85 the correct settings. If these files are wrong, Solanum will try to use
86 `127.0.0.1` for a resolver as a last-ditch effort.
67603230 87
238db377
EM
88# git access
89
fcd7f2da 90 * The Solanum git repository can be checked out using the following command:
a6f63a82 91 `git clone https://github.com/solanum-ircd/solanum`
238db377 92
fcd7f2da 93 * Solanum's git repository can be browsed over the Internet at the following address:
a6f63a82 94 https://github.com/solanum-ircd/solanum