public inbox for development@lists.ipfire.org
 help / color / mirror / Atom feed
* [PATCH 1/2] nut: Update to version 2.8.4
@ 2025-09-15 17:40 Adolf Belka
  2025-09-15 17:40 ` [PATCH 2/2] core198: Ship collectd due to sobump in nut update Adolf Belka
  0 siblings, 1 reply; 2+ messages in thread
From: Adolf Belka @ 2025-09-15 17:40 UTC (permalink / raw)
  To: development; +Cc: Adolf Belka

- Update from version 2.8.3 to 2.8.4
- Update of rootfile
- sobump requires shipping of collectd
- Changelog
    2.8.4
	 - Bug fixes for fallout possible due to "fightwarn" effort in 2.8.0+:
	   * In `usbhid-ups` sources, introduced optional `HU_FLAG_PARAM_REQUIRED` for
	     `setvar()` or `instcmd()` handling (and a `HU_TYPE_CMD_PARAM_REQUIRED`
	     shortcut) for setting in the mapping table flags, to specify variables
	     or instant commands that require an argument (either from caller or a
	     non-`NULL` default in the run-time table after device data discovery);
	     if the flag is not set, a zero value is assumed. Incomplete code was a
	     regression of NUT v2.8.3 causing some instant commands to fail. [#2860,
	     #2955]
	 - Fix fallout of development in NUT v2.8.0 and/or v2.8.1 and/or v2.8.2 and/or
	   v2.8.3:
	   * Fixed a regression in recipes of NUT v2.8.3 release (as compared to
	     v2.8.2), where `configure --with-docs=all` no longer failed a run
	     of the `configure` script when some of the required rendering tools
	     were not in fact available. [#2842, fixed by #2921]
	   * Some recipe improvements in earlier releases led to `make check` always
	     running a spelling check (if tools are available), even if the explicit
	     `configure --disable-spellcheck` option was used. Now it would not run
	     if disabled (e.g. to speed up CI builds in scenarios that focus on other
	     aspects of the code base), although developers can still use the explicit
	     `make spellcheck*` goals, when tools are in fact available. [#2973]
	   * A change in `Makefile.am` recipes to evaluate some driver names in the
	     `DRIVERLIST` variables inspected by `configure` script, rather than
	     having all their names hard-coded like before, led to inability to
	     `configure --with-drivers=dummy-ups`. [#2825, #2927, fixed by PR #2929]
	   * A problem noted with `upsdrvquery` (since NUT v2.8.1) message logging
	     at high debug verbosity levels (5+) with very large blocks of content
	     has exposed a deficiency in variable-argument handling, and specifically
	     adaptive resizing of the output buffer or truncation of logged inputs
	     (which is something NUT code tried to do since the beginning of time),
	     and could lead to "segmentation fault" crashes on some platforms.
	     [issue #2948, PR #2963]
	   * Documentation build recipes overly zealously pre-processed source files,
	     which was not applicable for each and every document type we have (e.g.
	     binary images for illustrations); this caused grief with some toolkits.
	     [issue #2989]
	 - common code:
	   * Revised common `writepid()` to use `altpidpath()` as location for the
	     PID file creation, if the default `rootpidpath()` is not accessible
	     (e.g. daemon was not initially started as `root`). Likewise updated
	     short PID file based signal sending to consult both locations. [#1717]
	   * Linux may report a `/proc/X/exe` symlink with an embedded "(deleted)"
	     suffix, if the binary was removed (or replaced) since the running process
	     started. This confused our code which verifies that when it is sending a
	     signal to a PID, that PID does reflect the expected NUT program. [#3021]
	   * Refactored NUT "common" sources to reference `nut_version.h` macros from
	     a smaller C source file, to minimize the compilation unit size impacted
	     by development iterations. [issue #2097]
	   * Common code hardening: added sanity-checking for dynamically constructed
	     or selected formatting strings with variable-argument list methods
	     (typically used with log printing, `dstate` setting, etc.) [#2450, #3016]
	     - Warn if `%n` formatting string is used -- it is deprecated in some
	       newer distros due to security concerns.
	   * Refactored repetitive implementations of `inet_ntopSS()` (nee
	     `inet_ntopW()` in `upsd.c`) and `inet_ntopAI()` methods into `common.c`,
	     so now they can be re-used or expanded more easily. [#2916]
	 - `upsd` updates:
	   * Fixed two bugs about printing the "further (ignored) addresses resolved
	     for this name": the way to extract IP address string was not portable
	     and misfired on some platforms, and the way to print had a theoretical
	     potential for buffer overflow. [#2915]
	   * Print arguments of a processed command into the debug log, to help track
	     down what unsupported queries are about, etc. (but only endeavor to spend
	     time, RAM and CPU on this if debug verbosity is high enough). Hide the
	     sensitive commands' parameters unless verbosity is unusually high. [#3023]
	 - `upsdrvquery` API updates [#2969]:
	   * Added `upsdrvquery_oneshot_conn()` for issuing one-shot queries using an
	     existing `udq_pipe_conn_t *` connection. The caller manages the
	     connection's lifecycle, and the function includes a best-effort call to
	     restore broadcast mode after the query to return the connection as it was.
	   * Added `upsdrvquery_oneshot_sockfn()` for initiating one-shot queries using
	     a socket filename. Shares internal logic with the existing
	     `upsdrvquery_oneshot()`, which uses a UPS and driver name, respectively.
	   * Introduced `upsdrvquery_restore_broadcast()` to explicitly restore
	     broadcast mode (`BROADCAST 1`) on a connection, helping return it to a
	     consistent and talkative state.
	   * Revised connection ownership handling: internal functions like
	     `upsdrvquery_prepare()` and `upsdrvquery_request()` no longer close
	     connections they do not own. Responsibility for cleanup is now delegated to
	     the caller to avoid unintended side effects and better align with expected
	     usage patterns.
	 - common driver code:
	   * Update reports of failed socket file creation, to help troubleshooting
	     some error cases in the field. [#2959]
	   * Removed workarounds trying to migrate legacy driver raised `ALARM`
	     status tokens into modern `alarm_*` function logic. Rather, we keep
	     supporting them as separate from the modern logic, seeing as `upsmon`
	     does not care where the token itself was raised for its notifications.
	     Driver-code related test-cases were updated to reflect these changes.
	     [issue #2928, PRs #2931 and #2934]
	   * Introduced some macros in `drivers/upshandler.h` for common syslog level
	     definitions and message wording for beginning and failing `instcmd()` or
	     `setvar()` operations consistently in different drivers. As a related
	     change, operations that intend to turn off or restart the load, or can
	     do that by side effect (e.g. calibration if batteries are old or dead),
	     would explicitly `upslogx(LOG_CRIT,...)` by default before commencing.
	     [#2957]
	   * Fixed a couple of ancient memory leaks: one "shared" during driver
	     program initialization, and one specific to `dummy-ups` wind-down. [#2972]
	   * Added a `suggest_NDE_conflict()` method so drivers which lack access
	     to the expected device can consistently suggest that this may be because
	     of running both an NDE-wrapped service unit and a manually launched
	     driver program at the same time. Currently added to `libusb{0,1}.c`
	     code, but may later be expanded to e.g. serial drivers and other media,
	     when their behavior in such situations gets identified. [follow-up to
	     issue #477, PR #3041]
	 - `apc_modbus` driver updates:
	   * The time stamp and inter-frame delay accounting was fixed, alleviating
	     one of the problems reported in issue #2609. [PR #2982]
	   * Fix missing variables due to mismatching format string. [PR #3013]
	 - `bcmxcp` driver updates:
	   * The latching on to a previous replace battery status was fixed, with its
	     alarm state variable now correctly being reset; previously a factually
	     replaced battery did not clear the alarm and the whole driver needed to
	     be restarted. [issue #2999, PR #3002]
	 - `clone`, `clone-outlet`, `nhs_ser` driver and `nutdrv_qx_ablerex`
	   subdriver updates:
	   * Refactored to follow modern handling of status and alarm conditions,
	     aligning with current driver design practices. This includes fixing
	     copy-paste related issues in alarm reporting and removing some alarm
	     messages that should instead be reflected as status flags. [#2936]
	 - `dummy-ups` driver updates:
	   * A new instruction `ALARM` was added for the `Dummy Mode` operation
	     of the driver, enabling simulation of UPS alarm states more closely
	     in line with modern, real-world UPS driver implementations. This
	     follows the updated principle of keeping alarm states decoupled from
	     the `ups.status` variable, with alarms now raised via common alarm
	     functions rather than direct manipulation. [issue #2928, PR #2936]
	 - `nutdrv_qx` driver updates:
	   * Added support for "preprocess"/"process" methods called from mapping tables
	     to report back to the driver that an argument value was not supported,
	     so `setvar()` or `instcmd()` can not proceed safely and should return
	     `STAT_SET_CONVERSION_FAILED` or `STAT_INSTCMD_CONVERSION_FAILED`. [#3017]
	   * Introduced `innovart33` protocol support for Ippon Innova RT 3/3 topology
	     UPSes. [#2938]
	   * Updated `megatec` protocol for more detailed responses to `I` query
	     which may return `ups.serial` (after a shorter `device.mfr`) and the
	     `battery.runtime` (after a shorter `device.model`). Note that the
	     expected response is shorter than in other dialects (38 vs. 39 bytes),
	     so if this change breaks anything for your UPS that reported the values
	     above correctly (e.g. the `ups.firmware` version becomes shorter or
	     none of these are reported), please let NUT developers know. [#2980]
	   * Revised `voltronic` protocol to suppress alarm "UPS is in ECO Mode",
	     using "buzzword mode" settings more correctly than in the previous
	     iteration, shipped in NUT v2.8.3 release (as PR #2750 for issue #2708).
	     [issue #2494]
	   * Introduced a `voltronic-axpert` subdriver for Voltronic Axpert inverters
	     which speak the P30 protocol, currently in a highly experimental state:
	     with initial support for query commands, but most values are "hidden"
	     from default NUT builds by being defined in `experimental.*` namespace,
	     and should also be enabled by `configure --with-unmapped-data-points`.
	     Development was based on work done in the Voltronic Sunny subdriver in
	     https://github.com/nickma82/nut/tree/nutdrv_qx_voltronic-sunny_rebased%2Bcommand
	     [#1407]
	 - `phoenixcontact_modbus` driver updates:
	   * Added more settings that can be tuned -- support for shutdown variables,
	     UPS mode selector, PC reset delay after main power recovers, and
	     automatic switch to battery mode (and back) if main power is below
	     or above a defined threshold (see the new "Configurable Values" section
	     in the man page). They can be configured via `default.*` values in
	     `ups.conf`. [#2986]
	 - `pijuice` driver updates:
	   * Converted to NUT standard use of `status_set()` with single-token values.
	     [issue #2708]
	 - `snmp-ups` driver updates:
	   * Added support for "fun"/"nuf" methods called from mapping tables to
	     report back to the driver that an argument value was not supported,
	     so `setvar()` or `instcmd()` can not proceed safely and should return
	     `STAT_SET_CONVERSION_FAILED` or `STAT_INSTCMD_CONVERSION_FAILED`. [#3017]
	   * Fixed `ups.test.date` to be semi-static in `apc-mib` mapping, so it
	     would be queried more than once per driver up-time. [issue #3011]
	   * Fixed debug-logging around `SU_FLAG_STATIC` entries to clarify when
	     they get skipped. [issue #3011]
	 - `usbhid-ups` driver updates:
	   * Added support for "fun"/"nuf" methods called from mapping tables to
	     report back to the driver that an argument value was not supported,
	     so `setvar()` or `instcmd()` can not proceed safely and should return
	     `STAT_SET_CONVERSION_FAILED` or `STAT_INSTCMD_CONVERSION_FAILED`. [#3017]
	   * `hid_ups_walk(HU_WALKMODE_INIT)`: report if exactly one of "fun" or "nuf"
	     dynamic value mapping methods is defined in a one-line table, and this
	     may preclude reads/writes of that variable. [#2956]
	   * The `cps-hid` subdriver's existing mechanism for fixing broken report
	     descriptors was extended to cover a newly reported case of nominal UPS
	     power being incorrectly reported due to an unrealistically low maximum
	     threshold, as seen with a EC850LCD device. [issue #2917, PR #2919]
	   * Further revision of "ECO mode" related code in `mge-hid` subdriver,
	     following up from work started for NUT v2.8.3 release. [PR #2956]
	   * Added APC BVKxxxM2 and BKxxxM2-CH to list of devices where
	     `lbrb_log_delay_sec=N` may be necessary to address spurious LOWBATT
	     and REPLACEBATT events. [PR #2942, PR #3007, issue #2347, issue #3006]
	 - New NUT drivers:
	   * Introduced a `ve-direct` driver for Victron Energy UPS/solar panels
	     monitoring. Most specific reported values are in an `experimental.*`
	     namespace, as a community we need to come up with standard naming for
	     those via `docs/nut-names.txt`. [#440]
	   * Introduced a `nutdrv_hashx` driver for numerous devices from Ablerex,
	     Atlantis Land, Epyc, Infosec, ION, PowerWalker, Right Power Technology,
	     Salicru, UPS Solutions and other vendors (originally shipped with a
	     "PowerMaster+", "PowerMaster" or "PowerGuide" software companion suite).
	     This seems to be a protocol developed by Cyber Energy for serial-port
	     devices, subsequently used by different vendors in their own products
	     or re-branded Cyber Energy creations. [#2940]
	   * Introduced a `failover` driver for monitoring multiple UPS driver sockets
	     and seamless switching out of UPS data in a failover situation, includes
	     support for end-to-end tracked instant commands and also variable updating.
	     [#2962]
	   * Introduced USB (`powervar_cx_usb`) and Serial (`powervar_cx_ser`) drivers
	     for Powervar CUSPP protocol, tested with GTS (USB) and UPM (USB, Serial)
	     models. [#2988]
	 - The `nut-driver-enumerator.sh` script (NDE) updates:
	   * Now NDE internally tracks dependency of one driver on another one that
	     should be locally running to serve the "original" data points (`clone`,
	     `clone-outlet`, `dummy-ups`, `failover`). It should create "soft"
	     dependencies between respective service instances to order their
	     start-up sequence. [#2962]
	   * Fixed NDE to not consider "masked" systemd units as non-existent or
	     as syntactically failed instantiated unit names. [#3033]
	 - NUT Monitor GUI:
	   * Ported Python 3 version to Qt6, now shipped alongside Qt5 for systems
	     with either or both, maximizing compatibility with old and new setups.
	     [#2946]
	 - `upsmon` client:
	   * Clearer debug logging of `SHUTDOWNCMD` and `NOTIFYCMD` that would be used
	     (or warnings that none was set); flush output buffers after these messages
	     and after each main loop cycle, so any emitted text is seen in a timely
	     manner. [issue #3003, PR #3008]
	 - The `nutshutdown` script (end-game integration for UPS power-off in case
	   of FSD initiated by `upsmon`) was updated to consider `MODE=none` set in
	   `nut.conf` and bail out quietly. [issue #2935, PR #3008]
	 - Manual page recipes and contents:
	   * Introduced handling (possibly rewriting) for man page section "Overviews,
	     conventions, and miscellaneous" (commonly number 7), to deliver support
	     for `man nut` queries (NUT overview manual page also created). [#2945]
	   * A new `configure --with-docs-man-dir-as-base` option was introduced so
	     that directories for man page sections can now be automatically named
	     as either "base" number of the section (e.g. `man1`) or by full section
	     name (`man1m`), as different OS distributions have different preferences
	     in this regard. [#2950]
	   * Option to `configure --enable-docs-man-for-progs-built-only` was added,
	     to differentiate NUT builds that deliver man pages for only built programs
	     (legacy default) or for all of them (as needed for docs sites). [#2976]
	   * Option to `configure --enable-docs-changelog` was added, specifically
	     to allow developer iterations to not waste CPU time rebuilding the huge
	     `ChangeLog*` files whenever their Git index changes. [#3019]
	   * Options to `configure --with-docs-changelog-start` and/or
	     `configure --with-docs-changelog-end` were added to allow developers
	     to customize the size of `ChangeLog*` files when they are generated.
	     Default starting value is `auto` which applies the legacy default
	     `v2.6.0` to release/pre-release builds, or when local Git version info
	     could not be retrieved, and the most-recent release tag (or `master`
	     as fallback) for usual build iterations. Default ending value is `HEAD`
	     for the current git commit at the moment the ChangeLog is (re-)generated.
	     Balancing against the option to not build `ChangeLog*` files at all,
	     this couple allows quicker builds that exercise all relevant recipe
	     code paths. [#3019]
	 - Extended the `gitlog2changelog.py` helper script to report start/end commits
	   actually used, and to allow callers to tweak them better (not only `HEAD`
	   for the end of range); this may be of interest to other projects which use
	   this script. Allow `configure` to disable generation of either certain
	   `ChangeLog*` rendering formats or completely, to speed up developer
	   iterations (much time is wasted when dev-testing new code, due to git
	   index changes if NUT was configured to build with documentation). [#3019]
	 - The `BUILD_TYPE=default-all-errors ci_build.sh` script handling was
	   revised to simplify code, and to default in CI builds to a quicker
	   mode which randomly mixes the selected SSL, USB and UNMAPPED variants
	   (and relies on the dozens of NUT CI farm runs per iteration to likely
	   cover all possible combinations), which should roughly halve the CI
	   build times. Default activity for developer builds should remain as
	   it was -- to try each such "axis" sequentially. [#2973]
	 - Revised generation of links to external manual pages in HTML rendering
	   of NUT manual pages (previous recipe iterations left DocBook XML `ulink`
	   tag "as is", which was not understood by web browsers).
	   [follow-up to PR #2797]
	 - Made the distro-dependent URL template for man pages configurable.
	   [follow-up to PR #2797]
	 - Revised `make install-as-root` to fall back to legacy ways of enabling
	   services, if `systemctl preset-all` fails (assumed due to a systemd 252
	   bug). [#3022]
	 - Added a `make check-parallel-builds` recipe to help troubleshoot recipes
	   in sub-directories, and improved build-ability of existing NUT sources
	   starting from scratch there. This is a workflow useful for NUT development
	   (e.g. to focus only on drivers, or tests, or nut-scanner) but not so much
	   for end-user packaging where everything builds from the root directory.
	   [PR #3030, follows up from PR #2825, highlights why issue #2584 better
	   be solved]
	 - Revised `appveyor.yml` to run CI builds faster (forfeit MSYS2 ecosystem
	   updates and some other steps) and more likely fit in one-hour allocation.
	   Also have it install `mingw-w64-x86_64-python-pyqt6` so the `NUT-Monitor`
	   application can get packaged (would need a capable Python run-time though).
	   [#3046]

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/packages/nut | 9 +++++++--
 lfs/nut                       | 6 +++---
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/config/rootfiles/packages/nut b/config/rootfiles/packages/nut
index 4367797bf..6bcd2a553 100644
--- a/config/rootfiles/packages/nut
+++ b/config/rootfiles/packages/nut
@@ -27,6 +27,7 @@ usr/bin/clone-outlet
 usr/bin/dummy-ups
 usr/bin/etapro
 usr/bin/everups
+usr/bin/failover
 usr/bin/gamatronic
 usr/bin/genericups
 usr/bin/isbmex
@@ -44,12 +45,15 @@ usr/bin/nhs_ser
 usr/bin/nut-scanner
 usr/bin/nutconf
 usr/bin/nutdrv_atcl_usb
+usr/bin/nutdrv_hashx
 usr/bin/nutdrv_qx
 usr/bin/nutdrv_siemens-sitop
 usr/bin/oneac
 usr/bin/optiups
 usr/bin/powercom
 usr/bin/powerpanel
+usr/bin/powervar_cx_ser
+usr/bin/powervar_cx_usb
 usr/bin/rhino
 usr/bin/richcomm_usb
 usr/bin/riello_ser
@@ -69,6 +73,7 @@ usr/bin/upslog
 usr/bin/upsrw
 usr/bin/upssched-cmd
 usr/bin/usbhid-ups
+usr/bin/ve-direct
 usr/bin/victronups
 #usr/include/nut-scan.h
 #usr/include/nutclient.h
@@ -89,8 +94,8 @@ usr/lib/libnutclientstub.so.1
 usr/lib/libnutclientstub.so.1.0.1
 #usr/lib/libnutscan.la
 #usr/lib/libnutscan.so
-usr/lib/libnutscan.so.3
-usr/lib/libnutscan.so.3.0.0
+usr/lib/libnutscan.so.4
+usr/lib/libnutscan.so.4.0.0
 #usr/lib/libupsclient.la
 #usr/lib/libupsclient.so
 usr/lib/libupsclient.so.7
diff --git a/lfs/nut b/lfs/nut
index ffd4601ac..a86b1694f 100644
--- a/lfs/nut
+++ b/lfs/nut
@@ -26,7 +26,7 @@ include Config
 
 SUMMARY    = Network UPS Tools Core (Uninterruptible Power Supply Monitoring)
 
-VER        = 2.8.3
+VER        = 2.8.4
 
 THISAPP    = nut-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = nut
-PAK_VER    = 14
+PAK_VER    = 15
 
 DEPS       =
 
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 515e829286b123610a856003a8838a022ae365b193988477086a683b9da0a99b3b1cf048cecd75c764c8a9a03856e966bd9d82333475670d1df43899d9b8a7bf
+$(DL_FILE)_BLAKE2 = 1a9e86c112055b623811e1747aa420ebb8022189c2e43f38c29cca93171d59b895d1ff5487d8f325c79833c6f6a76bffd849fb179db158bb2a1fbf86952dd797
 
 install : $(TARGET)
 
-- 
2.51.0



^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCH 2/2] core198: Ship collectd due to sobump in nut update
  2025-09-15 17:40 [PATCH 1/2] nut: Update to version 2.8.4 Adolf Belka
@ 2025-09-15 17:40 ` Adolf Belka
  0 siblings, 0 replies; 2+ messages in thread
From: Adolf Belka @ 2025-09-15 17:40 UTC (permalink / raw)
  To: development; +Cc: Adolf Belka

Signed-off-by: Adolf Belka <adolf.belka@ipfire.org>
---
 config/rootfiles/core/198/filelists/collectd | 1 +
 1 file changed, 1 insertion(+)
 create mode 120000 config/rootfiles/core/198/filelists/collectd

diff --git a/config/rootfiles/core/198/filelists/collectd b/config/rootfiles/core/198/filelists/collectd
new file mode 120000
index 000000000..871b32f14
--- /dev/null
+++ b/config/rootfiles/core/198/filelists/collectd
@@ -0,0 +1 @@
+../../../common/collectd
\ No newline at end of file
-- 
2.51.0



^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-15 17:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-09-15 17:40 [PATCH 1/2] nut: Update to version 2.8.4 Adolf Belka
2025-09-15 17:40 ` [PATCH 2/2] core198: Ship collectd due to sobump in nut update Adolf Belka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox