How do I upgrade my ZNC?

If you want to compile ZNC with OpenSSL support, you need the OpenSSL development package. On Debian/Ubuntu this is called libssl-dev, on CentOS/Fedora/Red Hat it's openssl-devel, and on openSUSE it's libopenssl-devel. A good way to install this and other dependencies is the build dependency feature of package managers (apt-get build-dep / yum-builddep / zypper source-install --build-deps-only).

wget https://sisrv.net/files/bnc-znc/znc-1.9.0.tar.gz
tar -xzvf znc-1.9.0.tar.gz
cd znc-1.9.0
mkdir build
cd build
cmake ..
make
make install

Please note that compiling can take 5-10 minutes or more.

Upgrading / updating from a previous release, to a new version

This is really simple. You can just follow the instructions on the Installation page again, but DON'T RUN --makeconf. Your configuration won't be deleted. If you'd like to make a backup before, however, you can backup ZNC's config folder. It is usually located at ~/.znc. You can use tar to make a backup, like this: tar cfvj znc-backup.tar.gz ~/.znc.

Your existing configuration will be upgraded to new version when you start it. If new ZNC will complain about few missing modules, you may need to remove them from znc.conf. That can happen if some modules which were loaded to your ZNC are removed in new version.

Why should I keep my ZNC up-to-date?

ZNC is like any other software, it has bugs and security issues that are fixed in new versions and also gets improvements. By not upgrading you risk all kinds of security issues, don't trust your distribution to patch old releases as ZNC's code has changed so much that it's often impossible to apply patch from newer version to older version.

ZNC 1.9.0 release notes

  • Support for capability negotiation 302 and cap-notify. ZNC now has API AddServerDependentCapability(), 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.
    • 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.
    • Added support for account-tag capability, also in corecaps module.
  • Updated password hashing algorithm from SHA-256 to Argon2id (if libargon2 is installed). Existing passwords are transparently upgraded upon login. .
  • Allow ordering of channels: via ListChans, MoveChan and SwapChans commands, and via webadmin.
  • New user options: DenySetIdent, DenySetNetwork, DenySetRealName, DenySetQuitMsg, DenySetCTCPReplies.
  • 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.
  • Fixed handling of timezones when parsing server-time tags received from server.
  • Use module names as the module ident, otherwise some clients were merging conversations with different modules together.
  • Stopped sending invalid 333 (RPL_TOPICWHOTIME) to client if topic owner is unknown.
  • Fixed an ODR violation.
  • 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.

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.
  • controlpanel: Fixed help output
  • log: Log nickserv account in the joins lines.
  • 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.
      • Main motivation for the switch from using imp to using importlib 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.
    • Implemented Module.AddCommand()
  • route_replies:
    • Added Solanum-specific 337 (RPL_WHOISTEXT) to possible replies of /whois
    • Route replies to /topic
  • sasl: Don't forward 908 (RPL_SASLMECHS) to clients
  • webadmin: Fixed order of breadcrumbs in network page
  • watch: Allow new entries to use spaces

Notes for package maintainers

  • Require C++17 compiler. That is, GCC 8+ or Clang 5+.
  • 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 old configure. You can use either configure 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

This page was last edited on 29 May 2024, at 07:26.

  • upgrade znc
  • 29 Users Found This Useful
Was this answer helpful?

Related Articles

How To Install psyBNC

psyBNC is small, lightweight software for usage in IRC (Internet Relay Chat). Bouncers have...

psyBNC FAQ

| psyBNC-FAQ (Frequently Asked Questions) for psyBNC | This FAQ does not...

Frequently Asked Questions

Frequently Asked Questions - up to version 2.3.2 Q: I tried to add a User for getting Op from...

How to recover psyBNC password

To reset password of your psybnc follow the steps mentioned below: Login to the shell account...

How to install sBNC

shroudBNC  or sBNC is a modular IRC proxy written in C++. It is capable of proxying IRC...

Powered by WHMCompleteSolution