]> jfr.im git - irc/rqf/shadowircd.git/blame - INSTALL
[svn] Clarify format of IPv6 addresses in auth{} and connect{}.
[irc/rqf/shadowircd.git] / INSTALL
CommitLineData
212380e3 1 Hybrid INSTALL Document
2
78e647ad 3 $Id: INSTALL 3384 2007-04-03 22:45:04Z jilles $
212380e3 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 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.