]>
Commit | Line | Data |
---|---|---|
1115a7a5 | 1 | Charybdis INSTALL Document |
212380e3 | 2 | |
78e647ad | 3 | $Id: INSTALL 3384 2007-04-03 22:45:04Z jilles $ |
212380e3 AC |
4 | |
5 | Copyright (c) 2001 by ircd-hybrid team | |
6 | Copyright (c) 2002-2004 ircd-ratbox development team | |
1115a7a5 | 7 | Copyright (c) 2005-2008 charybdis development team |
212380e3 AC |
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 | ||
1115a7a5 JT |
19 | Read the NEWS file to find out about the exciting new features in |
20 | this version. Other good reads are BUGS, doc/example.conf, and | |
21 | README.FIRST. | |
212380e3 AC |
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 | ||
212380e3 AC |
66 | * |
67 | ||
68 | --disable-assert - Disable some of the debugging code. This | |
69 | should be used on all production servers for maximum speed and to | |
70 | prevent cores from things that shouldn't normally happen. | |
71 | ||
72 | * | |
73 | ||
74 | --enable-small-net - Tunes the server for smaller networks by | |
75 | reducing the startup memory footprint. This should really only be | |
76 | used for *small* networks, as this tends to be a performance hit | |
77 | on larger networks. | |
78 | ||
79 | * | |
80 | ||
1115a7a5 JT |
81 | --with-nicklen=LENGTH - Sets the maximum NICK length. Note that |
82 | this must be consistent across your entire network. | |
212380e3 AC |
83 | 3. |
84 | ||
1115a7a5 | 85 | make should build ircd. |
212380e3 AC |
86 | |
87 | 4. | |
88 | ||
1115a7a5 JT |
89 | make install will install the server, modules, and tools in the |
90 | the prefix specified when configure was run. | |
212380e3 AC |
91 | |
92 | 5. | |
93 | ||
212380e3 AC |
94 | If you wish to enable the user log, oper log, and failed oper log, |
95 | issue these commands at the shell prompt (in the prefix directory) | |
96 | ||
97 | $ touch logs/userlog | |
98 | $ touch logs/operlog | |
99 | $ touch logs/foperlog | |
100 | ||
101 | Note: If you use different names in ircd.conf, you must 'touch' the | |
102 | specific names. | |
103 | ||
1115a7a5 | 104 | 6. |
212380e3 AC |
105 | |
106 | If you are upgrading from Hybrid 5 or Hybrid 6, the config file has | |
107 | changed drastically... | |
108 | ||
109 | There is a utility to convert your old config file to the new format. | |
110 | In prefix/bin there is something called "convertconf". Its usage is: | |
111 | ./convertconf (old config file to convert) (converted file name) | |
112 | ||
113 | Convertconf will NOT convert I: lines. You must use "convertilines" | |
114 | for this which contains a much superior method of conversion and | |
115 | will group I: together under one auth {};. | |
116 | ||
117 | Once this is done, move your new config to prefix/etc/ircd.conf and | |
118 | EDIT IT! There are still things that need changing in the config, | |
119 | including the fact that classes MUST be above auth/connect blocks! | |
120 | ||
1115a7a5 | 121 | 7. |
212380e3 AC |
122 | |
123 | If you are upgrading from Hybrid 5 or Hybrid 6, the kline file has | |
124 | also changed... | |
125 | ||
126 | There is a utility to convert the old kline configuration file to the | |
127 | new format. In prefix/bin there is a program called "convertklines". | |
128 | Its usage is: ./convertklines (old kline.conf filename) (new | |
129 | kline.conf filename) (dline.conf filename). | |
130 | ||
131 | Once this is done, move the new files into the prefix/etc/ directory | |
132 | under their proper names. By default, the kline file is named | |
133 | kline.conf and the dline file is named dline.conf. | |
134 | ||
135 | ---------------------------------------------------------------------- | |
136 | ||
137 | HOW TO GET HELP | |
138 | ||
139 | Send Check or Money Order to... just kidding! You're on your own for | |
140 | support. Try asking other ircd-ratbox admins on EFnet if you can't fix it | |
141 | yourself. If you do fix anything, however, please send context or unified | |
142 | diffs to ircd-ratbox@lists.ratbox.org so the fixes can be incorporated into | |
143 | the next release of ircd-hybrid. If ratbox crashes on you, PLEASE contact | |
144 | ircd-ratbox@lists.ratbox.org ASAP with a backtrace of the core. | |
145 | ||
146 | DISCUSSION: There is a mailing list for discussion of ratbox issues, | |
147 | To subscribe, visit: | |
148 | http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox | |
149 | ||
150 | ---------------------------------------------------------------------- | |
151 | ||
152 | NOTES | |
153 | ||
154 | The best way to get a backtrace of the core is to follow this sequence of | |
155 | instructions: | |
156 | ||
157 | 1. | |
158 | ||
159 | Change to the directory containing the core file | |
160 | ||
161 | 2. | |
162 | ||
163 | Run gdb on the binary and the core file. With an unmodified ircd-ratbox | |
164 | installation, an example command line is below (in the /usr/local/ircd | |
165 | directory) | |
166 | ||
167 | $ gdb bin/ircd ircd.core | |
168 | ||
169 | 3. | |
170 | ||
171 | At the "(gdb)" prompt, enter the command "bt" | |
172 | ||
173 | 4. | |
174 | ||
175 | Save the output of the backtrace command and send it to | |
176 | ircd-ratbox@lists.ratbox.org | |
177 | ||
178 | 5. | |
179 | ||
180 | Be sure to save the ircd binary, the modules, and the core file in a | |
181 | safe place in case the developers need to look deeper than a backtrace | |
182 | provides. | |
183 | ||
184 | ---------------------------------------------------------------------- | |
185 | ||
186 | OPENSSL NOTES | |
187 | ||
188 | Older FreeBSD machines sometimes have the obsolete ports version of | |
189 | OpenSSL libcrypto in /usr/local/lib. When configure is used with | |
190 | --enable-openssl, and libintl is detected in /usr/local/lib, the | |
191 | /usr/local/lib directory will be searched BEFORE the system /usr/lib for | |
192 | libraries by the linker. The linker may try to link to the old | |
193 | /usr/local/lib libcrypto instead of the system /usr/lib libcrypto. Some | |
194 | older versions may cause error messages similar to the following: | |
195 | ||
196 | gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic | |
197 | -L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o | |
198 | dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o | |
199 | ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o | |
200 | modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o | |
201 | restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o | |
202 | s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o | |
203 | whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt -lcrypto -lfl | |
204 | rsa.o: In function `get_randomness': | |
205 | /home/wcampbel/dev/ircd-ratbox/src/rsa.c(.text+0x60): undefined reference to | |
206 | `RAND_pseudo_bytes' | |
207 | /usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings' | |
208 | /usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref' | |
209 | *** Error code 1 | |
210 | ||
211 | If this is the case, you may need to rerun configure without the | |
212 | --enable-openssl option, manually edit src/Makefile and modules/Makefile | |
213 | to put -L/usr/lib before the -L/usr/local/lib in LDFLAGS, or remove the | |
214 | old OpenSSL from /usr/local, and recompile all applications that use | |
215 | libcrypto to use the system one. |