Hybrid INSTALL Document $Id$ Copyright (c) 1997-2012 IRCD-Hybrid Development Team ---------------------------------------------------------------------- +------------------------------------------------------------------------+ | Note for those who don't bother reading docs: | | | | Reading INSTALL is now a must, as the old DPATH is now specified when | | configure is run. | | | | - You now need to ./configure --prefix="/path/to/install/it" as a | | minimum. Try ./configure --help or read this file for more info on | | the possible options you can pass to configure. | | | | - Important: The old config format WILL NOT WORK. Please see point 6! | +------------------------------------------------------------------------+ ***** EFNET NOTE ***** You should use the example.efnet.conf instead of example.conf. ********************** ---------------------------------------------------------------------- HOW TO BUILD As of hybrid-4, the distribution uses GNU autoconf instead of the old Config script. You must run ./configure before you can (sanely) build ircd-hybrid. 1. Read the NEWS file to find out about the exciting new features in this version. Other good reads are BUGS, doc/example.conf, and README. 2. Run the configure script. It will create config.h and the Makefiles to match your system. The paths are now handled with the --prefix option to configure. /usr/local/ircd is the default if no prefix is specified. ./configure --prefix=/usr/local/ircd The script will determine whichever of the following is best for your system, but you may (unsupported) force their usage with undefined results: * --enable-kqueue - Use the superior kqueue(2) system call as opposed to the default poll(2). This is currently only available on FreeBSD 4.1 or higher. * --enable-devpoll - Enable the superior /dev/poll support on Solaris. Linux /dev/poll is broken and will not work with this option. * --enable-epoll - Enables epoll(4) Signal I/O system. This is currently only available on 2.5.44 Linux kernel versions or later. * --enable-rtsigio - Enable the superior Linux RealTime Signal I/O system. This is currently only available on 2.4 Linux kernel versions or later. * --enable-poll - Use POSIX poll(2). * --enable-select - Use POSIX select(2). Incidentally, the order of listing above is the order of auto- detection in configure. So if you do have kqueue but wish to enable select(2) instead (bad idea), you must use --enable-select. * --enable-openssl - Enable the openssl dependent crypto functions. Required for the SSL Challenge controlled OPER feature, compressed and/or SSL/TLS server links, as well as SSL/TLS client connections. On systems where the configure script can automatically detect OpenSSL, this option is not necessary. If configure cannot find OpenSSL, you must specify a path with this option (--enable-openssl=/path/to/openssl) These are optional or have default values that may be overridden: * --enable-assert - Enable use of numerous debugging checks. This should not be used on any production servers for maximum speed so as to prevent cores from things that shouldn't normally happen. * --enable-halfops - Enable halfops (%, mode +h) usage. Halfops are similar to plain ops, but can't kick/deop plain ops. Halfops may or may not kick/deop other halfops depending on if (+p) is set. Halfops may not set (+/-p). * --with-nicklen, --with-topiclen - Respectively, sets the maximum NICK length and maximum TOPIC length. Note that this must be consistent across your entire network. Defaults are 9 and 120, respectively. 3. Run 'make'; this should build the ircd. 4. Run 'make install'; this will install the server, modules, and tools in the path with the prefix specified when configure was ran. 5. If you wish to install the contrib modules, run 'make install' in the contrib/ folder to compile and install the modules and help pages. ---------------------------------------------------------------------- HOW TO GET HELP - Send Check or Money Order to... just kidding! You're on your own for support. Try asking other ircd-hybrid admins on EFnet if you can't fix it yourself. If you do fix anything, however, please send context or unified diffs to bugs@ircd-hybrid.org so the fixes can be incorporated into the next release of ircd-hybrid. If hybrid crashes on you, PLEASE contact bugs@ircd-hybrid.org ASAP with a backtrace of the core. The Hybrid team can't fix bugs if no one tells us about them! - https://lists.ircd-hybrid.org/mailman/listinfo/hybrid Here you can subscribe to a mailing list for general discussion of Hybrid. ---------------------------------------------------------------------- NOTES The best way to get a backtrace of the core is to follow this sequence of instructions: 1. Change to the directory containing the core file 2. Run gdb on the binary and the core file. With an unmodified ircd-hybrid installation, an example command line is below (in the /usr/local/ircd directory) $ gdb bin/ircd ircd.core 3. At the "(gdb)" prompt, enter the command "bt full" 4. Save the output of the backtrace command and send it to bugs@ircd-hybrid.org. 5. Be sure to save the ircd binary, the modules, and the core file in a safe place in case the developers need to look deeper than a backtrace provides.