Introduction
This page documents custom compiling the latest Bitlbee release, which now supports multi-user-chat support (chat rooms). This document is written as of March 27, 2008 based on Bitlbee 1.2.3 release and Ubuntu 8.04 LTS.
It should be noted that any previous installations of bitlbee should be removed
sudo aptitude remove bitlbee
Preparation
Dependencies
To install the latest build of Bitlbee we'll need to compile the source code manually. In order to do so we'll need to install a few packages:
sudo aptitude install build-essential libgnutls-dev libglib2.0-dev xinetd
note: the packages (except for xinetd) can be safely removed once bitlbee has been installed successfully
Get the Source
We'll need to download the latest release of Bitlbee which supports MUC (multi-user-chat). As of this writing this version is 1.2:
wget -c http://get.bitlbee.org/src/bitlbee-1.2.3.tar.gz
Unarchive this once it is finished downloading:
tar -xf bitlbee-*.tar.gz cd bitlbee-*
At this point we're ready to configure the Bitlbee build and compile the code.
If you want to simply configure the default client, which supports the main protocols (AIM/ICQ, MSN, Yahoo! and Jabber) do:
./configure
Personally I only use Jabber, so I don't compile AIM/ICQ, Yahoo! or MSN support. If you'd like to only support Jabber do:
./configure --msn=0 --yahoo=0 --oscar=0
If the configure is done properly you should see output similar to:
Configuration done: Debugging disabled. Binary stripping enabled. Using event handler: glib Using SSL library: gnutls Building with these storage backends: text xml Building with these protocols: msn jabber oscar yahoo
You can now make and install the application. The install-etc option installs motd.txt and bitlbee.conf. It is optional:
make sudo make install sudo make install-etc
Installing with checkinstall
If you wish to create and/or install a .deb package from the bitlbee source, you can use checkinstall(1). Since checkinstall doesn't allow you to specify multiple make(1) targets on the commandline, you might want to apply this patch to bitlbee's makefile so that bitlbee.conf is included in the .deb:
--- Makefile.orig 2008-01-05 23:43:37.000000000 -0500 +++ Makefile 2008-01-05 23:44:53.000000000 -0500 @@ -20,10 +20,10 @@ all: $(OUTFILE) $(MAKE) -C doc -uninstall: uninstall-bin uninstall-doc +uninstall: uninstall-bin uninstall-doc uninstall-etc @echo -e '\nmake uninstall does not remove files in '$(DESTDIR)$(ETCDIR)', you can use make uninstall-etc to do that.\n' -install: install-bin install-doc +install: install-bin install-doc install-etc @if ! [ -d $(DESTDIR)$(CONFIG) ]; then echo -e '\nThe configuration directory $(DESTDIR)$(CONFIG) does not exist yet, don'\''t forget to create it!'; fi @if ! [ -e $(DESTDIR)$(ETCDIR)/bitlbee.conf ]; then echo -e '\nNo files are installed in '$(DESTDIR)$(ETCDIR)' by make install. Run make install-etc to do that.'; fi @echo @@ -65,7 +65,7 @@ install-bin: mkdir -p $(DESTDIR)$(BINDIR) - install -m 0755 $(OUTFILE) $(DESTDIR)$(BINDIR)/$(OUTFILE) + install -m 0755 $(OUTFILE) $(DESTDIR)$(BINDIR)$(OUTFILE) uninstall-bin: rm -f $(DESTDIR)$(BINDIR)/$(OUTFILE)
You might also want to use --fstrans=no as an option to checkinstall to avoid file permission warnings.
Installation Tweaks
Because this isn't a fancy Ubuntu package we need to manually create a few things. To make things work we'll do three more things:
Create the variable data folder
sudo mkdir /var/lib/bitlbee sudo chown nobody. /var/lib/bitlbee
Create the xinetd configuration
Since we installed xinetd above we also need to configure it for bitlbee:
sudo gedit /etc/xinetd.d/ircd
Add the following content:
service ircd { socket_type = stream protocol = tcp wait = no user = nobody server = /usr/local/sbin/bitlbee port = 6667 disable = no }
Once you've saved this file you'll need to restart xinetd:
sudo /etc/init.d/xinetd restart
At this point you should be able to connect to your new bitlbee server. w00t!
Connecting to a Jabber Chatroom
You'll need to create a Jabber account as seen on the main Bitlbee page, and then use that to join a public chatroom:
join_chat <account number> room@server.tld &localroomname username
Example:
join_chat 0 conference@jabber.server.org &chatroom ubuntu-user