A modern IRC server (daemon/ircd) written in Go.
We're pleased to be publishing v2.13.0, a new stable release. This is a bugfix release that fixes some issues, including a crash.
This release includes no changes to the config file format or database format.
Many thanks to @dallemon, @jwheare, @Mikaela, @nealey, and @Sheikah45 for contributing patches, reporting issues, and helping test.
/
(or the configured RELAYMSG
separator) in their names (#2114, thanks @Mikaela!)Message-ID
header, improving compatibility with Gmail (#2108, #2110)REDACT_FORBIDDEN
(#2101, thanks @jwheare!)We're pleased to be publishing the release candidate for v2.13.0 (the official release should follow within a week or so). This is a bugfix release that fixes some issues, including a crash.
This release includes no changes to the config file format or database format.
Many thanks to @dallemon, @jwheare, @Mikaela, and @Sheikah45 for contributing patches, reporting issues, and helping test.
/
(or the configured RELAYMSG
separator) in their names (#2114, thanks @Mikaela!)Message-ID
header, improving compatibility with Gmail (#2108, #2110)REDACT_FORBIDDEN
(#2101, thanks @jwheare!)We're pleased to be publishing v2.12.0, a new stable release. This is another bugfix release aimed at improving client compatibility and keeping up with the IRCv3 specification process.
This release includes changes to the config file format, one of which is a compatibility break: if you were using accounts.email-verification.blacklist-regexes
, you can restore the previous functionality by renaming blacklist-regexes
to address-blacklist
and setting the additional key address-blacklist-syntax: regex
. See default.yaml for an example; for more details, see the "Changed" section below.
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).
Many thanks to @adsr, @avollmerhaus, @csmith, @EchedeyLR, @emersion, @eskimo, @julio-b, knolle, @KoxSosen, @Mikaela, @mogad0n, and @progval for contributing patches, reporting issues, and helping test.
accounts.email-verification.blacklist-regexes
in favor of address-blacklist
, address-blacklist-syntax
, and address-blacklist-file
. See the "Changed" section below for the semantics of these new keys. (#1997, #2088)implicit-tls
(TLS from the first byte) support for MTAs (#2048, #2049, thanks @EchedeyLR!)allow-truncation: true
(the recommended default is false
) where Ergo could truncate a message in the middle of a UTF-8 codepoint (#2074)CHATHISTORY TARGETS
being sent in a batch even without negotiation of the batch
capability (#2066, thanks @julio-b!)/REHASH
are now properly sanitized before being sent to the user, fixing an edge case where they would be dropped (#2031, thanks @eskimo!*
and ?
as wildcard characters), as opposed to the full Go regular expression syntax. To enable full regular expression syntax, set address-blacklist-syntax: regex
.CGO_ENABLED=1
. (#2023)make
target is now build
(which builds an ergo
binary in the working directory) instead of install
(which builds and installs an ergo
binary to ${GOPATH}/bin/ergo
). Take note if building from source, or testing Ergo in development! (#2047)make irctest
now depends on make install
, in an attempt to ensure that irctest runs against the intended development version of Ergo (#2047)We're pleased to be publishing the release candidate for v2.12.0 (the official release should follow within a few weeks). This is another bugfix release aimed at improving client compatibility and keeping up with the IRCv3 specification process.
This release includes changes to the config file format, one of which is a compatibility break: if you were using accounts.email-verification.blacklist-regexes
, you can restore the previous functionality by renaming blacklist-regexes
to address-blacklist
and setting the additional key address-blacklist-syntax: regex
. See default.yaml for an example; for more details, see the "Changed" section below.
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).
Many thanks to @adsr, @avollmerhaus, @csmith, @EchedeyLR, @emersion, @eskimo, @julio-b, knolle, @KoxSosen, @mogad0n, and @progval for contributing patches, reporting issues, and helping test.
accounts.email-verification.blacklist-regexes
in favor of address-blacklist
, address-blacklist-syntax
, and address-blacklist-file
. See the "Changed" section below for the semantics of these new keys. (#1997, #2088)implicit-tls
(TLS from the first byte) support for MTAs (#2048, #2049, thanks @EchedeyLR!)allow-truncation: true
(the recommended default is false
) where Ergo could truncate a message in the middle of a UTF-8 codepoint (#2074)CHATHISTORY TARGETS
being sent in a batch even without negotiation of the batch
capability (#2066, thanks @julio-b!)/REHASH
are now properly sanitized before being sent to the user, fixing an edge case where they would be dropped (#2031, thanks @eskimo!*
and ?
as wildcard characters), as opposed to the full Go regular expression syntax. To enable full regular expression syntax, set address-blacklist-syntax: regex
.CGO_ENABLED=1
. (#2023)make
target is now build
(which builds an ergo
binary in the working directory) instead of install
(which builds and installs an ergo
binary to ${GOPATH}/bin/ergo
). Take note if building from source, or testing Ergo in development! (#2047)make irctest
now depends on make install
, in an attempt to ensure that irctest runs against the intended development version of Ergo (#2047)We're pleased to be publishing v2.11.0, a new stable release. This is another bugfix release aimed at improving client compatibility and keeping up with the IRCv3 specification process.
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 dedekro, @emersion, @eskimo, @FiskFan1999, hauser, @jwheare, @kingter-sutjiadi, knolle, @Mikaela, @mogad0n, @PeGaSuS-Coder, and @progval for contributing patches, reporting issues, and helping test.
fakelag.command-budgets
, which allows each client session a limited number of specific commands that are exempt from fakelag. This improves compatibility with Goguma in particular. For the current recommended default, see default.yaml
(#1978, thanks @emersion!)server.casemapping
is now ascii
instead of precis
. PRECIS remains fully supported; if you are already running an Ergo instance, we do not recommend changing the value unless you are confident that your existing users are not relying on non-ASCII nicknames and channel names. (#1718)NickServ
now appear in WHO
responses where applicable (#1850, thanks @emersion!)extended-monitor
capability now appears under its ratified name (#2006, thanks @progval!)TAGMSG
no longer receives automatic RPL_AWAY
responses (#1983, thanks @eskimo!)UBAN
now states explicitly that bans without a time limit have "indefinite" duration (#1988, thanks @mogad0n!)WHO
with a bare nickname as an argument now shows invisible users, comparable to WHOIS
(#1991, thanks @emersion!)CHATHISTORY
005 token (#2008, #2009, thanks @emersion!)::1
in WHOX output (#1980, thanks knolle!)AWAY
with an empty parameter (the de facto standard is to treat as a synonym for no parameter, which means "back") (#1996, thanks @emersion, @jwheare!)CS AMODE
(#2002, thanks @eskimo!)NS SAVERIFY
(#2021, thanks @FiskFan1999!)draft/persistence
capability and associated PERSISTENCE
command. This is a first attempt to standardize Ergo's "always-on" functionality so that clients can interact with it programmatically. (#1982)SIGUSR1
to the Ergo process now prints a full goroutine stack dump to stderr, allowing debugging even when the HTTP pprof listener is disabled (#1975)We're pleased to be publishing the release candidate for 2.11.0 (the official release should follow in a week or so). This is another bugfix release aimed at improving client compatibility and keeping up with the IRCv3 specification process.
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 dedekro, @emersion, @eskimo, hauser, @jwheare, @kingter-sutjiadi, knolle, @Mikaela, @mogad0n, @PeGaSuS-Coder, and @progval for contributing patches, reporting issues, and helping test.
fakelag.command-budgets
, which allows each client session a limited number of specific commands that are exempt from fakelag. This improves compatibility with Goguma in particular. For the current recommended default, see default.yaml
(#1978, thanks @emersion!)server.casemapping
is now ascii
instead of precis
. PRECIS remains fully supported; if you are already running an Ergo instance, we do not recommend changing the value unless you are confident that your existing users are not relying on non-ASCII nicknames and channel names. (#1718)NickServ
now appear in WHO
responses where applicable (#1850, thanks @emersion!)extended-monitor
capability now appears under its ratified name (#2006, thanks @progval!)TAGMSG
no longer receives automatic RPL_AWAY
responses (#1983, thanks @eskimo!)SIGUSR1
to the Ergo process now prints a full goroutine stack dump to stderr, allowing debugging even when the HTTP pprof listener is disabled (#1975)UBAN
now states explicitly that bans without a time limit have "indefinite" duration (#1988, thanks @mogad0n!)WHO
with a bare nickname as an argument now shows invisible users, comparable to WHOIS
(#1991, thanks @emersion!)CHATHISTORY
005 token (#2008, #2009, thanks @emersion!)::1
in WHOX output (#1980, thanks knolle!)AWAY
with an empty parameter (the de facto standard is to treat as a synonym for no parameter, which means "back") (#1996, thanks @emersion, @jwheare!)CS AMODE
(#2002, thanks @eskimo!)draft/persistence
capability and associated PERSISTENCE
command. This is a first attempt to standardize Ergo's "always-on" functionality so that clients can interact with it programmatically. (#1982)We're pleased to be publishing v2.10.0, a new stable release.
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.
history.chathistory-maxmessages
has been increased to 1000
(previously 100
) (#1919)AMODE +v
) in a channel is now treated as a permanent invite (i.e. overriding +i
on the channel) (#1901, thanks @eskimo!)+R
, sending a direct message to an anonymous user allows them to send you replies (#1687, #1688, thanks @Mikaela and @progval!)0
is no longer valid as a nickname or account name, with a grandfather exception if it was registered on a previous version of Ergo (#1896)bot
instead of draft/bot
(#1938)SAREGISTER
is allowed even under DEFCON
levels 4 and lower (#1922)history
capability are now exempted from time cutoff restrictions on history retrieval (#1593, #1955)draft/read-marker
capability, allowing server-side tracking of read messages for synchronization across multiple clients. (#1926, thanks @emersion!)INFO
now includes the server start time (#1895, thanks @xnaas!)ACCEPT
command modeled on Charybdis/Solanum, allowing +R
users to whitelist users who can DM them (#1688, thanks @Mikaela!)NS SAVERIFY
for operators to manually complete an account verification (#1924, #1952, thanks @tacerus!)samode
operator capability made all uses of the KICK
command privileged (i.e. overriding normal channel privilege checks); this has been fixed (#1906, thanks @pcho!)LIST <n
always returning no results (#1934, thanks @progval and @mitchr!)QUIT
snotice without a corresponding CONNECT
snotice (#1941, thanks @tacerus, @xnaas!)319 RPL_WHOISCHANNELS
responses (#1935, thanks @Mikaela!)LIST
returning 403 ERR_NOSUCHCHANNEL
for a nonexistent channel; the correct response is an empty list (#1928, thanks @emersion!)+s
("secret") channels not appearing in LIST
even when the client is already a member (#1911, #1923, thanks @jigsy1 and @FiskFan1999!)HISTSERV DELETE
by always requiring a consistent number of parameters (#1881, #1927, thanks @FiskFan1999!)431 ERR_NONICKNAMEGIVEN
; this has been fixed (#1933, #1936, thanks @kylef!)znc.in/playback
timestamps are now parsed as pairs of exact integers, not as floats (#1918)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.
draft/read-marker
implementation (#1961, #1962)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.
history.chathistory-maxmessages
has been increased to 1000
(previously 100
) (#1919)AMODE +v
) in a channel is now treated as a permanent invite (i.e. overriding +i
on the channel) (#1901, thanks @eskimo!)+R
, sending a direct message to an anonymous user allows them to send you replies (#1687, #1688, thanks @Mikaela and @progval!)0
is no longer valid as a nickname or account name, with a grandfather exception if it was registered on a previous version of Ergo (#1896)bot
instead of draft/bot
(#1938)SAREGISTER
is allowed even under DEFCON
levels 4 and lower (#1922)history
capability are now exempted from time cutoff restrictions on history retrieval (#1593, #1955)draft/read-marker
capability, allowing server-side tracking of read messages for synchronization across multiple clients. (#1926, thanks @emersion!)INFO
now includes the server start time (#1895, thanks @xnaas!)ACCEPT
command modeled on Charybdis/Solanum, allowing +R
users to whitelist users who can DM them (#1688, thanks @Mikaela!)NS SAVERIFY
for operators to manually complete an account verification (#1924, #1952, thanks @tacerus!)samode
operator capability made all uses of the KICK
command privileged (i.e. overriding normal channel privilege checks); this has been fixed (#1906, thanks @pcho!)LIST <n
always returning no results (#1934, thanks @progval and @mitchr!)QUIT
snotice without a corresponding CONNECT
snotice (#1941, thanks @tacerus, @xnaas!)319 RPL_WHOISCHANNELS
responses (#1935, thanks @Mikaela!)LIST
returning 403 ERR_NOSUCHCHANNEL
for a nonexistent channel; the correct response is an empty list (#1928, thanks @emersion!)+s
("secret") channels not appearing in LIST
even when the client is already a member (#1911, #1923, thanks @jigsy1 and @FiskFan1999!)HISTSERV DELETE
by always requiring a consistent number of parameters (#1881, #1927, thanks @FiskFan1999!)431 ERR_NONICKNAMEGIVEN
; this has been fixed (#1933, #1936, thanks @kylef!)znc.in/playback
timestamps are now parsed as pairs of exact integers, not as floats (#1918)