]> jfr.im git - irc/rqf/shadowircd.git/blame - INSTALL
Move flood_attack_channel to channel.c so it can be used outside m_message.c
[irc/rqf/shadowircd.git] / INSTALL
CommitLineData
ad89735d 1 ShadowIRCd INSTALL Document
212380e3 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
af839205 7 Copyright (c) 2005-2008 charybdis development team
ad89735d 8 Copyright (c) 2010 by ShadowIRCd development team
212380e3 9
10 ----------------------------------------------------------------------
11
12 HOW TO BUILD
13
14 As of hybrid-4, the distribution uses GNU autoconf instead of the old
15 Config script. The Makefile has also been updated to include CFLAGS
16 defines for popular modern OSes.
17
18 1.
19
af839205 20 Read the NEWS file to find out about the exciting new features in
ad89735d 21 this version. Other good reads are doc/example.conf, and
af839205 22 README.FIRST.
212380e3 23
24 2.
25
26 Run the configure script. It will create include/setup.h and the
27 Makefiles to match your system. In ircd-ratbox, the paths are now handled
28 with the --prefix option to configure, not in config.h.
ad89735d 29 $HOME/ircd is the default if no prefix is specified.
212380e3 30
31 ./configure --prefix="/usr/local/ircd"
32
33 Note: There are some special optional parameters to the configure
34 script that some admins may wish to use.
35
36 *
37
38 --enable-kqueue - Use the superior kqueue(2) system call as
39 opposed to the default poll(2). This is currently only available
40 on FreeBSD 4.1 or higher.
41
42 *
43
44 --enable-devpoll - Enable the superior /dev/poll support on
45 Solaris. Linux /dev/poll is broken and will not work with this
46 option.
47
48 *
49
50 --enable-epoll - Enable the superior Linux Edge-Triggered Polling
51 system. This is currently only available on 2.5 Linux kernel
52 versions or later.
53
54 *
55
56 --enable-openssl - Enable the openssl dependent crypto functions.
57 This will allow CHALLENGE to work and encrypted links. On systems
58 where the configure script can automatically detect OpenSSL, this
59 option is not necessary. If configure cannot find OpenSSL, you
60 must specify a path with this option
61 (--enable-openssl=/path/to/openssl)
62
63 *
64
65 --enable-ipv6 - Enable IPv6 support.
66
212380e3 67 *
68
69 --disable-assert - Disable some of the debugging code. This
70 should be used on all production servers for maximum speed and to
71 prevent cores from things that shouldn't normally happen.
72
73 *
74
75 --enable-small-net - Tunes the server for smaller networks by
76 reducing the startup memory footprint. This should really only be
77 used for *small* networks, as this tends to be a performance hit
78 on larger networks.
79
80 *
81
af839205
JT
82 --with-nicklen=LENGTH - Sets the maximum NICK length. Note that
83 this must be consistent across your entire network.
212380e3 84 3.
85
af839205 86 make should build ircd.
212380e3 87
88 4.
89
af839205
JT
90 make install will install the server, modules, and tools in the
91 the prefix specified when configure was run.
212380e3 92
93 5.
94
212380e3 95 If you wish to enable the user log, oper log, and failed oper log,
96 issue these commands at the shell prompt (in the prefix directory)
97
98 $ touch logs/userlog
99 $ touch logs/operlog
100 $ touch logs/foperlog
101
102 Note: If you use different names in ircd.conf, you must 'touch' the
103 specific names.
104
af839205 105 6.
212380e3 106
107 If you are upgrading from Hybrid 5 or Hybrid 6, the config file has
108 changed drastically...
109
110 There is a utility to convert your old config file to the new format.
111 In prefix/bin there is something called "convertconf". Its usage is:
112 ./convertconf (old config file to convert) (converted file name)
113
114 Convertconf will NOT convert I: lines. You must use "convertilines"
115 for this which contains a much superior method of conversion and
116 will group I: together under one auth {};.
117
118 Once this is done, move your new config to prefix/etc/ircd.conf and
119 EDIT IT! There are still things that need changing in the config,
120 including the fact that classes MUST be above auth/connect blocks!
121
af839205 122 7.
212380e3 123
124 If you are upgrading from Hybrid 5 or Hybrid 6, the kline file has
125 also changed...
126
127 There is a utility to convert the old kline configuration file to the
128 new format. In prefix/bin there is a program called "convertklines".
129 Its usage is: ./convertklines (old kline.conf filename) (new
130 kline.conf filename) (dline.conf filename).
131
132 Once this is done, move the new files into the prefix/etc/ directory
133 under their proper names. By default, the kline file is named
134 kline.conf and the dline file is named dline.conf.
135
136 ----------------------------------------------------------------------
137
138 HOW TO GET HELP
139
ad89735d
JH
140 The best way to get help regarding bugs and such is by asking on our
141 IRC channel which is at irc.thinstack.net #shadowircd . Bugs can also
142 be filed on our bugtracker at:
143
144 http://bitbucket.org/uranium/shadowircd/issues/?status=new&status=open
212380e3 145
212380e3 146
147 ----------------------------------------------------------------------
148
149 NOTES
150
151 The best way to get a backtrace of the core is to follow this sequence of
152 instructions:
153
154 1.
155
156 Change to the directory containing the core file
157
158 2.
159
160 Run gdb on the binary and the core file. With an unmodified ircd-ratbox
161 installation, an example command line is below (in the /usr/local/ircd
162 directory)
163
164 $ gdb bin/ircd ircd.core
165
166 3.
167
168 At the "(gdb)" prompt, enter the command "bt"
169
170 4.
171
172 Save the output of the backtrace command and send it to
173 ircd-ratbox@lists.ratbox.org
174
175 5.
176
177 Be sure to save the ircd binary, the modules, and the core file in a
178 safe place in case the developers need to look deeper than a backtrace
179 provides.
180
181 ----------------------------------------------------------------------
182
183 OPENSSL NOTES
184
185 Older FreeBSD machines sometimes have the obsolete ports version of
186 OpenSSL libcrypto in /usr/local/lib. When configure is used with
187 --enable-openssl, and libintl is detected in /usr/local/lib, the
188 /usr/local/lib directory will be searched BEFORE the system /usr/lib for
189 libraries by the linker. The linker may try to link to the old
190 /usr/local/lib libcrypto instead of the system /usr/lib libcrypto. Some
191 older versions may cause error messages similar to the following:
192
193 gcc -g -O2 -DIRCD_PREFIX=\"/home/wcampbel/ircd\" -Wl,-export-dynamic
194 -L/usr/local/lib -o ircd blalloc.o channel.o vchannel.o class.o client.o
195 dline_conf.o event.o fdlist.o fileio.o hash.o irc_string.o ircd.o ircdauth.o
196 ircd_signal.o linebuf.o list.o listener.o m_error.o match.o memdebug.o
197 modules.o motd.o mtrie_conf.o oldparse.o numeric.o packet.o parse.o res.o rsa.o
198 restart.o s_auth.o s_bsd.o s_bsd_kqueue.o s_conf.o s_debug.o s_gline.o s_log.o
199 s_misc.o s_serv.o s_stats.o s_user.o scache.o send.o sprintf_irc.o tools.o
200 whowas.o lex.yy.o y.tab.o version.o -lintl -ldescrypt -lcrypto -lfl
201 rsa.o: In function `get_randomness':
202 /home/wcampbel/dev/ircd-ratbox/src/rsa.c(.text+0x60): undefined reference to
203 `RAND_pseudo_bytes'
204 /usr/local/lib/libcrypto.so: undefined reference to `ERR_load_RSAREF_strings'
205 /usr/local/lib/libcrypto.so: undefined reference to `RSA_PKCS1_RSAref'
206 *** Error code 1
207
208 If this is the case, you may need to rerun configure without the
209 --enable-openssl option, manually edit src/Makefile and modules/Makefile
210 to put -L/usr/lib before the -L/usr/local/lib in LDFLAGS, or remove the
211 old OpenSSL from /usr/local, and recompile all applications that use
212 libcrypto to use the system one.