INSTALLATION
============
If you installed BitlBee from a .deb or .rpm you probably don't have to do
anything anymore for installation. Just skip this section.
If you want to compile BitlBee yourself, that's fine. Just run ./configure
to set up the build system. If configure succeeds, run make to build BitlBee.
make install will move all the files to the right places.
--- inetd installation
After installation you have to set up inetd (you got that one running,
right? If not, just take a look at utils/bitlbeed.c) to start BitlBee. You
need to add BitlBee to inetd.conf, like this:
6667 stream tcp nowait nobody /usr/sbin/tcpd /usr/local/sbin/bitlbee
Creating a special BitlBee user and running BitlBee with that UID (instead
of just 'nobody') might be a good idea.
*BSD/Darwin/OSX NOTE: Most *BSD inetds are more scrict than the one that
comes with Linux systems. Possibly all non-Linux inetds are like this. They
don't allow you to specify a port number in the inetd.conf entry, instead
you have to put a service name there (one that is also mentioned in
/etc/services). So if there's no line in /services for 6667/tcp (or whatever
you choose), add it and use that name in the inetd.conf entry.
-- xinetd installation
Most machines use xinetd instead of inetd these days. If your machine runs
xinetd, you can copy the bitlbee.xinetd file from the doc/ directory to your
xinetd.d/ directory. Most likely you'll have to change a thing or two before
it'll work.
After configuring your (x)inetd, send the daemon a SIGHUP and things should
work. If not, see your syslogs, since both daemons will complain there when
something's wrong.
Also, don't forget to create the configuration directory (/var/lib/bitlbee/
by default) and chown it to the UID BitlBee is running as. Make sure this
directory is read-/writable by this user only.
--- (Fork)Daemon mode
If you don't want to run any inetd daemon, you can run BitlBee in Daemon
mode. Right now, daemon mode may be a bad idea on servers with multiple
users, since possible fatal BitlBee bugs will crash the BitlBee process and
disconnect all connected users at once. Instead, you can use ForkDaemon
mode, which serves every user from a separate process, without depending on
an inetd daemon.
To use BitlBee in daemon mode, just start it with the right flags or enable
it in bitlbee.conf. You probably want to write an init script to start
BitlBee automatically after a reboot. (This is where you realise using
a package from your distro would've been a better idea. :-P)
DEPENDENCIES
============
BitlBee's only real dependency is GLib. This is available on virtually every
platform. Any recent version of GLib (2.4 or higher) will work.
These days, MSN Messenger clients have to connect to the MS Passport servers
through HTTPS. BitlBee can use several SSL libraries for this: GnuTLS, NSS
(which comes with Mozilla) and OpenSSL. OpenSSL is not GPL-compatible in some
situations, so using GnuTLS or NSS is preferred. However, especially on *BSD,
OpenSSL can be considered part of the operating system, which eliminates the
GPL incompatibility.
The incompatibility is also the reason why the SSL library detection code
doesn't attempt to use OpenSSL. If you want to use OpenSSL, you have to
force configure to use it using the --ssl=openssl parameter. For more
information about this problem, see the URL's configure will write to stdout
when you attempt to use OpenSSL.
PORTABILITY ISSUES
==================
Cygwin NOTE: You'll need a glib installation to run BitlBee. However, Cygwin
doesn't provide a glib package. You can download a binary tar.gz from:
. When you installed it, BitlBee should work
fine. You'll probably like bitlbeed or xinetd to get it running on the
network.
On some non-Linux systems the program still suffers from some random bugs.
Please do report them, we might be able to fix them if they're not too
mysterious.
Also, the configure script is known to not work very well with non-Bash
shells, so if you experience problems, make sure you use bash to run the
script. Same for the Makefile, it only works well with GNU make. (gmake on
most BSD systems)
If someone can tell us how to write Makefiles that work with both/all
versions of make, we'd love to hear it, but it seems this just isn't
possible.
RUNNING ON SERVERS WITH MANY USERS
==================================
BitlBee is not yet bug-free. Sometimes a bug causes the program to get into
an infinite loop. Something you really don't want on a public server,
especially when that machine is also used for other (mission-critical) things.
For now we can't do much about it. We haven't seen that happen for a long
time already on our own machines, but some people still manage to get
themselves in nasty situations we haven't seen before.
For now the best we can offer against this problem is bitlbeed, which allows
you to setrlimit() the child processes to use no more than a specified
number of CPU seconds. Not the best solution (not really a solution anyway),
but certainly trashing one busy daemon process is better than trashing your
whole machine.
We don't believe adding a limit for bitlbee to /etc/security/limits.conf will
work, because that file is only read by PAM (ie just for real login users,
not daemons).
See utils/bitlbeed.c for more information about the program.
Just a little note: Now that we reach version 1.0, this shouldn't be that
much of an issue anymore. However, on a public server, especially if you
also use it for other things, it can't hurt to protect yourself against
possible problems.
USAGE
=====
Not much to say here, it's all documented elsewhere already. Just connect to
the new BitlBee IRC server and the bot (root) will tell you what to do.
BACKGROUNDS
===========
We are both console lovers. But it is annoying to have a few tty's open with
chat things in them. IRC, ICQ, MSN, AIM, Jabber... For X there is Gaim, which
supports many chatprotocols. Why wasn't there such a thing for the console?
The idea to port Gaim was easily thought of, of course. But we liked our IRC
clients. And we used it the most, so we used it best. Importing it into the
IRC client was a nice idea. But what if someone liked a different client.
Then (s)he had to duplicate our work.
That's a shame, we thought. Doing work twice is pointless. So when Wilmer
got the ingenious thought in his mind while farming, to create an IRC to
other chatnetworks gateway, we were both so excited, that we started working
on it almost immediately. And the result is BitlBee.
WEBSITE
=======
You can find new releases of BitlBee at:
http://www.bitlbee.org/
The bug tracking system:
http://bugs.bitlbee.org/
Our version control system is Bazaar-NG. Our repository is at:
http://code.bitlbee.org/
A NOTE ON ENCRYPTION
====================
There used to be a note here about the simple obfuscation method used to
make the passwords in the configuration files unreadable. However, BitlBee
now uses a better format (and real encryption (salted MD5 and RC4)) to store
the passwords. This means that people who somehow get their hands on your
configuration files can't easily extract your passwords from them anymore.
However, once you log into the BitlBee server and send your password, an
intruder with tcpdump can still read your passwords. This can't really be
avoided, of course. The new format is a lot more reliable (because it can't
be cracked with just very basic crypto analysis anymore), but you still have
to be careful. The main extra protection offered by the new format is that
the files can only be cracked with some help from the user (by sending the
password at login time).
So if you run a public server, it's most important that you don't give root
access to people who like to play with tcpdump. Also, it's a good idea to
delete all *.nicks/*.accounts files as soon as BitlBee converted them to the
new format (which happens as soon as the user logs in, it can't be done
automatically because it needs the password for that account). You won't
need them anymore (unless you want to switch back to an older BitlBee
version) and they only make it easier for others to crack your passwords.
LEGAL
=====
BitlBee is distributed under the GPL (GNU General Public License). See the
file COPYING for this license.
The MD5 algorithm code is licensed under the Aladdin license. This license
can be found in the files, to which this applies. The SHA1 algorithm code
is licensed under the Mozilla Public License, see http://www.mozilla.org/MPL/
for details.
The Yahoo! library used by BitlBee is libyahoo2 ,
also licensed under the GPL.
BitlBee - An IRC to other chat networks gateway
Copyright (C) 2002-2007 Wilmer van der Gaast
and others