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