2021-05-27 20:01:24 +00:00
|
|
|
# solanum ![Build Status](https://github.com/solanum-ircd/solanum/workflows/CI/badge.svg)
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2020-10-15 14:51:12 +00:00
|
|
|
Solanum is an IRCv3 server designed to be highly scalable. It implements IRCv3.1 and some parts of IRCv3.2.
|
2016-01-23 19:52:57 +00:00
|
|
|
|
2017-07-27 17:51:13 +00:00
|
|
|
It is meant to be used with an IRCv3-capable services implementation such as [Atheme][atheme] or [Anope][anope].
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2020-11-23 15:12:14 +00:00
|
|
|
[atheme]: https://atheme.github.io/
|
2015-02-25 02:32:08 +00:00
|
|
|
[anope]: http://www.anope.org/
|
|
|
|
|
|
|
|
# necessary requirements
|
|
|
|
|
|
|
|
* A supported platform
|
2016-03-23 20:10:44 +00:00
|
|
|
* A working dynamic library system
|
|
|
|
* A working lex and yacc - flex and bison should work
|
|
|
|
|
|
|
|
# platforms
|
|
|
|
|
2021-06-14 18:22:17 +00:00
|
|
|
Solanum is developed on Linux with glibc, but is currently portable to most POSIX-compatible operating systems.
|
|
|
|
However, this portability is likely to be removed unless someone is willing to maintain it. If you'd like to be that
|
|
|
|
person, please let us know on IRC.
|
2016-03-23 20:10:44 +00:00
|
|
|
|
|
|
|
# platform specific errata
|
|
|
|
|
2021-06-14 18:22:17 +00:00
|
|
|
These are known issues and workarounds for various platforms.
|
2016-03-23 20:10:44 +00:00
|
|
|
|
2020-03-15 22:06:42 +00:00
|
|
|
* **macOS**: you must set the `LIBTOOLIZE` environment variable to point to glibtoolize before running autogen.sh:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
brew install libtool
|
|
|
|
export LIBTOOLIZE="/usr/local/bin/glibtoolize"
|
|
|
|
./autogen.sh
|
|
|
|
```
|
2016-10-31 09:08:46 +00:00
|
|
|
|
2016-03-23 20:10:44 +00:00
|
|
|
* **FreeBSD**: if you are compiling with ipv6 you may experience
|
|
|
|
problems with ipv4 due to the way the socket code is written. To
|
2021-06-01 16:42:44 +00:00
|
|
|
fix this you must: `sysctl net.inet6.ip6.v6only=0`
|
2016-03-23 20:10:44 +00:00
|
|
|
|
2021-06-01 16:42:44 +00:00
|
|
|
* **Solaris**: you may have to set your `PATH` to include `/usr/gnu/bin` and `/usr/gnu/sbin` before `/usr/bin`
|
2021-06-17 23:15:11 +00:00
|
|
|
and `/usr/sbin`. Solaris's default tools don't seem to play nicely with the configure script. When running
|
|
|
|
as a 32-bit binary, it should be started as:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
ulimit -n 4095 ; LD_PRELOAD_32=/usr/lib/extendedFILE.so.1 ./solanum
|
|
|
|
```
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2020-11-09 21:08:56 +00:00
|
|
|
# building
|
2016-03-05 23:49:13 +00:00
|
|
|
|
2020-11-09 21:08:56 +00:00
|
|
|
```bash
|
2021-09-30 19:46:44 +00:00
|
|
|
sudo apt install build-essential pkg-config libsqlite3-dev # or equivalent for your distribution
|
2020-11-09 21:08:56 +00:00
|
|
|
./autogen.sh
|
|
|
|
./configure --prefix=/path/to/installation
|
|
|
|
make
|
|
|
|
make check # run tests
|
|
|
|
make install
|
|
|
|
```
|
|
|
|
|
|
|
|
See `./configure --help` for build options.
|
2016-03-05 23:49:13 +00:00
|
|
|
|
2015-02-25 02:32:08 +00:00
|
|
|
# feature specific requirements
|
|
|
|
|
2015-12-05 13:09:52 +00:00
|
|
|
* For SSL/TLS client and server connections, one of:
|
|
|
|
|
2021-06-01 16:42:44 +00:00
|
|
|
* OpenSSL 1.0.0 or newer (`--enable-openssl`)
|
|
|
|
* LibreSSL (`--enable-openssl`)
|
|
|
|
* mbedTLS (`--enable-mbedtls`)
|
|
|
|
* GnuTLS (`--enable-gnutls`)
|
2015-12-05 13:09:52 +00:00
|
|
|
|
2016-08-15 10:50:59 +00:00
|
|
|
* For certificate-based oper CHALLENGE, OpenSSL 1.0.0 or newer.
|
2015-12-05 13:09:52 +00:00
|
|
|
(Using CHALLENGE is not recommended for new deployments, so if you want to use a different TLS library,
|
|
|
|
feel free.)
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2021-06-14 18:22:17 +00:00
|
|
|
* For ECDHE under OpenSSL, on Solaris you will need to compile your own OpenSSL on these systems, as they
|
|
|
|
have removed support for ECC/ECDHE. Alternatively, consider using another library (see above).
|
2015-02-25 02:32:08 +00:00
|
|
|
|
|
|
|
# tips
|
|
|
|
|
2021-06-01 16:42:44 +00:00
|
|
|
* To report bugs in Solanum, visit us at `#solanum` on [Libera Chat](https://libera.chat)
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2021-06-01 16:42:44 +00:00
|
|
|
* Please read [doc/index.txt](doc/index.txt) to get an overview of the current documentation.
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2021-06-01 16:42:44 +00:00
|
|
|
* Read the [NEWS.md](NEWS.md) file for what's new in this release.
|
2016-03-23 20:10:44 +00:00
|
|
|
|
2021-06-01 16:42:44 +00:00
|
|
|
* The files, `/etc/services`, `/etc/protocols`, and `/etc/resolv.conf`, SHOULD be
|
2015-02-25 02:32:08 +00:00
|
|
|
readable by the user running the server in order for ircd to start with
|
2021-06-01 16:42:44 +00:00
|
|
|
the correct settings. If these files are wrong, Solanum will try to use
|
|
|
|
`127.0.0.1` for a resolver as a last-ditch effort.
|
2015-02-25 02:32:08 +00:00
|
|
|
|
2016-04-10 21:49:42 +00:00
|
|
|
# git access
|
|
|
|
|
2021-06-14 18:22:17 +00:00
|
|
|
* The Solanum git repository can be checked out using the following command:
|
2020-10-15 14:51:12 +00:00
|
|
|
`git clone https://github.com/solanum-ircd/solanum`
|
2016-04-10 21:49:42 +00:00
|
|
|
|
2021-06-14 18:22:17 +00:00
|
|
|
* Solanum's git repository can be browsed over the Internet at the following address:
|
2020-10-15 14:51:12 +00:00
|
|
|
https://github.com/solanum-ircd/solanum
|