To create new wiki account, please join us on #znc at Libera.Chat and ask admins to create a wiki account for you. You can say thanks to spambots for this inconvenience.
ChangeLog/1.9.0: Difference between revisions
Jump to navigation
Jump to search
DarthGandalf (talk | contribs) New git changelog |
DarthGandalf (talk | contribs) |
||
(63 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ChangeLog}} | |||
< | == New == | ||
* Support for [https://ircv3.net/specs/extensions/capability-negotiation capability negotiation] 302 and <code>cap-notify</code>. ZNC now has API <code>AddServerDependentCapability()</code>, using which modules can easily implement new capabilities: if server supports a cap, it will automatically be offered to clients which support <code>cap-notify</code> and ZNC will notify the module when the capability is enabled or disabled for server and for each client. {{GH|1859}} | |||
** Several capabilities ([https://ircv3.net/specs/extensions/away-notify away-notify], [https://ircv3.net/specs/extensions/account-notify account-notify], [https://ircv3.net/specs/extensions/extended-join extended-join]) were moved from the core to a new module: corecaps. | |||
** The [[corecaps]] module is loaded automatically when upgrading from old config and when creating new config, but it's possible to unload it. | |||
*** Note: users who were using pre-release versions of 1.9.x (from git or from nightly tarballs) won't have it loaded automatically, because the existing config states <code>Version = 1.9</code>. In such case you can load it manually. This is to honor choice of users who decide to unload it, since we don't know whether the module is missing intentionally. | |||
** Added support for [https://ircv3.net/specs/extensions/account-tag account-tag] capability, also in corecaps module {{GH|1746}} | |||
* Updated password hashing algorithm from SHA-256 to [[wikipedia:Argon2|Argon2id]] (if libargon2 is installed). Existing passwords are transparently upgraded upon login. {{GH|1879}} | |||
* Allow ordering of channels: via ListChans, MoveChan and SwapChans commands, and via webadmin {{GH|1744}} | |||
* New user options: DenySetIdent, DenySetNetwork, DenySetRealName, DenySetQuitMsg, DenySetCTCPReplies {{GH|1814}} | |||
* Switch --makeconf wizard default network from freenode to Libera | |||
* Added Portuguese and Turkish translations | |||
* znc-buildmod: output where the module was written to | |||
== Fixes == | |||
* Fixed crash when receiving SASL lines from server without having negotiated SASL via CAP | |||
* Fixed build with SWIG 4.2.0 | |||
* Fixed build with LibreSSL {{GH|1828}} | |||
* Fixed handling of timezones when parsing server-time tags received from server {{GH|1857}} {{GH|1773}} | |||
* Use module names as the module ident, otherwise some clients were merging conversations with different modules together. {{GH|1874}} | |||
* Stopped sending invalid 333 (RPL_TOPICWHOTIME) to client if topic owner is unknown {{GH|1889}} | |||
* Fixed an ODR violation {{GH|1835}} | |||
* Better hide password in PASS debug lines, sometimes it was not hidden | |||
* CAP REQ sent by client without CAP LS now suspends the registration as the spec requires {{GH|1820}} | |||
== Modules == | == Modules == | ||
* [[autoop]]: In some cases settings were parsed incorrectly, resulting in failure to do the autoop, now it's fixed | |||
* [[clientnotify]]: Added options to reduce amount of notifications depending on the IP and the client ID of the connecting client {{GH|1843}} | |||
* [[controlpanel]]: Fixed help output | |||
* [[log]]: Log nickserv account in the joins lines. {{GH|1870}} | |||
* [[modperl]]: Allow overriding label for timers, which means now there can be more than 1 timer per module | |||
* [[modpython]]: | |||
** Rewrote internals of how modpython loads modules. {{GH|1724}} | |||
*** Main motivation for the switch from using <code>imp</code> to using <code>importlib</code> was to support Python 3.12+. | |||
*** As an additional benefit, now it's possible to structure the module as a python package (a subdirectory with <code>__init__.py</code> and other .py files). | |||
*** All the old python modules should load as they were before. | |||
*** ZNC no longer supports loading a C python extension directly through modpython (though I doubt there were any users of that obscure feature): if you want to some parts of the module to be compiled, you can always import that from <code>__init__.py</code>. | |||
** Implemented Module.AddCommand() {{GH|1832}} {{GH|1833}} | |||
* [[route_replies]]: | |||
** Added Solanum-specific 337 (RPL_WHOISTEXT) to possible replies of /whois {{GH|1881}} | |||
** Route replies to /topic | |||
* [[sasl]]: Don't forward 908 (RPL_SASLMECHS) to clients {{GH|1756}} | |||
* [[webadmin]]: Fixed order of breadcrumbs in network page | |||
* [[watch]]: Allow new entries to use spaces {{GH|1822}} | |||
== Notes for package maintainers == | |||
* Require C++17 compiler. That is, GCC 8+ or Clang 5+. {{GH|1887}} | |||
* Removed autoconf, leaving only CMake as the build system. The <code>configure</code> script is now merely a wrapper for CMake, and accepts mostly the same parameters as the old <code>configure</code>. You can use either <code>configure</code> as before, or CMake directly. Minimum supported CMake version is 3.13. | |||
* If cctz library is available on the system, it will be used, otherwise the bundled copy will be used | |||
* libargon2 is new optional dependency | |||
* Dropped support for Python < 3.4 | |||
* Dropped support for SWIG < 4.0.1 | |||
* The systemd unit now passes <code>--datadir=/var/lib/znc</code> | |||
== Internal == | == Internal == | ||
* Switched to steady clock for cache map and for sockets to fix certain issues with leap seconds and DST | |||
* Made <code>CUser::Put...()</code> send to all clients instead of only networkless clients. Deprecate CUser::PutAllUser() | |||
* Setup Github Actions to replace old Travis CI setup | |||
* Added CIFuzz {{GH|1845}} | |||
* Added CodeQL {{GH|1846}} | |||
* List of translators is now automatically generated from Crowdin | |||
* Modernized the way how CMake is used | |||
* Updated default SSL settings from Mozilla recommendations | |||
* Rewrote message parsing using std::string_view, improving the performance of the parser {{GH|1785}} | |||
* Web: removed legacy xhtml syntax {{GH|1723}} | |||
* Documented more functions | |||
* Made some integration tests run faster by changing ServerThrottle value in the test |
Latest revision as of 19:31, 10 February 2024
← 1.8.2 | ZNC 1.9.0 | git → |
This is the latest release. Source tarball is available here. |
New
- Support for capability negotiation 302 and
cap-notify
. ZNC now has APIAddServerDependentCapability()
, using which modules can easily implement new capabilities: if server supports a cap, it will automatically be offered to clients which supportcap-notify
and ZNC will notify the module when the capability is enabled or disabled for server and for each client. (#1859)- Several capabilities (away-notify, account-notify, extended-join) were moved from the core to a new module: corecaps.
- The corecaps module is loaded automatically when upgrading from old config and when creating new config, but it's possible to unload it.
- Note: users who were using pre-release versions of 1.9.x (from git or from nightly tarballs) won't have it loaded automatically, because the existing config states
Version = 1.9
. In such case you can load it manually. This is to honor choice of users who decide to unload it, since we don't know whether the module is missing intentionally.
- Note: users who were using pre-release versions of 1.9.x (from git or from nightly tarballs) won't have it loaded automatically, because the existing config states
- Added support for account-tag capability, also in corecaps module (#1746)
- Updated password hashing algorithm from SHA-256 to Argon2id (if libargon2 is installed). Existing passwords are transparently upgraded upon login. (#1879)
- Allow ordering of channels: via ListChans, MoveChan and SwapChans commands, and via webadmin (#1744)
- New user options: DenySetIdent, DenySetNetwork, DenySetRealName, DenySetQuitMsg, DenySetCTCPReplies (#1814)
- Switch --makeconf wizard default network from freenode to Libera
- Added Portuguese and Turkish translations
- znc-buildmod: output where the module was written to
Fixes
- Fixed crash when receiving SASL lines from server without having negotiated SASL via CAP
- Fixed build with SWIG 4.2.0
- Fixed build with LibreSSL (#1828)
- Fixed handling of timezones when parsing server-time tags received from server (#1857) (#1773)
- Use module names as the module ident, otherwise some clients were merging conversations with different modules together. (#1874)
- Stopped sending invalid 333 (RPL_TOPICWHOTIME) to client if topic owner is unknown (#1889)
- Fixed an ODR violation (#1835)
- Better hide password in PASS debug lines, sometimes it was not hidden
- CAP REQ sent by client without CAP LS now suspends the registration as the spec requires (#1820)
Modules
- autoop: In some cases settings were parsed incorrectly, resulting in failure to do the autoop, now it's fixed
- clientnotify: Added options to reduce amount of notifications depending on the IP and the client ID of the connecting client (#1843)
- controlpanel: Fixed help output
- log: Log nickserv account in the joins lines. (#1870)
- modperl: Allow overriding label for timers, which means now there can be more than 1 timer per module
- modpython:
- Rewrote internals of how modpython loads modules. (#1724)
- Main motivation for the switch from using
imp
to usingimportlib
was to support Python 3.12+. - As an additional benefit, now it's possible to structure the module as a python package (a subdirectory with
__init__.py
and other .py files). - All the old python modules should load as they were before.
- ZNC no longer supports loading a C python extension directly through modpython (though I doubt there were any users of that obscure feature): if you want to some parts of the module to be compiled, you can always import that from
__init__.py
.
- Main motivation for the switch from using
- Implemented Module.AddCommand() (#1832) (#1833)
- Rewrote internals of how modpython loads modules. (#1724)
- route_replies:
- Added Solanum-specific 337 (RPL_WHOISTEXT) to possible replies of /whois (#1881)
- Route replies to /topic
- sasl: Don't forward 908 (RPL_SASLMECHS) to clients (#1756)
- webadmin: Fixed order of breadcrumbs in network page
- watch: Allow new entries to use spaces (#1822)
Notes for package maintainers
- Require C++17 compiler. That is, GCC 8+ or Clang 5+. (#1887)
- Removed autoconf, leaving only CMake as the build system. The
configure
script is now merely a wrapper for CMake, and accepts mostly the same parameters as the oldconfigure
. You can use eitherconfigure
as before, or CMake directly. Minimum supported CMake version is 3.13. - If cctz library is available on the system, it will be used, otherwise the bundled copy will be used
- libargon2 is new optional dependency
- Dropped support for Python < 3.4
- Dropped support for SWIG < 4.0.1
- The systemd unit now passes
--datadir=/var/lib/znc
Internal
- Switched to steady clock for cache map and for sockets to fix certain issues with leap seconds and DST
- Made
CUser::Put...()
send to all clients instead of only networkless clients. Deprecate CUser::PutAllUser() - Setup Github Actions to replace old Travis CI setup
- Added CIFuzz (#1845)
- Added CodeQL (#1846)
- List of translators is now automatically generated from Crowdin
- Modernized the way how CMake is used
- Updated default SSL settings from Mozilla recommendations
- Rewrote message parsing using std::string_view, improving the performance of the parser (#1785)
- Web: removed legacy xhtml syntax (#1723)
- Documented more functions
- Made some integration tests run faster by changing ServerThrottle value in the test