v2.2.0 - WHOX and other delights
We're pleased to announce Oragono 2.2.0, a new stable release.
This release contains several notable enhancements, as well as bug fixes:
- Support for tracking seen/missed messages across multiple devices (#843)
- WHOX support contributed by @jesopo (#938)
- Authentication of users via external scripts (#1107)
Many thanks to @clukawski and @jesopo for contributing patches, to @ajaspers, @bogdomania, @csmith, @daurnimator, @emersonveenstra, @eskil, @eskimo, Geo-, @happyhater, @jesopo, @jwheare, @k4bek4be, @KoraggKnightWolf, @kylef, @LukeHoersten, @mogad0n, r3m, @RyanSquared, savoyard, and @wrmsr for reporting issues and helping test, and to our translators for contributing translations.
This release includes changes to the config file format, including one breaking change: timeout is no longer an acceptable value of accounts.nick-reservation.method. (If you were using it, we suggest strict as a replacement.) All other changes to the config file format are backwards compatible and do not require updating before restart.
This release includes a database change. If you have datastore.autoupgrade set to true in your configuration, it will be automatically applied when you restart Oragono. Otherwise, you can update the database manually by running oragono upgradedb (see the manual for complete instructions).
Removed
- Timeout-based nickname enforcement has been removed. We recommend
strictas the default enforcement method. Users who configuredtimeoutfor their account will be upgraded tostrict. Withaccounts.login-via-pass-commandenabled, clients lacking support for SASL can authenticate via thePASS(server password command) by sendingaccount_name:account_passwordas the server password. (#1027) - Native support for LDAP has been removed. LDAP is now supported via the external oragono-ldap plugin; see its repository page for details. (#1142, #1107)
Config changes
- Added
server.enforce-utf8, controlling whether the server enforces that messages be valid UTF-8; a value oftruefor this is now the recommended default (#1151) - Added
history.tagmsg-storagefor configuring which TAGMSG are stored in history; if this is not configured, TAGMSG will not be stored (#1172) - All TLS certificate fingerprints in the config file are now named
certfpinstead offingerprint(the old name offingerprintis still accepted) (#1050, thanks @RyanSquared!) - Added
accounts.auth-scriptsection for configuring external authentication scripts (#1107, thanks @daurnimator!) - Removed
accounts.ldapsection for configuring LDAP; LDAP is now available via the auth-script plugin interface (#1142) - Added
defconoperator capability, allowing use of the new/DEFCONcommand (#328) - Default
awaylen,kicklen, andtopiclenlimits now reflect the 512-character line limit (#1112, thanks @k4bek4be!) - Added
extjwtsection for configuring the EXTJWT extension (#948, #1136) login-via-pass-command: trueis now a recommended default (#1186)
Added
- Added support for WHOX, contributed by @jesopo (#938, thanks!)
- Added support for tracking missed messages across multiple devices; see the "history" section of the manual for details (#843, thanks @jwheare and @wrmsr!)
- Added
/NICKSERV SUSPENDand/NICKSERV UNSUSPENDcommands, allowing operators to suspend access to an abusive user account (#1135) - Added support for external authentication systems, via subprocess ("auth-script") invocation (#1107, thanks @daurnimator!)
- Added the
/DEFCONcommand, allowing operators to respond to spam or DoS attacks by disabling features at runtime without a rehash. (This feature requires that the operator have a newly defined capability, nameddefcon; this can be added to the appropriate oper blocks in the config file.) (#328, thanks @bogdomania!) - Added support for the EXTJWT draft extension, allowing Oragono to be integrated with other systems like Jitsi (#948, #1136)
- Services (NickServ, ChanServ, etc.) now respond to CTCP VERSION messages (#1055, thanks @jesopo!)
- Added
BOTISUPPORT token, plus aBflag for bots in352 RPL_WHOREPLY(#1117) - Added support for the
+Tno-CTCP user mode (#1007, thanks @clukawski!) - Added support for persisting the realname of always-on clients (#1065, thanks @clukawski!)
- Added a warning on incorrect arguments to
/NICKSERV REGISTER(#1179, thanks @LukeHoersten!) /NICKSERV SET PASSWORDnow sends a warning (#1208)
Fixed
- Fixed channels with only invisible users not being displayed in
/LISToutput (#1161, thanks @bogdomania!) - Fixed
INVITEnot overriding a+bban (#1168) - Fixed incorrect
CHGHOSTlines during authentication with/NICKSERV IDENTIFYunder some circumstances (#1108, thanks Geo-!) - Fixed incorrect
CHGHOSTlines sent to users during connection registration (#1125, thanks @jesopo!) - Fixed a number of issues affecting the
znc.in/playbackcapability, in particular restoring compatibility with Palaver (#1205, thanks @kylef!) - Fixed interaction of auto-away with the regular
/AWAYcommand (#1207) - Fixed an incorrect interaction between always-on and
/NS SAREGISTER(#1216) - Fixed a race condition where nicknames of signed-out users could remain in the channel names list (#1166, thanks @eskimo!)
- Fixed the last line of the MOTD being truncated in the absence of a terminating
\n(#1167, thanks @eskimo!) - Fixed
away-notifylines not being sent on channel JOIN (#1198, thanks savoyard!) - Fixed incorrect source of some nickserv messages (#1185)
- Fixed idle time being updated on non-PRIVMSG commands (thanks r3m and @happyhater!)
- Fixed
/NICKSERV UNREGISTERand/NICKSERV ERASEnot deleting stored user modes (#1157)
Security
- Connections to an STS-only listener no longer reveal the exact server version or server creation time (#802, thanks @csmith!)
Changed
/DLINEnow operates on individual client connections (#1135)- When using the multiclient feature, each client now has its own independent
MONITORlist (#1053, thanks @ajaspers!) MONITOR Lnow lists the nicknames in the form they were originally sent withMONITOR +, without casefolding (#1083)- We now send the traditional
445 ERR_SUMMONDISABLEDand446 ERR_USERSDISABLEDin response to theSUMMONandUSERScommands (#1078, thanks @KoraggKnightWolf!) - RPL_ISUPPORT parameters with no values are now sent without an
=(#1067, #1069, #1091, thanks @KoraggKnightWolf and @jesopo!) - TAGMSG storage is now controlled via the
history.tagmsg-storageconfig block (#1172) /NICKSERV CERT ADDwith no argument now adds the user's current TLS certificate fingerprint, when applicable (#1059, thanks @emersonveenstra!)