Biboumi 6.0

Biboumi 6.0 was just released.

You can download it on the official website, and view the full changelog.

New features

This release is not very big and does not include many important changes. But here are a few useful new features that can improve your experience when using the gateway.

Roster

You can now add some biboumi’s JIDs in your own roster to have some useful information about the availability of the gateway.

You can add the gateway own’s JID (like biboumi.example.com). This JID will become online whenever the gateway is started, and goes offline whenever it is shut down.

You can also add any IRC-server JID (like chat.freenode.net@biboumi.example.com). This JID will become online whenever you (one of your presences) is connected to this IRC server. This helps you keep track of what connection you are keeping alive.

Global persistent channels

By a popular demand, there’s now a per-user option to make all channels persistent by default. This means that, if this option is set to true, all channels will be persistent (biboumi will stay connected, even if you remove all your resources from that channel), unless you explicitely set a specific channel to be non-persistent.

With this, comes an admin option (persistent_by_default, found in the configuration file) to make all channels persistent by default for all users. This is useful if you maintain a service for a few users that won’t be able to deal with the ad-hoc command to make them persistent by default.

History limit

The history limit requested by the client when joining a channel is now supported.

The ad-hoc option to specify the maximum limit is still there, and will still be enforced. But the client can now specify that it wants no history at all, and just use MAM directly because it is a lot more flexible (and should probably be the prefered way to get the history, for any modern XMPP client).

LiteSQL dependency dropped

Biboumi should now be a lot easier to install and package, since we do not require litesql at all. Only libsqlite3 is needed if you want to have all the features provided by the database (ad-hoc commands to configure many things, archives (using MAM), etc).

I decided to write my own (and very very minimalist) ORM directly in C++, inside biboumi, using libsqlite3 only because I was tired of maintaining my fork of litesql, and that was an other dependency that was hard to get on many distros (if we wanted to package biboumi on debian with the database support, for example, we would need to package litesql as well…).

This is only an install/packaging improvement (the user experience stays the same, the database does not need to be migrated or anything), but I think it’s an important one, for the future of biboumi.

And more

Invitations are no longer limited to other users of the gateway, the code has been simplified by dropping the support for botan 1.11.x (only 2.x is supported now), an option to disable the archives for a specific channel has been added.

For the future

I may add the support for postgresql, in addition of sqlite3. I’m not 100% sure this is useful, but it has been asked by a few people, so… If you want this feature, please raise your voice in the bug report.

Other than that, I consider biboumi to be almost feature-complete. Nothing dramatic or revolutionary will come, only a few useful little features or fixes. You can see the list of features I intend to add in version 7.0 here. If you think a feature is important for you, you can upvote it, or even add a comment, to explain you think this should be a priority.