X-Git-Url: https://jfr.im/git/solanum.git/blobdiff_plain/61f156ba67d865f729e39ee76234d96033e8032f..67ab06dd8a4c6840fcba129891cd9096543a0478:/README.md diff --git a/README.md b/README.md index 0f31a855..818caadb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,8 @@ -# charybdis +# solanum [![Build Status](https://travis-ci.com/solanum-ircd/solanum.svg?branch=main)](https://travis-ci.com/solanum-ircd/solanum) -Charybdis is a reference implementation of the IRCv3.1 server component. It is meant to be -used with an IRCv3-capable services implementation such as [Atheme][atheme] or [Anope][anope]. +Solanum is an IRCv3 server designed to be highly scalable. It implements IRCv3.1 and some parts of IRCv3.2. + +It is meant to be used with an IRCv3-capable services implementation such as [Atheme][atheme] or [Anope][anope]. [atheme]: http://www.atheme.net/ [anope]: http://www.anope.org/ @@ -9,51 +10,100 @@ used with an IRCv3-capable services implementation such as [Atheme][atheme] or [ # necessary requirements * A supported platform - * A working dynamic load library. - * A working lex. Solaris /usr/ccs/bin/lex appears to be broken, on this system flex should be used. + * A working dynamic library system + * A working lex and yacc - flex and bison should work + +# platforms + +Solanum is designed with portability in mind, but does not target older systems nor those of solely academic +interest. + +Do note that operating systems are only supported if they are supported by their vendor. + +## Tier 1 + +These platforms are the best supported, and should always work. They are actively tested. If you encounter +problems, please file a bug. + +* FreeBSD 10.x and above (i386 and amd64) +* Linux 2.6.x and above with glibc or musl (i386, x86_64, and ARM) +* macOS 10.7 and above +* Windows Vista/Server 2008 and above (x86 or x64) + +## Tier 2 + +These platforms are supported and occasionally tested, and most features should work, but this is not +guaranteed. If you find any problems, file a bug, but as these are not regularly tested platforms, a timely +resolution may not be possible. + +* DragonflyBSD 4.4 and above (i386) +* Linux with uClibc (i386 or x86_64) +* NetBSD 6.1.x and above (i386, amd64) +* OpenBSD 5.6 and above (i386, amd64) +* Solaris 10 and above (i386) + +## Tier 3 + +Anything else that hasn't been tested. Solanum may or may not work on it; patches welcome if they don't. + +# platform specific errata + +These are known issues and workarounds for supported platforms. + + * **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 + ``` + + * **FreeBSD**: if you are compiling with ipv6 you may experience + problems with ipv4 due to the way the socket code is written. To + fix this you must: "sysctl net.inet6.ip6.v6only=0" + + * **Solaris**: you may have to set your PATH to include /usr/gnu/bin and /usr/gnu/sbin before /usr/bin + and /usr/sbin. Solaris's default tools don't seem to play nicely with the configure script. + +# building from git + +We no longer supply a prebuilt configure script in git, due to use of automake and libtool causing problems. +You will need to run `autogen.sh` to build the autotools files prior to building solanum. # feature specific requirements - * For SSL Clients, SSL Challenge controlled OPER feature, and encrypted server links, - a working OpenSSL library or GnuTLS library. CHALLENGE is not supported on GnuTLS - yet. + * For SSL/TLS client and server connections, one of: + + * OpenSSL 1.0.0 or newer (--enable-openssl) + * LibreSSL (--enable-openssl) + * mbedTLS (--enable-mbedtls) + * GnuTLS (--enable-gnutls) - * For ECDHE, OpenSSL 1.0.0 or newer is required. RHEL/Fedora and derivatives like CentOS - will need to compile OpenSSL from source, as ECC/ECDHE-functionality is removed from - the OpenSSL package in these distributions. + * For certificate-based oper CHALLENGE, OpenSSL 1.0.0 or newer. + (Using CHALLENGE is not recommended for new deployments, so if you want to use a different TLS library, + feel free.) + + * For ECDHE under OpenSSL, on Solaris and RHEL/Fedora (and its derivatives such as CentOS) 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). # tips - * To report bugs in charybdis, visit us at irc.freenode.net #charybdis + * To report bugs in solanum, visit us at chat.freenode.net #solanum * Please read doc/index.txt to get an overview of the current documentation. + * Read the NEWS file for what's new in this release. + * The files, /etc/services, /etc/protocols, and /etc/resolv.conf, SHOULD be readable by the user running the server in order for ircd to start with - the correct settings. If these files are wrong, charybdis will try to use + 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. - * FREEBSD USERS: if you are compiling with ipv6 you may experience - problems with ipv4 due to the way the socket code is written. To - fix this you must: "sysctl net.inet6.ip6.v6only=0" - - * SOLARIS USERS: this code appears to tickle a bug in older gcc and - egcs ONLY on 64-bit Solaris7. gcc-2.95 and SunPro C on 64bit should - work fine, and any gcc or SunPro compiled on 32bit. - - * SUPPORTED PLATFORMS: this code should compile without any warnings on: - - * FreeBSD 10 - * Gentoo & Gentoo Hardened ~x86/~amd64/~fbsd - * RHEL 6 / 7 - * Debian Jessie - * OpenSuSE 11/12 - * OpenSolaris 2008.x? - * Solaris 10 sparc. - - Please let us know if you find otherwise. - It probably does not compile on AIX, IRIX or libc5 Linux. +# git access - * Please read NEWS for information about what is in this release. + * The Solanum GIT repository can be checked out using the following command: + `git clone https://github.com/solanum-ircd/solanum` - * Other files recommended for reading: BUGS, INSTALL + * Solanum's GIT repository depot can be browsed over the Internet at the following address: + https://github.com/solanum-ircd/solanum