Skip to content


Choose a tag to compare
@slingamn slingamn released this 09 Jan 06:58
· 385 commits to master since this release

We're pleased to be publishing 2.9.0, a new stable release. 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 is ircd.lock, which (like the default datastore path ircd.db) is relative to the working directory of the Ergo process. If your datastore.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 to server.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)


  • 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 to accreg (#1828, #1839, thanks @mogad0n!)


  • 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!)


  • 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 of WHO now returns an empty list of results, instead of being ignored (#1730, thanks @kylef, @emersion, @progval!)
  • WHOX queries for channel oplevel now receive * instead of 0 (#1866, thanks @Jobe1986!)


  • 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!)