diff options
-rw-r--r-- | CHANGELOG.rst | 306 | ||||
-rw-r--r-- | INSTALL.rst | 4 |
2 files changed, 154 insertions, 156 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c619c00..34966c2 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,15 +1,15 @@ 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. +- 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. Sqlite3 to PostgreSQL migration ------------------------------- @@ -17,192 +17,192 @@ 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/dump_sqlite3.sh>`_. Its first and only argument must be the path - to your sqlite3 database. For example run `./scripts/dump_sqlite3.sh - /var/lib/biboumi/biboumi.sqlite`. This will create, in your current - directory, some sqlite files that contain instructions to be fed into - postgresql. - - 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). +- 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/dump_sqlite3.sh>`_. Its first and only argument must be the path + to your sqlite3 database. For example run `./scripts/dump_sqlite3.sh + /var/lib/biboumi/biboumi.sqlite`. This will create, in your current + directory, some sqlite files that contain instructions to be fed into + postgresql. +- 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). Version 6.1 - 2017-10-04 ======================== - - 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) +- 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) Version 6.0 - 2017-09-17 ======================== - - The LiteSQL dependency was removed. Only libsqlite3 is now necessary - to work with the database. - - 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. - - The RecordHistory option can now also be configured for each IRC channel, - individually. - - Add a global option to make all channels persistent. - - 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. - - Support for botan version 1.11.x has been dropped, only version 2.x is - supported. - - Invitations can now be sent to any JID, not only JIDs served by the biboumi - instance itself. - - The history limits sent by the client when they request to join a - channel is now supported. +- The LiteSQL dependency was removed. Only libsqlite3 is now necessary + to work with the database. +- 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. +- The RecordHistory option can now also be configured for each IRC channel, + individually. +- Add a global option to make all channels persistent. +- 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. +- Support for botan version 1.11.x has been dropped, only version 2.x is + supported. +- Invitations can now be sent to any JID, not only JIDs served by the biboumi + instance itself. +- The history limits sent by the client when they request to join a + channel is now supported. Version 5.0 - 2017-05-24 ======================== - - 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. - - 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) - - 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. - - Multiline topics are now properly handled - - Configuration options can be overridden by values found in the process env. - - Botan’s TLS policies can be customized by the administrator, for each - IRC server, with simple text files. - - The IRC channel configuration form is now also available using the MUC - configuration, in addition to the ad-hoc command. - - Notices starting with [#channel] are considered as welcome messages coming - from that channel, instead of private messages. +- 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. +- 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) +- 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. +- Multiline topics are now properly handled +- Configuration options can be overridden by values found in the process env. +- Botan’s TLS policies can be customized by the administrator, for each + IRC server, with simple text files. +- The IRC channel configuration form is now also available using the MUC + configuration, in addition to the ad-hoc command. +- Notices starting with [#channel] are considered as welcome messages coming + from that channel, instead of private messages. Version 4.3 - 2017-05-02 ======================== - - Fix a segmentation fault that occured when trying to connect to an IRC - server without any port configured. + - Fix a segmentation fault that occured when trying to connect to an IRC + server without any port configured. Version 4.2 - 2017-04-26 ======================== - - Fix a build issue when LiteSQL is absent from the system +- Fix a build issue when LiteSQL is absent from the system Version 4.1 - 2017-03-21 ======================== - - Works with botan 2.x, as well as botan 1.11.x +- Works with botan 2.x, as well as botan 1.11.x Version 4.0 - 2016-11-09 ======================== - - The separator between the IRC nickname and the IRC server is now '%' - instead of '!'. This makes things simpler (only one separator to - remember). The distinction between a JID referring to a channel and a JID - refering to a nickname is based on the first character (# or & by - default, but this can be customized by the server with the ISUPPORT - extension). - - Handle channel invitations in both directions. - - Add support for `JID escaping <.http://www.xmpp.org/extensions/xep-0106.html>`. - - 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. - - Channel history can be retrieved using Message Archive Management. - - Result Set Management can be used to request only parts of the IRC channel - list. +- The separator between the IRC nickname and the IRC server is now '%' + instead of '!'. This makes things simpler (only one separator to + remember). The distinction between a JID referring to a channel and a JID + refering to a nickname is based on the first character (# or & by + default, but this can be customized by the server with the ISUPPORT + extension). +- Handle channel invitations in both directions. +- Add support for `JID escaping <.http://www.xmpp.org/extensions/xep-0106.html>`. +- 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. +- Channel history can be retrieved using Message Archive Management. +- Result Set Management can be used to request only parts of the IRC channel + list. Version 3.0 - 2016-08-03 ======================== - - 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 <https://dev.louiz.org/projects/litesql>` as an optional - dependency. - - 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 - checks. - - 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 <http://ircv3.net/specs/extensions/multi-prefix-3.1.html>`. - - And of course, many bufixes. - - Run unit tests and a test suite, build the RPM and check many things - automatically using gitlab-ci. +- 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 <https://dev.louiz.org/projects/litesql>` as an optional + dependency. +- 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 + checks. +- 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 <http://ircv3.net/specs/extensions/multi-prefix-3.1.html>`. +- And of course, many bufixes. +- Run unit tests and a test suite, build the RPM and check many things + automatically using gitlab-ci. Version 2.0 - 2015-05-29 ======================== - - 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 +- 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 Version 1.1 - 2014-07-16 ======================== - - Fix a segmentation fault when connecting to an IRC server using IPv6 +- Fix a segmentation fault when connecting to an IRC server using IPv6 Version 1.0 - 2014-07-12 ======================== - - 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 +- 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 diff --git a/INSTALL.rst b/INSTALL.rst index b030697..0d99d4c 100644 --- a/INSTALL.rst +++ b/INSTALL.rst @@ -32,9 +32,7 @@ libiconv_ libuuid_ Generate unique IDs -sqlite3_ -or -libpq_ +sqlite3_ or libpq_ Provides a way to store various options and messages archives in a database. Each user of the gateway can store their own values (for example their prefered port, or their IRC password). Without this |