~singpolyma/biboumi

ref: fdb3e739b0f1969e83250d98bda27b938a207f81 biboumi/CHANGELOG.rst -rw-r--r-- 14.1 KiB
fdb3e739 — louiz’ Typos: negociat… -> negotiat… 1 year, 7 months ago
                                                                                
5900c19c louiz’
579d46f7 louiz’
e7447106 louiz’
6174ceb4 louiz’
edcd80cc louiz’
64a393eb louiz’
21a79b7b louiz’
09b10cc8 louiz’
b68f3605 Jonas Schäfer
4d6fdb07 louiz’
64a393eb louiz’
a43fb352 louiz’
a8cd2414 louiz’
ed36c265 louiz’
7f2e74c0 louiz’
23c96acc louiz’
f6dd3c46 louiz’
ac8cd708 louiz’
760076a3 louiz’
d3eda687 louiz’
1c4620d9 louiz’
08fabd0a louiz’
cb831788 louiz’
063cfcfb louiz’
cb831788 louiz’
1236b8a0 louiz’
158d743b louiz’
bb476f4a louiz’
8f74d4dd louiz’
d7427fc9 louiz’
619c991a louiz’
b70136b9 Emmanuel Gil Peyrot
7592d966 louiz’
d887baa0 louiz’
3e29dd39 louiz’
d887baa0 louiz’
97c8e2fe louiz’
23e51e81 louiz’
6e1af8b0 louiz’
bb2dd2b6 louiz’
32308666 louiz’
b4b9828d louiz’
bb2dd2b6 louiz’
e4122880 louiz’
32308666 louiz’
e4122880 louiz’
aa65cfd1 louiz’
83aef94a louiz’
32308666 louiz’
83aef94a louiz’
c1984733 louiz’
3d1e85fd louiz’
32308666 louiz’
3d1e85fd louiz’
23a33721 louiz’
085c858c louiz’
32308666 louiz’
085c858c louiz’
0a8a77e6 louiz’
70ecb0f0 louiz’
0a8a77e6 louiz’
ea65b43c louiz’
32308666 louiz’
ea65b43c louiz’
54bb67b1 louiz’
32308666 louiz’
54bb67b1 louiz’
9634cdab louiz’
f9eb534d louiz’
32308666 louiz’
06d5a5a3 louiz’
0f14fe83 louiz’
b66c006a louiz’
32308666 louiz’
cf9104e3 louiz’
62c88a62 louiz’
2f495a60 Florent Le Coz
32308666 louiz’
12eeb4d1 Florent Le Coz
62c88a62 louiz’
cf32446d Florent Le Coz
32308666 louiz’
cf32446d Florent Le Coz
62c88a62 louiz’
fa74493c Florent Le Coz
32308666 louiz’
1
2
3
4
5
6
7
8
9
10
11
12
13
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
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
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
Version 10.0
============

For users
---------
- Direct messages are always sent to the user's bare JID. It’s now the job
  of the XMPP server to forward these messages to all online resources.
- Private messages are now always received from the server-wide JID. You
  can still use the in-room JID (#chan%irc@biboumi/NickName) to send a
  private message but the response you will receive will come from
  nickname%irc@biboumi.

For admins
----------
- Command line option --test-config (or -t) has been added. When used,
  biboumi will just exit without any error if the configuration is correct

Version 9.0 - 2020-09-22
========================

For users
---------
- Messages reflections are now properly cut if the body was cut before
  being to sent to IRC
- Messages from unjoined resources are now rejected instead of being accepted.
  This helps clients understand that they are not in the room (because of
  some connection issue for example).
- All commands sent to IRC servers are now throttled to avoid being
  disconnected for excess flood. The limit value can be customized using the
  ad-hoc configuration form on a server JID.
- Support for XEP-0410 Self-Ping Optimization. This will prevent clients
  which use self-ping from dropping out of the MUC if another client with
  bad connectivity is also joined from the same account.
- SASL support has been added. A new field in the Configure ad-hoc command
  lets you set a password that will be used to authenticate to the nick
  service. This replaces the cumbersome and imperfect NickServ method.

For admins
----------
- SIGHUP is now caught and reloads the configuration like SIGUSR1 and 2.
- Add a verify_certificate policy option that lets the admin disable
  certificate validation per-domain.
- The WatchdogSec value in the biboumi.service file (for systemd) now
  defaults to the empty string, which means “disabled”.  This value can
  still be set at configure time by passing the option "-DWATCHDOG_SEC=20”
  to cmake, if you want to enable the systemd watchdog.

For developers
--------------
- The end-to-end tests have been refactored, cleaned and simplified a lot.
  A tutorial and a documentation have been written. It should now be easy
  to write a test that demonstrates a bug or a missing feature.

Version 8.5 - 2020-05-09
========================

- Fix a build failure with GCC 10

Version 8.4 - 2020-02-25
========================

- Fix a possible crash that could be caused by a very well timed identd
  query

Version 8.3 - 2018-06-01
========================

- The global ad-hoc configure command is now available on biboumi’s JID in
  fixed_irc_server mode.

Version 8.2 - 2018-05-23
========================

- The users are not able to bypass the fixed mode by just configuring a
  different Address for the IRC server anymore.

Version 8.1 - 2018-05-14
========================

- Fix a crash on a raw NAMES command

Version 8.0 - 2018-05-02
========================

- GCC 4.9 or lower are not supported anymore. The minimal version is 5.0
- Add a complete='true' in MAM’s iq result when appropriate
- The archive ordering now only relies on the value of the ID, not the
  date. This means that if you manually import archives in your database (or
  mess with it somehow), biboumi will not work properly anymore, if you
  don’t make sure the ID of everything in the muclogline table is
  consistent.
- The “virtual” channel with an empty name (for example
  %irc.freenode.net@biboumi) has been entirely removed.
- Add an “Address” field in the servers’ configure form. This lets
  the user customize the address to use when connecting to a server.
  See https://lab.louiz.org/louiz/biboumi/issues/3273 for more details.
- Messages id are properly reflected to the sender
- We now properly deal with a PostgreSQL server restart: whenever the
  connection is lost with the server, we try to reconnect and re-execute the
  query once.
- A Nick field has been added in the IRC server configuration form, to let
  the user force a nickname whenever a channel on the server is joined.
- Multiple admins can now be listed in the admin field, separated with a colon.
- Missing fields in a data-form response are now properly interpreted as
  an empty value, and not the default value. Gajim users were not able to
  empty a field of type text-multi because of this issue.
- Fix an uncaught exception with botan, when policy does not allow any
  available ciphersuite.
- When the connection gets desynchronized and tries to re-join while
  biboumi thinks it has never left, biboumi now sends the whole standard
  join sequence (history, user-list, etc).

Version 7.2 - 2018-01-24
========================

- Fix compilation with gcc 4.9. This is the last version to support this
  old version.

Version 7.1 - 2018-01-22
========================

- Fix a crash happening if a user cancels a non-existing ad-hoc session

Version 7.0 - 2018-01-17
========================

- 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.
- log_level configuration option is no longer ignored if the logs are written
  into journald

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).

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)

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.

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.

Version 4.3 - 2017-05-02
========================

- 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

Version 4.1 - 2017-03-21
========================

- 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.

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.


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

Version 1.1 - 2014-07-16
========================

- 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