]>
Commit | Line | Data |
---|---|---|
212380e3 AC |
1 | Hybrid INSTALL Document |
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 | |
7 | ||
8 | ---------------------------------------------------------------------- | |
9 | ||
10 | +------------------------------------------------------------------------+ | |
11 | | Note for those who dont bother reading docs | | |
12 | | | | |
13 | | Reading INSTALL is now a must, as the old DPATH is now specified when | | |
14 | | configure is run. | | |
15 | | | | |
16 | | - You now need to ./configure --prefix="/path/to/install/it" | | |
17 | | | | |
18 | | Important: The old config format WILL NOT WORK. Please see point 6! | | |
19 | | | | |
20 | | The old kline format WILL NOT WORK. Please see point 7! | | |
21 | +------------------------------------------------------------------------+ | |
22 | ||
23 | ---------------------------------------------------------------------- | |
24 | ||
25 | HOW TO BUILD | |
26 | ||
27 | As of hybrid-4, the distribution uses GNU autoconf instead of the old | |
28 | Config script. The Makefile has also been updated to include CFLAGS | |
29 | defines for popular modern OSes. | |
30 | ||
31 | 1. | |
32 | ||
33 | Read the ChangeLog file to find out about the exciting new features in | |
34 | this version. Other good reads are doc/whats-new.txt, BUGS, | |
35 | doc/example.conf, and README.FIRST. | |
36 | ||
37 | An example.conf for EFnet is in doc/ with the values "approved" on 12 | |
38 | December 2001. | |
39 | ||
40 | 2. | |
41 | ||
42 | Run the configure script. It will create include/setup.h and the | |
43 | Makefiles to match your system. In ircd-ratbox, the paths are now handled | |
44 | with the --prefix option to configure, not in config.h. | |
45 | /usr/local/ircd is the default if no prefix is specified. | |
46 | ||
47 | ./configure --prefix="/usr/local/ircd" | |
48 | ||
49 | Note: There are some special optional parameters to the configure | |
50 | script that some admins may wish to use. | |
51 | ||
52 | * | |
53 | ||
54 | --enable-kqueue - Use the superior kqueue(2) system call as | |
55 | opposed to the default poll(2). This is currently only available | |
56 | on FreeBSD 4.1 or higher. | |
57 | ||
58 | * | |
59 | ||
60 | --enable-devpoll - Enable the superior /dev/poll support on | |
61 | Solaris. Linux /dev/poll is broken and will not work with this | |
62 | option. | |
63 | ||
64 | * | |
65 | ||
66 | --enable-epoll - Enable the superior Linux Edge-Triggered Polling | |
67 | system. This is currently only available on 2.5 Linux kernel | |
68 | versions or later. | |
69 | ||
70 | * | |
71 | ||
72 | --enable-openssl - Enable the openssl dependent crypto functions. | |
73 | This will allow CHALLENGE to work and encrypted links. On systems | |
74 | where the configure script can automatically detect OpenSSL, this | |
75 | option is not necessary. If configure cannot find OpenSSL, you | |
76 | must specify a path with this option | |
77 | (--enable-openssl=/path/to/openssl) | |
78 | ||
79 | * | |
80 | ||
81 | --enable-ipv6 - Enable IPv6 support. | |
82 | ||
83 | * | |
84 | ||
85 | --disable-shared-modules - Disable module support. This option is | |
86 | more secure, but reduces a lot of the flexibility in Hybrid 7. | |
87 | This may need to be used on some systems without a working dl | |
88 | library. | |
89 | ||
90 | * | |
91 | ||
92 | --disable-assert - Disable some of the debugging code. This | |
93 | should be used on all production servers for maximum speed and to | |
94 | prevent cores from things that shouldn't normally happen. | |
95 | ||
96 | * | |
97 | ||
98 | --enable-small-net - Tunes the server for smaller networks by | |
99 | reducing the startup memory footprint. This should really only be | |
100 | used for *small* networks, as this tends to be a performance hit | |
101 | on larger networks. | |
102 | ||
103 | * | |
104 | ||
105 | --with-nicklen - Sets the maximum NICK length. Note that this | |
106 | must be consistant across your entire network. | |
107 | ||
212380e3 AC |
108 | 3. |
109 | ||
110 | Look over the "include/config.h" file. This allows you to change the | |
111 | few remaining hard coded options of how the ircd will operate. Most | |
112 | admins will only have to change a few settings. USE_SYSLOG is the only | |
113 | one that most admins will need to edit. | |
114 | ||
115 | Note: Note that you must have permission by the sysadmin to send | |
116 | messages to the system log files. | |
117 | ||
118 | All other settings in config.h are not necessary to edit. | |
119 | ||
120 | 4. | |
121 | ||
122 | make should build ircd. | |
123 | ||
124 | 5. | |
125 | ||
126 | make install will install the server, modules(1), and tools in the | |
127 | path defined in config.h and the prefix specified when configure was | |
128 | run. | |
129 | ||
130 | (1) Unless the server was compiled without module support. | |
131 | ||
132 | 6. | |
133 | ||
134 | If you wish to enable the user log, oper log, and failed oper log, | |
135 | issue these commands at the shell prompt (in the prefix directory) | |
136 | ||
137 | $ touch logs/userlog | |
138 | $ touch logs/operlog | |
139 | $ touch logs/foperlog | |
140 | ||
141 | Note: If you use different names in ircd.conf, you must 'touch' the | |
142 | specific names. | |
143 | ||
144 | 7. | |
145 | ||
146 | If you are upgrading from Hybrid 5 or Hybrid 6, the config file has | |
147 | changed drastically... | |
148 | ||
149 | There is a utility to convert your old config file to the new format. | |
150 | In prefix/bin there is something called "convertconf". Its usage is: | |
151 | ./convertconf (old config file to convert) (converted file name) | |
152 | ||
153 | Convertconf will NOT convert I: lines. You must use "convertilines" | |
154 | for this which contains a much superior method of conversion and | |
155 | will group I: together under one auth {};. | |
156 | ||
157 | Once this is done, move your new config to prefix/etc/ircd.conf and | |
158 | EDIT IT! There are still things that need changing in the config, | |
159 | including the fact that classes MUST be above auth/connect blocks! | |
160 | ||
161 | 8. | |
162 | ||
163 | If you are upgrading from Hybrid 5 or Hybrid 6, the kline file has | |
164 | also changed... | |
165 | ||
166 | There is a utility to convert the old kline configuration file to the | |
167 | new format. In prefix/bin there is a program called "convertklines". | |
168 | Its usage is: ./convertklines (old kline.conf filename) (new | |
169 | kline.conf filename) (dline.conf filename). | |
170 | ||
171 | Once this is done, move the new files into the prefix/etc/ directory | |
172 | under their proper names. By default, the kline file is named | |
173 | kline.conf and the dline file is named dline.conf. | |
174 | ||
175 | ---------------------------------------------------------------------- | |
176 | ||
177 | HOW TO GET HELP | |
178 | ||
179 | Send Check or Money Order to... just kidding! You're on your own for | |
180 | support. Try asking other ircd-ratbox admins on EFnet if you can't fix it | |
181 | yourself. If you do fix anything, however, please send context or unified | |
182 | diffs to ircd-ratbox@lists.ratbox.org so the fixes can be incorporated into | |
183 | the next release of ircd-hybrid. If ratbox crashes on you, PLEASE contact | |
184 | ircd-ratbox@lists.ratbox.org ASAP with a backtrace of the core. | |
185 | ||
186 | DISCUSSION: There is a mailing list for discussion of ratbox issues, | |
187 | To subscribe, visit: | |
188 | http://lists.ratbox.org/cgi-bin/mailman/listinfo/ircd-ratbox | |
189 | ||
190 | ---------------------------------------------------------------------- | |
191 | ||
192 | NOTES | |
193 | ||
194 | The best way to get a backtrace of the core is to follow this sequence of | |
195 | instructions: | |
196 | ||
197 | 1. | |
198 | ||
199 | Change to the directory containing the core file | |
200 | ||
201 | 2. | |
202 | ||
203 | Run gdb on the binary and the core file. With an unmodified ircd-ratbox | |
204 | installation, an example command line is below (in the /usr/local/ircd | |
205 | directory) | |
206 | ||
207 | $ gdb bin/ircd ircd.core | |
208 | ||
209 | 3. | |
210 | ||
211 | At the "(gdb)" prompt, enter the command "bt" | |
212 | ||
213 | 4. | |
214 | ||
215 | Save the output of the backtrace command and send it to | |
216 | ircd-ratbox@lists.ratbox.org | |
217 | ||
218 | 5. | |
219 | ||
220 | Be sure to save the ircd binary, the modules, and the core file in a | |
221 | safe place in case the developers need to look deeper than a backtrace | |
222 | provides. | |
223 | ||
224 | ---------------------------------------------------------------------- | |
225 | ||
226 | OPENSSL NOTES | |
227 | ||
228 | Older FreeBSD machines sometimes have the obsolete ports version of | |
229 | OpenSSL libcrypto in /usr/local/lib. When configure is used with | |
230 | --enable-openssl, and libintl is detected in /usr/local/lib, the | |
231 | /usr/local/lib directory will be searched BEFORE the system /usr/lib for | |
232 | libraries by the linker. The linker may try to link to the old | |
233 | /usr/local/lib libcrypto instead of the system /usr/lib libcrypto. Some | |
234 | older versions may cause error messages similar to the following: | |
235 | ||
236 | gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic | |
237 | -L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o | |
238 | dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o | |
239 | ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o | |
240 | modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o | |
241 | restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o | |
242 | s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o | |
243 | whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt -lcrypto -lfl | |
244 | rsa.o: In function `get_randomness': | |
245 | /home/wcampbel/dev/ircd-ratbox/src/rsa.c(.text+0x60): undefined reference to | |
246 | `RAND_pseudo_bytes' | |
247 | /usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings' | |
248 | /usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref' | |
249 | *** Error code 1 | |
250 | ||
251 | If this is the case, you may need to rerun configure without the | |
252 | --enable-openssl option, manually edit src/Makefile and modules/Makefile | |
253 | to put -L/usr/lib before the -L/usr/local/lib in LDFLAGS, or remove the | |
254 | old OpenSSL from /usr/local, and recompile all applications that use | |
255 | libcrypto to use the system one. |