File: INSTALL

package info (click to toggle)
ngircd 0.10.0-2etch1
  • links: PTS
  • area: main
  • in suites: etch
  • size: 1,728 kB
  • ctags: 1,006
  • sloc: ansic: 12,476; sh: 3,837; makefile: 355
file content (244 lines) | stat: -rw-r--r-- 8,359 bytes parent folder | download | duplicates (2)
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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244

                     ngIRCd - Next Generation IRC Server

                      (c)2001-2006 by Alexander Barton,
                    alex@barton.de, http://www.barton.de/

               ngIRCd is free software and published under the
                   terms of the GNU General Public License.

                                -- INSTALL --

                         

I. Upgrade Information
~~~~~~~~~~~~~~~~~~~~~~

Differences to version 0.9.x

- The option of the configure script to enable support for Zeroconf/Bonjour/
  Rendezvous/WhateverItIsNamedToday has been renamed:
    --with-rendezvous  ->  --with-zeroconf

Differences to version 0.8.x

- The maximum length of passwords has been raised to 20 characters (instead
  of 8 characters). If your passwords are longer than 8 characters then they
  are cut at an other position now.

Differences to version 0.6.x

- Some options of the configure script have been renamed:
    --disable-syslog  ->  --without-syslog
    --disable-zlib    ->  --without-zlib
  Please call "./configure --help" to review the full list of options!

Differences to version 0.5.x

- Starting with version 0.6.0, other servers are identified using asynchronous
  passwords: therefore the variable "Password" in [Server]-sections has been
  replaced by "MyPassword" and "PeerPassword".

- New configuration variables, section [Global]: MaxConnections, MaxJoins
  (see example configuration file "doc/sample-ngircd.conf"!).


II. Standard Installation
~~~~~~~~~~~~~~~~~~~~~~~~~

ngIRCd is developed for UNIX-based systems, which means that the installation
on modern UNIX-like systems that are supported by GNU autoconf and GNU
automake ("configure") should be no problem.

The normal installation procedure after getting (and expanding) the source
files (using a distribution archive or CVS) is as following:

  1) ./autogen.sh	[only necessary when using CVS]
  2) ./configure
  3) make
  4) make install

(Please see details below!)

Now the newly compiled executable "ngircd" is installed in its standard
location, /usr/local/sbin/.

The next step is to configure and afterwards starting the daemon. Please
have a look at the ngircd(8) and ngircd.conf(5) manual pages for details
and all possible options.

If no previous version of the configuration file exists (the standard name
is /usr/local/etc/ngircd.conf), a sample configuration file containing all
possible options will be installed there. You'll find its template in the
doc/ directory: sample-ngircd.conf.


1): "autogen.sh"

The first step, autogen.sh, is only necessary if the configure-script isn't
already generated. This never happens in official ("stable") releases in
tar.gz-archives, but when using CVS.

This step is therefore only interesting for developers.

autogen.sh produces the Makefile.in's, which are necessary for the configure
script itself, and some more files for make. To run autogen.sh you'll need
GNU autoconf and GNU automake (use recent versions! autoconf 2.53 and
automake 1.6.1 are known to work).

Again: "end users" do not need this step!


2): "./configure"

The configure-script is used to detect local system dependencies.

In the perfect case, configure should recognise all needed libraries, header
files and so on. If this shouldn't work, "./configure --help" shows all
possible options.

In addition, you can pass some command line options to "configure" to enable
and/or disable some features of ngIRCd. All these options are shown using
"./configure --help", too.

Compiling a static binary will avoid you the hassle of feeding a chroot dir
(if you want use the chroot feature). Just do something like:
  CFLAGS=-static ./configure [--your-options ...]
Then you can use a void directory as ChrootDir (like OpenSSH's /var/empty).


3): "make"

The make command uses the Makefiles produced by configure and compiles the
ngIRCd daemon.


4): "make install"

Use "make install" to install the server and a sample configuration file on
the local system. Normally, root privileges are necessary to complete this
step. If there is already an older configuration file present, it won't be
overwritten.

This files will be installed by default:

- /usr/local/sbin/ngircd: executable server
- /usr/local/etc/ngircd.conf: sample configuration (if not already present)
- /usr/local/share/doc/ngircd/: documentation


III. Additional features
~~~~~~~~~~~~~~~~~~~~~~~~

The following optional features can be compiled into the daemon by passing
options to the "configure" script. Most options can handle a <path> argument
which will be used to search for the required libraries and header files in
the given paths ("<path>/lib/...", "<path>/include/...") in addition to the
standard locations.

* Syslog Logging (autodetected by default): 
  --with-syslog[=<path>] / --without-syslog

  Enable (disable) support for logging to "syslog", which should be
  available on most modern UNIX-like operating systems by default.

* ZLib Compression (autodetected by default):
  --with-zlib[=<path>] / --without-zlib

  Enable (disable) support for compressed server-server links.
  The Z compression library ("libz") is required for this option.
  
* IO Backend (autodetected by default):
  --with-epoll[=<path>] / --without-epoll
  --with-kqueue[=<path>] / --without-kqueue  

  ngIRCd can use three different IO "backends": the "old school" select()
  API which should be supported by most UNIX-like operating systems, or the
  more efficient and flexible epoll() (Linux 2.6) or kqueue() (BSD) APIs.
  By default the IO backend is autodetected, but you can use "--without-xxx"
  to disable a more enhanced API and force the daemon to use select().

* IDENT-Support:
  --with-ident[=<path>]

  Include support for IDENT ("AUTH") lookups. The "ident" library is
  required for this option.

* ZeroConf Support:
  --with-zeroconf[=<path>] 

  Compile ngIRCd with support for ZeroConf multicast DNS service registration.
  Either the Apple ZeroConf implementation (e. g. Mac OS X) or the Howl
  library is required. Which one is available is autodetected.

* TCP-Wrappers:
  --with-tcp-wrappers[=<path>] 

  Include support for Wietse Venemas "TCP Wrappers" to limit client access
  to the daemon, for example by using "/etc/hosts.{allow|deny}".
  The "libwrap" is required for this option.


IV. Useful make-targets
~~~~~~~~~~~~~~~~~~~~~~~

The Makefile produced by the configure-script contains always these useful
targets:

 - clean: delete every product from the compiler/linker
   next step: -> make

 - distclean: the above plus erase all generated Makefiles
   next step: -> ./configure

 - maintainer-clean: erase all automatic generated files
   next step: -> ./autogen.sh


V. Sample configuration file ngircd.conf
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In the sample configuration file, there are comments beginning with "#" OR
";" -- this is only for the better understanding of the file.

The file is separated in four blocks: [Global], [Operator], [Server], and
[Channel].

In the [Global] section, there is the main configuration like the server
name and the ports, on which the server should be listening. IRC operators
of this server are defined in [Operator] blocks. [Server] is the section
where server links are configured. And [Channel] blocks are used to
configure pre-defined ("persistent") IRC channels.

The meaning of the variables in the configuration file is explained in the 
"doc/sample-ngircd.conf", which is used as sample configuration file in
/usr/local/etc after running "make install" (if you don't already have one)
and in the "ngircd.conf" manual page.


VI. Command line options
~~~~~~~~~~~~~~~~~~~~~~~~

These parameters could be passed to the ngIRCd:

-f, --config <file>
	The daemon uses the file <file> as configuration file rather than
	the standard configuration /usr/local/etc/ngircd.conf.

-n, --nodaemon
	ngIRCd should be running as a foreground process.

-p, --passive
	Server-links won't be automatically established.

-t, --configtest
	Reads, validates and dumps the configuration file as interpreted
	by the server. Then exits.

Use "--help" to see a short help text describing all available parameters
the server understands, with "--version" the ngIRCd shows its version
number. In both cases the server exits after the output.


-- 
$Id: INSTALL,v 1.23.2.1 2006/08/02 08:19:38 alex Exp $