]>
Commit | Line | Data |
---|---|---|
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. |