[2.9.0-rc1] - 2021-01-02
We're pleased to be publishing the release candidate for 2.9.0 (the official release should follow in a week or so).
This release contains mostly bug fixes, with some enhancements to moderation tools.
This release includes changes to the config file format, all of which are fully backwards-compatible and do not require updating the file before upgrading. It includes no changes to the database file format.
Many thanks to @erincerys, @FiskFan1999, @mogad0n, and @tacerus for contributing patches, and to @ajaspers, @emersion, @FiskFan1999, @Jobe1986, @kylef, @mogad0n, @pcho, and @progval for reporting issues,
Config changes
- Added
lock-file
, which helps protect against accidentally starting multiple instances of Ergo. This is a no-op if unset. The recommended default value isircd.lock
, which (like the default datastore pathircd.db
) is relative to the working directory of the Ergo process. If yourdatastore.path
is absolute, this path (if set) should be absolute as well. (#1823) +C
(no channel-wide CTCP messages other than ACTION) is now a recommended default channel mode (#1851)- Added
exempt-sasl
boolean toserver.ip-check-script
; if enabled, IP check scripts are run only for connections without SASL, improving performance for registered users (#1888) hidden: true
is now the recommended default for operator definitions (#1730)
Changed
- The semantics of
+R
have been changed.+R
now only prevents unauthenticated users from joining, so unregistered users who have already joined can still speak. The old semantics are still available via+RM
(i.e.+R
together with the+M
"moderated-registered" mode). (#1858, thanks @ajaspers!) - Unauthenticated users matching a
+I
invite exception mask can now join+R
channels (#1871) - INVITE now exempts the user from
+b
bans (#1876, thanks @progval!) - NS SUSPEND now only requires only the
ban
operator capability, as opposed toaccreg
(#1828, #1839, thanks @mogad0n!)
Added
- SHA-256 certificate fingerprints can now be imported from Anope and Atheme (#1864, #1869, thanks @tacerus!)
- IP check scripts can now be run only for users that have not authenticated with SASL by the end of the handshake, improving performance for registered users (#1888)
- Logging into an unverified account with SASL sends the new
NOTE AUTHENTICATE VERIFICATION_REQUIRED
standard reply code (#1852, #1853, thanks @emersion!) - CS PURGE now sends a snotice (#1826, thanks @tacerus!)
- The
v
snomask is now used to send notifications about vhost changes initiated by operators (#1844, thanks @pcho!)
Fixed
- CAP LS and LIST responses after connection registration could be truncated in some cases; this has been fixed (#1872)
- Unprivileged users with both a password and a certfp could not remove their password with
NS PASSWD <password> * *
as expected; this has been fixed (#1883, #1884, thanks @FiskFan1999!) - RELAYMSG identifiers that were not already in their case-normalized form could not be muted with
+b m:
; this has been fixed (#1838, thanks @mogad0n!) - CS AMODE changes did not take immediate effect if
force-nick-equals-account
was disabled and the nick did not coincide with the account; this has been fixed (#1860, thanks @eskimo!) 315 RPL_ENDOFWHO
now sends the exact, un-normalized mask argument provided by the client (#1831, thanks @progval!)- A leading
$
character is now disallowed in new nicknames and account names, to avoid collision with the massmessage syntax (#1857, thanks @emersion!) - The deprecated
o
parameter ofWHO
now returns an empty list of results, instead of being ignored (#1730, thanks @kylef, @emersion, @progval!) - WHOX queries for channel oplevel now receive
*
instead of0
(#1866, thanks @Jobe1986!)
Internal
- Updated list of official release binaries: added Apple M1, OpenBSD x86-64, and Plan 9 x86-64, removed Linux armv7, FreeBSD x86-32, and Windows x86-32. (The removed platforms are still fully supported by Ergo; you can build them from source or ask us for help.) (#1833)
- Added an official Linux arm64 Docker image (#1855, thanks @erincerys!)
- Added service management files for OpenSolaris/Illumos (#1846, thanks @tacerus!)