Hybserv compile and run
Hybserv2 was specifically designed to run with
Hybrid∞ ircd, although it
*should* work with
Ratbox∞ ircd and any other Hybrid-based ircd.
Compilation process
The fast and easy way:
NOTE: If you use this script, you must make sure config.h is correctly configured prior to running the script. Also - using this script will default to installing
Hybserv2 in /usr/local/hybserv/, unless you first edit Makefile.in.
In order to compile
Hybserv2, you should perform the following steps:
- Enter the hybserv tree and run ./configure, a GNU configure script, which should find whatever it needs for compilation.
- Edit include/config.h and change the information to suit your IRC network. This is a must. Also, be sure to edit bin/hybserv.conf to set up the services to work with your network. This is the file where you can give others access to Hybserv2.
- Run 'make' in the hybserv tree to compile the package. When make finishes, you'll probably want to: 'strip bin/hybserv' to remove debugging symbols from the file, since the author is the only one who really uses it. It also decreases the file size greatly.
- Finally, become root if necessary, and run 'make install' to install Hybserv2 on your system. The default install directory is /usr/local/hybserv. This will automatically chown the install directory to the same user who ran the configure script, so it won't run as root. You can change the user by editing Makefile.
- You may wish to remove any objects/binaries created during installation. You can do this via 'make clean'. If you wish to remove any configure generated files as well, use 'make distclean'.
NOTE: if you want to install
Hybserv2 in a directory other than /usr/local/hybserv, you must run the configure script with the --prefix option.
For example, if you want to install
Hybserv2 in /home/mydir:
./configure --prefix=/home/mydir
make all install
Then,
Hybserv2 will be installed in /home/mydir/hybserv.
NOTE: ./configure script accepts several additional parameters which can be used to fine-tune your setup:
--disable-largefile omit support for large files
--enable-dmalloc Enable dmalloc support [[default=no]]
--enable-warnings Enable compiler warnings [[default=no]]
--enable-asserts Enable asserts in code [[default=no]]
--enable-gimmecore Enable core dumping [[default=yes]]
--enable-daemontools Enable daemontools support [[default=no]]
--with-nicklen=LENGTH Sets nick length to LENGTH [[default=18]]
--with-chanellen=LENGTH Sets channel length to LENGTH [[default=200]]
--with-topiclen=LENGTH Sets topic length to LENGTH [[default=90]]
--with-network=TYPE Sets network type TYPE
Hybserv2 is known to compile cleanly on the following operating systems, and may compile on others:
Systems known not to compile sucessfuly (ie. miserably fail):
- HP-UX∞ 11.11 with builtin cc -- should work with Gcc, though
If you are unable to compile Hybserv, please make a
bug report. Bug reports, suggestions/feature requests are very helpful.
Configuration and running
Make sure that each hub server you have specified in your config file has C/N lines for Hybserv matching the password in the first field of the S: line and the server name specified in the N: line. Also, if you wish to enable jupes (#define ALLOW_JUPES), you *MUST* give services an H: line in ircd.conf.
NOTE: Suppose the host name of services is "services.name" with an ip of 1.2.3.4, and that server accepting the services has name "server.shomewhere" with ircd class "server" (or class 1).
Required statements in ircd.conf for
Hybrid5/6 are:
C:1.2.3.4:password:services.name::1
N:1.2.3.4:password:services.name::1
H:*:*:services.name
NOTE: You can leave out H line if you don't want to use server jupes and G-Lines.
NOTE: We recommend using services on same server that is your hub, and then you can use 127.0.0.1 as address in C/N lines (which will give you some performance, since traffic will go through loop back device).
However in
Hybrid7 to accomplish the same you have to put in ircd.conf following code:
connect {
name = "services.name";
host = "1.2.3.4";
send_password = "password";
accept_password = "password";
compressed = no;
hub_mask = "*";
class = "server";
};
In hybserv.conf configuration should be as follows:
S:password:hub.server.somewhere:6667
N:services.name:Hybrid services
When you have compiled Hybserv and edited the necessary files, simply type ./hybserv which should start daemon properly. If it is not in process list, check hybserv.log which should state reasons of failure.
Then, go on IRC and type:
/msg OperServ identify <password>
Assuming
OperServ is the
OperServNick defined in settings.conf and you have given yourself a O: line in hybserv.conf. You should be allowed to give
OperServ commands through /msg or DCC CHAT.
For a list of commands do:
Most commands may also be done through DCC CHAT, and in fact more commands are available through DCC CHAT. Simply /dcc chat
OperServ to connect, and .help
I have tried to make Hybserv fully compatible with TCM (linking wise). If you wish Hybserv to be part of your TCM botnet,
read TCM-LINKING for instructions. If you have no idea what a TCM bot is, don't worry about it :-)
If you enabled
NickServ,
ChanServ,
MemoServ etc. in config.h, you can get lists of their commands through /msg *Serv help.
NickServ and
ChanServ have several commands that can only be executed by administrators. This means you must match an O: line (with an "a" flag) in hybserv.conf and be registered with
OperServ to use them. This can be done by typing /msg
OperServ password, these commands CANNOT be accessed by DCC Chat.
NOTE: If you use Hybrid or Hybrid-compatible IRC daemon, you should enable Q-lines (quarantined nickname) for services-reserved nicknames because of obvious security reasons:
Q:NickServ:This nickname is reserved.
Q:ChanServ:This nickname is reserved.
Q:OperServ:This nickname is reserved.
However Q lines changed in
Hybrid7. Feel free to copy and paste these lines:
resv {
# The reason must go first
reason = "This nickname is reserved";
nick = "NickServ";
nick = "ChanServ";
nick = "OperServ";
};