-
Notifications
You must be signed in to change notification settings - Fork 8
/
INSTALL
233 lines (165 loc) · 8.08 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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
Xtheme-Services -- a set of services for IRC networks
(forked from Atheme IRC Services by Xtheme.org)
=====================================================
This program is free but copyrighted software; see the LICENSE file for
details.
Information about Services may be found at http://www.Xtheme.org/xtheme/
GETTING Xtheme:
---------------
1) From Git: git clone https://github.com/XthemeOrg/Xtheme.git
2) From Releases See: https://github.com/XthemeOrg/Xtheme/releases in ZIP or BZ2 packages.
!) Please DO NOT click "Download ZIP" button from GitHub or the "Source code (*)" versions
under Releases or you will run into issues.
TABLE OF CONTENTS
-----------------
1. Installation
2. Upgrading
3. Setting up IRCd
4. Starting Services
5. Setting up a crontab entry
6. Compiling the contrib modules
You should also read the README and FAQ files.
1. INSTALLATION
---------------
The IRCds supported by Services are listed in `dist/xtheme.conf.example`.
Although many others are supported, Services can provide the richest experience
with ChatIRCd, Charybdis, InspIRCd, and UnrealIRCd.
NOTE: if you are using a third party package of Services, most of this section
will not apply.
NOTE: if you are using a copy of Xtheme downloaded from Git, you need to
remember to run `git submodule update --init`. If not, you may ignore this
step.
IMPORTANT NOTE: running services as 'root' is not supported. Use an
unprivileged user account.
Services should compile and run on most POSIX compliant systems. The current
version is known to work on:
FreeBSD 10.x (i386, amd64)
FreeBSD 9.x (i386, amd64)
FreeBSD 8.x (i386, amd64)
Linux (glibc) 2.8–2.20 (i386, amd64)
OS X 10.9 (intel) (*)
Windows XP+ (i386, x64) (*)
Older versions have been tested on:
FreeBSD 7.0–7.4
FreeBSD 6.0–6.3
FreeBSD 5.0–5.5
OpenBSD 3.5–3.8 (i386, amd64, sparc)
NetBSD 1.5–1.6 (i386, amd64, sparc)
NetBSD 2.0 (i386, amd64, sparc, mips)
NetBSD 3.0 (i386)
DragonFly 1.0, 1.2, 1.5
Solaris 7–10 (i86pc, sun4u)
Solaris Express 10 (i86pc, sun4u)
OS X 10.3.5, 10.4.1 (intel, powerpc)
Notes:
- (*) For OS X 10, install libmowgli (version 0.7.x) and pkg-config
separately, possibly using a package/ports system. The included libmowgli
does not work on OS X 10.
- (*) For Windows, please read doc/WINDOWS for compilation and installation
instructions as well as a list of known caveats.
- Other BSD-based systems will probably work. Other SysV-based systems *might*
work provided they support BSD sockets and POSIX function calls.
- Services requires a runtime linker. Systems which do not have a runtime
linker will not be able to run services. However, most systems include a
runtime linker these days.
1.1 Compiling
-------------
If you are installing Services from Git and need libmowgli, please read the
GIT-Access file for information on how to pull in libmowgli as a submodule.
Run the "configure" script:
$ ./configure --prefix=/path/to/install/
If no prefix is specified, the default install path is ~/xtheme/.
If you're running a large network (more than 2000 users), you should
pass the --enable-large-net switch to configure for enhanced performance.
The "configure" script will run several tests, write several files, and exit.
Once this is done you will want to compile services. To do this, type:
$ make
After compilation, install services using:
$ make install
Next, you'll want to go to the directory you specified in "configure" and edit
etc/xtheme.conf. You'll need to change every setting or services will
not work.
1.2 Errors
----------
- If you are on a BSD-based operating system, you may get an error like:
"Makefile", line 1: Need an operator
"Makefile", line 2: Need an operator
make: fatal errors encountered -- cannot continue
upon running 'make'. If so, run 'gmake' instead.
- If you get an error like this:
/usr/bin/install: cannot stat `es.mo': No such file or directory
Failed to install es.mo!
You will need to install the 'gettext' package in your OS. Alternatively,
recompile Xtheme without NLS support:
$ ./configure --prefix=... --disable-nls
$ make
2. UPGRADING
------------
IMPORTANT NOTE: backup your configuration file and database!
All custom modules should be recompiled as well. Loading old modules can cause
services to crash.
Sometimes upgrading requires more than recompiling and reinstalling. Be sure to
read NEWS for important notes concerning the release. This file will let you
know if you need to change your configuration or convert your database to a new
format.
3. SETTING UP IRCD
------------------
Services acts as an IRC server with pseudo-clients on it. To link it to your
network, you'll need to add some lines in your IRCd's configuration. Services
connects to your IRCd, not the other way around.
It is suggested that you set up your IRCd (IRC operator access, etc) before
trying to connect services. Many IRCds do not log much about server
connections, so it is best to connect as an IRC operator and watch the server
notices.
As for the actual lines that need to be added, every IRCd is different. Look
for documentation for "connect{}" or "link{}" or "C/N lines" for your IRCd. You
need to allow services to introduce other servers (e.g. "hub_mask" or H:line),
otherwise it will probably be disconnected when the OperServ JUPE command is
used.
To be perfectly honest, if you can't figure this out you should be running
neither IRCd nor services.
Additionally, you need to do some configuration on all servers on the network.
You need to reserve ("resv{}", "/resv", "Q line", etc) all nicks services uses
to avoid normal users taking those nicks and causing trouble. Also, many IRCds
need to be configured to grant special privileges to services ("service{}",
"shared{}", "ulines{}", "U lines", etc).
See doc/IRCD for more details concerning IRCd-specific requirements for running
services.
4. STARTING SERVICES
--------------------
Go into the directory where you installed xtheme-services (by default,
~/xtheme/). Type ./bin/xtheme-services to launch services.
Services will report any errors and/or detach into the background.
If services doesn't link and/or terminates without warning check the log file
(var/xtheme.log) to see what happened. If this tells you nothing try rerunning
services via ./bin/xtheme-services -dn for more verbose information.
5. SETTING UP A CRONTAB ENTRY
-----------------------------
A crontab entry will allow you to check periodically whether services is still
running, and restart it if not. You'll need to have xtheme-services binaries
and data installed in the same directory for this to work without modification.
First rename the etc/xtheme.cron.example script that is in Xtheme path (by
default, ~/xtheme/) and edit it. You'll need to modify the "cd" part of the
file. Then ensure that the file is marked as executable by typing "chmod +x
xtheme.cron.example" and try to launch the script to see if it works.
When this is done, you'll have to add the crontab entry. Type "crontab -e" This
will open the default text editor with the crontab file. Enter the following
(with correct path):
*/5 * * * * ~/xtheme/etc/xtheme.cron.example >/dev/null 2>&1
The */5 at the beginning means "check every 5 minutes." You may replace the 5
with other another number if you want (but less than 60). Save and exit, and
it's installed.
6. COMPILING THE CONTRIB MODULES
--------------------------------
In the Xtheme source there is a directory called contrib filled with all sorts
of modules that are not included in the main modules directory for one reason
or another. Compiling these modules is very simple.
A README for what each contrib module does is at `modules/contrib/README`.
Pass the --enable-contrib switch to the configure script like so:
$ ./configure --enable-contrib
The contrib modules will then be in your xtheme install directory (by default
this is ~/Xtheme/) in the modules/contrib directory. you can then load them on
a live network like:
/msg operserv modload contrib/os_kill
or in your xtheme.conf by adding a loadmodule line like:
loadmodule "modules/contrib/os_kill";