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) No edit summary |
m Correct typo. |
||
(41 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ChangeLog}} | {{ChangeLog}} | ||
== New == | == 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 version of 1.9.x''' (from git or from nightly tarballs) will NOT have this module loaded automatically, because the existing config states <code>Version = 1.9</code>. This is to honor choice of users who decide to unload it, since we don't know whether the module is missing intentionally. You MUST manually load this module if you have clients or scripts that depends on away-notify, account-notify, account-tag, and/or extended-join. | |||
* | ** Added support for [https://ircv3.net/specs/extensions/account-tag account-tag] capability, also in corecaps module {{GH|1746}} | ||
* New | * 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 == | == 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 == | ||
* modpython: | * [[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}} | ||
* webadmin: | * [[modperl]]: Allow overriding label for timers, which means now there can be more than 1 timer per module | ||
* watch: Allow new entries to use spaces {{GH|1822}} | * [[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 | == Notes for package maintainers == | ||
* cctz | * 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 CIFuzz {{GH|1845}} | ||
* Added CodeQL {{GH|1846}} | * 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 | |||
* | |||
* Web: | |||
* |
Latest revision as of 07:26, 29 May 2024
← 1.8.2 | ZNC 1.9.0 | 1.9.1 → |
This is an old ZNC version. If you still use it, please consider upgrading to 1.9.1. |
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 version of 1.9.x (from git or from nightly tarballs) will NOT have this module loaded automatically, because the existing config states
Version = 1.9
. This is to honor choice of users who decide to unload it, since we don't know whether the module is missing intentionally. You MUST manually load this module if you have clients or scripts that depends on away-notify, account-notify, account-tag, and/or extended-join.
- NOTE: Users who were using pre-release version of 1.9.x (from git or from nightly tarballs) will NOT have this module 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