1 |
adx |
30 |
Hybrid INSTALL Document |
2 |
|
|
|
3 |
knight |
31 |
$Id$ |
4 |
adx |
30 |
|
5 |
|
|
Copyright (c) 1997-2005 IRCD-Hybrid Development Team |
6 |
|
|
|
7 |
|
|
---------------------------------------------------------------------- |
8 |
|
|
|
9 |
|
|
+------------------------------------------------------------------------+ |
10 |
|
|
| Note for those who don't bother reading docs: | |
11 |
|
|
| | |
12 |
|
|
| Reading INSTALL is now a must, as the old DPATH is now specified when | |
13 |
|
|
| configure is run. | |
14 |
|
|
| | |
15 |
|
|
| - You now need to ./configure --prefix="/path/to/install/it" as a | |
16 |
|
|
| minimum. Try ./configure --help or read this file for more info on | |
17 |
|
|
| the possible options you can pass to configure. | |
18 |
|
|
| | |
19 |
|
|
| - Important: The old config format WILL NOT WORK. Please see point 7! | |
20 |
|
|
+------------------------------------------------------------------------+ |
21 |
|
|
|
22 |
|
|
***** EFNET NOTE ***** |
23 |
|
|
You should run ./configure with the option '--enable-efnet' to tweak |
24 |
|
|
some options to be EFNet based. You must also use the example.efnet.conf |
25 |
|
|
instead of example.conf. |
26 |
|
|
********************** |
27 |
|
|
|
28 |
|
|
---------------------------------------------------------------------- |
29 |
|
|
|
30 |
|
|
HOW TO BUILD |
31 |
|
|
|
32 |
|
|
As of hybrid-4, the distribution uses GNU autoconf instead of the old |
33 |
|
|
Config script. You must run ./configure before you can (sanely) build |
34 |
|
|
ircd-hybrid. |
35 |
|
|
|
36 |
|
|
1. Read the RELNOTES file to find out about the exciting new features in |
37 |
|
|
this version. Other good reads are doc/whats-new.txt, BUGS, |
38 |
|
|
etc/example.conf, and README.FIRST. |
39 |
|
|
|
40 |
|
|
An example.conf for EFnet is in etc/ with the values "approved" as of |
41 |
|
|
October 12th, 2003 called example.efnet.conf. |
42 |
|
|
|
43 |
|
|
2. Run the configure script. It will create include/setup.h and the |
44 |
|
|
Makefiles to match your system. In hybrid-7, the paths are now handled |
45 |
|
|
with the --prefix option to configure. |
46 |
|
|
/usr/local/ircd is the default if no prefix is specified. |
47 |
|
|
|
48 |
|
|
./configure --prefix=/usr/local/ircd |
49 |
|
|
|
50 |
|
|
The script will determine whichever of the following is best for |
51 |
|
|
your system, but you may (unsupported) force their usage with |
52 |
|
|
undefined results: |
53 |
|
|
|
54 |
|
|
* --enable-kqueue - Use the superior kqueue(2) system call as |
55 |
michael |
555 |
opposed to the default poll(2). This is currently only available |
56 |
adx |
30 |
on FreeBSD 4.1 or higher. |
57 |
|
|
|
58 |
|
|
* --enable-devpoll - Enable the superior /dev/poll support on |
59 |
michael |
555 |
Solaris. Linux /dev/poll is broken and will not work with this |
60 |
adx |
30 |
option. |
61 |
|
|
|
62 |
michael |
555 |
* --enable-epoll - Enables epoll(4) Signal I/O system. This is |
63 |
|
|
currently only available on 2.5.44 Linux kernel versions or |
64 |
|
|
later. |
65 |
|
|
|
66 |
adx |
30 |
* --enable-rtsigio - Enable the superior Linux RealTime Signal I/O |
67 |
michael |
555 |
system. This is currently only available on 2.4 Linux kernel |
68 |
adx |
30 |
versions or later. |
69 |
|
|
|
70 |
|
|
* --enable-poll - Use POSIX poll(2). |
71 |
|
|
|
72 |
|
|
* --enable-select - Use POSIX select(2). |
73 |
|
|
|
74 |
|
|
* --enable-clobber - Don't preserve the old binaries on make install |
75 |
|
|
|
76 |
|
|
Incidentally, the order of listing above is the order of auto- |
77 |
michael |
555 |
detection in configure. So if you do have kqueue but wish to |
78 |
adx |
30 |
enable select(2) instead (bad idea), you must use --enable-select. |
79 |
|
|
|
80 |
|
|
* --enable-openssl - Enable the openssl dependent crypto functions. |
81 |
|
|
This will allow CHALLENGE to work and encrypted links. On systems |
82 |
|
|
where the configure script can automatically detect OpenSSL, this |
83 |
michael |
555 |
option is not necessary. If configure cannot find OpenSSL, you |
84 |
adx |
30 |
must specify a path with this option |
85 |
|
|
(--enable-openssl=/path/to/openssl) |
86 |
|
|
|
87 |
|
|
These are optional or have default values that may be overridden: |
88 |
|
|
|
89 |
michael |
555 |
* --disable-shared-modules - Disable module support. This option is |
90 |
adx |
30 |
more secure, but reduces a lot of the flexibility in hybrid-7. |
91 |
|
|
This may need to be used on some systems without a working |
92 |
|
|
dlopen/dlsym. |
93 |
|
|
|
94 |
michael |
555 |
* --enable-assert - Enable use of numerous debugging checks. This |
95 |
adx |
30 |
should not be used on any production servers for maximum speed |
96 |
|
|
so as to prevent cores from things that shouldn't normally happen. |
97 |
|
|
|
98 |
|
|
* --enable-efence - Enable ElectricFence which is a memory debugger. |
99 |
|
|
|
100 |
|
|
* --enable-profile - Enable profiling support in ircd-hybrid. |
101 |
|
|
|
102 |
|
|
* --disable-block-alloc - Disable block allocations (only works with |
103 |
|
|
ElectricFence). |
104 |
|
|
|
105 |
|
|
* --enable-halfops - Enable halfops (%, mode +h) usage. Halfops |
106 |
|
|
are similar to plain ops, but can't kick/deop plain ops. Halfops |
107 |
|
|
may or may not kick/deop other halfops depending on if (+p) is |
108 |
|
|
set. Halfops may not set (+/-p). |
109 |
|
|
|
110 |
|
|
* --enable-small-net - Tunes the server for smaller networks by |
111 |
|
|
reducing the startup memory footprint. This should really only be |
112 |
|
|
used for *small* networks, as this tends to be a performance hit |
113 |
|
|
on larger networks. |
114 |
|
|
|
115 |
|
|
* --enable-syslog=kill/squit/connect/users/oper, separated by |
116 |
|
|
spaces, in quotes - Enables syslog logging, with events you specify |
117 |
|
|
(none is okay too, and logs the most essential messages only.) |
118 |
|
|
|
119 |
|
|
* --enable-syslog-facility=FACILITY - Check with your sysadmin to see |
120 |
|
|
what this should be; by default it is LOG_LOCAL4. If you get it wrong |
121 |
|
|
initially, no problem; just edit the value in include/setup.h. |
122 |
|
|
|
123 |
|
|
* --with-nicklen, |
124 |
|
|
--with-topiclen - Respectively, sets the maximum NICK length and |
125 |
|
|
maximum TOPIC length. Note that this must be consistent across your |
126 |
|
|
entire network. Defaults are 9 and 120, respectively. |
127 |
|
|
|
128 |
|
|
* --with-maxconn - Sets the maximum number of connections the ircd |
129 |
|
|
can support. Note that this also twiddles the HARD_FDLIMIT. |
130 |
|
|
If HARD_FDLIMIT ends up being larger that FD_SETSIZE when using |
131 |
|
|
select() for your I/O loop, s_bsd_select.c will refuse to compile |
132 |
|
|
(and tell you to use poll instead). Take this error's advice and |
133 |
|
|
use --enable-poll or something a bit more efficient. You'll be |
134 |
|
|
happier at the end of the day for it. |
135 |
|
|
|
136 |
|
|
* --disable-zlib - Build the ircd without ziplinks support. |
137 |
|
|
|
138 |
|
|
* --disable-gline-voting - This is good for small networks or where |
139 |
|
|
G-Line voting is not necessary. Please understand that by disabling |
140 |
|
|
this, it will allow any operator with G-Line permissions to G-Line |
141 |
|
|
someone without requiring the approval of 2 other operators. However, |
142 |
|
|
it is useful if you use proxy scanners or services that do G-Lines. |
143 |
|
|
|
144 |
|
|
3. Run 'make'; this should build the ircd. |
145 |
|
|
|
146 |
|
|
4. Run 'make install'; this will install the server, modules(1), and tools |
147 |
|
|
in the path with the prefix specified when configure was ran. |
148 |
|
|
|
149 |
|
|
(1) Unless the server was compiled without module support. |
150 |
|
|
|
151 |
|
|
5. If you wish to install the contrib modules, run 'make install' in the |
152 |
|
|
contrib/ folder to compile and install the modules and help pages. |
153 |
|
|
|
154 |
|
|
6. If you wish to enable the user log, oper log, and failed oper log, |
155 |
|
|
kill log, kline log and the gline log issue these commands at the |
156 |
|
|
shell prompt (in the prefix directory). |
157 |
|
|
|
158 |
|
|
$ touch logs/userlog |
159 |
|
|
$ touch logs/operlog |
160 |
|
|
$ touch logs/foperlog |
161 |
|
|
$ touch logs/kill |
162 |
|
|
$ touch logs/kline |
163 |
|
|
$ touch logs/gline |
164 |
|
|
|
165 |
|
|
Note: If you use different names in ircd.conf, you must 'touch' |
166 |
|
|
their specific names. |
167 |
|
|
|
168 |
|
|
7. If you are upgrading from Hybrid 5 or Hybrid 6, the config files |
169 |
|
|
have changed drastically... |
170 |
|
|
|
171 |
|
|
By default, the kline file is named kline.conf, the dline file is |
172 |
|
|
named dline.conf, the xline file is called xline.conf, and the gline |
173 |
|
|
file is called gline.conf. |
174 |
|
|
|
175 |
|
|
The nick resv file is named nresv.conf, channel resv file is named |
176 |
|
|
cresv.conf. |
177 |
|
|
|
178 |
|
|
The oper motd file is named opers.motd. |
179 |
|
|
|
180 |
|
|
---------------------------------------------------------------------- |
181 |
|
|
|
182 |
|
|
HOW TO GET HELP |
183 |
|
|
|
184 |
|
|
- Send Check or Money Order to... just kidding! You're on your own for |
185 |
|
|
support. Try asking other ircd-hybrid admins on EFnet if you can't |
186 |
|
|
fix it yourself. If you do fix anything, however, please send context |
187 |
|
|
or unified diffs to bugs@ircd-hybrid.org so the fixes can be |
188 |
|
|
incorporated into the next release of ircd-hybrid. If hybrid crashes |
189 |
|
|
on you, PLEASE contact bugs@ircd-hybrid.org ASAP with a backtrace of |
190 |
|
|
the core. The Hybrid team can't fix bugs if no one tells us about them! |
191 |
|
|
|
192 |
|
|
- http://forum.ircd-hybrid.org/ |
193 |
|
|
We decided to create a phpBB-like forum about ircd-hybrid, where you |
194 |
|
|
can get help from coders and admins, post your suggestions, modules etc. |
195 |
|
|
|
196 |
|
|
- https://lists.ircd-hybrid.org/mailman/listinfo/hybrid |
197 |
|
|
Here you can subscribe to a mailing list for general discussion of Hybrid. |
198 |
|
|
|
199 |
|
|
---------------------------------------------------------------------- |
200 |
|
|
|
201 |
|
|
NOTES |
202 |
|
|
|
203 |
|
|
The best way to get a backtrace of the core is to follow this sequence of |
204 |
|
|
instructions: |
205 |
|
|
|
206 |
|
|
1. Change to the directory containing the core file |
207 |
|
|
|
208 |
michael |
555 |
2. Run gdb on the binary and the core file. With an unmodified Hybrid-7.2 |
209 |
adx |
30 |
installation, an example command line is below (in the /usr/local/ircd |
210 |
|
|
directory) |
211 |
|
|
|
212 |
|
|
$ gdb bin/ircd ircd.core |
213 |
|
|
|
214 |
|
|
|
215 |
|
|
3. At the "(gdb)" prompt, enter the command "bt full" |
216 |
|
|
|
217 |
|
|
4. Save the output of the backtrace command and send it to |
218 |
|
|
bugs@ircd-hybrid.org. |
219 |
|
|
|
220 |
|
|
5. 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. |