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

From ZNC
Jump to navigation Jump to search
Line 31: Line 31:


== Modules ==
== Modules ==
* modpython: Rewrite how modpython loads modules from <code>imp</code> to <code>importlib</code>: this adds support for Python 3.12. Also now it's possible to structure the module as a python package (a subdirectory with <code>__init__.py</code> and other .py files), however it no longer supports loading a C python extension through modpython - just write the module on C++ in such case instead of python, or use the <code>__init__.py</code> format and implement some of the files in C. {{GH|1724}}
* [[autoop]]: in some cases settings were parsed incorrectly, resulting in failure to do the autoop
* log: Add account to joins for the log module. {{GH|1870}}
* [[clientnotify]]: Add options to reduce amount of notifications depending on the IP and the client ID of the connecting client {{GH|1843}}
* clientnotify: Add options to reduce amount of notifications depending on the IP and the client ID of the connecting client {{GH|1843}}
* [[controlpanel]]: fix in help output
* modpython: Implement Module.AddCommand() {{GH|1832}} {{GH|1833}}
* [[log]]: Log nickserv account in the joins lines. {{GH|1870}}
* webadmin: Fix order of breadcrumbs in network page
* [[modperl]]: allow overriding timer label
* watch: Allow new entries to use spaces {{GH|1822}}
* [[modpython]]:
* route_replies: add Solanum-specific 337 (RPL_WHOISTEXT) to possible replies of /whois {{GH|1881}}
** Rewrite how modpython loads modules from <code>imp</code> to <code>importlib</code>: this adds support for Python 3.12. Also now it's possible to structure the module as a python package (a subdirectory with <code>__init__.py</code> and other .py files), however it no longer supports loading a C python extension through modpython - just write the module on C++ in such case instead of python, or use the <code>__init__.py</code> format and implement some of the files in C. {{GH|1724}}
* route_replies: route replies to /topic
** Implemented Module.AddCommand() {{GH|1832}} {{GH|1833}}
* modperl: allow overriding timer label
* [[route_replies]]:
* autoop: in some cases settings were parsed incorrectly, resulting in failure to do the autoop
** add Solanum-specific 337 (RPL_WHOISTEXT) to possible replies of /whois {{GH|1881}}
* sasl: don't forward 908 (RPL_SASLMECHS) to clients {{GH|1756}}
** route replies to /topic
* controlpanel: fix in help output
* [[sasl]]: don't forward 908 (RPL_SASLMECHS) to clients {{GH|1756}}
* [[webadmin]]: Fix order of breadcrumbs in network page
* [[watch]]: Allow new entries to use spaces {{GH|1822}}


== Notes for package maintainers ==
== Notes for package maintainers ==

Revision as of 08:42, 9 February 2024

← 1.8.2 ZNC 1.9.0 1.9.1 →



See https://github.com/znc/znc/compare/znc-1.9.1...master for a list of changes since 1.9.1 stable.

New

  • Support for capability negotiation 3.2 and cap-notify. ZNC now has API, using which modules can easily implement new capabilities: if server supports a cap, it will automatically be offered to clients which support cap-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.
    • Add 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 build with SWIG 4.2.0
  • Fixed build with LibreSSL (#1828)
  • Fixed crash when receiving SASL lines from server without having negotiated SASL via CAP
  • 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

Modules

  • autoop: in some cases settings were parsed incorrectly, resulting in failure to do the autoop
  • clientnotify: Add options to reduce amount of notifications depending on the IP and the client ID of the connecting client (#1843)
  • controlpanel: fix in help output
  • log: Log nickserv account in the joins lines. (#1870)
  • modperl: allow overriding timer label
  • modpython:
    • Rewrite how modpython loads modules from imp to importlib: this adds support for Python 3.12. Also now it's possible to structure the module as a python package (a subdirectory with __init__.py and other .py files), however it no longer supports loading a C python extension through modpython - just write the module on C++ in such case instead of python, or use the __init__.py format and implement some of the files in C. (#1724)
    • Implemented Module.AddCommand() (#1832) (#1833)
  • route_replies:
    • add 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: Fix 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, leave only CMake as the build system. The configure script is now merely a wrapper for CMake, and accepts mostly the same parameters as the old configure. 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 recommmendations
  • Rewrote message parsing using std::string_view, improving the performance of the parser (#1785)
  • Web: remove legacy xhtml syntax (#1723)
  • Documented more functions
  • Made some integration tests run faster by changing ServerThrottle value in the test