NOTE: This change log section represents git commits in range 'v2.6.0..HEAD' (commits '8103b4e5c..434cb36a3').

2025-08-08  Jim Klimov <jimklimov+nut@gmail.com>

	* tools/gitlog2version.sh: for release, set fallback
	  NUT_VERSION_DEFAULT=2.8.4
	* appveyor.yml: SKIP for now NUT-Monitor prereqs

2025-08-07  Jim Klimov <jimklimov+nut@gmail.com>

	* appveyor.yml: parallelize "make install"
	* appveyor.yml: also install gettext for NUT-Monitor resources
	* appveyor.yml: disable back the docs-config attempt, we do not have
	  tools nor time for that
	* appveyor.yml: try to enable build of HTML docs, notably man pages
	* appveyor.yml, NEWS.adoc: include mingw-w64-x86_64-python-pyqt6
	  [#3046]
	* docs/config-prereqs.txt: suggest PyQt5/6 for Windows builds
	* appveyor.yml: re-enable build with docs and installation, and
	  zipping it  Even if not really tested by that CI in recent
	  iterations, or rather in the iteration which would result from this
	  commit, this can help us get the artifacts made for a release
	  build.
	* appveyor.yml: re-enable some of the activity (except costlier NUT
	  docs and checks so far)

2025-08-06  Jim Klimov <jimklimov+nut@gmail.com>

	* .github/workflows/PyNUTClient.yml, appveyor.yml,
	  scripts/Windows/build-mingw-nut.sh, tools/gitlog2version.sh: Update
	  versions for release of NUT v2.8.4
	* docs/docinfo.xml.in: add docs increment summary for NUT v2.8.4
	  release
	* NEWS.adoc: remove "PLANNED" from section title before NUT v2.8.4
	  release
	* NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text
	  before NUT v2.8.4 release
	* docs/maintainer-guide.txt: revise instructions
	* appveyor.yml: Revert "appveyor.yml: TEMPORARILY disable actual
	  build/test of NUT, to re-cache prereqs and their ccache objects"
	  This reverts commit 43376f874b8c0bc66d08136a522e60a80b9021af after
	  https://ci.appveyor.com/project/nut-travis/nut cache was refreshed.
	* appveyor.yml: cache built nut-win-deps before .ccache objects and
	  pacman pkgs - v2
	* appveyor.yml: cache built nut-win-deps before .ccache objects and
	  pacman pkgs
	* appveyor.yml: re-enable part of the recipe to do build NUT, just
	  not test and install it  ...still saving time allowance to re-seed
	  the caches; while fixing caches, skip docs build
	* NEWS.adoc: mention rebalancing of Appveyor CI recipe to speed up
	  the builds
	* docs/docinfo.xml.in: fix typo in summary for NUT v2.8.3 release
	* appveyor.yml: TEMPORARILY disable actual build/test of NUT, to
	  re-cache prereqs and their ccache objects
	* appveyor.yml: comment about reduced scope of build-mingw-prereqs.sh
	* scripts/Windows/build-mingw-prereqs.sh: comment about netsnmp
	  configure --disable-daemon
	* scripts/Windows/build-mingw-prereqs.sh: log timing of configure,
	  make, house-keeping operations
	* scripts/Windows/build-mingw-prereqs.sh: reduce the scope of netsnmp
	  build
	* appveyor.yml: comment more about profiling/timing different build
	  steps; comment away some more troubleshooting time-hogs
	* appveyor.yml: do not update the MSYS2 ecosystem to bleeding edge,
	  save some time to fit in the 1hr we are given

2025-08-04  Jim Klimov <jimklimov+nut@gmail.com>

	* ci_build.sh: try to increase ulimit
	* docs/config-prereqs.txt, docs/nut.dict: suggest `ulimit` settings
	  via /etc/login.conf for OpenBSD

2025-08-03  Jim Klimov <jimklimov+nut@gmail.com>

	* common/common.c, NEWS.adoc: warn that printf(%n) is deprecated on
	  some newer platforms
	* drivers/nutdrv_qx.c: avoid %n in printf  nutdrv_qx.c:4499:27:
	  error: '%n' specifier not supported on this platform
	  [-Werror,-Wformat]

2025-08-02  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/Makefile.am: fix SED syntax  Kudos to Greg Troxel for the
	  catch

2025-08-01  Jim Klimov <jimklimov+nut@gmail.com>

	* tools/nut-usbinfo.pl: find_usbdevs(): skip files that are not *.c
	  or *.h [#3030]
	* drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c:
	  nut_libusb_open(): for libusb specifically, we have a Wiki page
	  about Insufficient Permissions [#3041]
	* NEWS.adoc, common/common-nut_version.c, drivers/libusb0.c,
	  drivers/libusb1.c, include/common.h: common/common-nut_version.c,
	  include/common.h, drivers/libusb{0,1}.c, NEWS.adoc: introduce
	  suggest_NDE_conflict() [#477, #3040]
	* Makefile.am: check-parallel-builds: ensure that we are in the
	  top_builddir when starting operations relative to it [#3030]  Be
	  pedantic to work around some quirk in NetBSD 9.2 bmake essentially.
	* ci_build.sh: check-parallel-builds: pass
	  CHECK_PARALLEL_BUILDS_REGEN=false as a make argument also, not just
	  envvar [#3030]
	* ci_build.sh: build_to_only_catch_errors_target(): fix
	  "CI_PARMAKE_VERBOSITY=verbose" logging handling

2025-07-31  Jim Klimov <jimklimov+nut@gmail.com>

	* Makefile.am: check-parallel-builds: pre-clean before checking the
	  source locations [#3033]
	* Makefile.am: check-parallel-builds: for out-of-tree builds, check
	  the source locations starting from the correct root [#3033]
	* Makefile.am: check-parallel-builds: call automake portably - in a
	  way detected by configure script [#3033]
	* Makefile.am: check-parallel-builds: if called, automake must be in
	  top_srcdir where configure.ac lives [#3033]
	* .circleci/config.yml: drop explicit "make check-parallel-builds"
	  [#3030]  It is now invoked where applicable for scenarios with
	  `BUILD_TYPE=default-all-errors*` and note it was not buildable as
	  added anyway (earlier ci_build.sh wiped the work area).

2025-07-30  Jim Klimov <jimklimov+nut@gmail.com>

	* ci_build.sh: restore NEWS and README (if needed) between loops of
	  default-all-errors [#3030]
	* ci_build.sh: add a failsafe for CI via
	  NUT_BUILD_CAPS=check-parallel-builds=no label [#3030]
	* Makefile.am: spellcheck-quick/check-parallel-builds: refactor
	  SET_PARMAKES_OPT() code to be reusable [#3030]
	* Makefile.am: check-parallel-builds: fix suggested shell scriptlet
	  to investigate failures [#3030]  Notably, MAKEFLAGS may include the
	  "make" options without the leading dash, or other values that did
	  not have one originally. Better leave it as an environment variable
	  and let the particular "make" program deal with it.
	* ci_build.sh: optionally call "make check-parallel-builds" in
	  BUILD_TYPE="default-all-errors*" [#3030]
	* Makefile.am: check-parallel-builds: allow
	  CHECK_PARALLEL_BUILDS_REGEN=false (to speed up runs where
	  developer/CI did not change recipes anyway) [#3030]
	* tools/nutconf/Makefile.am: libnutscan.la indirectly requires
	  libcommonclient.la (for libupsclient-version.h) so bolt it into
	  deps list [#3030]

2025-07-29  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/man/.gitignore, docs/man/Makefile.am: docs/man/Makefile.am:
	  linkman-driver{,tool}-names.txt: use unique "*.tmp.$$" filenames to
	  fix parallel builds [#3030]
	* scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in, NEWS.adoc: fixed
	  NDE to not consider "masked" systemd units as non-existent [#3033]
	* NEWS.adoc: move voltronic-axpert to existing nutdrv_qx section
	  [#1407]

2025-07-28  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/man/phoenixcontact_modbus.txt: clarify that new options can be
	  set only once (via init) at this time [#2986]
	* NEWS.adoc: clarify how new options for phoenixcontact_modbus can be
	  set [#2986]

2025-07-27  Jim Klimov <jimklimov+nut@gmail.com>

	* tools/gitlog2version.sh: do not pollute stdout [#3030]
	* tools/gitlog2version.sh, docs/nut-versioning.adoc: tack on current
	  commit if known, even if we fall back to built-in version otherwise
	  [#3030]
	* .github/workflows/codeql.yml: drop attempts to describe git-derived
	  version better [#3030]
	* tools/gitlog2version.sh: if we fail to "discover a
	  NUT_VERSION_GIT_TRUNK" or "git describe", check and report if the
	  current checkout is shallow [#3030]  CI builds often do check out
	  the built commit with minimal "depth" (often having just it), which
	  is much faster, cheaper computationally and by traffic. This
	  however precludes finding history intersections of current
	  (single-commit) tree with other trees even if we fetch them.
	* .github/workflows/codeql.yml: separate "make check-parallel-builds"
	  from main build; troubleshoot gitlog2version [#3030]
	* .circleci/config.yml, .github/workflows/codeql.yml, NEWS.adoc:
	  .circleci/config.yml, .github/workflows/codeql.yml: invoke "make
	  check-parallel-builds" [#3030]
	* clients/Makefile.am, drivers/Makefile.am, server/Makefile.am,
	  tests/Makefile.am, tools/nut-scanner/Makefile.am,
	  tools/nutconf/Makefile.am: */Makefile.am: spell out known build
	  order between out-of-dir dependencies [follows up from PR #2825,
	  highlights why issue #2584 better be solved]
	* Makefile.am, NEWS.adoc: introduced a `make check-parallel-builds`
	  recipe [follows up from PR #2825]
	* drivers/snmp-ups.c: re-order includes (keep eatons together)
	* data/driver.list.in: update entry for Kebo UPS-1000D (add
	  langid_fix and subdriver); add Tescom LEO Plus LCD 1500A which
	  works with same config [#981]
	* tools/nut-scanner/Makefile.am: ensure we only call NUT_SCANNER_DEPS
	  and it has work to do only once [follows up from PR #2825]  In
	  practice we do call it as many times as there are listed dependency
	  files, but it only generates them on the first run and quicky bails
	  out later on. This should help avoid writing into same files in
	  parallel, ending up with garbled or incomplete files when we want
	  to use them.

2025-07-24  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/images/ci/jenkins-nut.css: new style in town with Jenkins LTS
	  2.516.1

2025-07-22  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/phoenixcontact_modbus.c: fix typo in what is now a
	  formatting string [#2986]
	* drivers/phoenixcontact_modbus.c,
	  docs/man/phoenixcontact_modbus.txt: fix tweaks according to
	  nut-names, use dstate (so standard variable default.* or override.*
	  settings) [#2986]
	* drivers/phoenixcontact_modbus.c: log FIXMEs for more use of NUT
	  dstate overrides/defaults instead of addvar() tweaks
	* drivers/phoenixcontact_modbus.c,
	  docs/man/phoenixcontact_modbus.txt: fix according to nut-names:
	  "(ups.)delay.shutdown" => "(battery.)energysave.delay" [#2986]
	* drivers/phoenixcontact_modbus.c: fix whitespace in comments [#2986]

2025-07-21  Jim Klimov <jimklimov+nut@gmail.com>

	* configure.ac, docs/configure.txt: fix ASCIIDOC_TEMPLATE_LINKMANEXT*
	  with HTML URL query part [#3027]  ...and a typo about quoting.
	* configure.ac: define default ASCIIDOC_TEMPLATE_LINKMANEXT*
	  according to target_os family (solarish, freebsd, openbsd;
	  default=linux) [follow-up to #2797]
	* configure.ac, docs/Makefile.am, docs/configure.txt,
	  docs/man/Makefile.am: Support optional man page section rewrite
	  also for linkmanext* references [follow-up to #2797]
	* NEWS.adoc, configure.ac, docs/.gitignore, docs/{asciidoc.conf =>
	  asciidoc.conf.in}, docs/configure.txt, docs/man/.gitignore,
	  docs/man/{asciidoc.conf => asciidoc.conf.in}: Do not hard-code
	  linux.die.net (and its man sections) into generated linkmanext*
	  that may vary by distro [follow-up to #2797]
	* NEWS.adoc, docs/man/asciidoc.conf, docs/nut.dict:
	  docs/man/asciidoc.conf, NEWS.adoc: fix generation of links to
	  external manual pages [follow-up to #2797]

2025-07-18  Jim Klimov <jimklimov+nut@gmail.com>

	* common/common.c: minimize_formatting_string(): debug-log about
	  "cosmetic" chars at level 7 [#2956]
	* drivers/nutdrv_qx_voltronic.c: voltronic_mode(): word remaining
	  alarms to be complete sentences [#2494]
	* drivers/nutdrv_qx_voltronic.c: voltronic_mode(): add some debug
	  logging [#2494]
	* docs/man/nutdrv_qx.txt: fix quoting style from m4 to text
	* drivers/nutdrv_qx_voltronic.c, NEWS.adoc: revise
	  "vendor:voltronic:*" buzzword setting; these modes are not alarm
	  material [#2494]

2025-07-18  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: input.bypass.switch.on/off set flag quick update
	  instead semi static

2025-07-17  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/mge-hid.c: eaton_input_bypass_check_range(): fix typo
	  checking for "value==1" [#2956]
	* drivers/usbhid-ups.c: ups_alarm_set(): ignore ECOMODE, we handle it
	  in ups_status_set() [#2956]  Avoid extra work and occasional log
	  messages that:  str_add_unique_token: skip token
	  'vendor:default:ECO': was already set
	* drivers/mge-hid.c: eaton_input_eco_mode_check_range(): refine log
	  output if we remain in ECO/non-ECO mode [#2956]
	* drivers/mge-hid.c: eaton_input_eco_mode_check_range(): sanity-check
	  that value==1 [#2956]
	* drivers/mge-hid.c: make "input.eco.switchable" a HU_FLAG_QUICK_POLL
	  value [#2956]  We want it evaluated on every quick-update loop, so
	  that the correct buzzwords are always set (if device serves the
	  feature). Also quick-update the bypass voltage and frequency, so we
	  know relevant clues (keep semi-static settings as they were
	  though).
	* NEWS.adoc: NEWS.adoc, docs/nut.dict: summary mention for recent
	  small PRs [#3019, #3021, #3022, #3023]
	* drivers/mge-hid.c: convert "input.eco.switchable" definition from
	  HU_FLAG_SEMI_STATIC to regular [#2956]
	* drivers/mge-hid.c: move "input.eco.switchable" definition to end of
	  mge_hid2nut[] table [#2956]
	* Makefile.am: install-as-root: do not overly trust in systemctl
	  preset-all  It fails on systemd 252 (known issue): Failed to preset
	  all units: Unit /run/systemd/transient/session-156053.scope is
	  transient or generated.

2025-07-16  Jim Klimov <jimklimov+nut@gmail.com>

	* server/upsd.c: check_command(): try to print all command arguments
	  (if debugging) [#3023]
	* common/common.c: compareprocname(): Linux /proc/X/exe can end with
	  " (deleted)" if the program was removed or replaced
	* drivers/snmp-ups.c: su_setOID(): cast returned enum constants to
	  int [#3017]  Avoid error claimed by clang-20 et al:  conditional
	  expression between different enumeration types ('enum (unnamed at
	  ./upshandler.h:25:1)' and 'enum (unnamed at ./upshandler.h:34:1)')
	  [-Werror,-Wanon-enum-enum-conversion]
	* docs/Makefile.am: ChangeLog => ChangeLog.adoc: avoid "$<" as this
	  is not a suffix rule

2025-07-15  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/Makefile.am: ChangeLog => ChangeLog.adoc: typo fix in fallback
	  INPUT
	* configure.ac, Makefile.am, docs/configure.txt, NEWS.adoc: introduce
	  confgure option to customize git log ending point [#3019]
	* tools/gitlog2changelog.py.in: allow specifying end of commit range,
	  report it in text  Technically a step to multi-section changelogs,
	  covering each release separately as a range between git tags,
	  regardless of timestamp overlap (with much older prepared commits
	  going into much newer release later on).
	* tools/gitlog2changelog.py.in: typo in comment
	* docs/Makefile.am: ChangeLog => ChangeLog.adoc: revise definition of
	  INPUT  Actually saw it with two tokens recently, for the text and
	  .prep-src-docs touch-file
	* docs/Makefile.am: when writing temporary outputs, make sure they
	  are not empty before moving to final name (else delete and bail
	  out)
	* docs/Makefile.am: .adoc => .adoc-parsed: double-check that input
	  file exists  If a recipe iteration is written incorrectly, make can
	  skip work on some rules (evaluating them as true without writing
	  outputs we need)
	* configure.ac, docs/.gitignore, docs/Makefile.am,
	  docs/configure.txt, docs/{docinfo.xml.sh => docinfo.xml.sh.in}:
	  docs/docinfo.xml.sh.in: make it a template for configure script to
	  generate and embed a @GITLOG_START_POINT@ value to consider
	* configure.ac, Makefile.am, docs/configure.txt, NEWS.adoc: introduce
	  confgure option to customize git log starting point
	* ci_build.sh: configure --disable-docs-changelog in developer
	  iterations
	* configure.ac, docs/Makefile.am, docs/configure.txt, NEWS.adoc,
	  docs/nut.dict: introduce option to "configure
	  --enable-docs-changelog" (or not)
	* docs/ci-farm-lxc-setup.txt: update link to
	  conflict-aware-ondemand-strategy-plugin

2025-07-14  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/mge-hid.c: fix back eaton_input_bypass_mode_on_info[];
	  update comments; make use of errno=0/EINVAL
	* docs/nut.dict: add "nuf" to dict [#3017, #2956]
	* drivers/usbhid-ups.c, NEWS.adoc: hid_ups_walk(HU_WALKMODE_INIT):
	  report if exactly one of fun/nuf is defined in a one-line table,
	  and it would preclude reads/writes [#2956]
	* docs/nut.dict: add "nuf" to dict [#3017, #2956]
	* drivers/mge-hid.c: introduce eaton_input_buzzwordmode_setvar_nuf()
	  [#2956]
	* drivers/usbhid-ups.c, NEWS.adoc: add a way for fun/nuf methods to
	  report EINVAL for unsupported arguments, and bail out [#3017]  Made
	  for progresing on PR #2956
	* drivers/nutdrv_qx.c, NEWS.adoc: add a way for item->preprocess()
	  and qx_process() methods to report EINVAL for unsupported
	  arguments, and bail out [#3017]
	* drivers/snmp-ups.c: su_setOID(): refactor many elvises into one
	  val_practical [#3017]
	* drivers/usbhid-ups.c, NEWS.adoc: add a way for fun/nuf methods to
	  report EINVAL for unsupported arguments, and bail out [#3017]  Made
	  for progresing on PR #2956
	* drivers/snmp-ups.c, NEWS.adoc: add a way for fun/nuf methods to
	  report EINVAL for unsupported arguments, and bail out [#3017]
	* drivers/snmp-ups.c: su_setOID(): return *_CONVERSION_FAILED where
	  applicable; use upslog_*_RESULT() in callers
	  su_setvar()/su_instcmd() for maintainability
	* drivers/snmp-ups.c: su_setOID(): rectify returns of STAT_SET_* vs.
	  STAT_INSTCMD_*  Be pedantically correct about these, even if they
	  map to same numbers for logical names at the moment.
	* drivers/upshandler.h: define loggers for CONVERSION_FAILED, and
	  generally for common RESULT [#2957]
	* drivers/mge-hid.c: fix indentations (TAB vs space) to be consistent
	  [#2956]
	* NEWS.adoc, common/common.c: common/common.c:
	  minimize_formatting_string(): do not loudly log complaints about
	  known cosmetic formatting chars [#2450]
	* common/common.c: minimize_formatting_string(): update comments
	  [#2450]

2025-07-13  Axel Gembe <axel@gembe.net>

	* docs/man/apc_modbus.txt: apc_modbus: Add another tested device
	  model to the man page
	* NEWS.adoc, drivers/apc_modbus.c: apc_modbus: Fix missing variables
	  due to mismatching format string  Calls to `dstate_setinfo_dynamic`
	  were using a different format string in `fmt_dynamic` than spcified
	  in `fmt_reference`.  This causes the following variables to be
	  missing:  ``` battery.runtime experimental.output.energy
	  ups.timer.shutdown ups.timer.start ups.timer.reboot
	  input.transfer.high input.transfer.low ups.delay.shutdown
	  ups.delay.start ups.delay.reboot outlet.group.0.delay.shutdown
	  outlet.group.0.delay.start outlet.group.0.delay.reboot
	  outlet.group.1.delay.shutdown outlet.group.1.delay.start
	  outlet.group.1.delay.reboot outlet.group.2.delay.shutdown
	  outlet.group.2.delay.start outlet.group.2.delay.reboot
	  outlet.group.3.delay.shutdown outlet.group.3.delay.start
	  outlet.group.3.delay.reboot ```  Since #2450 this caused this or
	  similar error messages on our integer values:  ``` [D1]
	  validate_formatting_string: dynamic formatting string '%u' is not
	  equivalent to expected '%lu' ```  This in turn caused the variable
	  to not exist and later calls to `dstate_setflags` to output:  ```
	  apc_modbus: dstate_setflags: base variable (battery.runtime) does
	  not exist ```  We fix this by using the correct format string.

2025-07-10  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/snmp-ups.c, NEWS.adoc: fix debug-logging of skipping
	  SU_FLAG_STATIC entries [#3011]
	* drivers/apc-mib.c, NEWS.adoc: fix "ups.test.date" from
	  SU_FLAG_STATIC to SU_FLAG_SEMI_STATIC [#3011]

2025-07-09  Jim Klimov <jimklimov+nut@gmail.com>

	* NEWS.adoc: mention both APC BVKxxxM2 and BKxxxM2-CH in same fix for
	  usbhid-ups

2025-07-07  Jim Klimov <jimklimov+nut@gmail.com>

	* scripts/systemd/nutshutdown.in, NEWS.adoc: bail out if MODE=none
	  explicitly [#2935]
	* drivers/mge-hid.c: refactor old (pegasus) and new (ECO/ESS) mapping
	  tables with fun/nuf methods [#2956]
	* drivers/mge-hid.c: comment which info_lkp_t[] tables are in fact
	  wrong examples of mapping function usage [#2956]
	* docs/man/phoenixcontact_modbus.txt: reconcile config setting names
	  with strings used in the driver [#2986]
	* docs/man/phoenixcontact_modbus.txt: align shutdown variables
	  descriptions with comments in code [#2986]
	* docs/man/nutupsdrv.txt: document `override.*` or `default.*` names
	  for `var=val` settings
	* docs/man/phoenixcontact_modbus.txt: wrap long lines; anticipate
	  renaming/obsoletion of some driver-specific settings [#2986]
	* NEWS.adoc: document recent changes to start-up messages and loop
	  flushing in upsmon [#3003]
	* clients/upsmon.c: report in debug-log which SHUTDOWNCMD/NOTIFYCMD
	  would be used (and if no NOTIFYCMD was set) [#3003]
	* clients/upsmon.c: fflush() at end of each main loop cycle, just in
	  case
	* clients/upsmon.c: make "Warning: no shutdown command defined"
	  visible when the daemon starts  Being a printf() to stdout, it got
	  buffered and often only appeared on buffer flush when the daemon
	  exited.
	* NEWS.adoc, data/driver.list.in, docs/man/usbhid-ups.txt,
	  docs/nut.dict, drivers/usbhid-ups.c: drivers/usbhid-ups.c: handle
	  also APC BKnnnM2[_-]CH tweaks for
	  lbrb_log_delay_without_calibrating/onlinedischarge_calibration
	  [#3006, #2347]  Update docs, data/driver.list.in suggestions;
	  refactor the if-clause to detect if the tweak applies to the device
	  being handled.

2025-07-04  Jim Klimov <jimklimov+nut@gmail.com>

	* NEWS.adoc: note further ECO mode updates in mge-hid [#2956]
	* NEWS.adoc: clarify message for bcmxcp fix [#3002]
	* NEWS.adoc: re-order ddriver updates alphabetically

2025-07-03  desertwitch <24509509+desertwitch@users.noreply.github.com>

	* NEWS.adoc: add bcmxcp fixes [#3002]
	* drivers/bcmxcp.c: fix latched on to RB alarm

2025-07-03  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/packager-guide.txt: suggest a nut-common package for shared
	  stuff
	* drivers/powervar_cx.c: remove space before parenthesis after
	  status_set() to simplify review for issue [#2708]
	* drivers/pijuice.c, NEWS.adoc: revise use of status_set() [#2708]

2025-06-25  Jim Klimov <jimklimov+nut@gmail.com>

	* NEWS.adoc: announce updates to phoenixcontact_modbus [#2986]
	* docs/man/phoenixcontact_modbus.txt: fix asciidoc markup for man
	  page [#2986]  This is not directly a troff file
	* drivers/phoenixcontact_modbus.c: fix CI complaints [#2986]  *
	  static methods * declarations before code * mismatches of int type
	  vs printf formatting string (hex)
	* docs/man/phoenixcontact_modbus.txt, docs/nut.dict: update
	  authors/contributors list [#2986]
	* drivers/phoenixcontact_modbus.c: fix author/contributor list
	  [#2986]
	* drivers/phoenixcontact_modbus.c: fix back broken whitespace [#2986]
	* drivers/powervar_cx.c, drivers/powervar_cx_ser.c,
	  drivers/powervar_cx_usb.c: drivers/powervar_cx*: fix more
	  formatting string vs. int type mismatches [#2988]

2025-06-25  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: try return int instead double to check compiler
	  issue
	* drivers/mge-hid.c: add some more debug

2025-06-24  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/powervar_cx.c: instcmd(): fix int type of ShowTime [#2988]
	* drivers/powervar_cx.c, drivers/powervar_cx.h: drivers/powervar_cx*:
	  fix int type of GetSubstringPosition() [#2988]
	* drivers/powervar_cx.c, drivers/powervar_cx.h,
	  drivers/powervar_cx_usb.c: drivers/powervar_cx*: fix visibility of
	  some declarations [#2988]
	* drivers/powervar_cx.c: prefer snprintf() over strncpy() [#2988]
	* drivers/powervar_cx.c, drivers/powervar_cx_ser.c,
	  drivers/powervar_cx_usb.c: drivers/powervar_cx*.c: use same style
	  for space after comma [#2988]
	* drivers/powervar_cx.c, drivers/powervar_cx_usb.c:
	  drivers/powervar_cx*.c: use same style for space after "if" [#2988]
	* drivers/powervar_cx.c: avoid unbound strcpy() and strcat() [#2988]
	* drivers/Makefile.am, drivers/powervar_cx.c, drivers/powervar_cx.h,
	  drivers/powervar_cx_ser.c, drivers/powervar_cx_usb.c:
	  powervar_cx_{ser,usb}: split helper code powervar_cx.{c,h} into a
	  true C header and compiled C source (do not "include" the latter)
	  [#2988]
	* NEWS.adoc, docs/man/Makefile.am, docs/man/powervar_cx_ser.txt,
	  docs/man/{powervar-cx.txt => powervar_cx_usb.txt},
	  drivers/Makefile.am, drivers/{powervar-cx.h => powervar_cx.h},
	  drivers/{powervar-cs.c => powervar_cx_ser.c},
	  drivers/{powervar-cu.c => powervar_cx_usb.c}:
	  powervar_cx_{ser,usb}: rename sources, separate man pages [#2988]
	* drivers/powervar-cu.c, drivers/powervar-cx.h: drivers/powervar-c*:
	  avoid sub-standard "uint" type [#2988]
	* drivers/powervar-cu.c: SendRequest(): revise nulling of outbuff[],
	  add sanity-checks and comment about them [#2988]
	* drivers/powervar-cu.c: fix upsdebugx(verbosity) vs
	  upslogx(facility) [#2988]
	* drivers/powervar-cu.c: SendRequest(), PowervarGetResponse(): align
	  int vars with print format and return types [#2988]

2025-06-24  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: rename
	  enable/diasble to start/stop

2025-06-24  Bill Elliot <bill@wreassoc.com>

	* drivers/powervar_cx.c, drivers/powervar_cx.h,
	  drivers/powervar_cx_usb.c: Add comment(s) in source about compiling
	  common driver file.  Add FIXME note.

2025-06-23  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/man/powervar-cx.txt: fix NAME section to generate the alias
	  man pages [#2988]  NOTE: man aliases are special reference files,
	  so the target powervar-cx.8 file must be delivered wherever *-cs
	  and/or *-cu are the one(s) really needed.

2025-06-20  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/powervar-cu.c: use NUT standard population of regex_array
	  for USB config parameters [#2988]
	* drivers/powervar-cu.c: fix int size mismatch [#2988]  Code scanning
	  / CodeQL: Comparison of narrow type with wide type in loop
	  condition: Comparison between [i](1) of type uint8_t and
	  [ReqLen](2) of wider type size_t.
	* drivers/powervar-cu.c, drivers/powervar-cx.h: drivers/powervar-c*:
	  fix clang complaints about method visibility/declaration [#2988]
	* docs/man/Makefile.am: neuter powervar-c{s,u}.html (similar to other
	  fictional HTML aliases) for now [#2988]
	* drivers/powervar-cu.c, drivers/powervar-cx.h: drivers/powervar-c*:
	  slightly revise C markup (indentations, declarations on top)
	  [#2988]
	* UPGRADING.adoc: note packaging of powervar-cX man pages [#2988]
	* docs/man/Makefile.am: fix recipes to nominally deliver the
	  powervar-c[us] pages, aliased from one powervar-cx [#2988]
	* docs/man/powervar-cx.txt: fix asciidoc markup; clarify that there
	  are two powervar* drivers (USB/Serial) at this time [#2988]
	* NEWS.adoc: introduced powervar-cs and powervar-cu drivers [#2988]
	* data/driver.list.in: update top comment with formatting
	  requirements for markup of this file [#2988]
	* data/driver.list.in: parsing scripts expect single-TAB separation
	  of fields [#2988]

2025-06-19  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/Makefile.am: specify VPATH for sub-makes doing spellcheck
	* docs/Makefile.am, docs/man/Makefile.am, NEWS.adoc: only SED text
	  source files for *-prepped (man page section, nut-website, etc.)
	  rewrites [#2989]
	* clients/upsmon.c: when warning about no SHUTDOWNCMD, check about no
	  MINSUPPLIES too (maybe not a problem)
	* scripts/systemd/nutshutdown.in: update notes on purpose, location
	  and likely variations
	* conf/upsmon.conf.sample.in: update notes on Windows SHUTDOWNCMD
	* conf/upsmon.conf.sample.in: update notes on semi-required settings

2025-06-16  haul <ulfathasangarayev@gmail.com>

	* docs/man/phoenixcontact_modbus.txt,
	  drivers/phoenixcontact_modbus.c: Fix issues from previous PR review
	  - Bumped internal version to 0.09 (two-digit format) - Replaced
	  single-line // comments with /* ... */ block comments - Added
	  missing variable descriptions to the man page - Preserved original
	  authors in metadata - Standardized config variable names to align
	  with nut-names.txt where possible - Declared all variables at top
	  of scope as per C89 style  Feedback originally provided by
	  @jimklimov on PR #2986 (superseded by this commit)

2025-06-16  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: try again in one func
	  eaton_input_eco_mode_auto_on_off_info()
	* drivers/mge-hid.c: Fix value ("1") in nuf
	* drivers/mge-hid.c: for test value after compile

2025-06-15  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: separate on / off as only fisrt command is used
	  in this case

2025-06-13  haul <haul@tgw-group.com>

	* drivers/phoenixcontact_modbus.c: Add support for shutdown
	  variables, mode selector, PC reset timing, and battery switch
	  threshold  - Introduced new variables to the phoenixcontact_modbus
	  driver especially for QUINTS 4 USB: - shutdown variables - mode
	  selector 9 = PC_MODE - PC reset delay after main power recovers -
	  automatic switch to battery mode if main power is below or above a
	  defined threshold.

2025-06-12  Jim Klimov <jimklimov@gmail.com>

	* docs/man/nut.txt, docs/man/index.txt: introduce
	  "ifndef::included-skip-title[]" toggle
	  [networkupstools/nut-website#61]

2025-06-12  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: return on/off
	* drivers/mge-hid.c: another typo
	* drivers/mge-hid.c: double, small fixes
	* drivers/mge-hid.c: convert from two functions to one
	  `eaton_input_eco_mode_auto_on_off_fun/[nuf]()`
	* drivers/mge-hid.c: return double (0.0 and 0.1) instead of named
	  double

2025-06-11  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/apc_modbus.c, NEWS.adoc: bump version, add summary [#2982]
	* docs/man/pijuice.txt, docs/nut.dict: some more nuances [#2985]
	* lib/libupsclient-config.in: single-quote ConfigFlags value
	* lib/libupsclient-config.in: define commonly customized dirs so
	  ConfigFlags do not emit warnings when configure script parses the
	  template
	* configure.ac: nut-common-tmpfiles.conf: own PIDPATH as root if not
	  overlapping with unprivileged patgs
	* docs/man/pijuice.txt, docs/nut.dict: update with nuances of PiJuice
	  HAT UPS setup from practice
	* Makefile.am: install-as-root: fix for new installs with systemd

2025-06-11  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: double fix
	* drivers/mge-hid.c: small fixes
	* drivers/mge-hid.c: added dummy and Conversion back of
	  `eaton_input_eco_mode_auto_off[on]_fun()`

2025-06-10  Hector Martin <marcan@marcan.st>

	* drivers/apc_modbus.c: Fix interframe delay  The delay is supposed
	  to be from *end* of a frame to *start* of the next. Also fix the
	  type used for timestamp calculations (useconds_t is not big enough
	  and overflows).  Fixes: #2609

2025-06-08  Jim Klimov <jimklimov+nut@gmail.com>

	* drivers/nutdrv_qx_megatec.c: specify that we accept 38+ bytes as
	  answer for "I" query, and any length after byte 28 till end of
	  reply is ups.firmware [#2980]  Also finally bump the subdriver
	  version for this PR
	* NEWS.adoc, UPGRADING.adoc: note the 38 vs 39 byte expected response
	  to "I" in nutdrv_qx::megatec subdriver [#2980]

2025-06-06  Bill Elliot <bill@wreassoc.com>

	* docs/acknowledgements.txt, docs/man/powervar-cx.txt, docs/nut.dict:
	  Text and NUT.dict tweaks to pass distcheck-light

2025-06-05  Bill Elliot <bill@wreassoc.com>

	* docs/man/Makefile.am, docs/man/powervar-cx.txt: Man page fixes.
	  Crossing T's and dotting I's.
	* docs/acknowledgements.txt: Fix web link in, and add support note
	  to, acknowledgements.txt
	* drivers/powervar-cs.c, drivers/powervar-cu.c: Change versions from
	  0.80 to 1.00 to prepare for release.

2025-06-04  gksmsk <90905316+gksmsk@users.noreply.github.com>

	* drivers/nutdrv_qx_megatec.c: Update nutdrv_qx_megatec.c  Added a
	  parameter battery.runtime

2025-06-04  Jim Klimov <jimklimov+nut@gmail.com>

	* configure.ac, docs/configure.txt: suggest a --with-drvpath that is
	  not bindir but rather libexecdir
	* NEWS.adoc: Updated `megatec` protocol for more detailed responses
	  to `I` query [#2980]
	* drivers/nutdrv_qx_megatec.c: revise comments for "I" query updates
	* docs/man/nut.txt: reword coupling of upsmon with upssched
	* docs/man/huawei-ups2000.txt: fix title
	* docs/man/clone-outlet.txt, docs/man/clone.txt,
	  docs/man/dummy-ups.txt, docs/man/failover.txt, docs/man/nut.txt,
	  docs/man/tripplite_usb.txt: docs/man/*: fix man page section
	  references for upsc/upscmd/upsrw/NUT-Monitor/upsmon/upssched (1 =>
	  8)

2025-06-03  Jim Klimov <jimklimov+nut@gmail.com>

	* NEWS.adoc, UPGRADING.adoc: report recent documentation/recipe
	  improvements [#2976, #2946]
	* docs/nut-versioning.adoc: version-related code moved from common.c
	  to common-nut_version.c [#2913, #2097]  ...to reduce the
	  rebuild/relink scope.
	* docs/man/.gitignore, docs/man/Makefile.am, docs/man/index.txt,
	  docs/nut.dict: docs/man/index.txt, docs/man/Makefile.am,
	  docs/man/.gitignore: report the effect of
	  DOC_INSTALL_SELECTED_MANS_PROGS_BUILT on delivered docs and indexed
	  man pages

2025-06-02  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/man/Makefile.am: linkman-*.txt: depend on Makefile after all
	  (adapt to varying configure choices)
	* docs/man/Makefile.am: trace GENERATE-LINKMAN events during build
	* docs/man/Makefile.am: actually honour
	  DOC_INSTALL_SELECTED_MANS_BUILTPROGS toggle for linkman*.txt
	  generation [networkupstools/nut-website#60]  Probably a lot more
	  can be enhanced later, to also consider this in delivery of HTML
	  MAN page renders, or finer-grained selections for even more
	  optional drivers (nhs_ser on linux), clients (Python UI),
	  development-only tools (like sockdebug), or platform-specific progs
	  (nut.exe), etc.
	* Makefile.am, docs/configure.txt, docs/maintainer-guide.txt: suggest
	  or ensure `configure --enable-docs-man-for-progs-built-only=no` for
	  dist/distcheck builds [networkupstools/nut-website#60]
	* ci_build.sh: if we end up building and/or installing documentation,
	  do parse all files (even if we do not build some programs here)
	  [networkupstools/nut-website#60]
	* configure.ac, docs/configure.txt, docs/nut.dict: configure.ac,
	  docs/configure.txt: convert to use of separate option
	  --enable-docs-man-for-progs-built-only=<yes|no>
	  [networkupstools/nut-website#60]
	* configure.ac, docs/configure.txt: introduce
	  --with-docs=(all=)mans-builtprogs vs. mans-all
	  [networkupstools/nut-website#60]
	* docs/man/Makefile.am, docs/man/.gitignore: refactor generation of
	  linkman-*.txt to pick up new driver lists in persistent NUT
	  building workspaces [networkupstools/nut-website#60]
	* docs/man/Makefile.am: linkman-*-names.txt: re-generate if the
	  Makefile.am changes [networkupstools/nut-website#60]

2025-05-30  Jim Klimov <jimklimov+nut@gmail.com>

	* ci_build.sh: default-all-errors: report count of SUCCEEDED and
	  FAILED builds
	* Makefile.am, NEWS.adoc: check-files-quick: only spellcheck-quick by
	  default if we `configure --enable-spellcheck`
	* configure.ac: NUT_REPORT_FEATURE(WITH_SPELLCHECK), not just
	  AM_CONDITIONAL() it quietly
	* conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt,
	  docs/man/usbhid-ups.txt: mention that there are different
	  "POLLFREQ" settings between upsmon and some drivers [#2974]

2025-05-28  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
	  make UPS priorities more readable in code
	* drivers/failover.c: improve guarding of ups->status against NULL
	  dereference  Adds checks to ensure ups->status is not NULL before
	  use, preventing a possible NULL pointer dereference.
	* drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
	  store runtimes in UPS struct  These changes avoid constant lookups
	  in the variable table for better performance.
	* drivers/failover.c: minor improvements to order and debug levels
	* docs/man/failover.txt, docs/nut.dict: introduce checkruntime
	  argument
	* drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
	  introduce checkruntime argument
	* tests/nut-driver-enumerator-test.sh: reflect recent enumerator
	  changes in test expectations [#2962]
	* docs/man/failover.txt, drivers/failover.c, drivers/failover.h:
	  drivers/failover.{c,h}, docs/man/failover.txt: use _sockfn() for
	  one-shot connections  This change removes the dependency on
	  splitting socket names into UPS and driver names. We now rely on
	  the user to provide valid sockets: if it connects, it connects.
	  This enables the use of full paths in the port argument also,
	  improving flexibility and enhancing scriptability.

2025-05-28  Jim Klimov <jimklimov+nut@gmail.com>

	* ci_build.sh, NEWS.adoc: default-all-errors: refactor to use of a
	  common BUILDSTODO_LIST with one processing loop
	* ci_build.sh: default-all-errors: report why we list e.g. 8
	  scenarios and plan 7 runs (due to unmapped)
	* ci_build.sh: default-all-errors: refactor
	  BUILDSTODO_(SSL|USB|UNMAPPED) determination as size of bash array,
	  not via expr maths
	* ci_build.sh: default-all-errors: first pass conversion of
	  NUT_(USB|SSL|UNMAPPED)_VARIANTS from strings to bash arrays
	* ci_build.sh: default-all-errors: refactor FAILED/SUCCEEDED tracking
	  as bash arrays
	* ci_build.sh: default-all-errors: first steps to separate this
	  BUILD_TYPE into "quick" and "exhaustive" variants
	* docs/man/nut.txt, docs/man/index.txt: do not reference nut(7) when
	  including the man page index for rendering the page itself [#2945]
	* docs/man/nut.txt: rephrase NDE text
	* docs/man/nut.txt: fix "notable clients" bullet-list rendering
	* docs/man/nut-driver-enumerator.txt: update intro, mention
	  driver-on-drver dependencies [#2962]
	* NEWS.adoc: mention NDE change to track inter-driver dependency
	  [#2962]
	* NEWS.adoc: revise a few recent fixes

2025-05-27  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/dummy-ups.c: make upsdrv_cleanup() conditional on actual
	  allocs, not mode
	* drivers/dummy-ups.c: free ctx in upsdrv_cleanup() whenever
	  allocated
	* drivers/main.c: free temporary buffer in splitxarg()

2025-05-26  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/failover.c: use str_to_int() also in instcmd()
	* drivers/failover.c: make csv_arg_to_array() more reusable
	* drivers/failover.c: remove magic -1 from str_arg_to_int(), use
	  INT_MIN/MAX instead
	* drivers/failover.c: safer string to numeric conversions, improved
	  argument handling

2025-05-26  Jim Klimov <jimklimov+nut@gmail.com>

	* NEWS.adoc: revise announcement of upsdrvquery API updates [#2969]
	  * Link to PR, since we already have one shared by the different
	  highlighted achievements * Revise style to be same as in other
	  lists
	* scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: report if other
	  device uses unexpected driver [#2962]
	* m4/nut_check_libnss.m4: add Mozilla MPS headers to "-isystem" bunch
	  (CLANG/GCC builds)
	* Jenkinsfile-dynamatrix: use same naming style (no parenthesis
	  around C/C++ std version)
	* docs/man/netxml-ups.txt, docs/man/snmp-ups.txt: fix title casing
	* docs/man/skel.txt, docs/man/tripplite_usb.txt,
	  docs/man/ups.conf.txt, docs/security.txt: docs/*: fix remaining
	  links to man pages of external tools
	* docs/man/bestups.txt, docs/man/upsd.txt, docs/man/upsmon.txt,
	  docs/man/upssched.conf.txt, docs/man/upsset.cgi.txt:
	  docs/man/*.txt: fix linkman references to conf-file man pages
	  (default section 5 not 8)
	* docs/man/nut.txt, docs/man/upsmon.conf.txt, docs/man/upsmon.txt,
	  docs/nut.dict: Update upsmon(.conf) pages regarding SHUTDOWNCMD and
	  root [#2970]  Closes: #2970
	* docs/documentation.txt: refer to docs/man/nut.html from rendered
	  docs [#2950]
	* docs/man/Makefile.am: fix publication of nut.html on nut-website
	  [#2950]
	* docs/man/index.txt: publish linkman:nut[7] [#2950]

2025-05-24  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/upsdrvquery.c: drop redundant parentheses [#2963]
	* drivers/upsdrvquery.c: consistent guarding of _read_timeout() ret
	  cast [#2963]  The value of ret never exceeds the size of conn->buf,
	  which is defined as LARGEBUF. However, defensive guarding against
	  exceeding the buffer size was already in place for upsdebug_hex(),
	  so make upsdebugx() call consistent with it.
	* drivers/upsdrvquery.c: cast _read_timeout() ret directly to int
	  [#2963]  The value of ret never exceeds the size of conn->buf,
	  which is defined as LARGEBUF. A direct cast to int is safe in this
	  context and avoids tautological comparison warnings on some
	  platforms.
	* drivers/upsdrvquery.c: make _restore_broadcast() return values
	  consistent with _prepare()  A caller does not know about the
	  underlying _write() call and should not care about the number of
	  bytes written. Return -1 or 1 consistently, as already done the
	  same in _prepare().
	* NEWS.adoc: announce upsdrvquery API updates
	* drivers/upsdrvquery.c, drivers/upsdrvquery.h:
	  drivers/upsdrvquery.{c,h}: add _restore_broadcast(), call after
	  _oneshot_conn() (best-effort)  The _oneshot_conn() function does
	  not own the connection, so it should make a best-effort attempt to
	  restore the connection chatter (re-enabling broadcast) before
	  returning.  This ensures the caller receives the connection back in
	  a reasonably consistent state.
	* drivers/upsdrvquery.c: revise ownership of connections in _prepare
	  and _request
	* docs/man/failover.txt: fix incompatible characters
	* drivers/Makefile.am: add failover.h for dists

2025-05-23  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/upsdrvquery.c, drivers/upsdrvquery.h:
	  drivers/upsdrvquery.{c,h}: revise ownership and freeing of one-shot
	  connections
	* drivers/upsdrvquery.c, drivers/upsdrvquery.h:
	  drivers/upsdrvquery.{c,h}: new oneshot functions, refactor existing
	  without breaking API
	* NEWS.adoc, docs/nut.dict: introduce upsdrvquery changes
	* docs/man/failover.txt: add 3rd party tool use case for rationale
	* docs/man/failover.txt: add limitations
	* docs/man/failover.txt: add note to factor in network or
	  lock-picking delays for inittime
	* docs/man/failover.txt: make hyphens consistent
	* drivers/failover.c: remove progname from non fatal log message
	* docs/man/failover.txt: polish documentation and add rationale
	* drivers/failover.c: safeguard ups_promote_primary against NULL or
	  double promotion
	* drivers/failover.c: show truncation content at end of log message
	* drivers/failover.c: remove redundant _init() calls for status/alarm
	* drivers/failover.c: do not fatalx on no connectable drivers, keep
	  trying instead
	* drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
	  introduce failover.h for defines, typedefs
	* drivers/failover.c: use enum for priorities
	* drivers/failover.c: use NUT_STRARG helper for null checks in
	  various places

2025-05-23  Jim Klimov <jimklimov+nut@gmail.com>

	* docs/config-notes.txt: fix reference to Augeas chapter in
	  developer-guide [#2968]
	* docs/man/nut_usb_addvars.txt: clarify the optionality and dangers
	  of bus/busport/device settings [#2447]

2025-05-22  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/failover.c: reword shutdown to be more clear

2025-05-22  Jim Klimov <jimklimov+nut@gmail.com>

	* scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: add support for
	  "drivers=..." media type for dependencies, and failover driver
	  using that [#2962]
	* docs/nut.dict: add "resizing"
	* Jenkinsfile-dynamatrix: extend "GNU C89/C++98 ... with GCC"
	  (BUILD_WARNFATAL=yes BUILD_WARNOPT=auto) to also cover Strict C in
	  all CI runs  Note: this differs from "Strict ANSI C" builds done in
	  fightwarn branches, those try "minimal" and "hard" BUILD_WARNOPT
	  types.
	* Jenkinsfile-dynamatrix: "GNU C99+/C++11+" and "GNU C89/C++98 ...
	  with GCC" should nowadays be BUILD_WARNFATAL=yes when
	  BUILD_WARNOPT=auto
	* Jenkinsfile-dynamatrix: "A build with all driver types...for other
	  C/C++ revisions" - disable C99/C++98 checked as main revision
	* Jenkinsfile-dynamatrix: update build scenario names to reflect
	  warnings levels and standard versions
	* tools/nut-scanner/nut-scanner.c, drivers/mge-hid.c,
	  drivers/hwmon_ina219.c: fix source markup to remain compatible with
	  C89 syntax
	* NEWS.adoc: document fixes for adaptive varargs sizing [#2963]
	* common/common.c: fix typo in comment

2025-05-22  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: upsdebugx in  bypass and ecomode functions
	  updated with %s: and __func__ for easy debug later

2025-05-20  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/upsdrvquery.c: safer comparison for printable_len [#2963]
	* include/common.h: do not assume va_copy() to be a macro on all
	  systems [#2963]
	* configure.ac: more portable va_copy() checks [#2963]
	* common/common.c: fix comment [#2963]
	* drivers/upsdrvquery.c: fix comment [#2963]
	* drivers/upsdrvquery.c: revise signed/unsigned comparison, account
	  for ret < 0 [#2963]
	* common/common.c: condense declarations and comments for va_copy()
	  [#2963]
	* common/common.c, configure.ac, include/common.h: configure.ac,
	  common/common.{c,h}: define va_copy with __va_copy where
	  needed/available [#2963]
	* drivers/upsdrvquery.c: fix assumption about ret [#2963]
	* drivers/upsdrvquery.c: account for non-null-terminated buffers
	  [#2948]
	* common/common.c: only upsize buffer in vupslog() if va copying is
	  supported [#2948]
	* configure.ac: test for va_copy and __va_copy

2025-05-19  Sebastian Kuttnig <sebastian.kuttnig@gmail.com>

	* drivers/failover.c: make defensive freeing consistent throughout
	  the file
	* drivers/failover.c: preserve which port value failed the argument
	  parsing process
	* drivers/failover.c: clean dstate after fsdmode 0, remove now freed
	  var from exit debug
	* drivers/failover.c: free parse_port_argument() tmp on premature
	  exit [#2962]
	* drivers/failover.c: add shutdown non-handling
	* drivers/failover.c, NEWS.adoc: fixes for compiler warnings, add PR
	  number to news entry [#2962]
	* NEWS.adoc: introduce failover driver
	* server/netget.c: rewrite upstream prefix for proxying drivers
	* docs/man/Makefile.am, docs/man/failover.txt, docs/nut.dict,
	  drivers/Makefile.am, drivers/failover.c: drivers/, docs/: introduce
	  failover driver

2025-05-18  Jim Klimov <jimklimov+nut@gmail.com>

	* Makefile.am: EXTRA_DIST ci_build.sh along with ci_build.adoc
	* Makefile.am: Revert "Makefile.am: as long as we do not tarball
	  ci_build.sh, do not deliver its doc either"  This reverts commit
	  7a2e5d771c57f5768ced35e5d2994ed9f214a491: the doc is part of
	  qa-guide. Makes more sense to also dist the script instead.
