]> jfr.im git - solanum.git/blobdiff - README.md
refuse opers setting an invalidly long k-line reason
[solanum.git] / README.md
index 1b802e9292c7812f13a34613930f7a12303bcae8..878283968b029a88a53ccbd46101b4f813dda5be 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
-# charybdis [![POSIX Build Status](https://travis-ci.org/charybdis-ircd/charybdis.svg?branch=master)](https://travis-ci.org/charybdis-ircd/charybdis) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/is0obsml8xyq2qk7/branch/master?svg=true)](https://ci.appveyor.com/project/kaniini/charybdis/branch/master)
+# solanum ![Build Status](https://github.com/solanum-ircd/solanum/workflows/CI/badge.svg)
 
-Charybdis is an IRCv3 server designed to be highly scalable.  It implements IRCv3.1 and some parts of IRCv3.2.
+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/
+   [atheme]: https://atheme.github.io/
    [anope]: http://www.anope.org/
 
 # necessary requirements
@@ -15,89 +15,80 @@ It is meant to be used with an IRCv3-capable services implementation such as [At
 
 # platforms
 
-Charybdis is designed with portability in mind, but does not target older systems nor those of solely academic
-interest.
+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.
 
-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)
-* Mac OS X 10.7 and above
-* Windows Vista/Server 2008 and above (x86 or x64)
-
-## Tier 2
-
-These platforms are supported, 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
-
-These platforms should only be considered weakly supported, as they are either experimental or not actively
-tested. These platforms have usually been tested in the past, but they may or may not be in a useful state.
-Bugs for tier 3 architectures should have patches attached.
-
-* Old operating system versions of tier 2 and above platforms
-* Other architectures of the above operating systems
-
-## Tier 4
+# platform specific errata
 
-Platforms that are tier 4 are not supported at all. They include all platforms not included in tier 3 or
-above. Bugs to tier 4 platforms **must** have patches attached or will be rejected, possibly without comment.
+These are known issues and workarounds for various platforms.
 
-# platform specific errata
+ * **macOS**: you must set the `LIBTOOLIZE` environment variable to point to glibtoolize before running autogen.sh:
 
-These are known issues and workarounds for supported platforms.
+   ```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"
+   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.
+ * **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. When running
+   as a 32-bit binary, it should be started as:
 
-# building from git
+   ```bash
+   ulimit -n 4095 ; LD_PRELOAD_32=/usr/lib/extendedFILE.so.1 ./solanum
+   ```
 
-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 charybdis.
+# building
+
+```bash
+sudo apt install build-essential pkg-config libsqlite3-dev # or equivalent for your distribution
+./autogen.sh
+./configure --prefix=/path/to/installation
+make
+make check # run tests
+make install
+```
+
+See `./configure --help` for build options.
 
 # feature specific requirements
 
  * For SSL/TLS client and server connections, one of:
 
-   * OpenSSL 1.0 or newer
-   * LibreSSL
-   * mbedTLS
-   * GnuTLS
+   * OpenSSL 1.0.0 or newer (`--enable-openssl`)
+   * LibreSSL (`--enable-openssl`)
+   * mbedTLS (`--enable-mbedtls`)
+   * GnuTLS (`--enable-gnutls`)
 
- * For certificate-based oper CHALLENGE, OpenSSL 1.0 or newer.
+ * 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, OpenSSL 1.0.0 or newer is required. Solaris; and RHEL/Fedora and its derivatives such as CentOS
-   have removed support for ECC/ECDHE. You will need to compile your own OpenSSL on these systems.
+ * 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).
 
 # tips
 
- * To report bugs in charybdis, visit us at irc.freenode.net #charybdis
+ * To report bugs in Solanum, visit us at `#solanum` on [Libera Chat](https://libera.chat)
 
- * Please read doc/index.txt to get an overview of the current documentation.
+ * Please read [doc/readme.txt](doc/readme.txt) to get an overview of the current documentation.
 
- * Read the NEWS file for what's new in this release.
+ * Read the [NEWS.md](NEWS.md) file for what's new in this release.
 
- * The files, /etc/services, /etc/protocols, and /etc/resolv.conf, SHOULD be
+ * 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
-   127.0.0.1 for a resolver as a last-ditch effort.
+   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.
+
+# git access
+
+ * The Solanum git repository can be checked out using the following command:
+       `git clone https://github.com/solanum-ircd/solanum`
 
+ * Solanum's git repository can be browsed over the Internet at the following address:
+       https://github.com/solanum-ircd/solanum