]>
Commit | Line | Data |
---|---|---|
1 | Charybdis INSTALL Document | |
2 | ||
3 | $Id: INSTALL 3384 2007-04-03 22:45:04Z jilles $ | |
4 | ||
5 | Copyright (c) 2001 by ircd-hybrid team | |
6 | Copyright (c) 2002-2004 ircd-ratbox development team | |
7 | Copyright (c) 2005-2008 charybdis development team | |
8 | ||
9 | ---------------------------------------------------------------------- | |
10 | ||
11 | HOW TO BUILD | |
12 | ||
13 | As of hybrid-4, the distribution uses GNU autoconf instead of the old | |
14 | Config script. The Makefile has also been updated to include CFLAGS | |
15 | defines for popular modern OSes. | |
16 | ||
17 | 1. | |
18 | ||
19 | Read the NEWS file to find out about the exciting new features in | |
20 | this version. Other good reads are BUGS, doc/ircd.conf.example, and | |
21 | README.FIRST. | |
22 | ||
23 | 2. | |
24 | ||
25 | Run the configure script. It will create include/setup.h and the | |
26 | Makefiles to match your system. In ircd-ratbox, the paths are now handled | |
27 | with the --prefix option to configure, not in config.h. | |
28 | /usr/local/ircd is the default if no prefix is specified. | |
29 | ||
30 | ./configure --prefix="/usr/local/ircd" | |
31 | ||
32 | Note: There are some special optional parameters to the configure | |
33 | script that some admins may wish to use. | |
34 | ||
35 | * | |
36 | ||
37 | --enable-kqueue - Use the superior kqueue(2) system call as | |
38 | opposed to the default poll(2). This is currently only available | |
39 | on FreeBSD 4.1 or higher. | |
40 | ||
41 | * | |
42 | ||
43 | --enable-devpoll - Enable the superior /dev/poll support on | |
44 | Solaris. Linux /dev/poll is broken and will not work with this | |
45 | option. | |
46 | ||
47 | * | |
48 | ||
49 | --enable-epoll - Enable the superior Linux Edge-Triggered Polling | |
50 | system. This is currently only available on 2.5 Linux kernel | |
51 | versions or later. | |
52 | ||
53 | * | |
54 | ||
55 | --enable-openssl - Enable the openssl dependent crypto functions. | |
56 | This will allow CHALLENGE to work and encrypted links. On systems | |
57 | where the configure script can automatically detect OpenSSL, this | |
58 | option is not necessary. If configure cannot find OpenSSL, you | |
59 | must specify a path with this option | |
60 | (--enable-openssl=/path/to/openssl) | |
61 | ||
62 | * | |
63 | ||
64 | --enable-ipv6 - Enable IPv6 support. | |
65 | ||
66 | * | |
67 | ||
68 | --enable-assert[=OPTION] - Enable some debugging code. OPTION is | |
69 | either 'soft' or 'hard' (default: hard). 'hard' should never be | |
70 | used on production servers as it may generate unnecessary cores. | |
71 | 'soft' prevents cores from being generated but still imposes some | |
72 | additional load. | |
73 | ||
74 | * | |
75 | ||
76 | --enable-small-net - Tunes the server for smaller networks by | |
77 | reducing the startup memory footprint. This should really only be | |
78 | used for *small* networks, as this tends to be a performance hit | |
79 | on larger networks. | |
80 | ||
81 | * | |
82 | ||
83 | --with-nicklen=LENGTH - Sets the maximum NICK length. Note that | |
84 | this must be consistent across your entire network. | |
85 | 3. | |
86 | ||
87 | make should build ircd. | |
88 | ||
89 | 4. | |
90 | ||
91 | make install will install the server, modules, and tools in the | |
92 | the prefix specified when configure was run. | |
93 | ||
94 | 5. | |
95 | ||
96 | If you wish to enable the user log, oper log, and failed oper log, | |
97 | issue these commands at the shell prompt (in the prefix directory) | |
98 | ||
99 | $ touch logs/userlog | |
100 | $ touch logs/operlog | |
101 | $ touch logs/foperlog | |
102 | ||
103 | Note: If you use different names in ircd.conf, you must 'touch' the | |
104 | specific names. | |
105 | ||
106 | ---------------------------------------------------------------------- | |
107 | ||
108 | HOW TO GET HELP | |
109 | ||
110 | Send Check or Money Order to... just kidding! You're on your own for | |
111 | support. Try asking other ircd-ratbox admins on EFnet if you can't fix it | |
112 | yourself. If you do fix anything, however, please send context or unified | |
113 | diffs to ircd-ratbox@lists.ratbox.org so the fixes can be incorporated into | |
114 | the next release of ircd-hybrid. If ratbox crashes on you, PLEASE contact | |
115 | ircd-ratbox@lists.ratbox.org ASAP with a backtrace of the core. | |
116 | ||
117 | DISCUSSION: There is a mailing list for discussion of ratbox issues, | |
118 | To subscribe, visit: | |
119 | http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox | |
120 | ||
121 | ---------------------------------------------------------------------- | |
122 | ||
123 | NOTES | |
124 | ||
125 | The best way to get a backtrace of the core is to follow this sequence of | |
126 | instructions: | |
127 | ||
128 | 1. | |
129 | ||
130 | Change to the directory containing the core file | |
131 | ||
132 | 2. | |
133 | ||
134 | Run gdb on the binary and the core file. With an unmodified ircd-ratbox | |
135 | installation, an example command line is below (in the /usr/local/ircd | |
136 | directory) | |
137 | ||
138 | $ gdb bin/ircd ircd.core | |
139 | ||
140 | 3. | |
141 | ||
142 | At the "(gdb)" prompt, enter the command "bt" | |
143 | ||
144 | 4. | |
145 | ||
146 | Save the output of the backtrace command and send it to | |
147 | ircd-ratbox@lists.ratbox.org | |
148 | ||
149 | 5. | |
150 | ||
151 | Be sure to save the ircd binary, the modules, and the core file in a | |
152 | safe place in case the developers need to look deeper than a backtrace | |
153 | provides. | |
154 | ||
155 | ---------------------------------------------------------------------- | |
156 | ||
157 | OPENSSL NOTES | |
158 | ||
159 | Older FreeBSD machines sometimes have the obsolete ports version of | |
160 | OpenSSL libcrypto in /usr/local/lib. When configure is used with | |
161 | --enable-openssl, and libintl is detected in /usr/local/lib, the | |
162 | /usr/local/lib directory will be searched BEFORE the system /usr/lib for | |
163 | libraries by the linker. The linker may try to link to the old | |
164 | /usr/local/lib libcrypto instead of the system /usr/lib libcrypto. Some | |
165 | older versions may cause error messages similar to the following: | |
166 | ||
167 | gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic | |
168 | -L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o | |
169 | dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o | |
170 | ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o | |
171 | modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o | |
172 | restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o | |
173 | s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o | |
174 | whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt -lcrypto -lfl | |
175 | rsa.o: In function `get_randomness': | |
176 | /home/wcampbel/dev/ircd-ratbox/src/rsa.c(.text+0x60): undefined reference to | |
177 | `RAND_pseudo_bytes' | |
178 | /usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings' | |
179 | /usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref' | |
180 | *** Error code 1 | |
181 | ||
182 | If this is the case, you may need to rerun configure without the | |
183 | --enable-openssl option, manually edit src/Makefile and modules/Makefile | |
184 | to put -L/usr/lib before the -L/usr/local/lib in LDFLAGS, or remove the | |
185 | old OpenSSL from /usr/local, and recompile all applications that use | |
186 | libcrypto to use the system one. |