Newer Older
louiz’'s avatar
louiz’ committed
1 2 3 4 5 6 7 8 9 10 11 12 13
Version 7.0

 - Support PostgreSQL as a database backend. See below for migration tips.
 - Add a workaround for a bug in botan < 2.4 where session resumption
   would sometime result in a TLS decode error
 - Add a <x xmlns="…muc#user"/> node in our private MUC messages, to help
   clients distinguish between MUC and non-MUC messages.
 - Fix the identd outgoing responses: \r\n was missing, and some clients
   would ignore our messages entirely.
 - Fix the iq result sent at the end of a MAM response. Some clients (e.g.
   gajim) would throw an error as a result.

14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
Sqlite3 to PostgreSQL migration

If you used biboumi with the sqlite3 database backend and you want to
start using postgresql instead, follow these simple steps:

 - Make sure your Sqlite3 database has the correct format by running at
   least biboumi version 6.0 against this database. Indeed: biboumi can
   upgrade your database scheme by itself automatically when it starts, but
   the migration process can only migrate from the latest known schema,
   which is the one in version 6.x and 7.x.  If you are migrating from
   version 6.x or 7.x, you have nothing to do.
 - Start biboumi (at least version 7.0) with db_name configured to use
   your postgresql database: this will create an empty database, create all
   the tables with all the rights columns, ready to be filled.
 - Backup your database if you value it. The migration process will not
   write anything into it, so it your data should theorically be kept
   intact, but we never know.
 - Run the dump script found in biboumi’s sources:
   `<scripts/>`_. Its first and only argument must be the path
   to your sqlite3 database. For example run `./scripts/
   /var/lib/biboumi/biboumi.sqlite`. This will create, in your current
   directory, some sqlite files that contain instructions to be fed into
 - Import all the ouput files thusly created into your PostgreSQL, with
   something like this: `psql postgresql://user@password/biboumi < *.sql`.
   This takes a few minutes if your database is huge (if it contains many
   archived messages).

louiz’'s avatar
louiz’ committed
43 44
Version 6.1 - 2017-10-04
louiz’'s avatar
louiz’ committed
45 46 47 48 49

 - Fix compilation with botan 2.3
 - Fix compilation with very old distributions (such as debian wheezy or
   centos 6) that ship antique softwares (sqlite3 < 3.7.14)

louiz’'s avatar
louiz’ committed
50 51
Version 6.0 - 2017-09-17
52 53 54

 - The LiteSQL dependency was removed. Only libsqlite3 is now necessary
   to work with the database.
55 56 57
 - Some JIDs can be added into users’ rosters. The component JID tells if
   biboumi is started or not, and the IRC-server JIDs tell if the user is
   currently connected to that server.
58 59
 - The RecordHistory option can now also be configured for each IRC channel,
 - Add a global option to make all channels persistent.
louiz’'s avatar
louiz’ committed
61 62 63
 - The persistent_by_default configuration option has been added, this
   lets the administrator decide whether or not the rooms should be
   persistent or not by default, for all users.
 - Status code='332' is sent with the unavailable presences when biboumi is
   being shutdown or the connection to the IRC server is cut unexpectedly.
louiz’'s avatar
louiz’ committed
66 67
 - Support for botan version 1.11.x has been dropped, only version 2.x is
68 69
 - Invitations can now be sent to any JID, not only JIDs served by the biboumi
   instance itself.
louiz’'s avatar
louiz’ committed
70 71
 - The history limits sent by the client when they request to join a
   channel is now supported.

louiz’'s avatar
louiz’ committed
73 74
Version 5.0 - 2017-05-24
louiz’'s avatar
louiz’ committed

76 77 78 79 80 81 82
 - An identd server has been added.
 - Add a **persistent** option for channels. When a channel is configured
   as persistent, when the user leaves the room, biboumi stays idle and keeps
   saving the received messages in the archive, instead of leaving the channel
   entirely.  When the user re-joins the room later, biboumi sends the message
   history to her/him.  This feature can be used to make biboumi behave like
   an IRC bouncer.
louiz’'s avatar
louiz’ committed
83 84
 - Use the udns library instead of c-ares, for asynchronous DNS resolution.
   It’s still fully optional.
 - Update MAM implementation to version 6.0 (namespace mam:2)
louiz’'s avatar
louiz’ committed
86 87 88
 - If the client doesn’t specify any limit in its MAM and channel list request,
   the results returned by biboumi contain at most 100 messages, instead of
   the potentially huge complete result.
louiz’'s avatar
louiz’ committed
 - Multiline topics are now properly handled
 - Configuration options can be overridden by values found in the process env.
91 92
 - Botan’s TLS policies can be customized by the administrator, for each
   IRC server, with simple text files.
93 94
 - The IRC channel configuration form is now also available using the MUC
   configuration, in addition to the ad-hoc command.
95 96
 - Notices starting with [#channel] are considered as welcome messages coming
   from that channel, instead of private messages.
louiz’'s avatar
louiz’ committed

98 99 100 101 102 103
Version 4.3 - 2017-05-02

  - Fix a segmentation fault that occured when trying to connect to an IRC
    server without any port configured.

louiz’'s avatar
louiz’ committed
104 105 106 107 108
Version 4.2 - 2017-04-26

 - Fix a build issue when LiteSQL is absent from the system

louiz’'s avatar
louiz’ committed
109 110 111
Version 4.1 - 2017-03-21

 - Works with botan 2.x, as well as botan 1.11.x
louiz’'s avatar
louiz’ committed

louiz’'s avatar
louiz’ committed
114 115
Version 4.0 - 2016-11-09
louiz’'s avatar
louiz’ committed

117 118
 - The separator between the IRC nickname and the IRC server is now '%'
   instead of '!'. This makes things simpler (only one separator to
louiz’'s avatar
louiz’ committed
   remember). The distinction between a JID referring to a channel and a JID
120 121
   refering to a nickname is based on the first character (# or & by
   default, but this can be customized by the server with the ISUPPORT
louiz’'s avatar
louiz’ committed
louiz’'s avatar
louiz’ committed
123 124
 - Handle channel invitations in both directions.
 - Add support for `JID escaping <.>`.
125 126 127 128
 - Save all channel messages into the database, with an ad-hoc option to
   disable this feature.
 - When joining a room, biboumi sends an history of the most recents messages
   found in the database.
louiz’'s avatar
louiz’ committed
129 130 131
 - Channel history can be retrieved using Message Archive Management.
 - Result Set Management can be used to request only parts of the IRC channel

louiz’'s avatar
louiz’ committed
133 134
Version 3.0 - 2016-08-03
louiz’'s avatar
louiz’ committed

136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
 - Support multiple-nick sessions: a user can join an IRC channel behind
   one single nick, using multiple different clients, at the same time (as
   long as each client is using the same bare JID).
 - Database support for persistant per-user per-server configuration. Add
   `LiteSQL <>` as an optional
 - Add ad-hoc commands that lets each user configure various things
 - Support an after-connect command that will be sent to the server
   just after the user gets connected to it.
 - Support the sending of a PASS command.
 - Lets the users configure their username and realname, if the
   realname_customization is set to true.
 - The remote TLS certificates are checked against the system’s trusted
   CAs, unless the user used the configuration option that ignores these
 - Lets the user set a sha-1 hash to identify a server certificate that
   should always be trusted.
 - Add an outgoing_bind option.
 - Add an ad-hoc command to forcefully disconnect a user from one or
   more servers.
 - Let the user configure the incoming encoding of an IRC server (the
   default behaviour remains unchanged: check if it’s valid utf-8 and if
   not, decode as latin-1).
 - Support `multi-prefix <>`.
 - And of course, many bufixes.
 - Run unit tests and a test suite, build the RPM and check many things
   automatically using gitlab-ci.

louiz’'s avatar
louiz’ committed
165 166 167
Version 2.0 - 2015-05-29

louiz’'s avatar
louiz’ committed
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
 - List channels on an IRC server through an XMPP disco items request
 - Let the user send any arbitrary raw IRC command by sending a
   message to the IRC server’s JID.
 - By default, look for the configuration file as per the XDG
   basedir spec.
 - Support PING requests in all directions.
 - Improve the way we forward received NOTICEs by remembering to
   which users we previously sent a private message.  This improves the
   user experience when talking to NickServ.
 - Support joining key-protected channels
 - Setting a participant's role/affiliation now results in a change of IRC
   mode, instead of being ignored.  Setting Toto's affiliation to admin is
   now equivalent to “/mode +o Toto”
 - Fix the reconnection to the XMPP server to try every 2 seconds
   instead of immediately. This avoid hogging resources for nothing
 - Asynchronously resolve domain names by optionally using the DNS
   library c-ares.
 - Add a reload add-hoc command, to reload biboumi's configuration
 - Add a fixed_irc_server option.  With this option enabled,
   biboumi can only connect to the one single IRC server configured
louiz’'s avatar
louiz’ committed
188 189 190 191

Version 1.1 - 2014-07-16

louiz’'s avatar
louiz’ committed
 - Fix a segmentation fault when connecting to an IRC server using IPv6
louiz’'s avatar
louiz’ committed
193 194 195 196

Version 1.0 - 2014-07-12

louiz’'s avatar
louiz’ committed
197 198 199 200 201 202 203 204 205 206 207 208
 - First stable release.
 - Mostly complete MUC to IRC, and IRC to MUC support
 - Complete handling of private messages
 - Full IRC modes support: setting any IRC mode, and receiving notifications
   for every mode change
 - Verbose connection status notifications
 - Conversion from IRC formatting to XHTML-im
 - Ad-hoc commands support
 - Basic TLS support: auto-accepts all certificates, no cipher
   configuration, no way to force usage of TLS (it is used only if
   available, clear connection is automatically used as a fallback)
 - IPv6 support