Releases: ergochat/ergo
v2.10.0-rc2
Testing of 2.10.0-rc1 revealed serious bugs in the new draft/read-marker implementation. Consequently, we're publishing a second release candidate that fixes these issues. The final release is expected within a week or so; we apologize for the delay.
Fixed
v2.10.0-rc1
We're pleased to be publishing the release candidate for 2.10.0 (the official release should follow in a week or so).
This release contains no changes to the config file format or database file format.
Many thanks to @csmith, @FiskFan1999, @Mikaela, @progval, and @thesamesam for contributing patches, and to @emersion, @eskimo, @FiskFan1999, @jigsy1, @Mikaela, @mogad0n, @progval, and @xnaas for reporting issues and helping test.
Config changes
- For better interoperability with Goguma, the recommended value of
history.chathistory-maxmessageshas been increased to1000(previously100) (#1919)
Changed
- Persistent voice (
AMODE +v) in a channel is now treated as a permanent invite (i.e. overriding+ion the channel) (#1901, thanks @eskimo!) - If you are
+R, sending a direct message to an anonymous user allows them to send you replies (#1687, #1688, thanks @Mikaela and @progval!) 0is no longer valid as a nickname or account name, with a grandfather exception if it was registered on a previous version of Ergo (#1896)- Implemented the ratified version of the bot mode spec; the tag name is now
botinstead ofdraft/bot(#1938) - Privileged WHOX on a user with multiclient shows an arbitrarily chosen client IP address, comparable to WHO (#1897)
SAREGISTERis allowed even underDEFCONlevels 4 and lower (#1922)- Operators with the
historycapability are now exempted from time cutoff restrictions on history retrieval (#1593, #1955)
Added
- Added
draft/read-markercapability, allowing server-side tracking of read messages for synchronization across multiple clients. (#1926, thanks @emersion!) INFOnow includes the server start time (#1895, thanks @xnaas!)- Added
ACCEPTcommand modeled on Charybdis/Solanum, allowing+Rusers to whitelist users who can DM them (#1688, thanks @Mikaela!) - Added
NS SAVERIFYfor operators to manually complete an account verification (#1924, #1952, thanks @tacerus!)
Fixed
- Having the
samodeoperator capability made all uses of theKICKcommand privileged (i.e. overriding normal channel privilege checks); this has been fixed (#1906, thanks @pcho!) - Fixed
LIST <nalways returning no results (#1934, thanks @progval and @mitchr!) - NickServ commands are now more clear about when a nickname is unavailable because it was previously registered and unregistered (#1886, thanks @Mikaela!)
- Fixed KLINE'd clients producing a
QUITsnotice without a correspondingCONNECTsnotice (#1941, thanks @tacerus, @xnaas!) - Fixed incorrect handling of long/multiline
319 RPL_WHOISCHANNELSresponses (#1935, thanks @Mikaela!) - Fixed
LISTreturning403 ERR_NOSUCHCHANNELfor a nonexistent channel; the correct response is an empty list (#1928, thanks @emersion!) - Fixed
+s("secret") channels not appearing inLISTeven when the client is already a member (#1911, #1923, thanks @jigsy1 and @FiskFan1999!) - Fixed a spurious success message in
HISTSERV DELETEby always requiring a consistent number of parameters (#1881, #1927, thanks @FiskFan1999!) - Sending the empty string as a nickname would not always produce the expected error numeric
431 ERR_NONICKNAMEGIVEN; this has been fixed (#1933, #1936, thanks @kylef!) znc.in/playbacktimestamps are now parsed as pairs of exact integers, not as floats (#1918)
Internal
- Upgraded to Go 1.18 (#1925)
- Upgraded Alpine version in official Docker image
- Fixed some issues in the example OpenRC init scripts (#1914, #1920, thanks @thesamesam!)
v2.9.1
Ergo 2.9.1 is a bugfix release, fixing a regression introduced in 2.9.0. We regret the oversight.
This release includes no changes to the config file format or database format relative to 2.9.0.
Many thanks to @FiskFan1999 for reporting the issue.
Fixed
- Every use of NS SAREGISTER would fail; this has been fixed (#1898, thanks @FiskFan1999!)
v2.9.0
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 isircd.lock, which (like the default datastore pathircd.db) is relative to the working directory of the Ergo process. If yourdatastore.pathis 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-saslboolean toserver.ip-check-script; if enabled, IP check scripts are run only for connections without SASL, improving performance for registered users (#1888) hidden: trueis now the recommended default for operator definitions (#1730)
Changed
- The semantics of
+Rhave been changed.+Rnow 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.+Rtogether with the+M"moderated-registered" mode). (#1858, thanks @ajaspers!) - Unauthenticated users matching a
+Iinvite exception mask can now join+Rchannels (#1871) - INVITE now exempts the user from
+bbans (#1876, thanks @progval!) - NS SUSPEND now only requires only the
banoperator 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_REQUIREDstandard reply code (#1852, #1853, thanks @emersion!) - CS PURGE now sends a snotice (#1826, thanks @tacerus!)
- The
vsnomask 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-accountwas disabled and the nick did not coincide with the account; this has been fixed (#1860, thanks @eskimo!) 315 RPL_ENDOFWHOnow 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
oparameter ofWHOnow 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!)
v2.9.0-rc1
[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.pathis 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-saslboolean toserver.ip-check-script; if enabled, IP check scripts are run only for connections without SASL, improving performance for registered users (#1888) hidden: trueis now the recommended default for operator definitions (#1730)
Changed
- The semantics of
+Rhave been changed.+Rnow 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.+Rtogether with the+M"moderated-registered" mode). (#1858, thanks @ajaspers!) - Unauthenticated users matching a
+Iinvite exception mask can now join+Rchannels (#1871) - INVITE now exempts the user from
+bbans (#1876, thanks @progval!) - NS SUSPEND now only requires only the
banoperator 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_REQUIREDstandard reply code (#1852, #1853, thanks @emersion!) - CS PURGE now sends a snotice (#1826, thanks @tacerus!)
- The
vsnomask 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-accountwas disabled and the nick did not coincide with the account; this has been fixed (#1860, thanks @eskimo!) 315 RPL_ENDOFWHOnow 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
oparameter ofWHOnow 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!)
v2.8.0
We're pleased to be publishing Ergo 2.8.0. This release contains many fixes and enhancements, plus one major user-facing feature: user-initiated password resets via e-mail (#734).
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.
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 Ergo. Otherwise, you can update the database manually by running ergo upgradedb (see the manual for complete instructions).
As part of this release, our official Docker images have moved from Docker Hub to the GitHub Container Registry, at ghcr.io/ergochat/ergo. The stable and master tags correspond to the respective branches. Tagged releases (e.g. v2.8.0) are available under the corresponding named tags.
Many thanks to @ajaspers, @delthas, @mogad0n, @majiru, @ProgVal, and @tacerus for contributing patches, to @ajaspers for contributing code review, to @ajaspers, @cxxboy, @dallemon, @emersion, @erikh, @eskimo, @jwheare, @kylef, @Mikaela, @mogad0n, @MystaraTheGreat, @ProgVal, @tacerus, @tamiko, and @xnaas for reporting issues and helping test, and to our translators for contributing translations.
Config changes
- Added
accounts.registration.email-verification.password-resetblock to configure e-mail-based password reset (#734, #1779) - Added
accounts.registration.email-verification.timeoutto impose a timeout on e-mail sending; the recommended default value is60s(60 seconds) (#1741) - Added
server.suppress-lusersto allow hiding the LUSERS counts (#1802, thanks @eskimo!)
Security
- Added
accounts.registration.email-verification.timeoutto impose a timeout on e-mail sending; the recommended default value is60s(60 seconds) (#1741)
Added
- Added user-initiated password resets via email (#734). This requires e-mail verification of accounts, and must additionally be enabled explicitly: see the
email-verificationblock indefault.yamlfor more information. - Added the
draft/extended-monitorcapability (#1761, thanks @delthas!) - When doing direct sending of verification emails, make email delivery failures directly visible to the end user (#1659, #1741, thanks @tacerus!)
- For operators,
NS INFOnow shows the user's email address (you can also view your own address) (#1677, thanks @ajaspers!) - Operators with the appropriate permissions will now see IPs in
/WHOWASoutput (#1702, thanks @ajaspers!) - Added the
+s dsnomask, for operators to receive information about session disconnections that do not result in a full QUIT (#1709, #1728, thanks @mogad0n!) - Added support for the
SCRAM-SHA-256SASL authentication mechanism (#175). This mechanism is not currently advertised inCAP LSoutput because IRCCloud handles it incorrectly. We also recommend against using SCRAM because of its lack of genuine security benefits. /UBAN LISToutput now includes the time the ban was created (#1725, #1755, thanks @Mikaela and @mogad0n!)- Added support for running as a
Type=notifysystemd service (#1733) - Added a warning to help users detect incorrect uses of
/QUOTE(#1530)
Fixed
- The
+M(only registered users can speak) channel mode did not work; this has been fixed (#1696, thanks @Mikaela!) - A channel
/RENAMEthat only changed the case of the channel would delete the channel registration; this has been fixed (#1751, thanks @Mikaela!) - Fixed
allow-truncation: truenot actually allowing truncation of overlong lines (#1766, thanks @tacerus!) - Fixed several pagination bugs in
CHATHISTORY(#1676, thanks @emersion!) - Fixed support for kicking multiple users from a channel on the same line, the
TARGMAX005 parameter that advertises this, and the default kick message (#1748, #1777, #1776), thanks @ProgVal!) - Fixed
/SAMODEon a channel not producing a snomask (#1787, thanks @mogad0n, @ajaspers!) - Adding
+fto a channel withSAMODEused to require channel operator privileges on the receiving channel; this has been fixed (#1825, thanks @Mikaela!) - Fixed parameters sent with
697 ERR_LISTMODEALREADYSETand698 ERR_LISTMODENOTSET(#1727, thanks @kylef!) - Fixed parameter sent with
696 ERR_INVALIDMODEPARAM(#1773, thanks @kylef!) - Fixed handling of channel mode
+kwith an empty parameter (#1774, #1775, thanks @ProgVal!) WHOWASwith an empty string as the parameter now produces an appropriate error response (#1703, thanks @kylef!)- Fixed error response to an empty realname on the
USERline (#1778, thanks @ProgVal!) - Fixed
/UBAN ADDof a NUH mask (i.e. a k-line) not killing affected clients (#1736, thanks @mogad0n!) - Fixed buggy behavior when
+iis configured as a default mode for channels (#1756, thanks @Mikaela!) - Fixed issues with
channels.operator-only-creationnot respecting/SAJOINor always-on clients (#1757) - Protocol-breaking operator vhosts are now disallowed during config validation (#1722)
- Fixed error message associated with
/NS PASSWDon a nonexistent account (#1738, thanks @Mikaela!) - Fixed an incorrect
CHATHISTORYfail message (#1731, thanks @ProgVal!) - Fixed a panic on an invalid configuration case (#1714, thanks @erikh!)
Changed
- Upgraded the
draft/registercapability to the latestdraft/account-registrationiteration (#1740) - Unregistered users with
+vor higher can now speak in+R(registered-only) channels (#1715, thanks @Mikaela and @ajaspers!) - For always-on clients with at least one active connection,
338 RPL_WHOISACTUALLYnow displays an arbitrarily chosen client IP address (#1650, thanks @MystaraTheGreat!) #can no longer be used in new account names and nicknames, or as the RELAYMSG separator (#1679)- The
oragono.io/nopecapability was renamed toergo.chat/nope(#1793)
Removed
neveris no longer accepted as a value of thereplay-joinsNickServ setting (/NS SET replay-joins); user accounts which enabled this setting have been reverted to the default value ofcommands-only(#1676)
Internal
v2.8.0-rc1
We're pleased to be publishing the release candidate for 2.8.0 (the official release should follow in a week or so).
This release contains many fixes and enhancements, plus one major user-facing feature: user-initiated password resets via e-mail (#734).
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.
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 Ergo. Otherwise, you can update the database manually by running ergo upgradedb (see the manual for complete instructions).
As part of this release, our official Docker images will move from Docker Hub to the GitHub Container Registry at ghcr.io; more details will be forthcoming with the final release.
Many thanks to @ajaspers, @delthas, @mogad0n, @majiru, @ProgVal, and @tacerus for contributing patches, to @ajaspers for contributing code review, to @ajaspers, @cxxboy, @dallemon, @emersion, @erikh, @eskimo, @jwheare, @kylef, @Mikaela, @mogad0n, @MystaraTheGreat, @ProgVal, @tacerus, @tamiko, and @xnaas for reporting issues and helping test, and to our translators for contributing translations.
Config changes
- Added
accounts.registration.email-verification.password-resetblock to configure e-mail-based password reset (#734, #1779) - Added
accounts.registration.email-verification.timeoutto impose a timeout on e-mail sending; the recommended default value is60s(60 seconds) (#1741) - Added
server.suppress-lusersto allow hiding the LUSERS counts (#1802, thanks @eskimo!)
Security
- Added
accounts.registration.email-verification.timeoutto impose a timeout on e-mail sending; the recommended default value is60s(60 seconds) (#1741)
Added
- Added user-initiated password resets via email (#734). This requires e-mail verification of accounts, and must additionally be enabled explicitly: see the
email-verificationblock indefault.yamlfor more information. - Added the
draft/extended-monitorcapability (#1761, thanks @delthas!) - When doing direct sending of verification emails, make email delivery failures directly visible to the end user (#1659, #1741, thanks @tacerus!)
- For operators,
NS INFOnow shows the user's email address (you can also view your own address) (#1677, thanks @ajaspers!) - Operators with the appropriate permissions will now see IPs in
/WHOWASoutput (#1702, thanks @ajaspers!) - Added the
+s dsnomask, for operators to receive information about session disconnections that do not result in a full QUIT (#1709, #1728, thanks @mogad0n!) - Added support for the
SCRAM-SHA-256SASL authentication mechanism (#175). This mechanism is not currently advertised inCAP LSoutput because IRCCloud handles it incorrectly. We also recommend against using SCRAM because of its lack of genuine security benefits. /UBAN LISToutput now includes the time the ban was created (#1725, #1755, thanks @Mikaela and @mogad0n!)- Added support for running as a
Type=notifysystemd service (#1733) - Added a warning to help users detect incorrect uses of
/QUOTE(#1530)
Fixed
- The
+M(only registered users can speak) channel mode did not work; this has been fixed (#1696, thanks @Mikaela!) - A channel
/RENAMEthat only changed the case of the channel would delete the channel registration; this has been fixed (#1751, thanks @Mikaela!) - Fixed
allow-truncation: truenot actually allowing truncation of overlong lines (#1766, thanks @tacerus!) - Fixed several pagination bugs in
CHATHISTORY(#1676, thanks @emersion!) - Fixed support for kicking multiple users from a channel on the same line, the
TARGMAX005 parameter that advertises this, and the default kick message (#1748, #1777, #1776), thanks @ProgVal!) - Fixed
/SAMODEon a channel not producing a snomask (#1787, thanks @mogad0n, @ajaspers!) - Fixed parameters sent with
697 ERR_LISTMODEALREADYSETand698 ERR_LISTMODENOTSET(#1727, thanks @kylef!) - Fixed parameter sent with
696 ERR_INVALIDMODEPARAM(#1773, thanks @kylef!) - Fixed handling of channel mode
+kwith an empty parameter (#1774, #1775, thanks @ProgVal!) WHOWASwith an empty string as the parameter now produces an appropriate error response (#1703, thanks @kylef!)- Fixed error response to an empty realname on the
USERline (#1778, thanks @ProgVal!) - Fixed
/UBAN ADDof a NUH mask (i.e. a k-line) not killing affected clients (#1736, thanks @mogad0n!) - Fixed buggy behavior when
+iis configured as a default mode for channels (#1756, thanks @Mikaela!) - Fixed issues with
channels.operator-only-creationnot respecting/SAJOINor always-on clients (#1757) - Protocol-breaking operator vhosts are now disallowed during config validation (#1722)
- Fixed error message associated with
/NS PASSWDon a nonexistent account (#1738, thanks @Mikaela!) - Fixed an incorrect
CHATHISTORYfail message (#1731, thanks @ProgVal!) - Fixed a panic on an invalid configuration case (#1714, thanks @erikh!)
Changed
- Upgraded the
draft/registercapability to the latestdraft/account-registrationiteration (#1740) - Unregistered users with
+vor higher can now speak in+R(registered-only) channels (#1715, thanks @Mikaela and @ajaspers!) - For always-on clients with at least one active connection,
338 RPL_WHOISACTUALLYnow displays an arbitrarily chosen client IP address (#1650, thanks @MystaraTheGreat!) #can no longer be used in new account names and nicknames, or as the RELAYMSG separator (#1679)- The
oragono.io/nopecapability was renamed toergo.chat/nope(#1793)
Internal
v2.7.0 - a new name
We're pleased to be publishing Ergo 2.7.0, our first official release under our new name of Ergo. This release contains bug fixes and minor enhancements.
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. This release includes no changes to the database format.
Because the name of the executable has changed from oragono to ergo (ergo.exe on Windows), you may need to update your system configuration (e.g., scripts or systemd unit files that reference the executable).
Many thanks to @ajaspers and @jesopo for contributing patches, to @ajaspers, @ChrisTX, @emersion, @jwheare, @kylef, @Mikaela, @mogad0n, and @ProgVal for reporting issues and helping test, and to our translators for contributing translations.
Changed
- The project was renamed from "Oragono" to "Ergo" (#897, thanks to everyone who contributed feedback or voted in the poll)
Config changes
- Entries in
server.listenersnow take a new key,min-tls-version, that can be used to set the minimum required TLS version; the recommended default value is1.2(#1611, thanks @ChrisTX!) - Added
max-conns(maximum connection count) andmax-conn-lifetime(maximum lifetime of a connection before it is cycled) todatastore.mysql(#1622) - Added
massmessageoperator capability to allow sending NOTICEs to all connected users (#1153, #1629, thanks @jesopo!)
Security
- If
require-sasl.enabledis set totrue,tor-listeners.require-saslwill be automatically set totrueas well (#1636) - It is now possible to set the minimum required TLS version, using the
min-tls-versionkey in listener configuration - Configurations that require SASL but allow user registration now produce a warning (#1637)
Added:
- Operators with the correct permissions can now send "mass messages", e.g.
/NOTICE $$*will send aNOTICEto all users (#1153, #1629, thanks @jesopo!) - Operators can now extend the maximum (non-tags) length of the IRC line using the
server.max-line-lenconfiguration key. This is not recommended for use outside of "closed-circuit" deployments where IRC operators have full control of all client software. (#1651)
Fixed
RELAYMSGnow sends a full NUH ("nick-user-host"), instead of only the relay nickname, as the message source (#1647, thanks @ProgVal, @jwheare, and @Mikaela!)- Fixed a case where channels would remain visible in
/LISTafter unregistration (#1619, thanks @ajaspers!) - Fixed incorrect tags on
JOINlines in+u("auditorium") channels (#1642) - Fixed an issue where LUSERS counts could get out of sync (#1617)
- It was impossible to add a restricted set of snomasks to an operator's permissions; this has been fixed (#1618)
- Fixed incorrect language in
NS INFOresponses (#1627, thanks @ajaspers!) - Fixed a case where the
REGISTERcommand would emit an invalid error message (#1633, thanks @ajaspers!) - Fixed snomasks displaying in a nondeterministic order (#1669, thanks @Mikaela!)
Removed
- Removed the
draft/resume-0.5capability, and the associatedRESUMEandBRBcommands (#1624)
Internal
- Optimized MySQL storage of direct messages (#1615)
v2.7.0-rc1 - a new name
We're pleased to be publishing Ergo 2.7.0-rc1, our first release candidate under our new name of Ergo. This release contains bug fixes and minor enhancements.
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. This release includes no changes to the database format.
Because the name of the executable has changed from oragono to ergo (ergo.exe on Windows), you may need to update your system configuration (e.g., scripts or systemd unit files that reference the executable).
Many thanks to @ajaspers and @jesopo for contributing patches, to @ajaspers, @ChrisTX, @emersion, @jwheare, @kylef, @Mikaela, @mogad0n, and @ProgVal for reporting issues and helping test, and to our translators for contributing translations.
Changed
- The project was renamed from "Oragono" to "Ergo" (#897, thanks to everyone who contributed feedback or voted in the poll)
Config changes
- Entries in
server.listenersnow take a new key,min-tls-version, that can be used to set the minimum required TLS version; the recommended default value is1.2(#1611, thanks @ChrisTX!) - Added
max-conns(maximum connection count) andmax-conn-lifetime(maximum lifetime of a connection before it is cycled) todatastore.mysql(#1622) - Added
massmessageoperator capability to allow sending NOTICEs to all connected users (#1153, #1629, thanks @jesopo!)
Security
- If
require-sasl.enabledis set totrue,tor-listeners.require-saslwill be automatically set totrueas well (#1636) - It is now possible to set the minimum required TLS version, using the
min-tls-versionkey in listener configuration - Configurations that require SASL but allow user registration now produce a warning (#1637)
Added:
- Operators with the correct permissions can now send "mass messages", e.g.
/NOTICE $$*will send aNOTICEto all users (#1153, #1629, thanks @jesopo!) - Operators can now extend the maximum (non-tags) length of the IRC line using the
server.max-line-lenconfiguration key. This is not recommended for use outside of "closed-circuit" deployments where IRC operators have full control of all client software. (#1651)
Fixed
RELAYMSGnow sends a full NUH ("nick-user-host"), instead of only the relay nickname, as the message source (#1647, thanks @ProgVal, @jwheare, and @Mikaela!)- Fixed a case where channels would remain visible in
/LISTafter unregistration (#1619, thanks @ajaspers!) - Fixed incorrect tags on
JOINlines in+u("auditorium") channels (#1642) - Fixed an issue where LUSERS counts could get out of sync (#1617)
- It was impossible to add a restricted set of snomasks to an operator's permissions; this has been fixed (#1618)
- Fixed incorrect language in
NS INFOresponses (#1627, thanks @ajaspers!) - Fixed a case where the
REGISTERcommand would emit an invalid error message (#1633, thanks @ajaspers!) - Fixed snomasks displaying in a nondeterministic order (#1669, thanks @Mikaela!)
Removed
- Removed the
draft/resume-0.5capability, and the associatedRESUMEandBRBcommands (#1624)
Internal
- Optimized MySQL storage of direct messages (#1615)
v2.6.1 - a security fix
Oragono 2.6.1 is a bugfix release, fixing a security issue that is critical for some private server configurations. We regret the oversight.
The issue affects two classes of server configuration:
- Private servers that use
server.password(i.e., thePASScommand) for protection. Ifaccounts.registration.allow-before-connectis enabled, theREGISTERcommand can be used to bypass authentication. Affected operators should set this field tofalse, or upgrade to 2.6.1, which disallows the insecure configuration. (If the field does not appear in the configuration file, the configuration is secure since the value defaults to false when unset.) - Private servers that use
accounts.require-saslfor protection. If these servers do not additionally setaccounts.registration.enabledtofalse, theREGISTERcommand can potentially be used to bypass authentication. Affected operators should setaccounts.registration.enabledto false; this recommendation appeared in the operator manual but was not emphasized sufficiently. (Configurations that require SASL but allow open registration are potentially valid, e.g., in the case of public servers that require everyone to use a registered account; accordingly, Oragono 2.6.1 continues to permit such configurations.)
This release includes no changes to the config file format or the database.
Many thanks to @ajaspers for reporting the issue.