Prev |  | Next

### I.1. Changes from 2.8.4 to 2.8.5

- Added a `configure` script option to `--enable-shared-private-libs` which allows to deliver NUT common libraries as shared objects used by different NUT binaries, rather than linking just the used bits into each binary. This has some potential both for mayhem (so disabled by default) and for significant reduction of installation footprint. If enabled with a NUT packaging build, note there would be several more NUT shared library files to deliver with the packages (formally versioned and named by NUT release semantic version triplet). [issue #2800]
- Related to the above, `libupsclient` will remove the exported symbol for `nut_debug_level` variable in a later NUT release, and now introduces the `upscli_set_debug_level()` and `upscli_get_debug_level()` methods. [PR #3330]
- For ages, most recipes for building NUT had customized the `sysconfdir` to be `/etc/nut`, which is not exactly the system configuration directory. This is finally deprecated, with new `--with-confdir` configuration option taking over the role of a full path to configuration files (by default `${sysconfdir}${confdir_suffix}`), and new `--with-confdir-suffix` allowing to specify just `/nut` or `/ups` that would be tacked onto the default `${sysconfdir}` to resolve the `${confdir}`. Default behavior should be same as with previous builds: if `sysconfdir` is customized (or `prefix` is kept at built-in default), the `confdir_suffix` will default to empty; otherwise it assumes the value of `/${PACKAGE_NAME}` to become `/nut` in most cases. A `--with-confdir-examples` option was also introduced, to help distributions that place `*.conf.sample` files into docs or other locations. [#3131]
- Source directory `data/html` was renamed to `data/htmlcgi` in order to better reflect its contents and purpose, compared to documentation-oriented `html*` directories (and recipe variable names). This may impact some packaging recipes which do not rely on `make install` alone. Note that more files feature in the installation, e.g. a NUT logo rendition to use as favicon. [#3049, #3249]
- Some fixes were applied to HTML templates for NUT CGI clients. It can be useful for NUT deployments being upgraded to compare the files they have installed (and possibly customized) with the `*.html.sample` files delivered by the new build. [PR #3180]
- Introduced a `@NUT_UPSSTATS_TEMPLATE@` command which the NUT CGI template files now MUST start with (safety check that we are reading a template). While the delivered `upsstats*.html.sample` files would include the change, ultimate `upsstats*.html` templates deployed for end-users MUST be updated. [issue #3252, PR #3249]
- Dropped the `compile` script from Git sources. It originates from automake and is added to work area (if missing) during `autogen.sh` rituals anyway (as `make` says, `'automake --add-missing' can install 'compile'` when you run without it). It is still distributed as part of `make dist` tarball. We are open to any feedback whether this removal impacts NUT rebuilds on any systems. [#1209]
- Default `PIDPATH` is now more strictly `/var/run`, unless building on a system conforming to FHS-3.0 standard where that location is absent or is a symlink, while `/run` exists and is a true directory. Package recipes usually override `--with-pidpath` anyway to provide a dedicated location for NUT `root`-owned daemon PID files. [#3099]
- The autoconf managed macro for `--with-port` option was renamed from plain `PORT` to less ambiguous `NUT_PORT` to avoid potential conflicts with any third-party code. If anyone did use this macro in their custom builds or integrations, some renaming (or stubbed definitions to the effect of `PORT=NUT_PORT`) may be needed. [#3238]
- In drivers using the common `main.c` and `main.h` framework, introduced a `void upsdrv_tweak_prognames(void)` required method (may be no-op) to optionally tweak `prognames[]` entries now that there is certain support to accept program name aliases, not just one hard-coded string value. Any third-party drivers may require rebuilding to extend with this method. Any drivers that would undergo promotion with renaming can take advantage of this new facility to keep working under both old and new file names. [#3101]
- The `upsdrvquery*` semi-internal API for talking on the driver socket was updated with default handling for SIGPIPE. If your consumer wants to catch it themselves, instead of using `errno=EPIPE` after a failed call, you can use `upsdrvquery_NOSIGPIPE=0` to disable neutering of the signal inside the API itself. [PR #3277]
- Added new API methods and defined bitmap values for `libupsclient` C binding to query and report SSL capabilities of the library build (none, OpenSSL, Mozilla NSS): `upscli_ssl_caps_descr()` and `upscli_ssl_caps()`. [PR #33xx]
- Fixed man page naming for `nutdrv_siemens-sitop(.8)` (dash vs. underscore) to match the driver program name. Packaging recipes may have to be updated. Follow-up from slightly botched renaming in original contribution. [PR #545]
- The `configure` script would now probe (if it can) the operating systems for more user and group account names, such as `upsmon`, `nutmon`, `ups`, `nut` (last hit wins, separately for user and groups accounts) settling on one of those if detected instead of `nobody` (and optionally `nogroup`). It would also warn if `nobody` or `nogroup` end up being used for a build. This is not likely to affect package builds (which usually define the accounts to use), but may (hopefully positively) affect rebuilds of NUT on systems where an older version is already deployed. [#3173]
- The `configure` script should now try harder to report specifically the "purelib" location as `PYTHON*_SITE_PACKAGES`. Packaging recipes may have to be updated. [#1209]
- New supported values were introduced for `--with-python{,2,3}=auto-prio=NUM`: this allows to auto-prioritize some one available Python interpreter. Default settings were changed from plain `auto` (allowing for multiple `python*` interpreters and `site-package` locations to be used), to prefer a `python3` if available, else `python2`, else `python`, and forget about others even if discovered. Packaging recipes may have to be updated, either to explicitly package the binding for several versions, or to not-deliver files no longer installed into the prototype area. [#1792]
- Added a `configure` script option to (primarily) `--disable-threading` for systems with detected but broken `libpthread` support, which can cause `nut-scanner` to crash while loading system libraries. [#3300]
- Introduced a new driver category for interaction with OS-reported UPS devices via D-Bus, with the `nut-upower` driver as the first implementation. This driver requires `glib-2.0` and `gio-2.0` development libraries to be available at build time. For packagers, this adds new dependencies if the build should include this driver. [PR #3279]

Prev | Up | Next
| Home |