Minbif

Minbif aims to use the libpurple library from the Pidgin project to provide an IRC-friendly instant messaging client.

Features

Minbif is an IRC gateway to IM networks which provides the following features:

  • Minbif uses a library which abstracts all IM calls, and has several plugins to support more than 15 IM protocols (IRC included!);
  • Two modes: inetd and daemon fork;
  • Only IRC commands are used to control Minbif;
  • Certificates check;
  • Buddies are IRC users;
  • Each account has a status channel. You see in all connected buddies, and their status on it;
  • Add and remove buddies from list with /INVITE and /KICK commands;
  • Blocked users are bans on the account's status channel;
  • Display when a buddy is typing a message;
  • Can chat with someone who is not in your buddy list;
  • You can see buddies' icons (with libcaca) or download them;
  • DCC SEND an image to set your icon on IM networks;
  • Display extended information about buddies with /WII command;
  • Support away messages;
  • Can send and receive files, which are sent or received to/from your IRC client with DCC SEND;
  • Conversation channels are supported;
  • Auto-rejoin conversation channels at connection;
  • Display list of channels on an IM account with /LIST;
  • irssi scripts to increase your user experience of minbif;
  • CACAcam (webcam in ascii art).
  • CoinCoin plugin for libpurple.
  • PAM support

Documentation

Focus on

Dependencies

Minbif depends on:

  • libpurple
  • libcaca (optional)
  • inetutils-inetd (inetd mode only)
  • gstreamer (optional, cacacam)
  • farsight2 (optional, cacacam)

Download

Stable version

Package of the latest Minbif release is available on the Files page.

Minbif is also available in Debian, Ubuntu Archlinux and Gentoo.

Development version

You can download the development version with this command:
$ git clone git://git.symlink.me/pub/romain/minbif.git

Installation from sources

You can give several configuration options to make:

  • PREFIX=path — Installation prefix (default=/usr/local)
  • MAN_PREFIX=path — Manpages installation prefix (default=$PREFIX/share/man/man8)
  • CONF_PREFIX=path — Configuration files installation prefix (default=$PREFIX/etc/minbif)
  • DOC_PREFIX=path — Documentation files installation prefix (default=$PREFIX/share/doc/minbif)
  • ENABLE_MINBIF=(ON|OFF) — Compile minbif (default=ON).
  • ENABLE_CACA=(ON|OFF) — Enable the icon display feature with libcaca (default=ON).
  • ENABLE_VIDEO=(ON|OFF) — Enable the webcam video feature (default=OFF). It depends on ENABLE_CACA=ON.
  • ENABLE_PLUGIN=(ON|OFF) — Compile libpurple's plugins (default=OFF).
  • ENABLE_PAM=(ON|OFF) — Compile with PAM support (default=OFF).

Run:

$ make [PREFIX=path] [MAN_PREFIX=path] [CONF_PREFIX=path] [DOC_PREFIX=path] \
       [ENABLE_MINBIF=ON|OFF] [ENABLE_CACA=ON|OFF] [ENABLE_VIDEO=ON|OFF] \
       [ENABLE_PLUGIN=ON|OFF] [ENABLE_PAM=ON|OFF]
$ make install

Configuration

Copy the minbif.conf file and edit it. All parameters are commented.

Inetd

Run:

update-inetd --add '6667 stream tcp nowait username /usr/sbin/tcpd /usr/bin/minbif /etc/minbif/minbif.conf'

Note: username is the system user which run minbif

Fork daemon

Set the irc/type parameter in configuration to 2 (as daemon fork) and write a irc/daemon block to set the address and port to bind.

Now, run the minbif daemon:

minbif /path/to/minbif.conf

A new forked process will be created every time a new connection is established.

Note: there isn't (yet?) any fork limit. Your system is vulnerable to a fork bomb, so set the RLIMIT_NPROC ulimit parameter to prevent that way.

Support

Email

You can send an email to .

Mailing list

You can also subscribe to the mailing list and see all of the several posts in archives.

IRC

Join #minbif on the Freenode IRC network.

Bibliography

Also available in: HTML TXT