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

	* drivers/generic_gpio_libgpiod.c: align another print format with
	  int type [#2911]

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

	* configure.ac, common/common.c, include/Makefile.am,
	  docs/nut-versioning.adoc: integrate NUT_VERSION_QUERY=IS_PRERELEASE
	  support
	* tools/gitlog2version.sh, docs/nut-versioning.adoc: extend NUT
	  SEMVER with support for (rc|alpha|beta) tags or VERSION_FORCED file
	  contents; queries and variables for PRERELEASE info
	* docs/maintainer-guide.txt, docs/nut-versioning.adoc,
	  tools/gitlog2version.sh: tools/gitlog2version.sh,
	  docs/maintainer-guide.txt: introduce support for
	  NUT_VERSION_QUERY="UPDATE_FILE_GIT_RELEASE"
	* docs/nut.dict: fix order and count
	* docs/maintainer-guide.txt: suggest RC naming in VERSION_FORCED, and
	  a way to protect these files from accidental deletion

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

	* configure.ac: always detect if we have_disted_doc_man
	* configure.ac: report something reasonable if we skipped checking
	  for have_disted_doc_man

2025-04-18  desertwitch <24509509+desertwitch@users.noreply.github.com>

	* common/nutwriter.cpp, tests/nutconf_ut.cpp: streamline
	  ALARMCRITICAL writer/expectations with documentation [#2909]
	* scripts/augeas/nutupsmonconf.aug.in: introduce ALARMCRITICAL
	  setting
	* common/nutwriter.cpp: introduce upsmon ALARMCRITICAL setting
	* common/nutconf.cpp, include/nutconf.hpp, tests/nutconf_ut.cpp:
	  introduce upsmon ALARMCRITICAL setting
	* scripts/augeas/nutupsmonconf.aug.in: introduce OVERDURATION setting
	* common/nutwriter.cpp: introduce upsmon OVERDURATION setting
	* common/nutconf.cpp, include/nutconf.hpp, tests/nutconf_ut.cpp:
	  introduce upsmon OVERDURATION setting
	* NEWS.adoc, docs/nut.dict: introduce OVERDURATION setting
	* conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt: introduce
	  OVERDURATION setting
	* clients/upsmon.c, clients/upsmon.h: introduce OVERDURATION setting

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

	* tests/nutconf_ut.cpp: fix expectations for ALARMCRITICAL [#2909]
	* tools/nut-usbinfo.pl: comment a TODO
	* Makefile.am, tools/Makefile.am: fix parallel rebuilds of
	  nut-scanner (generate sources via nut-scanner-deps/tools only once)
	  [#2825]
	* drivers/hwmon_ina219.c: rephrase message about invalid "port" value
	* drivers/nutdrv_qx.c: warn user if setting both port!="auto" and
	  settings for USB mode [#2906]
	* drivers/nutdrv_qx.c: avoid extra lookup for
	  dstate_getinfo("driver.parameter.port")

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

	* Makefile.am, docs/Makefile.am, scripts/Solaris/Makefile.am,
	  tests/Makefile.am: */Makefile.am: report work skipped by design as
	  "  SKIP  description" (separated by TAB chars)
	* Makefile.am, common/Makefile.am, docs/Makefile.am,
	  docs/man/Makefile.am, scripts/Solaris/Makefile.am,
	  scripts/python/module/Makefile.am: */Makefile.am: where we echo "
	  TOKEN  description", separate them by TAB chars

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

	* Jenkinsfile-dynamatrix: skip macos for Default Autotools builds
	  (fightwarn/qemu scenarios)  At least now that the worker available
	  to NUT CI farm requires hacks for HomeBrew with
	  -Wno-poison-system-directories ...
	* UPGRADING.adoc: revise notes for NUT v2.8.3 release to upper-case
	  starts of sentences
	* NEWS.adoc: revise notes for NUT v2.8.3 release to group some themes
	  and to upper-case starts of sentences
	* NEWS.adoc: modbus drivers now report NUT_MODBUS_LINKTYPE_STR
	  [#2897]
	* drivers/phoenixcontact_modbus.c, drivers/generic_modbus.c,
	  drivers/huawei-ups2000.c, drivers/socomec_jbus.c,
	  drivers/adelsystem_cbi.c: report NUT_MODBUS_LINKTYPE_STR
	* drivers/apc_modbus.c: report NUT_MODBUS_LINKTYPE_STR
	* m4/nut_check_libmodbus.m4: detect NUT_MODBUS_LINKTYPE_STR
	* m4/nut_check_libmodbus.m4: only define NUT_MODBUS_HAS_USB if
	  nut_have_libmodbus also
	* configure.ac: detect LDD early, so everyone can use it if available
	* common/common.c, NEWS.adoc: upsnotify(): default to not spam if our
	  first message to be suppressed is already about stopping the
	  program [#1590]

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

	* docs/maintainer-guide.txt: more notes to check code/recipe quality
	  before release
	* docs/config-prereqs.txt, docs/nut.dict: wrap most long lines,
	  reword a few

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

	* docs/man/upscmd.txt, docs/man/upsrw.txt: clarify "OK" vs. waiting
	  for result [#2900]
	* docs/Makefile.am: ensure qa-guide-docinfo.xml made for
	  qa-guide.adoc-prepped generally
	* Jenkinsfile-dynamatrix: use ci_build.sh extended to support
	  BUILD_TYPE="default-spellcheck-quick"
	* ci_build.sh: extend to support
	  BUILD_TYPE="default-spellcheck-quick" as well as CLI shortcuts for
	  quick interactive and normal spellchecks
	* ci_build.sh: help troubleshoot invalid CPP setting
	* ci_build.sh: build_to_only_catch_errors_check(): call from default
	  build routine too instead of "make check"
	* ci_build.sh: build_to_only_catch_errors_check(): handle
	  spellcheck-quick before other checks
	* configure.ac, NEWS.adoc: extend enable_inplace_runtime mode to
	  consider also cgipath, drvpath, datadir, libdir [#2895]
	* docs/maintainer-guide.txt: note to check for library changes
	  (exposed API) [#2895]
	* docs/maintainer-guide.txt: note to not rush, and do use RC tags
	* clients/Makefile.am, tools/nut-scanner/Makefile.am, UPGRADING.adoc:
	  flip library version-info to new "current" numbers (more symbols
	  exported now) [#2895]
	* docs/configure.txt, docs/nut.dict: docs/configure.txt: tell more
	  about the --datadir option vs. --datarootdir
	* configure.ac: typo fix in comment
	* configure.ac: suggest comparing the "in-place" FS layout before
	  installing it live [#2895]
	* INSTALL.nut.adoc: in-place upgrades: document how to compare new
	  build FS layout to existing deployment to be overwritten
	* INSTALL.nut.adoc: fix dashes in "Building NUT for in-place upgrades
	  or non-disruptive tests" chapter title and references
	  (Unicode=>ASCII)

2025-04-12  Scott Shambarger <devel@shambarger.net>

	* scripts/external_apis/enphase/enphase-monitor.in:
	  scripts/external_apis/enphase: correct neg number conversion, retry
	  api  Negative floats, and floats 0.08/0.09 were resulting in
	  invalid octal numbers.  The envoy API occasionally stalls; extended
	  timeout to 10s and added a single retry to avoid spurious "nocomms"
	  state.

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

	* common/unsetenv.c, configure.ac, include/proto.h: Introduce
	  fallback unsetenv() e.g. for WIN32 [#2890]
	* NEWS.adoc: note the changes for upssched and NIT [#2890]
	* clients/upssched.c: also writepid() and unsetenv() in WIN32 builds
	  [#2890]
	* clients/upssched.c: unsetenv("NOTIFYTYPE") and unsetenv("UPSNAME")
	  when starting the timer loop [#2890]
	* clients/upssched-cmd: use UTC date in sample reports [#2890]
	* scripts/misc/notifyme-debug: also print envvar and other details to
	  stderr if calling upssched and NUT_DEBUG_LEVEL>0 [#2890]
	* tests/NIT/nit.sh: track down PID_UPSSCHED in more cases, try to
	  report via env file for sandbox [#2890]
	* tests/NIT/nit.sh: make sure we have upslog and upssched to test
	  [#2890]
	* tests/NIT/nit.sh: support per-tool NUT_DEBUG_LEVEL_* settings
	  [#2890]
	* scripts/misc/notifyme-debug: allow a separate
	  NUT_DEBUG_LEVEL_UPSSCHED [#2890]
	* tests/NIT/nit.sh: stop_daemons(): pick up PID_UPSSCHED from
	  $NUT_PIDPATH/upssched.pid if possible [#2890]
	* clients/upssched.c: writepid() from the timer daemon child loop
	  [#2890]
	* scripts/misc/notifyme-debug, tests/NIT/nit.sh: call upssched for
	  testing as part of upsmon NOTIFYME [#2890]
	* tests/NIT/nit.sh, tests/NIT/upssched.conf.in: tests/NIT/nit.sh:
	  generatecfg_upsmon_trivial(): populate also upssched.conf [#2890]
	* clients/upssched-cmd: make the sample script a bit more useful
	  [#2890]
	* tools/nutconf/nutconf-cli.cpp: do not declare var inside for()
	* drivers/generic_gpio_libgpiod.c: do not declare var inside for()

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

	* tests/generic_gpio_liblocal.c: declare variables at top of scope
	* tests/generic_gpio_utest.c: fix casting for %u printing of literal
	  numbers (via macro)
	* drivers/hwmon_ina219.c: fix format strings for %u printing
	* drivers/asem.c: fix casting for %x printing and maths
	* drivers/generic_gpio_libgpiod.c: declare variables at top of scope
	* drivers/generic_gpio_libgpiod.c: fix casting for %x printing
	* docs/config-prereqs.txt: update for Debian 13 (python3-pyqt5,
	  systemd-dev, java 21)
	* Makefile.am: install-as-root: consider nut-udev-settle.service
	  [#2638]
	* scripts/systemd/nut-udev-settle.service: it suffices to NOT
	  RemainAfterExit and still be Type=oneshot to get triggered for
	  driver restart(s) [#2638]

2025-04-09  Scott Shambarger <devel@shambarger.net>

	* scripts/external_apis/enphase/enphase-monitor.in,
	  scripts/external_apis/enphase/enphase-monitor@.service.in:
	  scripts/external_apis/enphase - correct number conversion, service
	  file  Floats <1.0 were being handled as octal, corrected to use
	  decimal. Corrected path substitution in enphase-monitor service
	  file.

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

	* scripts/systemd/Makefile.am: actually deliver
	  nut-udev-settle.service [#2638]
	* scripts/python/Makefile.am: fix delivery of
	  install-data-hook-app-locale-symlinks [#2857]
	* scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in:
	  upsconf_getDriverMedia(): comment a FIXME for more media types of
	  recently added driver concepts
	* NEWS.adoc, UPGRADING.adoc: document nut-udev-settle.service [#2638]
	* scripts/systemd/nut-server.service.in: small typos in comments
	* scripts/systemd/nut-udev-settle.service,
	  scripts/systemd/nut-systemd.preset,
	  scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: pull in
	  nut-udev-settle.service when needed [#2638]
	* scripts/systemd/nut-udev-settle.service: modify Description and
	  optional dependencies [#2638]
	* scripts/systemd/nut-udev-settle.service: import
	  systemd-udev-settle.service from systemd for adaptation as part of
	  NUT; update only header comment so far [#2638]
	* scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: fix typo about
	  systemd-udevd.service [#2638]
	* clients/.gitignore, clients/Makefile.am, include/.gitignore,
	  include/Makefile.am: include/Makefile.am, clients/Makefile.am: fix
	  possible clashes of parallel re-generation of nut_version.h and/or
	  libupsclient-version.h [#2875]
	* docs/man/nutdrv_qx.txt: warn that detection of Qx dialect can take
	  a minute [#2885]
	* NEWS.adoc: document changes for upsdrvctl [#2885, #2888]
	* drivers/upsdrvctl.c, docs/man/upsdrvctl.txt, docs/man/ups.conf.txt,
	  conf/ups.conf.sample: bump default maxstartdelay from 45 to 75 sec
	  [#2885]
	* drivers/upsdrvctl.c, drivers/main.c, docs/man/ups.conf.txt,
	  conf/ups.conf.sample: make "maxtries" and "retrydelay" configurable
	  at driver level too [#2888]
	* drivers/upsdrvctl.c: do not allow invalid "maxretry" settings
	  [#2888]
	* drivers/main.c: tolerate driver-level maxstartdelay setting (for
	  upsdrvctl) [#2885, #2888]
	* drivers/upsdrvctl.c: report applicable (global/device)
	  maxstartdelay values when they are exceeded [#2885]
	* docs/man/upsdrvctl.txt, drivers/upsdrvctl.c: document defaults for
	  maxstartdelay, maxretry and retrydelay [#2885]

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

	* UPGRADING.adoc: mention NUT_DEFAULT_CONNECT_TIMEOUT among new
	  envvars
	* appveyor.yml: handle also FTY and fightwarn branches
	* .github/workflows/codeql.yml: handle also FTY and fightwarn
	  branches
	* Makefile.am: nut-scanner does directly depend on clients after all
	* NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "Revert
	  "NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text
	  before NUT v2.8.3 release""  This reverts commit
	  b12eac3bb52ce0a348bb9601ddab30e47b8b218d. Re-releasing v2.8.3 after
	  small but important recipe bumps.
	* tools/gitlog2version.sh: Revert "tools/gitlog2version.sh: bump
	  NUT_VERSION_DEFAULT=2.8.3.1 for next development cycle"  This
	  reverts commit 52214a8fc9b8cf30375d411eb71629181115e3dd.
	  Re-releasing v2.8.3 after small but important recipe bumps.
	* include/Makefile.am: nut_version.h: propagate failure (if there
	  ever is one) writing the temporary output
	* clients/.gitignore, clients/Makefile.am: clients/Makefile.am:
	  libupsclient-version.h: take a transactional approach to changing
	  (or not) the file others depend on

2025-04-08  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: ecomode cmd functions addon

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

	* tools/gitlog2version.sh: bump NUT_VERSION_DEFAULT=2.8.3.1 for next
	  development cycle
	* NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "NEWS.adoc,
	  UPGRADING.adoc, docs/docinfo.xml.in: finalize text before NUT
	  v2.8.3 release"  This reverts commit
	  d3427d7fd3c83b8f5b61c8e369139e2bd6168203 after the NUT release
	  v2.8.3.
	* .github/workflows/PyNUTClient.yml, appveyor.yml,
	  scripts/Windows/build-mingw-nut.sh, tools/gitlog2version.sh: Update
	  versions for release of NUT v2.8.3
	* docs/maintainer-guide.txt: update correct way of setting
	  VERSION_FORCED* files
	* tools/gitlog2version.sh: rephrase comments about
	  NUT_VERSION_FORCED(_SEMVER)
	* docs/nut-versioning.adoc: rephrase about
	  NUT_VERSION_FORCED(_SEMVER)
	* docs/maintainer-guide.txt: revise procedure on version-bump commit
	  vs. docinfo increment  ...and that edits of `configure.ac`
	  (`AC_INIT` macro) forth and back are no longer needed
	* docs/maintainer-guide.txt: make use of "make dist-files" goal
	* docs/docinfo.xml.in: add docs increment summary for NUT v2.8.3
	  release
	* docs/maintainer-guide.txt: update markup and a bit of contents
	* NEWS.adoc: remove "PLANNED" from section title before NUT v2.8.3
	  release
	* NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text
	  before NUT v2.8.3 release
	* Makefile.am: revise dependency for all-libs-local/tools/nut-scanner
	* include/wincompat.h: fix NUT_WIN32_INCOMPLETE*() printout [#1479,
	  #2882]  The __LINE__ is an integer, not string
	* INSTALL.nut.adoc, docs/nut.dict: INSTALL.nut.adoc: Windows
	  installation: suggest Zadig tool for USB drivers [#1690, #2881]
	* drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: in
	  WIN32 builds, suggest Zadig tool if failed to find any drivers
	  [#2881]  May be duplicated if we issued the suggestion also for
	  suspicious report descriptor sizes and ultimately failed to find a
	  device.
	* include/timehead.h: tag fallback gmtime_r()/localtime_r() with
	  NUT_WIN32_INCOMPLETE [#1483]
	* clients/message.c, clients/nutclient.cpp, clients/upsc.c,
	  clients/upsclient.c, clients/upscmd.c, clients/upslog.c,
	  clients/upsmon.c, clients/upsmon.h, clients/upsrw.c,
	  clients/upssched.c, clients/upssched.h, clients/upsset.c,
	  common/common.c, common/nutipc.cpp, common/nutstream.cpp,
	  common/state.c, common/wincompat.c, drivers/apc_modbus.c,
	  drivers/apcsmart-old.h, drivers/apcsmart.c, drivers/apcsmart.h,
	  drivers/apcupsd-ups.c, drivers/bcmxcp_usb.c, drivers/belkin.h,
	  drivers/belkinunv.c, drivers/bestfortress.c, drivers/blazer_ser.c,
	  drivers/blazer_usb.c, drivers/clone-outlet.c, drivers/clone.c,
	  drivers/dstate.c, drivers/dstate.h, drivers/dummy-ups.c,
	  drivers/genericups.c, drivers/isbmex.c, drivers/libusb0.c,
	  drivers/libusb1.c, drivers/main.c, drivers/main.h,
	  drivers/mge-hid.c, drivers/mge-utalk.c, drivers/mge-xml.c,
	  drivers/netxml-ups.c, drivers/nutdrv_atcl_usb.c,
	  drivers/powercom.h, drivers/richcomm_usb.c, drivers/riello_ser.c,
	  drivers/riello_usb.c, drivers/serial.c, drivers/serial.h,
	  drivers/snmp-ups.h, drivers/upsdrvctl.c, drivers/upsdrvquery.c,
	  drivers/usb-common.c, drivers/usbhid-ups.c, include/common.h,
	  include/nutipc.hpp, include/nutstream.hpp,
	  scripts/Windows/wininit.c, server/conf.c, server/netssl.c,
	  server/nut_ctype.h, server/sstate.c, server/stype.h, server/upsd.c,
	  server/upsd.h, server/upstype.h, server/user.c,
	  tests/generic_gpio_utest.c, tests/nutipc_ut.cpp,
	  tests/nutstream_ut.cpp, tools/nut-scanner/nut-scanner.c,
	  tools/nut-scanner/nutscan-init.c, tools/nut-scanner/nutscan-ip.c,
	  tools/nut-scanner/nutscan-ip.h, tools/nut-scanner/nutscan-serial.c,
	  tools/nut-scanner/scan_eaton_serial.c,
	  tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c,
	  tools/nut-scanner/scan_usb.c, tools/nut-scanner/scan_xml_http.c:
	  Mark up WIN32 code paths with NUT_WIN32_INCOMPLETE where applicable
	  [#1479]  * also ensure that for every `#if(n)def WIN32` we have
	  annotated the matching `#else` and `#endif` to help navigate in
	  that code base * update some comments * move a few WIN32-specific
	  declarations to start of scope
	* common/common.c, include/nutipc.hpp, clients/upsmon.c: fix markup
	  to include wincompat.h
	* clients/nutclient.cpp, common/nutconf.cpp, common/nutipc.cpp,
	  common/nutstream.cpp, common/nutwriter.cpp, include/nutconf.hpp,
	  include/nutipc.hpp, include/nutstream.hpp, include/nutwriter.hpp,
	  tests/cpputest-client.cpp, tests/cpputest.cpp,
	  tests/nutclienttest.cpp, tests/nutconf_parser_ut.cpp,
	  tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp:
	  C++ code: bump copyrights, bring non-test headings into common
	  format
	* drivers/belkinunv.c: use NUT_WIN32_INCOMPLETE_DETAILED() [#1479]
	* include/wincompat.h: introduce NUT_WIN32_INCOMPLETE() and
	  NUT_WIN32_INCOMPLETE_DETAILED(str) macros [#1479]

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

	* docs/Makefile.am: docinfo-since-v2.8.3.xml: bump OLDEST_REL to
	  2.8.3 actually
	* Jenkinsfile-dynamatrix: typo in comment
	* configure.ac: hide back CONFIGURE-DEVEL-DEBUG of SCRIPTFILE parsing
	  variants
	* Jenkinsfile-dynamatrix: update "Default autotools" build rules for
	  fightwarn to relax distcheck (not all dependencies are available on
	  some agents)
	* m4/nut_report_feature.m4, configure.ac: introduce
	  NUT_REPORT_TARGET_WITHOUT_AC_DEFINE() to work around possibly
	  multi-line values
	* ci_build.sh: pass --enable-configure-debug option to configure
	  script
	* m4/ax_c_pragmas.m4, m4/nut_check_libgd.m4, m4/nut_check_libusb.m4:
	  make use of nut_enable_configure_debug toggle
	* configure.ac, docs/configure.txt: introduce
	  --enable-configure-debug option, convert debug-loggers to use it
	  Some loggers were "noisy" and default; others were hidden as
	  commented away
	* Makefile.am: distcheck-light-DIST_ALL_PAGES-docs-skipped: ensure
	  docs/man/.prep-src-docs exists and is older than (possibly faked)
	  man pages, so "make dist" does not waste time building them
	* Makefile.am: refactor distcheck-valgrind with reusable
	  distcheck-light-DIST_ALL_PAGES-docs-skipped
	* include/Makefile.am: track when nut_version.h gets re-populated (or
	  not)  Its timestamp changes cause re-generation of common.o and so
	  libupsclient.so etc.
	* m4/nut_check_libgpiod.m4: fix typo in called command (test not
	  text)

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

	* docs/nut-names.txt: clarify semi-syntax of
	  experimental.ups.mode.buzzwords [#2708]
	* docs/nut-names.txt: clarify semi-syntax of ups.status and ups.alarm
	  [#2708]
	* m4/ax_realpath_lib.m4: fall-back to detect myLIBPATH if compiler
	  does not resolve it [#2431]  On NetBSD it returns the library name,
	  not the full path - seems to ignore -R/-L options for /usr/pkg/lib
	  ...
	* drivers/phoenixcontact_modbus.c: fix for loop and variable type
	* clients/upsmon.c: is_ups_critical(): treat OVER/TRIM/BYPASS as not
	  critical [#1074]
	* clients/upsmon.c: is_ups_critical() report ST_CAL/ST_BYPASS after
	  possible non-critical states that may contribute to fatality of the
	  situation
	* docs/new-drivers.txt: document the initial "WAIT" value of
	  `ups.status` (set by `upsd` internally) [#2708]
	* clients/upssched-cmd: update the sample script with some comments
	  and logging

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

	* NEWS.adoc, clients/upsmon.c, clients/upsmon.h, common/nutconf.cpp,
	  common/nutwriter.cpp, conf/upsmon.conf.sample.in,
	  docs/man/nutconf.txt, docs/man/upsmon.conf.txt,
	  docs/man/upsmon.txt, docs/nut.dict, include/nutconf.hpp,
	  scripts/augeas/nutupsmonconf.aug.in, tools/nutconf/nutconf-cli.cpp:
	  clients/upsmon.{c,h} et al: introduce {NOT,}{OVER,TRIM,BOOST}
	  notifications [#1074]  Closes: #1074
	* configure.ac: revise script markup/comments

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

	* Makefile.am, docs/Makefile.am: spellcheck* rules: revise work with
	  "make -k -s ..." [#2871]
	* Makefile.am: adjust SUBDIR_MAKE_VERBOSE during spellcheck rule
	  handling (default vs. explicit 0/1) [#2871]
	* .gitignore, docs/Makefile.am: docs/Makefile.am et al: implement
	  parallelized non-interactive spellcheck for many files in one dir
	  (if NUT_MAKE_SKIP_FANOUT!=true) [#2871]
	* Makefile.am: spellcheck*: fix to use SPELLCHECK_TGT to avoid
	  breaking prep-src-docs [#2871]
	* Makefile.am: do not hard-code a SUBDIR_MAKE_VERBOSE=... for
	  spellcheck* recipes anymore [#2871]
	* include/nutconf.hpp: BoolInt: equality operator: ignore failed
	  getters, if any - consider not-set
	* include/nutconf.hpp: BoolInt: clearWithBool01() in default
	  constructor too
	* include/nutconf.hpp: BoolInt: introduce clearWithBool01() to
	  refactor setters from BoolInt instances
	* include/nutconf.hpp: BoolInt: quiesce older compilers with
	  HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_MAYBE_UNINITIALIZED
	* m4/ax_c_pragmas.m4: introduce
	  HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_MAYBE_UNINITIALIZED(_BESIDEFUNC)
	* Makefile.am: spellcheck(-interactive): mitigate possible early
	  failure of fanned-out attempt [#2871]
	* NEWS.adoc: document new `make spellcheck-interactive-quick` and
	  related changes [#2871]
	* docs/man/Makefile.am: revise to not require HTML man page building
	  to check them if not enabled (although possible)
	* Makefile.am: merge back spellcheck and spellcheck-interactive into
	  one definition; honour NUT_MAKE_SKIP_FANOUT
	* tools/nut-scanner/Makefile.am: be sure to use both LIBSSL_LIBS and
	  LIBSSL_LDFLAGS_RPATH when linking both libnutscan.la library and
	  nut-scanner program [#2870]

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

	* Makefile.am: spellcheck-interactive: refactor with SPELLCHECK_DIRS
	  too
	* Makefile.am: spellcheck: convert the goal to SUBDIR_TGT_RULE
	  parallelizable style
	* Makefile.am: spellcheck-quick: support MAXPARMAKES toggle on NUT CI
	  farm or ci_build.sh
	* Makefile.am: introduce SUBDIR_TGT_RULE ability for recipes to
	  define custom TGT and/or DIR values (not parsed from $@ always)
	* Makefile.am: introduce SUBDIR_MAKE_VERBOSE toggle for quieter
	  tracing
	* Makefile.am: split spellcheck-quick from
	  spellcheck-interactive-quick
	* m4/nut_report_feature.m4: report linker program and flags in the
	  end
	* docs/config-prereqs.txt: NetBSD: fix symlinks for versioned GCC
	* docs/config-prereqs.txt, docs/nut.dict: NetBSD: Not only openipmi,
	  but also net-snmp, packages need CHECK_OSABI=no in
	  /etc/pkg_install.conf [#2870]
	* docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
	  NetBSD: note that having OpenIPMI does not help NUT at the moment
	* docs/config-prereqs.txt: NetBSD: hide dblatex suggestion, seems
	  AWOL
	* ci_build.sh: detect_platform_PKG_CONFIG_PATH_and_FLAGS(): hacks for
	  NetBSD libltdl dependency to be found out of the box
	* Jenkinsfile-dynamatrix: avoid "default autotools" builds on NetBSD
	  for now [#2870]
	* ci_build.sh: detect_platform_PKG_CONFIG_PATH_and_FLAGS(): hacks for
	  NetBSD pkgsrc dependencies to be found out of the box
	* docs/config-prereqs.txt: NetBSD now provides also gcc-14
	* drivers/mge-xml.c: do not encroach on reserved C token namespace
	  [#2870]  Just renamed the private enum values. Earlier code
	  complained with NetBSD clang-18:  mge-xml.c:76:2: error: identifier
	  '_UNEXPECTED' is reserved because it starts with '_' followed by a
	  capital letter [-Werror,-Wreserved-identifier] 76 |
	  _UNEXPECTED, |         ^ mge-xml.c:77:2: error: identifier
	  '_PARSEERROR' is reserved because it starts with '_' followed by a
	  capital letter [-Werror,-Wreserved-identifier] 77 |
	  _PARSEERROR, |         ^ 2 errors generated.
	* docs/config-prereqs.txt: NetBSD: expand on Python versions and UI
	  dependencies for NUT-Monitor
	* docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
	  update NetBSD prereqs a bit  "make" package is absent,
	  `/usr/bin/make` appears from something I could not track down;
	  however there is a separate but similar "bmake" as
	  `/usr/pkg/bin/bmake` that can be installed. Probably a difference
	  of system vs. userland tooling variants.
	* docs/config-prereqs.txt, docs/nut.dict: NetBSD: more info about
	  pkgsrc and its pkgin tool
	* scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: fix portability
	  of numeric+alpha sort [#2870]  Thanks to Greg Troxel @gdt for the
	  hint and fruitful discussion.

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

	* clients/upsclient.c: upscli_tryconnect(): revise addrinfo printout
	  [#2847, #85]  Clang complained about explicit pointers:
	  upsclient.c:1187:37: error: cast from 'struct sockaddr *' to
	  'struct sockaddr_in *' increases required alignment from 2 to 4
	  [-Werror,-Wcast-align] 1187 |
	  struct sockaddr_in *addr_in = (struct sockaddr_in *)ai->ai_addr; |
	  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ upsclient.c:1192:39: error: cast
	  from 'struct sockaddr *' to 'struct sockaddr_in6 *' increases
	  required alignment from 2 to 4 [-Werror,-Wcast-align] 1192 |
	  struct sockaddr_in6 *addr_in6 = (struct sockaddr_in6 *)ai->ai_addr;
	  |
	  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 errors generated.
	* docs/config-prereqs.txt: NetBSD 9.2: bump openjdk to 21 and
	  document profile edits
	* common/common.c, drivers/powerp-txt.c, drivers/nutdrv_qx.c: cast
	  char to unsigned char when using as array subscript [#823]  This
	  may be an implicit array, such as tolower() implementation as a
	  ctype(3) macro rather than function.
	* clients/cgilib.c, clients/upssched.c, clients/upsset.c,
	  clients/upsstats.c, common/common.c, common/nutstream.cpp,
	  common/upsconf.c, common/wincompat.c, drivers/dstate.c,
	  drivers/dummy-ups.c, drivers/hwmon_ina219.c, drivers/main.c,
	  drivers/nhs_ser.c, drivers/snmp-ups.c, drivers/upsdrvctl.c,
	  drivers/upsdrvquery.c, drivers/upsdrvquery.h: drivers/*, clients/*,
	  common/*: fix pathname budders to be NUT_PATH_MAX+1 to allow for
	  ending NUL char [#823]
	* docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
	  NetBSD 9.2: require mozilla-rootcerts-openssl for GitHub to work
	* clients/upsclient.c: upscli_tryconnect(): report more errors
	  including timeout for particular addrinfo [#2847, #85]
	* NEWS.adoc, UPGRADING.adoc, clients/upsc.c, clients/upsclient.c,
	  clients/upsclient.h, clients/upscmd.c, clients/upsimage.c,
	  clients/upslog.c, clients/upsmon.c, clients/upsrw.c,
	  clients/upsset.c, clients/upsstats.c, docs/man/Makefile.am,
	  docs/man/index.txt, docs/man/upscli_connect.txt,
	  docs/man/upscli_get_default_connect_timeout.txt,
	  docs/man/upscli_get_default_timeout.txt, docs/man/upscli_init.txt,
	  ...txt => upscli_init_default_connect_timeout.txt}, ....txt =>
	  upscli_set_default_connect_timeout.txt}: client/*, docs: Rename
	  upscli_*_default_timeout to upscli_*_default_connect_timeout
	  [#2847]
	* docs/man/upsc.txt, docs/man/upscmd.txt, docs/man/upslog.txt,
	  docs/man/upsmon.txt, docs/man/upsrw.txt:
	  docs/man/{upsc,upscmd,upsrw,upslog,upsmon}.txt: document "COMMON
	  OPTIONS" including the new "-W secs" [#2847]
	* clients/upsc.c, clients/upscmd.c, clients/upsimage.c,
	  clients/upslog.c, clients/upsmon.c, clients/upsmon.h,
	  clients/upsrw.c, clients/upsset.c, clients/upsstats.c: clients/*.c,
	  clients/upsmon.h: rename macros, variables and usage text to stress
	  that "default network timeout" is about "initial connection"
	  [#2847]
	* docs/man/upscli_init_default_timeout.txt: clarify why we may want a
	  non-blocking connection timeout [#2847]
	* clients/upsclient.c, docs/man/upscli_connect.txt,
	  docs/man/upscli_init.txt, docs/man/upscli_init_default_timeout.txt:
	  clients/upsclient.c, docs/man/upscli_*.txt: track if we have
	  upscli_default_timeout_initialized [#2847]  If not, auto-init in
	  upscli_init() and upscli_connect() once, to help clients not
	  modified to call upscli_init_default_timeout() explicitly to still
	  benefit from NUT_DEFAULT_CONNECT_TIMEOUT envvar.
	* clients/upsclient.c: upscli_init_default_timeout():
	  upslogx(LOG_WARNING,...) about timeout strings that we failed to
	  parse [#2847]
	* clients/upsclient.h: comment about upscli_get_default_timeout()
	  [#2847]
	* docs/nut.dict: update for docs/man/upscli_get_default_timeout.txt
	  [#2847]
	* docs/man/Makefile.am, docs/man/index.txt,
	  docs/man/upscli_connect.txt,
	  docs/man/upscli_init_default_timeout.txt,
	  docs/man/upscli_set_default_timeout.txt, docs/nut.dict: docs/man/*:
	  document upscli_init_default_timeout() and
	  upscli_set_default_timeout()
	* docs/man/upscli_connect.txt, docs/man/index.txt,
	  docs/man/Makefile.am, docs/nut.dict: document upscli_tryconnect()
	  too

2025-03-30  Scott Shambarger <devel@shambarger.net>

	* UPGRADING.adoc, clients/upsclient.c, clients/upsclient.h,
	  clients/upscmd.c, clients/upsimage.c, clients/upslog.c,
	  clients/upsmon.c, clients/upsmon.h, clients/upsrw.c,
	  clients/upsset.c, clients/upsstats.c, docs/man/Makefile.am,
	  docs/man/index.txt, docs/man/upscli_get_default_timeout.txt,
	  docs/man/upscli_set_default_timeout.txt: clients: added -W <secs>
	  argument  Added -W <secs> network timeout arg to all clients to
	  match upsc usage. Updated help message with "common args" section
	  for -h/-W/-V args. Added upscli_get_default_timeout (used by
	  upsmon)

2025-03-30  Jim Klimov <jimklimov@gmail.com>

	* docs/Makefile.am: docs/Makefile.am, docs/.gitignore: support also
	  qa-guide-docinfo.xml (fix 2)
	* docs/Makefile.am: docs/Makefile.am, docs/.gitignore: support also
	  qa-guide-docinfo.xml (fix)
	* docs/maintainer-guide.txt, docs/user-manual.txt: update Author
	  Initials
	* docs/Makefile.am, docs/.gitignore: support also
	  qa-guide-docinfo.xml

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

	* clients/upsclient.c: define both fields of upscli_default_timeout
	  explicitly after all [#2847]  Antique clang (3.4) refuses the
	  standard-required single-token init of aggregate types:
	  upsclient.c:162:50: error: missing field 'tv_usec' initializer
	  [-Werror,-Wmissing-field-initializers] static struct timeval
	  upscli_default_timeout = {0}; ^ 1 error generated. make[4]: ***
	  [upsclient.lo] Error 1
	* clients/upsc.c: convert to upscli_init_default_timeout() [#2847]
	* clients/Makefile.am, NEWS.adoc: export nut_debug_level* from
	  libupsclient so that clients can be usefully debugged
	* docs/qa-guide.adoc, docs/nut.dict: refer to
	  docinfo-since-v2.8.3.xml which we want to use [#2832]  And fix some
	  spellings and/or dictionary
	* docs/documentation.txt, docs/nut.dict: link to Dan Langille's blog
	  post about NUT shutdown testing
	* docs/documentation.txt, docs/nut.dict: link to Jeff Geerling's blog
	  post about NUT
	* clients/upsclient.c: upscli_init(): only check
	  getenv("NUT_QUIET_INIT_SSL") if not already upscli_initialized
	* clients/upsclient.c, clients/upsclient.h: clients/upsclient.{c,h}:
	  introduce upscli_init_default_timeout(), restore upscli_init()
	  which is for SSL [#2847]
	* NEWS.adoc, UPGRADING.adoc, clients/upsclient.c,
	  clients/upsclient.h, conf/nut.conf.sample: clients/upsclient.{c,h},
	  conf/nut.conf.sample: upscli_init(): introduce
	  NUT_DEFAULT_CONNECT_TIMEOUT envvar [#2847]
	* clients/upsclient.c: upscli_init(): be sure to (re-)set
	  upscli_default_timeout to 0 [#2847]
	* NEWS.adoc, UPGRADING.adoc: many clients fixed to at least
	  UPSCLI_CONN_TRYSSL [#2847]
	* NEWS.adoc, UPGRADING.adoc: upscli_set_default_timeout() introduced,
	  many clients changed to 10-second default timeout instead of
	  blocking [#2847]
	* clients/upsclient.c: upscli_default_timeout(): be sure parsed "0"
	  is applied as such
	* clients/upsc.c: fix code style (white spaces)
	* clients/upsclient.c: upscli_default_timeout: be sure to zero-init
	  The standard says that static-storage arithmetic values are
	  pre-initialized to zero implicitly, but better safe than sorry with
	  all the compilers out there. The X={0} spelling for aggregates of
	  arithmetic entities to be zero-inited for each component should be
	  supported since at least C89 standard.
	* clients/upsclient.c: upscli_set_default_timeout(): use
	  str_to_double() to avoid dependency on env (locale)
	* common/str.c: strtof() fallback: comment about dependency on env
	  (locale)
	* clients/upsclient.c: upscli_connect(): comment about default
	  behavior of the method remaining as it was
	* clients/upsclient.c: fix code style (white spaces)
	* Makefile.am: EXTRA_DIST the new ci_build.adoc [#2832]

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

	* docs/.gitignore, docs/Makefile.am: docs/Makefile.am: use a shorter
	  docinfo-since-v2.8.3.xml for qa-guide.pdf [#2832, #2866]
	* ci_build.sh: add support for "--with-docs*" CLI arg spelling (same
	  as "docs*" before)
	* docs/qa-guide.adoc: add a chapter on CodeQL [#2832]
	* docs/qa-guide.adoc: add a chapter on cppcheck [#2832]
	* docs/nut-qa.txt: modernize notes regarding Buildbot, GitHub and
	  LGTM.com
	* docs/download.txt, docs/nut-qa.txt: revise links to security notes
	* docs/docinfo.xml.sh: revise recommentation after doc maintenance
	  [#2866]
	* docs/docinfo.xml.in: add heading comment about (re-)generation
	  [#2832, #2866]
	* docs/docinfo.xml.sh: allow to populate a new docinfo.xml variant
	  from scratch [#2866, #2832]
	* docs/docinfo.xml.sh: allow to customize DOCINFO_OLDEST_TAG [#2866,
	  #2832]
	* docs/Makefile.am: revise inclusion of ../ci_build.adoc(-parsed)
	  into qa-guide [#2866]

2025-03-28  Scott Shambarger <devel@shambarger.net>

	* clients/upsc.c: upsc: Minor fix to error message

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

	* docs/ci-farm-do-setup.adoc, docs/nut.dict: populate DigitalOcean
	  chapters with text adapted from #2192
	* docs/configure.txt: nut *.pc files may deliver RPATH settings;
	  detail what this is about and how to disable if this causes issues
	  [#2782, #2865]
	* UPGRADING.adoc, docs/nut.dict: UPGRADING.adoc: nut *.pc files may
	  deliver RPATH settings; detail how to disable if this causes issues
	  [#2782, #2865]
	* Makefile.am, docs/maintainer-guide.txt: introduce "make dist-files"
	  to prepare the set in one go

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

	* m4/ax_realpath_lib.m4: fix library search path detection for
	  mingw/MSYS  * lacked separation into lines * on MSYS2 might have
	  "C:/mingw/..." patterns
	* configure.ac: for --enable-ldflags-nut-rpath(-cxx)=auto consult
	  DEFAULT_SEARCH_DIRS [#2782]  Also report why selection failed or
	  had other comments
	* configure.ac: make use of hardcode_libdir_flag_spec(_CXX) vars from
	  LT_INIT to set default LDFLAGS_NUT_RPATH(_CXX) [#2782]
	* configure.ac, lib/libnutclient.pc.in, lib/libnutconf.pc.in:
	  separate LDFLAGS_NUT_RPATH_CXX from LDFLAGS_NUT_RPATH [#2782]
	* lib/libupsclient-config.in: update license (GPLv2 and newer)
	* lib/libupsclient-config.in: also provide optional
	  @LDFLAGS_NUT_RPATH@ [#2782]
	* configure.ac, lib/libnutclient.pc.in, lib/libnutclientstub.pc.in,
	  lib/libnutconf.pc.in, lib/libnutscan.pc.in, lib/libupsclient.pc.in:
	  configure.ac, lib/*.in: introduce @LDFLAGS_NUT_RPATH@ to only set
	  rpath when needed and in a way supported by linker [#2782]  TODO
	  (later commit): Detect support/format of the linker option if
	  passed
	* drivers/mge-hid.c: fix whitespace [#2850]

2025-03-27  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: eaton_input_eco_mode_auto_on_off_info func fix
	  name

2025-03-26  RikyPlaza <rikyrod2001@gmail.com>

	* drivers/phoenixcontact_modbus.c: fixed typo
	* drivers/phoenixcontact_modbus.c: fixed typo
	* drivers/phoenixcontact_modbus.c: updated version
	* drivers/phoenixcontact_modbus.c: initialized tab_reg and PartNumber
	  variables to 0
	* drivers/phoenixcontact_modbus.c: added application exit both mrir
	  on upsdrv_initups fail

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

	* docs/ci-farm-do-setup.adoc, docs/nut.dict:
	  docs/ci-farm-do-setup.adoc: add Design trade-offs chapter [#2832]
	* NEWS.adoc: announce the new NUT Quality Assurance and Build
	  Automation Guide [#2832]
	* docs/qa-guide.adoc, docs/developers.txt: transplant "Build
	  automation tools and scripts" chapter from developers.txt into
	  different sections of qa-guide [#2832]
	* ci_build.adoc, docs/Makefile.am, docs/qa-guide.adoc: elaborate the
	  chapter on ci_build.sh [#2832]  ...with a dedicated document, which
	  was lifted from a chapter originally in docs/developers.txt
	* docs/config-prereqs.txt, docs/developers.txt, docs/qa-guide.adoc,
	  docs/user-manual.txt: Various docs: fix references to
	  ci-farm-lxc-setup.txt to be linkdoc:qa-guide[...] [#2832]
	* docs/ci-farm-lxc-setup.txt, docs/configure.txt,
	  docs/developers.txt, scripts/Windows/Installer/README.adoc,
	  scripts/Windows/README.adoc, scripts/python/app/README.adoc:
	  Various docs: fix references to config-prereqs.txt to be
	  linkdoc:qa-guide[...] [#2832]
	* docs/Makefile.am: config-prereqs.txt, ci-farm-do-setup.adoc and
	  ci-farm-lxc-setup.txt are no longer among USER_MANUAL_DEPS [#2832]
	* docs/qa-guide.adoc: slightly elaborate CI_NUT_SELFTESTS,
	  Jenkins_Dynamatrix_Library and Jenkins_Dynamatrix_Pipeline sections
	  with pointers to info available elsewhere
	* docs/nut.dict, docs/qa-guide.adoc: docs/qa-guide.adoc: elaborate
	  the chapter on spellcheck [#2832]
	* docs/qa-guide.adoc: elaborate the chapter on static analysis a bit
	  (intro paragraph) [#2832]
	* docs/nut.dict, docs/qa-guide.adoc: docs/qa-guide.adoc: elaborate
	  the chapter on shellcheck [#2832]
	* docs/documentation.txt, docs/qa-guide.adoc: re-title the document,
	  it covers NUT Build Automation as well [#2832]
	* tests/NIT/README.adoc: make a note about envvars used by nit.sh
	  script [#2832]
	* docs/qa-guide.adoc: elaborate the chapter on NIT by including its
	  README [#2832]
	* docs/qa-guide.adoc: extend the chapters on static analysis and
	  ci_build.sh with references to developers.txt [#2832]
	* docs/qa-guide.adoc: default the top_srcdir=.. and use it for
	  include macro [#2832]
	* docs/nut.dict, docs/qa-guide.adoc: docs/qa-guide.adoc: elaborate
	  the chapter on valgrind [#2832]
	* docs/qa-guide.adoc: move note about leveloffset to top [#2832]
	* docs/qa-guide.adoc: elaborate the chapter on GNU Autotools and
	  distcheck [#2832]
	* docs/ci-farm-do-setup.adoc: reword the intro
	* docs/qa-guide.adoc: asciidoctor (as used in IDEs) dislikes
	  old-style anchors before (old-style) titles
	* docs/nut-names.txt, drivers/mge-hid.c, data/cmdvartab: revert
	  "experimental.ecomode.start.auto" [#2708, #2850]

2025-03-26  DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>

	* drivers/mge-hid.c: comment about 9E stuck in ECO
	* data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c:
	  experimental.ecomode.stop.auto function added
	* data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: autoecomode
	  addon without last function needed for 9E model but then stuck in
	  ecomode

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

	* docs/Makefile.am, docs/ci-farm-do-setup.adoc, docs/nut.dict,
	  docs/qa-guide.adoc: Introduce docs/ci-farm-do-setup.adoc (as a
	  chapter of qa-guide) [#2192]
	* docs/nut.dict, docs/qa-guide.adoc: docs/qa-guide.adoc: populate the
	  chapter on multi-platform multi-CI-vendor testing
	* Jenkinsfile-dynamatrix: extend autotools-based checks to
	  parallelize with "make -j 4"

2025-03-24  RikyPlaza <rikyrod2001@gmail.com>

	* drivers/phoenixcontact_modbus.c: Fixed low battery register reading
	  for TRIO_2G UPS

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

	* docs/nut-names.txt: fix outlet.n.protect.status and
	  input.eco.switchable definitions to "opaque string" [#2708]
	* data/cmdvartab, drivers/mge-hid.c, drivers/usbhid-ups.c,
	  docs/nut-names.txt: move "ecomode" and "essmode" INSTCMDs into
	  "experimental." namespace [#2708]
	* drivers/mge-hid.c: bump (C) for recent committers
	* drivers/usbhid-ups.c: anticipate NULL hidups_item->dfl for commands
	  that require a caller-provided argument (no defaults), or return
	  STAT_INSTCMD_CONVERSION_FAILED
	* NEWS.adoc, server/upsd.c, server/upsd.h: server/upsd.{c,h}: handle
	  TRACKING value for STAT_CONVERSION_FAILED [#2184]
	* docs/man/upscli_strerror.txt: do not link to self
	* drivers/dstate.c: sock_arg(): if INSTCMD returns
	  STAT_INSTCMD_UNKNOWN, let it be known to the TRACKING clients
	  [#656, #2686]

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

	* NEWS.adoc, UPGRADING.adoc, docs/man/Makefile.am,
	  docs/man/index.txt, docs/man/upscli_str_add_unique_token.txt,
	  docs/man/upscli_str_contains_token.txt, docs/man/upsclient.txt,
	  docs/nut.dict: docs/man/* et al: document
	  upscli_str_contains_token() and upscli_str_add_unique_token()
	  [#2852, #2859]
	* clients/Makefile.am, clients/upsclient.c, clients/upsclient.h,
	  include/common.h: clients/Makefile.am, clients/upsclient.h,
	  include/common.h: re-expose str_add_unique_token() and
	  str_contains_token() with upscli_ prefix to surely avoid
	  link/include conflicts
	* clients/Makefile.am, clients/upsclient.h, include/common.h: expose
	  str_add_unique_token() and str_contains_token() for NUT clients who
	  need to parse ups.status

2025-03-23  Jim Klimov <jim@jimklimov.com>

	* scripts/python/app/NUT-Monitor: clarify which implementation gets
	  started in the end [#2845]
	* configure.ac: adjust to different builds of Python in subdirs on
	  Solarish platforms [#2845]
	* scripts/python/app/NUT-Monitor-py3qt5.in,
	  scripts/python/app/ui/gui-1.3.glade: update translators list with
	  Russian [#2845]
	* UPGRADING.adoc, scripts/python/Makefile.am,
	  scripts/python/app/README.adoc,
	  scripts/python/app/locale/fr/fr_FR.UTF-8.po,
	  scripts/python/app/locale/fr_FR.UTF-8,
	  scripts/python/app/locale/it/it_IT.UTF-8.po,
	  scripts/python/app/locale/it_IT.UTF-8,
	  scripts/python/app/locale/ru/ru_RU.UTF-8.po,
	  scripts/python/app/locale/ru_RU.UTF-8: scripts/python/Makefile.am:
	  deliver app/locale symlinks with "xx_XX.UTF-8" naming [#2845]  For
	  NUT-Monitor GUI: on some platforms, glib/gtk2 or qt5 require the
	  full stack of names to be addressable this way; on others it is
	  more relaxed.

2025-03-21  RikyPlaza <rikyrod2001@gmail.com>

	* drivers/phoenixcontact_modbus.c: drivers/phoenixcontact.c: sanity
	  check and fix on mrir mistake

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

	* drivers/apc_modbus.c, drivers/mge-hid.c, drivers/nutdrv_qx.c,
	  drivers/nutdrv_qx_voltronic.c, drivers/usbhid-ups.c:
	  drivers/{apc_modbus,usbhid-ups,mge-hid,nutdrv_qx,nutdrv_qx_voltronic}.c:
	  convert to buzzmode*() instead of invmode*() [#2708]
	* clients/upsmon.c: pollups(), parse_status(), get_var(): consider
	  "(experimental.)ups.mode.buzzwords" instead of
	  "output.inverter.mode" for "vendor:VENDORNAME:MODENAME" containing
	  ECO equivalents [#2708]
	* docs/new-drivers.txt, docs/nut.dict, drivers/dstate.c,
	  drivers/dstate.h: drivers/dstate.{c,h}, docs/new-drivers.txt:
	  rename invmode_* methods and data to buzzmode_* [#2708]  ...and
	  report `experimental.ups.mode.buzzwords` instead of
	  `output.inverter.mode` in dstate
	* docs/nut-names.txt: replace `output.inverter.mode` by `ups.mode`
	  and `experimental.ups.mode.buzzwords` [#2708]

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

	* docs/documentation.txt: refer to qa-guide [#2192, #2832]
	* NEWS.adoc, lib/libnutclient.pc.in, lib/libnutclientstub.pc.in,
	  lib/libnutconf.pc.in, lib/libnutscan.pc.in, lib/libupsclient.pc.in:
	  lib/*.pc.in: propagate RPATH to NUT library installation location
	  (by default not in system prefix) to help third-party clients link
	  with us [#2782]
	* Makefile.am: introduce "make spellcheck-interactive-quick" ability
	* Makefile.am: maintainer-asciidocs: suggest to spellcheck before
	  committing updated asciidoc macros
	* INSTALL.nut.adoc, README.adoc, docs/nut.dict: Update NUT
	  documentation sources with current docs/asciidoc-vars.conf:
	  a6bd83d48 (2025-03-20)
	* docs/asciidoc-vars.conf: document that linkdoc may have further
	  args
	* Makefile.am: maintainer-asciidocs: really fix handling of lines
	  ending in backslash
	* docs/user-manual.txt: highlight that NUT for Windows only ships
	  same clients as POSIX builds
	* .gitignore: GitIgnore *.adoc-parsed.* (e.g.
	  docs/.ChangeLog.adoc-parsed.latest)
	* docs/Makefile.am: spellcheck-interactive: update/fix non-reporting
	  of dict changes (when there were none)
	* Makefile.am: spellcheck-interactive: require
	  SPELLCHECK_REPORT_MAYBE_UPDATED_DICT=yes only for the last entry,
	  to reduce noise by default
	* docs/Makefile.am: spellcheck*: track
	  $(NUT_SPELL_DICT).bak-pre-interactive separately from
	  $(NUT_SPELL_DICT).bak-pre-sorting
	* docs/Makefile.am: spellcheck-interactive: do not report "Custom
	  dictionary ... may have been updated" all the time, add a way to
	  quiesce that (and check if it actually changed)
	* NEWS.adoc: fix announcement of `scripts/external_apis` - they
	  landed into trunk before 2.8.3 release [#2807, #2813]
	* lib/libnutconf.pc.in, lib/libnutscan.pc.in: add
	  sysconfdir/statepath/nutuser as in other *.pc.in templates

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

	* docs/FAQ.txt, docs/nut.dict: document downgrading OpenSSL
	  capabilities when required [#1899, #1900]  Closes: #1900
	* server/upsd.c, NEWS.adoc: failure due to getaddrinfo() now reports
	  the disliked host name [#2665]  Closes: #2665

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

	* INSTALL.nut.adoc, docs/asciidoc.conf, docs/ci-farm-lxc-setup.txt,
	  docs/qa-guide.adoc, docs/user-manual.txt: docs/user-manual.txt et
	  al: drop chapters with config-prereqs.txt and
	  ci-farm-lxc-setup.txt, refer to qa-guide now (also from other docs)
	  [#2832]
	* docs/qa-guide.adoc: revise markup to have some contents in sections
	  and pass xmllint [#2832]
	* docs/nut-qa.txt, docs/qa-guide.adoc: docs/nut-qa.txt: revise markup
	  to be a chapter, not book [#2832]
	* docs/Makefile.am: refactor QA_GUIDE_DEPS [#2192, #2832]
	* docs/.gitignore, docs/Makefile.am, docs/qa-guide.adoc:
	  docs/Makefile.am: introduce docs/qa-guide.adoc (skeleton so far)
	  [#2192, #2832]
	* docs/Makefile.am: support building from *.adoc (not only *.txt)
	  origins
	* docs/Makefile.am: depend .prep-src-docs on Makefile too [#2825]
	* docs/user-manual.txt: formulate a NUT Support Policy (same as in
	  /README.adoc)
	* README.adoc: formulate a NUT Support Policy
	* docs/user-manual.txt: import text from README.adoc about support
	  for older systems
	* docs/nut.dict, docs/user-manual.txt: docs/user-manual.txt: update
	  about Windows and third-party distributions

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

	* drivers/nutdrv_qx_voltronic.c: invmode_set() voltronic eco and
	  eco_adv states [#2708]
	* drivers/nutdrv_qx.c: upsdrv_updateinfo(): add invmode_init/commit()
	  into the loop [#2708]
	* drivers/mge-hid.c: convert to use invmode_set() [#2708]
	* drivers/usbhid-ups.c: upsdrv_updateinfo(): add
	  invmode_init/commit() into the loop [#2708]
	* clients/upsmon.c, common/nutconf.cpp, common/nutwriter.cpp: comment
	  about ECO/NOTECO use for notifications even if not via ups.status
	  [#2708]
	* docs/man/nut.exe.txt: fix markup
	* docs/man/Makefile.am: include index.html to DIST_ALL_HTML_PAGES
	  [#2825]
	* docs/man/Makefile.am: introduce dist-html:DIST_ALL_HTML_PAGES and
	  dist-man:DIST_ALL_MAN_PAGES goals [#2842]
	* docs/man/Makefile.am: populate DIST_ALL_HTML_PAGES [#2842]
	* docs/man/Makefile.am: revise DIST_ALL_PAGES into
	  DIST_ALL_MAN_PAGES; differentiate from DIST_ALL_HTML_PAGES [#2842]
	* ci_build.sh: typo fix

2025-03-15  Jim Klimov <jimklimov@gmail.com>

