]>
Commit | Line | Data |
---|---|---|
24508953 | 1 | # solanum ![Build Status](https://github.com/solanum-ircd/solanum/workflows/CI/badge.svg) |
67603230 | 2 | |
a6f63a82 | 3 | Solanum is an IRCv3 server designed to be highly scalable. It implements IRCv3.1 and some parts of IRCv3.2. |
41976628 | 4 | |
be9fb5ac | 5 | It 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 |
18 | Solanum is developed on Linux with glibc, but is currently portable to most POSIX-compatible operating systems. |
19 | However, this portability is likely to be removed unless someone is willing to maintain it. If you'd like to be that | |
20 | person, please let us know on IRC. | |
fcf13f6d EM |
21 | |
22 | # platform specific errata | |
23 | ||
fcd7f2da | 24 | These 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 | 49 | sudo 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 | |
52 | make | |
53 | make check # run tests | |
54 | make install | |
55 | ``` | |
56 | ||
57 | See `./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 |