2. Very detailed Change Log

This document intends to detail the change log for relatively recent work (roughly since the source code was tracked in Git).

2.1. 2024-06-15 Jim Klimov <jimklimov+nut@gmail.com>

  • README.adoc: add a Star History Chart badge/image

2.2. 2024-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, UPGRADING.adoc, clients/upsmon.c, common/common.c, drivers/main.c, drivers/upsdrvctl.c, include/common.h, scripts/Windows/wininit.c, server/upsd.c: Extend sendsignal*() API some more to optionally fall back to checkprocname() vs current getpid() [#2463]
  • NEWS.adoc, UPGRADING.adoc, common/common.c, conf/nut.conf.sample, docs/man/nut.conf.txt, docs/nut.dict, include/common.h: Introduce NUT_IGNORE_CHECKPROCNAME=true support to skip PID process name validation if it causes problems [#2463]
  • UPGRADING.adoc: warn that packaged program name mismatches can be a problem [#2463]

2.3. 2024-06-10 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsmon.c: for OB UPS and communications failure, leave just the debug log message [#2454]
  • NEWS.adoc: explain the fix for #2454 via #2462
  • common/common.c: checkprocname(): case #5 is not "exact", fix the message [#2463]

2.4. 2024-06-09 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c, include/common.h: common/common.c: getprocname(): implement support for WIN32 parsing without a /proc [#2463]
  • common/common.c, configure.ac: common/common.c: getprocname(): implement support for /proc/NNN/psinfo (Solaris/illumos) parsing [#2463]
  • common/common.c: getprocname(): revise printed messages [#2463]
  • common/Makefile.am, common/common.c, configure.ac: common/common.c: getprocname(): implement support for (Open)BSD parsing without a /proc [#2463]
  • common/common.c: getprocname(): implement support for /proc/NNN/stat parsing [#2463]

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

  • common/common.c: getprocname(): implement support for /proc/NNN/cmdline parsing [#2463]
  • UPGRADING.adoc, clients/upsmon.c, common/common.c, docs/nut.dict, drivers/main.c, drivers/upsdrvctl.c, include/common.h, server/upsd.c: Pass "progname" through sendsignal*() methods to verify that we sendsignal*() via old PID only to same progname [#2463] Internal API change for common.c/h
  • common/common.c: sendsignalpid(): comment about not-signaling PID<2

2.6. 2024-06-07 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, common/common.c, configure.ac, include/common.h: Introduce getprocname() and checkprocname() for suspicious PID values, and helper parseprogbasename() [#2463]
  • NEWS.adoc: rearrange entries

2.7. 2024-06-06 Jim Klimov <jimklimov+nut@gmail.com>

  • data/driver.list.in: shorten HCL title for Cyber Energy devices Asked via mailing list to not deference the USB VID:PID in the HCL title

2.8. 2024-06-05 Andriy Gapon <avg@FreeBSD.org>

  • clients/upsmon.c: clients/upsmon: restore handling of comm failure while on battery Commit 2647f026f7f0 from #2108 updated is_ups_critical() such that a communication failure (commstate == 0) while on battery (linestate == 0) would be treated as immediately entering critical state. There was no way to disable that behavior or add any grace period. As such, that change made DEADTIME parameter ineffective as lastpoll being stuck should be equivalent to commstate == 0 because any lastpoll update sets commstate to 1. This change removes special handling of that condition from is_ups_critical() and reverts to the prior behavior where recalc() looks at lastpoll and deadtime to set LB flag after the configured communication timeout.

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

  • tests/NIT/nit.sh: make use of NUT_DEBUG_SYSLOG tweak setting
  • NEWS.adoc, common/common.c, conf/nut.conf.sample, docs/man/nut.conf.txt, include/common.h: Introduce a NUT_DEBUG_SYSLOG environment variable [#2394]

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

  • docs/documentation.txt: update URL for Configuration Examples to directly fetch the latest PDF book, not go to the GH release page (fix typo)
  • docs/documentation.txt: update links for Roger Price original page and replicas in NUT GitHub org
  • docs/documentation.txt: update URL for Configuration Examples to directly fetch the latest PDF book, not go to the GH release page

2.11. 2024-05-30 Nicola Fontana <ntd@entidi.it>

  • docs/man/bicker_ser.txt: bicker_ser: improve styling of relay modes doc
  • docs/man/bicker_ser.txt, drivers/bicker_ser.c: bicker_ser: move unofficial variables into "experimental" namespace
  • drivers/bicker_ser.c: bicker_ser: register the shutdown.return instcmd

2.12. 2024-05-28 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: avoid GCC warnings Initialize the parameter struct to avoid GCC complains about "‘parameter.value’ may be used uninitialized in this function". This is not a real error because, if bicker_write is successful, that struct is populated properly.

2.13. 2024-05-30 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: enforce expected data size When receiving a packet of known data size, ensure that data size is exactly what expected. That should avoid later surprises, e.g. fiddling with bytes never received.

2.14. 2024-05-28 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: bump driver version
  • docs/man/bicker_ser.txt: bicker_ser: add variables info to manpage Variables are mapped 1:1 to Bicker parameters, so the descriptions have been borrowed and adapted directly from the UPS Gen2 software manual.
  • drivers/bicker_ser.c: bicker_ser: allow writing to Bicker parameters All Bicker parameters (at least the supported ones) can be changed, so enable writing and set proper ranges. Expose all parameters, even the non-standard ones.

2.15. 2024-05-27 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: ensure battery.charge.low is defined According to RFC-9271, that variable is part of the "Desktop PC Variables" set so it is expected to be present and its default value is 20 seconds.
  • drivers/bicker_ser.c: bicker_ser: allow NULL dst in parameter handling The comments say to use NULL for discarding the results but bicker_receive_parameter() was accessing dst->id, effectively preventing it. Fix that bug and improve the code: now bicker_receive_parameter() validates the parameter id (so it can be used freely) and it always logs debugging info about the parameter.
  • drivers/bicker_ser.c: bicker_ser: add id validation to bicker_get()
  • drivers/bicker_ser.c: bicker_ser: make dst optional in bicker_write The dst argument is optional in every other function, so be consistent and make it optional also in this one.
  • drivers/bicker_ser.c: bicker_ser: rename parameter to dst This should make clear that argument is just used for destination.

2.16. 2024-05-24 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/nut.exe.txt, docs/nut.dict: suggest some PowerShell magic to prepare Windows Firewall for upsd [#2446, #2455]
  • scripts/Windows/wininit.c, docs/man/nut.exe.txt: introduce "nut.exe start/stop" wrappings [#2455]
  • scripts/Windows/wininit.c: introduce an SvcExists() method [#2455]
  • scripts/Windows/wininit.c: clarify that this is what becomes "nut.exe" normally [#2446]
  • docs/man/nut.exe.txt: mention net start/stop to manage Windows services [#2446, #2455]

2.17. 2024-05-23 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: expose mappable parameters Every Bicker parameter that has a correspondence in nut-names.txt has been mapped. If the parameter is disabled on the device, no NUT variable is created. If the NUT variable is set to an empty string, the parameter is reset and disabled on the device and that NUT variable is removed.
  • drivers/bicker_ser.c: bicker_ser: add sanity checks to bicker_set These devices seem to be picky on what you use to set parameters.
  • drivers/bicker_ser.c: bicker_ser: make parameter handling less error prone Using an in/out struct and making some specific field mandatory is cumbersome and error prone. Now the data needed for setting or getting parameters is explicitly required by the arguments.

2.18. 2024-05-22 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: refactor to clarify packet manipulation Change BICKER_PACKET from a constant value to a macro that depends on the data length. This should make clear that the packet size depends directly from the data size. Refactored some code here and there trying to minimize the presence of magic numbers and clarify the intentions.
  • drivers/bicker_ser.c: bicker_ser: use proper format modifiers in logs Ensure the format string in logging messages is the correct one without subcasting. Furthermore, due to the promotion rules of the C language (where any given type, even unsigned, is promoted to int when possible), explicitly cast to unsigned where required.
  • drivers/bicker_ser.c: bicker_ser: use uint8_t for bytes instead of char char is by default signed and (as the name implies) designed to access string characters. For accessing bytes, the uint8_t type is more appropriate.
  • drivers/bicker_ser.c: bicker_ser: cosmetic fixes
  • drivers/bicker_ser.c: bicker_ser: fix alignment and endianness problems Accessing an uint16_t on odd addresses is not portable. Avoid having to deal with that issue by always constructing words mathematically from single bytes. This also solves any endianness difference.
  • drivers/bicker_ser.c: bicker_ser: fix string dstate setting User provided strings could contain printf special sequences and as such they should never be used in the format argument of dstate_setinfo().
  • drivers/bicker_ser.c: bicker_ser: differentiate between error and unsupported When a command is unsupported, the "\x01\x03\xEE\x07\x04" response packet is returned. This is different from a response packet with a wrong command index. WARNING: the "unsupported" packet has been found sperimentally and it is an undocumented feature.

2.19. 2024-05-21 Nicola Fontana <ntd@entidi.it>

  • drivers/bicker_ser.c: bicker_ser: add parameter support Added the needed infrastructure for getting and setting parameters. Actually the only parameter that is surely working is "ups.delay.start".
  • drivers/bicker_ser.c: bicker_ser: use variable for low battery limit
  • drivers/bicker_ser.c: bicker_ser: add more state variables Identification fields are now queried from the device. Also "battery.charge" is now set properly.
  • drivers/bicker_ser.c: bicker_ser: refactor to allow more complex packet handling I’m planning to add functions for reading strings, i.e. without knowing beforehand the size of the response packets. This required some refactoring of the receiving functions. Also, while at it, added docblocks to many Bicker functions, hopefully easing the maintenance in the future.
  • drivers/bicker_ser.c: bicker_ser: explicitly pass the command index In the previous implementation the command index was always \x03, as stated by the UPSIC manual. After new evidence has been found (UPS-Gen2 software user manual), it came out there are much more commands grouped in different indexes.
  • drivers/bicker_ser.c: bicker_ser: update protocol documentation Bicker told me to refer to the UPS Gen software’s user manual for more details on their protocol, and in fact that manual contains much more info. Added a summary of available commands to the comments, as a quick reference for feature implementation.

2.20. 2024-05-18 Nicola Fontana <ntd@entidi.it>

  • NEWS.adoc: announce bicker_ser driver [#2318]

2.21. 2024-05-17 Nicola Fontana <ntd@entidi.it>

  • docs/man/Makefile.am, docs/man/bicker_ser.txt, docs/nut.dict: bicker_ser: add manpage
  • drivers/bicker_ser.c: bicker_ser: use length macros to increase expressiveness
  • drivers/bicker_ser.c: bicker_ser: add big-endian platform support
  • data/driver.list.in: add bicker_ser based UPSes
  • drivers/bicker_ser.c: bicker_ser: add shutdown support The protocol supports shutdown after a custom delay settable between 0 and 255 seconds. Unfortunately the real device (UPSIC-2403D) seems to always enforce a 2 seconds delay.

2.22. 2024-05-16 Nicola Fontana <ntd@entidi.it>

  • drivers/Makefile.am, drivers/bicker_ser.c: bicker_ser: Bicker UPSes based on PSZ-1063 Add a new driver for Bicker DC UPS systems based on the PSZ-1063 extension module. This includes UPSIC-1205, UPSIC-2403 and DC2412-UPS(LD) models.

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

  • tools/nut-scanner/nut-scanner.c: clarify logs about "SKIPPED" scans as not requested "or supported"
  • tools/nut-scanner/nut-scanner.c: clarify "old nut" (libupsclient) vs. avahi detection in messages/help
  • tools/nut-scanner/nutscan-init.c: only set nutscan_avail_snmp=1 if WITH_SNMP_STATIC in nutscan_init() …and let debug log know we skipped the library search, and why.
  • tools/nut-scanner/nutscan-init.c, NEWS.adoc: avoid always considering "Old NUT" method available [fallout of #2246] If libupsclient.so was not loaded, we can not really use this search. Seems like a copy-paste problem mis-adding the NUT Simulation support.

2.24. 2024-05-16 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am, .gitignore: use unique temporary filenames in $(NUT_SPELL_DICT).usage-report, ChangeLog.adoc and .adoc.adoc-parsed rules to avoid surprises TODO: Look at why we might call generation of ChangeLog.adoc several times simultaneously and the make job server would not prevent that?
  • Makefile.am: avoid spurious "find: …/ChangeLog: No such file or directory" with some "test" command implementations [nut-website#52] Some test's evaluate all conditions first and only handle them via boolean logic later. Oh the audacity!
  • scripts/augeas/Makefile.am: fix check in out-of-tree builds (e.g. distcheck) [#657]

2.25. 2024-05-15 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, docs/Makefile.am: disable "make install" for "html-chunked" documentation [#2445] These documents are delivered as an horde of files spread in a nested directory hierarchy for each document, and the install scripts that automake uses seem to struggle with that. Maybe just need to find a suitable automagic keyword - but this can wait.
  • scripts/Windows/wininit.c: help(): report the confpath() to configure the daemons [#2432]
  • NEWS.adoc, docs/man/Makefile.am, docs/man/nut.exe.txt: add a man page of NUT for Windows wrapper for all-in-one service [#2432]
  • NEWS.adoc, UPGRADING.adoc, docs/nut.dict: note the enabled installation of built PDF and HTML files [#2445]
  • scripts/Windows/build-mingw-nut.sh: make sure docs are built as requested (and possible)
  • scripts/Windows/build-mingw-nut.sh: enable HTML (man) page builds where possible
  • scripts/Windows/build-mingw-nut.sh: neuter the use-case of --without-pkg-config (not implemented in m4 - do not confuse ourselves)
  • Makefile.am: typo fix man-html⇒html-man
  • configure.ac, docs/Makefile.am, docs/man/Makefile.am: support actually installing built PDF and HTML docs

2.26. 2024-05-14 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/wininit.c: introduce "-D" CLI option support to request debug of this and called NUT programs
  • scripts/Windows/wininit.c: C pedantic warnings - mark methods with no args as such (void)
  • scripts/Windows/wininit.c: when the service fails to start… [#2430] * as a console app that tried to be a service - report the error not only in Event Log but also on console; * for other issues write the LastError code to Event Log; * always exit with error code
  • scripts/Windows/wininit.c: when the program fails to start and has no arguments, report help() and exit with error code [#2432]
  • scripts/Windows/wininit.c: add help() and ways to request it and NUT version info [#2432]
  • scripts/Windows/wininit.c: update comments
  • scripts/Windows/wininit.c: parse_nutconf(): update emitted messages when starting/stopping daemons
  • scripts/Windows/wininit.c: rectify whitespace (coding style)
  • clients/upsmon.c: clear_pdflag(): fix message markup and content for a non-NUT killpower file [#2444]
  • drivers/mge-hid.c, NEWS.adoc: extend mge_model_names[] for Eaton 5SC and 5PX series [#2380]
  • drivers/mge-hid.c: indent falback round() implem consistently
  • drivers/mge-hid.c: indent vendor ID macros consistently
  • drivers/mge-hid.c: bump © for AQ
  • NEWS.adoc, docs/nut.dict: announce hwmon_ina219 driver [#2430]
  • drivers/hwmon_ina219.c: battery_voltage_params_init() comment about not re-evaluating during driver uptime [#2430]
  • drivers/hwmon_ina219.c: scan_hwmon_ina219(): make use of detect_ina219() a bit more idiomatic and log a skipped non-ina219 location [#2430]
  • drivers/hwmon_ina219.c: upsdrv_help(): drop sysfs_dir setting - it is an addvar() auto-documented feature [#2430]
  • drivers/hwmon_ina219.c: upsdrv_help(): clarify sysfs_dir setting [#2430]
  • docs/man/hwmon_ina219.txt: update default.battery.voltage.nominal description [#2430] Clarified existing pre-set combos recognized by the driver code.

2.27. 2024-05-01 Jan Viktorin <jan.viktorin@gmail.com>

  • data/driver.list.in, docs/man/Makefile.am, docs/man/hwmon_ina219.txt, drivers/Makefile.am, drivers/hwmon_ina219.c: Support for INA219 over hwmon on Linux INA219 [1] is a monitor of current. It is accessible via I2C. In the Linux Kernel, it is integrated via hwmon subsystem (thus, the I2C is hidden). When INA219 is installed to monitor current of batteries, it can be used as a simple UPS. This driver is intended to be used with CM4-POE-UPS-BASE [2], a baseboard for Raspberry PI Compute Module 4. With default setting, using 3x3000 mAh batteries, 30% per-CPU avg load, \200 kB/s of reads and writes to SSD disk, the system withstood ~6 hours without power. When remaining \~15 %, it took another 6,5 minutes before it died (that’s enough time to usually shutdown gracefully): 20240501 165801 100 NA NA [OL] NA NA 20240501 165831 96 NA NA [OB DISCHRG] NA NA … 20240501 231306 21 NA NA [OB DISCHRG] NA NA 20240501 231336 19 NA NA [OB DISCHRG] NA NA 20240501 231406 19 NA NA [OB DISCHRG] NA NA 20240501 231436 19 NA NA [OB DISCHRG] NA NA 20240501 231506 17 NA NA [OB DISCHRG] NA NA 20240501 231536 17 NA NA [OB DISCHRG] NA NA 20240501 231606 17 NA NA [OB DISCHRG] NA NA 20240501 231636 14 NA NA [FSD OB DISCHRG LB] NA NA 20240501 231706 13 NA NA [FSD OB DISCHRG LB] NA NA 20240501 231736 13 NA NA [FSD OB DISCHRG LB] NA NA 20240501 231806 13 NA NA [FSD OB DISCHRG LB] NA NA 20240501 231836 10 NA NA [FSD OB DISCHRG LB] NA NA 20240501 231906 11 NA NA [FSD OB DISCHRG LB] NA NA 20240501 231936 11 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232006 9 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232036 8 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232106 7 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232136 5 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232206 4 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232236 2 NA NA [FSD OB DISCHRG LB] NA NA 20240501 232306 0 NA NA [FSD OB DISCHRG LB] NA NA [1] https://www.ti.com/lit/ds/symlink/ina219.pdf [2] https://www.waveshare.com/wiki/CM4-POE-UPS-BASE

2.28. 2024-05-07 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: update for hwmon_ina219 man page [#2430]
  • docs/nut.dict: apply changes from upstream NUT sources

2.29. 2024-05-10 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: mention refactoring and warning-fixing during NUT v2.8.3 cycle
  • tools/nut-scanner/nutscan-display.c: fix the order of calloc() parameters [#2437, #823]
  • autogen.sh: clarify that the script succeeded so it is easier to see in build logs
  • tools/nut-usbinfo.pl: find_usbdevs(): do not explode if find() hits the "." directory; also quickly skip some binary file patterns
  • tools/nut-usbinfo.pl: if DEBUG then trace visited directories and files
  • include/nutipc.hpp: template-id not allowed for destructor in C\+\+20: clang(-14) insists on having it anyway [#2437]
  • include/nutipc.hpp: template-id not allowed for destructor in C++20: C\+\+11 also does not insist on having it [#2437]
  • include/nutipc.hpp: template-id not allowed for destructor in C\+\+20 [#2437]

2.30. 2024-05-10 Jim Klimov <jimklimov@gmail.com>

  • docs/Makefile.am: re-evaluate calls to "make ../ChangeLog" always, now that the parent Makefile knows when to slack off [nut-website#52]
  • Makefile.am, docs/Makefile.am: Makefile.am: update ChangeLog recipe to log messages about its work/skip/fail decisions [nut-website#52]
  • Makefile.am: update ChangeLog recipe to be a no-op if the existing file is newer than anything in a NUT_GITDIR (may be not "./git/" directly) [nut-website#52]
  • Makefile.am: update ChangeLog recipe to be a no-op if the existing file is newer than .git/HEAD [nut-website#52] if test -e .git/HEAD && ( rm -f "find "$@" -not -newer .git/HEAD" |\| true ) 2>/dev/null && ls -la .git/HEAD "$@" 2>/dev/null ; then SKIP ; else WORK ; fi Hopefully this takes care of corner cases: * No .git/HEAD ⇒ WORK (may be unsuccessfully, maybe not - e.g. Git submodules referring to parent) * rm fails, maybe find returns empty ⇒ DON’T CARE, go to LS * ls fails (one of target files is absent - e.g. ChangeLog removed or never was there) ⇒ WORK Only if the ChangeLog is still there after the attempt on its life, SKIP and keep it
  • docs/download.txt: update NetBSD links to use correct http(s) schemas [nut-website#52]

2.31. 2024-05-06 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp: annotate (for older C+\+) the methods which can throw() [#2294]
  • include/nutconf.hpp: refactor exception-throwing in Settable<T> getters [#2433]
  • include/nutconf.hpp: in Settable<T> operators to "return _value", throw() if it was not yet set() at all or since last clear() [#2294, #2433]
  • common/nutwriter.cpp: serializeCertHost(): try to avoid "may be used uninitialized in this function" warnings [#2294, #2433]
  • NEWS.adoc: update the gamatronic news with a note that it fixed a segfault seen in the field [#2427]

2.32. 2024-05-03 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/gamatronic.c: report a response buffer overflow as well as an invalid length string [#2427]
  • drivers/gamatronic.c: report a response buffer overflow (should not happen though) [#2427]
  • NEWS.adoc: note the update of gamatronic driver [#2427]
  • drivers/gamatronic.c: avoid hard-coded buffer length, make it a macro [#2427]

2.33. 2024-05-01 Jan Viktorin <jan.viktorin@gmail.com>

  • data/driver.list.in: fix whitespace Fixes: a816677fcf0e ("data/driver.list.in: add CP1350PFCLCD")

2.34. 2024-05-02 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/usbhid-ups.c, NEWS.adoc: complete the support of onlinedischarge_log_throttle_hovercharge setting [#2215, #2423]
  • drivers/usbhid-ups.c: update messages and comments about onlinedischarge_log_throttle_*charge [#2215, #2423]

2.35. 2024-05-02 Mike Jager <mike@mikej.net.nz>

  • drivers/gamatronic.c: bump driver version Co-authored-by: Sam Cook <github@sam.net.nz>
  • drivers/gamatronic.c: don’t trust UPS-provided data length Co-authored-by: Sam Cook <github@sam.net.nz>
  • drivers/gamatronic.c: don’t strcpy overlapped strings Co-authored-by: Sam Cook <github@sam.net.nz>

2.36. 2024-04-29 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/augeas/Makefile.am: disable back augparse test - only passes on some distros so far [#657] Add make targets for custom testing though
  • common/nutwriter.cpp: NutConfConfigWriter::writeConfig(): encase in pragmas to hush warnings about macro code [#2294]
  • scripts/augeas/tests/test_nut.aug, scripts/augeas/tests/test_nut_flaky.aug: scripts/augeas/tests/test_nut_flaky.aug: added to relocate a test case which passes on some distros and fails on others [#657]
  • scripts/augeas/nutupsconf.aug.tpl: avoid matching "/" in default.* or override.* expressions [#2294] Such possibility makes augtools-1.12.0 upset (fixed since 1.13.0, see https://github.com/hercules-team/augeas/issues/668 for details)
  • scripts/augeas/nutupsconf.aug.tpl: reshuffle end-of-line chars in regex [#2294]
  • include/nutconf.hpp, common/nutwriter.cpp: error: must #include <typeinfo> before using typeid [#2294]
  • NEWS.adoc: document that augeas lens have remaining issues
  • common/nutwriter.cpp: UpsmonConfigWriter::writeConfig(): try to avoid "may be used uninitialized in this function" warnings [#2294]
  • scripts/augeas/tests/test_nut.aug: add a comment about passing thest that probably should have failed [#657]
  • scripts/augeas/tests/test_nut_fixme.aug: Add scripts/augeas/tests/test_nut_fixme.aug for known-broken corner cases [#657]
  • include/nutconf.hpp: BoolInt: avoid "if (b)" constructs in favor of explicit call to operator via "if (b == true)" [#2294]
  • include/nutconf.hpp: align new UpsConfiguration entries cosmetically [#2294]
  • include/nutconf.hpp: fix comment to reconcile C and shell text [#2294]
  • include/nutconf.hpp: handle more "ups.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]

2.37. 2024-04-27 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp: document how to discover keywords for UpsConfiguration class [#2294]

2.38. 2024-04-26 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp: refactor UpsConfiguration methods which point to "flag" not just "bool" or "str" entities [#2294] Toss in other GenericUPS_* values Sort alphabetically
  • include/nutconf.hpp, common/nutconf.cpp: extend setFlag() semantics to true/false with implementation handling remove() where needed [#2294]
  • drivers/blazer.c, drivers/blazer_ser.c, drivers/blazer_usb.c: drivers/blazer*: fix "protocol" to be VAR_VALUE like elsewhere (and de-facto), not VAR_FLAG
  • drivers/nut-ipmipsu.c: reformat commented-away contents of upsdrv_makevartable() Also restore planned "sensorid" line lost in 71a6c17a09f6ace3a71525e38c10d47daca78e60
  • scripts/augeas/tests/test_nut.aug: update comment [#657]
  • scripts/augeas/tests/test_nut.aug: add a test for comment persistence in config
  • scripts/augeas/nutupsconf.aug.tpl, scripts/augeas/tests/test_nut.aug: scripts/augeas/nutupsconf.aug.tpl: fix and test detection of wildcard keys (default\|override).*
  • NEWS.adoc, docs/nut.dict, scripts/augeas/Makefile.am: scripts/augeas/Makefile.am, NEWS.adoc: re-enable augeas "check-local" [#657]
  • scripts/augeas/tests/test_nut.aug: revise handling of "Dummy UPS" in tests [#657, #2294]
  • scripts/augeas/Makefile.am: rearrange "if HAVE_AUGPARSE ⇒ check-local" clause
  • scripts/augeas/nutnutconf.aug.in: handle "nut.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]
  • scripts/augeas/nutupsconf.aug.tpl: handle common "ups.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]
  • scripts/augeas/gen-nutupsconf-aug.py.in: bump © years
  • scripts/augeas/nutupsdusers.aug.in: reword upsd_users_upsmon_type_re [#2294]
  • scripts/augeas/nutupsmonconf.aug.in: handle "upsmon.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]
  • include/nutconf.hpp, common/nutconf.cpp, common/nutwriter.cpp, tests/nutconf_parser_ut.cpp, tests/nutconf_ut.cpp: typo fix poolFreq* ⇒ pollFreq*
  • scripts/augeas/nutupsdconf.aug.in: handle "upsd.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]

2.39. 2024-04-26 Jim Klimov <jimklimov@gmail.com>

  • server/upsd.c, NEWS.adoc: log-trace daemon exit and clarify other messages [#2417]

2.40. 2024-04-26 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp, tests/nutconf_ut.cpp: revise UpsConfiguration::setUsbSetAltInterface() logic to not save a bogus -1 [#2294]

2.41. 2024-04-25 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutconf.cpp, include/nutconf.hpp, tests/nutconf_ut.cpp: include/nutconf.hpp, common/nutconf.cpp: introduce GenericConfiguration::getDouble() and setDouble() methods [#2294]
  • include/nutconf.hpp, tests/nutconf_ut.cpp: add "IntHex" fields to UpsConfiguration and test different parsing variants [#2294]
  • include/nutconf.hpp, common/nutconf.cpp: introduce GenericConfiguration::getIntHex() and setIntHex() methods [#2294]
  • include/nutconf.hpp: include/nutconf.hpp, common/nutconf.cpp, common/nutwriter.cpp, tests/nutconf_ut.cpp: handle and test "ups.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]

2.42. 2024-04-24 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp, common/nutconf.cpp, common/nutwriter.cpp, tests/nutconf_ut.cpp: handle and test "nut.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294] Note that "nut.conf" options follow shell syntax, unlike most other NUT config files

2.43. 2024-04-23 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp, common/nutconf.cpp, common/nutwriter.cpp, tests/nutconf_ut.cpp: handle and test "upsmon.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]

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

  • tests/nutconf_ut.cpp: NutConfigUnitTest::testUpsdConfiguration(): use NutConfigUnitTest::check() with the option to discard double-quotes from content (paths) for a fallback comparison Primarily useful to check this new check() method itself. And because nutwriter.cpp implementation was updated to always use double-quotes for the string values with paths (looking forward to running on MacOS and Windows).
  • include/nutconf.hpp, common/nutwriter.cpp, common/nutconf.cpp: handle "upsd.conf" keywords introduced between NUT 2.6.5 and 2.8.2 [#2294]

2.45. 2024-04-25 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp: comment concerns about "default." and "override." supportability in UpsConfiguration class [#2294]
  • include/nutconf.hpp: refactor class UpsConfiguration methods with idiomatic setBool()/getBool() [#2294]
  • include/nutconf.hpp, common/nutconf.cpp: introduce GenericConfiguration::getBoolInt() and setBoolInt() method set [#2294]
  • include/nutconf.hpp, common/nutconf.cpp: introduce GenericConfiguration::getBool() and setBool() method set [#2294]
  • include/nutconf.hpp, common/nutconf.cpp: introduce GenericConfiguration::getFlag() and setFlag() methods [#2294]

2.46. 2024-04-24 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutwriter.cpp: introduce helper macro SHELL_CONFIG_DIRECTIVEX() [#2294]

2.47. 2024-04-23 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutwriter.cpp, include/nutconf.hpp: include/nutconf.hpp, include/nutwriter.cpp: extend CertHost class with BoolInt fields

2.48. 2024-04-25 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp: add BoolInt constructors from supported data types [#2294]

2.49. 2024-04-23 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutconf.hpp: extend BoolInt class with a constructor
  • include/nutconf.hpp, tests/nutconf_parser_ut.cpp: extend BoolInt class with toString() and << for practical use (and test it) It seems that the assignment operator to string can only be done in the std::string class - a casting operator does not suffice, so the next best things are streaming and explicit methods to emit strings. While at it, also implement assignment into BoolInt objects via <<
  • include/nutconf.hpp, tests/nutconf_parser_ut.cpp: extend BoolInt class with a bool01 toggle (and test it) Allows to enable/disable comparison of bool value to int 0/1 values.
  • include/nutconf.hpp, tests/nutconf_parser_ut.cpp: include/nutconf.hpp, common/nutwriter.cpp, tests/nutconf_ut.cpp: introduce and unit-test a BoolInt helper class [#2402]
  • include/nutconf.hpp, common/nutwriter.cpp: introduce struct nut::CertHost (for upsmon.conf…) [#2402]

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

  • include/nutconf.hpp, common/nutwriter.cpp: introduce struct nut::CertIdent (for upsd.conf, upsmon.conf…) [#2402]
  • common/nutconf.cpp: implement StringToSettableNumber() for Settable<bool> with NUT boolean keyword support
  • tests/nutconf_ut.cpp: extend NutConfigUnitTest::check() with an option to discard double-quotes from content for a fallback comparison
  • include/nutconf.hpp, common/nutconf.cpp, common/nutwriter.cpp, tools/nutconf/nutconf-cli.cpp: rename nut::UpsmonConfiguration::Monitor::isMaster ⇒ isPrimary [#840]

2.51. 2024-04-23 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/nutconf_parser_ut.cpp: typo fixes in test names; whitespace rectification

2.52. 2024-04-25 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutconf.cpp: wrap long lines and standardize style in method declarations

2.53. 2024-04-24 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutwriter.hpp, common/nutwriter.cpp: update comments to match classes to config files [#2294]

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

  • include/nutconf.hpp: UpsdUsersConfiguration: update comments about existing methods [#2294]

2.55. 2024-04-24 Jim Klimov <jimklimov+nut@gmail.com>

  • conf/nut.conf.sample, docs/man/nut.conf.txt: document NUT_DEBUG_LEVEL envvar support

2.56. 2024-04-22 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: drop key words absent in both current NUT and NUT-WEBSITE sources [#2402]

2.57. 2024-04-19 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: nut_driver_enumerator_main(): do not re-save name when live reload of a driver sufficed [#2410]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: nut_driver_enumerator_main(): save new content checksum and name when live reload of a driver sufficed and service is not redefined [#2410]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: nut_driver_enumerator_main(): differentiate UPSS (service instance name) and CURR_DEV (device section name) to reload a driver [#2410]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: nut_driver_enumerator_main(): if driver program reload failed, retry verbosely (optionally) to help troubleshooting
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: nut_driver_enumerator_main(): report if we "Got some changes to reconcile…" with specific service instance names [#2410]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: clarify that upslist_savednames_find_mismatch() is reserved for future features and is incomplete [#682, #2410]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: revisit upslist_savednames_find_missing() and upslist_savednames_find_mismatch() [#682, #2410] * Document better
  • Fix envvars used in queries * Fix matching of TABCHAR
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: log if NEW_CHECKSUM is empty - that it happened and what it means [#2410]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in, NEWS.adoc: fix round parentheses to curly braces, so we still recognize NEW_CHECKSUM for nut-driver reloads [#2410, fallout of #682]

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

  • docs/nut.dict: remove words only relevant to nut-website (which are parts of larger tokens) [#2402]
  • docs/Makefile.am: clarify the NUT_SPELL_DICT used when a spelling check fails [#2402]

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

  • docs/nut.dict: remove words only relevant to nut-website [#2402]
  • common/nutipc.cpp: fix include order for common.h
  • NEWS.adoc, drivers/main.c: drivers/main.c: move "-d" CLI option handling also to start of program [fallout of #2259] We consult the value of dump_data to decide about foreground mode, but after moving the -D option handling (and this decision) upwards to facilitate early debugging, the variable is never modified in time anymore. Thanks for the catch to Eric Clappier and IPM/42ity team.
  • drivers/snmp-ups.c: fix whitespace
  • tests/NIT/nit.sh: rename logged NIT_SCRIPT_PID⇒PID_NIT_SCRIPT
  • tests/NIT/nit.sh: introduce testgroup_sandbox_upsmon_master() and sandbox_start_upsmon_master()
  • clients/upsmon.c: clarify log message about absence of explicit POWERDOWNFLAG setting [#321]
  • tests/NIT/nit.sh: introduce upsmon_start_loop() and PID_UPSMON tracking
  • tests/NIT/nit.sh: generatecfg_upsmon*(): fix MONITOR line markup
  • server/upsd.c: get_ups_ptr(): log unresolved name for troubleshooting
  • tests/NIT/nit.sh: generatecfg_upsmon_trivial(): fix SHUTDOWNCMD to use the expanded NUT_STATEPATH value
  • clients/upsmon.c, common/common.c, drivers/main.c, drivers/upsdrvctl.c, include/common.h, server/upsd.c: common/common.c et al: Introduce NUT_SENDSIGNAL_DEBUG_LEVEL_KILL_SIG0PING value for nut_sendsignal_debug_level [#1782]
  • tests/NIT/nit.sh: avoid stopping daemons when handling NIT_CASE =\~ generatecfg_*\|is*
  • tests/NIT/nit.sh: avoid removing TESTDIR when handling NIT_CASE =\~ generatecfg_*\|is*
  • tests/NIT/nit.sh: unset DEBUG_SLEEP when handling NIT_CASE =\~ generatecfg_*\|is*
  • tests/NIT/nit.sh: in NIT.env, hide "DEBUG_SLEEP|PATH\|LD_LIBRARY_PATH*" settings as comments
  • tests/NIT/nit.sh: fix updatecfg_upsmon_supplies()
  • tests/NIT/nit.sh: add PATH into generated NIT.env
  • tests/NIT/nit.sh: add a warning comment about generated NIT.env vs. re-runs of the script
  • common/nutipc.cpp, common/nutstream.cpp, include/nutipc.hpp, include/nutstream.hpp, include/nutwriter.hpp, tests/cpputest-client.cpp, tests/cpputest.cpp, tests/example.cpp, tests/nutclienttest.cpp, tests/nutconf_parser_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp: C+\+ test and other sources: bump and format © headings
  • NEWS.adoc, common/common.c, common/nutipc.cpp, include/common.h: common/common.c et al: introduce a rootpidpath() method
  • common/common.c: cache a non-NULL "path" found by altpidpath(), confpath(), dflt_statepath() on the first call Speed up work upon subsequent calls, and be sure to return the same value consistently.
  • tests/NIT/nit.sh: also set NUT_PIDPATH for e.g. upsmon
  • tests/NIT/nit.sh: allow to run generatecfg*() helpers as a NIT_CASE
  • tests/NIT/nit.sh: generatecfg_upsmon_trivial(): tweak SHUTDOWNCMD to record its attempts into a "$NUT_STATEPATH/upsmon.sd.log" file
  • tests/NIT/nit.sh: extend generatecfg_upsmon_*() methods with a way to customize power supply count (served by MONITOR, required by MINSUPPLIES)
  • tests/NIT/nit.sh: fix comment typo
  • tests/NIT/nit.sh: populate a "$NUT_CONFPATH/NIT.env" to facilitate external testing (notably with DEBUG_SLEEP and test daemons left running)

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

  • NEWS.adoc, clients/upsmon.c, clients/upsmon.h, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/nut.dict: clients/upsmon.c et al: introduce OBLBDURATION config toggle [#321]
  • NEWS.adoc, data/driver.list.in, docs/nut.dict: data/driver.list.in, NEWS.adoc: add support-known for Visench C1K [#2395]
  • drivers/nutdrv_qx.c: fix whitespace

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

  • .gitignore, Makefile.am, docs/Makefile.am: Makefile.am, docs/Makefile.am: add recipe for spellcheck-report-dict-usage to prepare a $(NUT_SPELL_DICT).usage-report [#2402] Facilitate maintenance of nut-website’s spell checking dictionary with words unique to the site sources.
  • scripts/installer/Makefile.am: make sure scripts/installer/common/README_ipp-os-shutdown.adoc-spellchecked is cleaned away

2.62. 2024-04-15 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: update for nut-website

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

  • NEWS.adoc, drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c, NEWS.adoc: avoid spurious syslog of "(nut_)libusb_get_string: Success" [#2399]

2.64. 2024-04-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/main.c: Hush the fopen(pidfile) messages before dealing with "INSTCMD driver.exit" so that we can make that verbose again if dialog started but failed to stop the other driver [#2384, #2392]
  • drivers/main.c: change messages around "INSTCMD driver.exit" activity [#2392]
  • drivers/main.c: silence compiler warnings about NUT_STRARG() for "INSTCMD driver.exit" in some builds [#2392]
  • drivers/main.c: use nut_upsdrvquery_debug_level verbosity toggle to hush scary noise from attempts to "driver.exit" a sibling [#1782, #2392, #2384]
  • drivers/main.c: when looping to SIGTERM a duplicate driver, check if we got a signal ourselves (e.g. user pressed Ctrl\+C)
  • drivers/upsdrvquery.c, drivers/upsdrvquery.h: drivers/upsdrvquery.{c,h}: extend with nut_upsdrvquery_debug_level verbosity toggle [#1782, #2392, #2384]
  • drivers/upsdrvctl.c: stop_driver(), signal_driver_cmd(): use nut_sendsignal_debug_level verbosity toggle to hush initial fopen(pidfile) scary noise [#1782]
  • drivers/upsdrvctl.c: annotate "ifdef WIN32" locations waiting for #1916 to be solved

2.65. 2024-04-12 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, data/cmdvartab, docs/man/nutupsdrv.txt, docs/man/upsdrvctl.txt, drivers/main.c, drivers/main.h, drivers/upsdrvctl.c: drivers/main.{c,h}, drivers/upsdrvctl.c, data/cmdvartab, man pages: Implement "INSTCMD driver.exit" [#2392]
  • drivers/upsdrvctl.c: help(): prepend sections with a blank line
  • drivers/upsdrvctl.c: bump © years and primary authors
  • drivers/main.c: bump © year
  • drivers/main.c: properly indent cmd/pidfile handling and annotate ends of large clauses
  • drivers/main.c, NEWS.adoc: handle "-FF" to process PID files (and competing driver instances) same as when backgrounding [#2384]
  • drivers/main.c: add debug tracing for interactions with PID file and "Duplicate driver instance" [#2384]

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

  • docs/man/riello_ser.txt, drivers/riello_ser.c, NEWS.adoc: port "localcalculation" feature from riello_ser [#1692, #2390]
  • docs/man/riello_usb.txt: drop extra "EXTRA ARGUMENTS" title; wrap long lines [#1692]

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

  • docs/developers.txt, docs/nut.dict: document some caveats about using IDEs to develop NUT

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

  • clients/upsmon.c, server/upsd.c, drivers/main.c, drivers/upsdrvctl.c: fflush(stdout) after printing the NUT program banner [#1783] Forking daemons suffer from unflushed buffers cloned into every fork() and printed for every exit() — of each forked child process.
  • clients/upsmon.c: pepper with a few debug printouts
  • scripts/systemd/README.adoc: suggest use of systemd drop-ins for unit customization [#1783]
  • scripts/misc/notifyme-debug: Introduce scripts/misc/notifyme-debug helper/example
  • docs/Makefile.am: update URL to asciidoc issue with --destination-dir [#281] The "asciidoc" github repo was apparently hidden as the python2 codebase, with "asciidoc-py(3?)" surviving with a separate issue/PR/… history. The discussion of interest is available in a snapshot on Archive.Org so far.
  • docs/Makefile.am: refine SUFFIXES to not cause "bogus spellcheck call" situations Per experimentation, calls to create e.g. "asciidoc-vars.conf-spellchecked" without a SPELLCHECK_SRC_ONE (reported as bogus events) happened because of Makefile SUFFIXES entry "-spellchecked" causing it to be tried as an implicit prerequisite, e.g.: Considering target file asciidoc-vars.conf. Looking for an implicit rule for asciidoc-vars.conf. Trying pattern rule with stem asciidoc-vars.conf. Trying implicit prerequisite asciidoc-vars.conf-spellchecked. Found an implicit rule for asciidoc-vars.conf. Considering target file asciidoc-vars.conf-spellchecked. Looking for an implicit rule for asciidoc-vars.conf-spellchecked. Trying pattern rule with stem asciidoc-vars.conf-spellchecked. Trying implicit prerequisite asciidoc-vars.conf-spellchecked,v. Trying pattern rule with stem asciidoc-vars.conf-spellchecked. Trying implicit prerequisite RCS/asciidoc-vars.conf-spellchecked,v. Trying pattern rule with stem asciidoc-vars.conf-spellchecked. Trying implicit prerequisite RCS/asciidoc-vars.conf-spellchecked. Trying pattern rule with stem asciidoc-vars.conf-spellchecked. Trying implicit prerequisite s.asciidoc-vars.conf-spellchecked. Trying pattern rule with stem asciidoc-vars.conf-spellchecked. Trying implicit prerequisite SCCS/s.asciidoc-vars.conf-spellchecked. No implicit rule found for asciidoc-vars.conf-spellchecked. Finished prerequisites of target file asciidoc-vars.conf-spellchecked. No need to remake target asciidoc-vars.conf-spellchecked. Finished prerequisites of target file asciidoc-vars.conf. Prerequisite asciidoc-vars.conf-spellchecked is newer than target asciidoc-vars.conf. Must remake target asciidoc-vars.conf. Makefile:1302: update target asciidoc-vars.conf due to: asciidoc-vars.conf-spellchecked …and indeed it is bogus. This little fix removes the situation and does not preclude the files without .txt exception (license etc.) getting spellchecked or prepped.
  • clients/upsmon.c: clarify that lack of a running daemon PID file is OK when checking_flag (for POWERDOWNFLAG)
  • NEWS.adoc, docs/nut.dict: use nut_sendsignal_debug_level verbosity toggle to hush initial fopen(pidfile) scary noise [#1782]
  • server/upsd.c: use nut_sendsignal_debug_level verbosity toggle to hush initial fopen(pidfile) scary noise [#1782]
  • drivers/main.c: use nut_sendsignal_debug_level verbosity toggle to hush initial fopen(pidfile) scary noise [#1782]
  • clients/upsmon.c: use nut_sendsignal_debug_level verbosity toggle to hush initial fopen(pidfile) scary noise [#1782]
  • common/common.c, include/common.h: extend with nut_sendsignal_debug_level verbosity toggle [#1782]
  • clients/upsmon.c: do not be verbose in loadconfig() if we are just quietly checking killpower flag [#2383]

2.69. 2024-04-05 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: americanize the verb ending [#321]
  • clients/upsmon.c: support "reload_flag = -1" for help() [#321]
  • docs/man/upsmon.conf.txt: suggest use of "upsmon -K" instead of direct lookups into POWERDOWNFLAG file; note recommended locations [#321]
  • conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt: suggest the minimal functional content of upsmon.conf [#321]
  • clients/upsmon.c: help(): call loadconfig() quietly and report the value or absence of explicit POWERDOWNFLAG setting [#321]
  • clients/upsmon.c: loadconfig(): report absence of explicit POWERDOWNFLAG setting [#321]
  • clients/upsmon.c: loadconfig(): report entering the method (and the config file used)
  • clients/upsmon.c: loadconfig(): only upslogx() if active nut_debug_level is not negative
  • clients/upsmon.c: addups(): only upslogx() if active nut_debug_level is not negative
  • conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt: document that POWERDOWNFLAG must be configured (no compiled-in default in upsmon) [#321]
  • NEWS.adoc: document the situation about POWERDOWNFLAG setting [#321]

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

  • docs/maintainer-guide.txt: remind to prepare a GitHub label for eventual issues with the new release
  • docs/maintainer-guide.txt: remind to verify GPG checksums (and make sure sources are published) [#2381]

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

  • NEWS.adoc, drivers/libhid.c: Fix comments/docs around the maxreport flag for usbhid-ups driver, vs. max_report_size setting in code

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

  • docs/maintainer-guide.txt: update release ritual details
  • data/driver.list.in: fix some comments with double quotes
  • data/driver.list.in: note about comments
  • docs/nut.dict: update for nut-website

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

  • docs/maintainer-guide.txt: update commit instructions for AC_INIT bumps
  • configure.ac: bump AC_INIT to development version 2.8.2.1
  • NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text before NUT v2.8.2 release" This reverts commit fc9d6211b46955ce7961536cac53a2e10e248584.
  • configure.ac: mark exact NUT v2.8.2 release Happy Fools' Day!
  • docs/maintainer-guide.txt: update instruction
  • Makefile.am: avoid parallelizing "doc" and "all-recursive" just in case (only follow up by "make doc") Maybe this is behind duplicate man page builds which tend to step on each other’s toes.
  • docs/maintainer-guide.txt: example command for tag remake
  • docs/maintainer-guide.txt: example command fix
  • .github/workflows/PyNUTClient.yml, NEWS.adoc, appveyor.yml, configure.ac, docs/docinfo.xml.in, scripts/Windows/build-mingw-nut.sh: Update versions for release of NUT v2.8.2
  • drivers/adelsystem_cbi.c, drivers/al175.c, drivers/apcsmart.c, drivers/apcupsd-ups.c, drivers/asem.c, drivers/bcmxcp.c, drivers/belkin.c, drivers/belkinunv.c, drivers/bestfcom.c, drivers/bestfortress.c, drivers/bestuferrups.c, drivers/bestups.c, drivers/blazer_ser.c, drivers/blazer_usb.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dummy-ups.c, drivers/etapro.c, drivers/everups.c, drivers/gamatronic.c, drivers/generic_gpio_libgpiod.c, drivers/generic_modbus.c, drivers/genericups.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/liebert-esp2.c, drivers/liebert.c, drivers/macosx-ups.c, drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c, drivers/microdowell.c, drivers/microsol-apc.c, drivers/netxml-ups.c, drivers/nut-ipmipsu.c, drivers/nutdrv_atcl_usb.c, drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c, drivers/phoenixcontact_modbus.c, drivers/pijuice.c, drivers/powercom.c, drivers/powerman-pdu.c, drivers/powerpanel.c, drivers/rhino.c, drivers/richcomm_usb.c, drivers/riello_ser.c, drivers/safenet.c, drivers/skel.c, drivers/sms_ser.c, drivers/snmp-ups.c, drivers/socomec_jbus.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c, drivers/usbhid-ups.c, drivers/victronups.c: drivers/*.c: mass-bump DRIVER_VERSION values due to changes in main.c since NUT v2.8.1 release
  • NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text before NUT v2.8.2 release
  • docs/maintainer-guide.txt: top note about (not-)spellchecking this doc
  • docs/maintainer-guide.txt: update release instructions, fix typos

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

  • NEWS.adoc: mention belkin-hid fix as also a regression fix [#2371]
  • drivers/riello_usb.c: upsdrv_initinfo(): set batt_volt_* limit vars from nominal voltage alignment, then apply from settings or initial reading [#1692]
  • drivers/riello_usb.c: upsdrv_initinfo(): set batt_volt_* limit vars from settings or initial reading [#1692]

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

  • tests/Makefile.am: EXTRA_DIST the test mock "program" source
  • NEWS.adoc: document fixes for Belkin/Liebert readings
  • tests/getexponenttest-belkin-hid.c, drivers/belkin-hid.c: absorb liebert_psi5_line_voltage_fun() into common liebert_line_voltage_fun() Hopefully should help more devices than those which serve this or that HID subtree only. Follows up from PR #2369

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

  • drivers/belkin-hid.c: fix liebert_line_voltage_fun() and friends for 0..500V range (cover 3-pole while we are at it) Not touching liebert_config_voltage_fun() at the moment as have no non-integer examples under hand to test against.
  • tests/getexponenttest-belkin-hid.c: add tests for larger value ranges (over 200V)
  • drivers/belkin-hid.c: comment expectations for liebert_line_voltage_fun() and friends
  • tests/.gitignore, tests/Makefile.am: tests: no longer need a replica of belkin-hid.c in tests/ to build getexponenttest-belkin-hid Suffices that we #include it in the test source, and drivers/ are among include dirs
  • tests/.gitignore, tests/Makefile.am, tests/driver-stub-usb.c, tests/{getexponenttest.c ⇒ getexponenttest-belkin-hid.c}: tests: rename getexponenttest ⇒ getexponenttest-belkin-hid since it became quite specific to that subdriver source Still, can serve as an example/blueprint for other drivers' tests.
  • tests/getexponenttest.c: use our macros to avoid "comparing floating point with == or != is unsafe [-Werror,-Wfloat-equal]" [#2371]
  • drivers/belkin-hid.c, tests/Makefile.am, tests/driver-stub-usb.c, tests/getexponenttest.c: drivers/belkin-hid.c: Revert modifications for unit-testing, arrange its build differently [#2371]
  • drivers/belkin-hid.c, tests/.gitignore, tests/Makefile.am, tests/driver-stub-usb.c, tests/getexponenttest.c: Add unit tests for belkin-hid liebert_line_voltage_fun() and related methods [#2370]
  • drivers/belkin-hid.c: whitespace fix
  • drivers/belkin-hid.c: update © heading [#2369 follow-up]

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

  • drivers/riello_usb.c: extend built-in default battery low/high range to match nutdrv_qx data for PbAc batteries [#1692]
  • drivers/riello_usb.c, docs/man/riello_usb.txt: pick battery low/high range via known or configured battery.voltage.nominal [#1692]
  • drivers/riello_usb.c, docs/man/riello_usb.txt: allow configurable battery.voltage.low/.high for localcalculation guesstimates [#1692]
  • drivers/riello_usb.c: bump © and DRIVER_VERSION for "localcalculation" related support [#1692]
  • drivers/riello_usb.c: comment the meaning of logical blocks changed by PR #1692

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

  • UPGRADING.adoc, NEWS.adoc: mention changes in tools/gitlog2changelog.py.in [#2360, #2366]
  • tools/gitlog2changelog.py.in: when authorMustBeASCII, only parse str via unicode() if we did not shortcut it earlier, and fix a typo in encoding value
  • tools/gitlog2changelog.py.in: trace absence of "unicode" type in some python bundles

2.79. 2024-03-22 Jim Klimov <jimklimov+nut@gmail.com>

  • Makefile.am, docs/Makefile.am: use abs_top_builddir for wrapper rules
  • docs/Makefile.am, docs/man/Makefile.am: clarify default "all" target variants as requiring a prep
  • Makefile.am: be sure to prep before the many docs-related targets
  • Makefile.am: fix typo for "docs/man" prep for spellcheck target
  • Makefile.am: clarify default "all" target variants

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

  • NEWS.adoc: Add Liebert PSI5 [#2369]

2.81. 2024-03-22 James R. Parks <jrjparks@zathera.com>

  • drivers/belkin-hid.c, drivers/usbhid-ups.c, drivers/usbhid-ups.h: feat: Add support for Liebert PSI5 Adding support for the Liebert PSI5 model of UPS.

2.82. 2024-03-22 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/Makefile.am: typo fix in comments
  • docs/man/apc_modbus.txt: update comments for libmodbus\+rtu_usb builds - with a static library suggestion [#2063]
  • Jenkinsfile-dynamatrix: enable "autotools driven build with default configuration … with fatal warnings" for all branch types Earlier enabled for fightwarn and PRs against stable branches, but not for master-branch builds themselves.
  • tools/nut-scanner/scan_xml_http.c, tools/nut-scanner/scan_snmp.c: ignore potentially unreachable code in platforms-dependent range checks Same as 34056dd43261c92e9230e2d18ddf5e8f498d98e9 earlier.

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

  • docs/man/apc_modbus.txt, docs/nut.dict: update manpage with instructions for USB-capable builds [#2063]
  • m4/nut_check_libmodbus.m4: make it visible when some libmodbus is found, but does not support libusb while we want it (and will fail NUT configure later) [#2063]

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

  • scripts/installer/make_package.sh: update comments
  • scripts/installer/README.adoc, docs/nut.dict: update about directory layout and contents expected by make_package.sh
  • scripts/installer/Makefile.am, scripts/installer/README.adoc, scripts/installer/nut: scripts/installer: avoid SCM-tracking a symlink to NUT source root

2.85. 2024-03-18 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: for autotools-only builds, select by OS_DISTRO (avoide duplicates with OS_FAMILY)
  • Jenkinsfile-dynamatrix: exclude GCC on OpenBSD 6.5 from autotools CI builds Old compiler that won’t hush about warnings, pollutes CI dashboard. Equivalent builds handled by ci_build.sh are in quiet mode for the first compilation attempt (usually the only one, if all is OK) so these warnings are just not seen by build-log analysis parser.
  • configure.ac, Makefile.am, docs/Makefile.am, tools/gitlog2changelog.py.in: detect if we should mangle ChangeLog.pdf section titles with non-ASCII contributor names
  • docs/Makefile.am: hint to asciidoc/dblatex to trivialize section names into ASCII themselves Inspired by http://aerostitch.github.io/misc/asciidoc/asciidoc-title_uft8.html but did not directly help at least for Ubuntu 14.04 worker NOTE: Fallback suggestion to add --dblatex-opts="--param=latex.encoding=utf8" actually broke the PDF doc builds, not only for ChangeLog.
  • tools/gitlog2changelog.py.in: trivialize author names into plain ASCII Older asciidoc/a2x/dblatex stack fails with non-ASCII characters in section titles (date and commit author become ChangeLog sections). Inspired by: * http://aerostitch.github.io/misc/asciidoc/asciidoc-title_uft8.html * https://stackoverflow.com/questions/51710082/what-does-unicodedata-normalize-do-in-python * https://stackoverflow.com/questions/38697037/how-to-convert-python-2-unicode-function-into-correct-python-3-x-syntax
  • Makefile.am: make sure that "make all" ends up making all types of docs
  • common/nutconf.cpp, common/nutwriter.cpp, include/nutconf.hpp, tests/nutconf_ut.cpp, tools/nutconf/nutconf-cli.cpp: nutconf-related C+\+ sources: deprecate certain terminology and keywords [#840]

2.86. 2024-03-14 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: rectify passing of CONFIG_OPTS [relies on nut/jenkins-dynamatrix#34]

2.87. 2024-03-18 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutconf.cpp, common/nutwriter.cpp, include/nutconf.hpp, tests/nutconf_parser_ut.cpp: nutconf-related C+\+ sources: fix typo in source var names: hotSync ⇒ hostSync
  • common/nutconf.cpp, common/nutwriter.cpp, include/nutconf.hpp, tools/nutconf/nutconf-cli.cpp: nutconf-related C+\+ sources: add new UPSMON-style notification keywords to vocabulary

2.88. 2024-03-14 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: wrap unstashing of sources into their own pipeline sub-stage
  • Jenkinsfile-dynamatrix: fix passing of (multi-token) DISTCHECK_FLAGS to autotools build/test variants
  • Jenkinsfile-dynamatrix: add a section for direct use of autotools (once per platform) in all stable-branch builds In fallout of PR #2256 we had situations "caused" by tighter integration for NUT CI builds (and developer convenience via ./ci_build.sh) which were not seen on the NUT CI farm but could bite the common approach of ./autogen.sh && ./configure && make on some (not all) platforms.
  • common/nutstream.cpp: avoid pedantic warning about a const/static variable
  • tools/nutconf/Makefile.am: apply convenience CCACHE exports like for other compiled sources [#2256]
  • Makefile.am, clients/Makefile.am, common/Makefile.am, configure.ac, drivers/Makefile.am, include/Makefile.am, lib/Makefile.am, server/Makefile.am, tests/Makefile.am, tests/NIT/Makefile.am, tools/Makefile.am, tools/nut-scanner/Makefile.am: configure.ac, .am: wherever we export CCACHE_ envvars for convenience - avoid doing so if they were not set at configure time [#2256]

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

  • .github/workflows/codeql.yml: revise APT preinstallation * clang or gcc/g+\+ depending on matrix.compiler * collapse other pkgs into one call * add libneon*-dev
  • .github/workflows/codeql.yml: use C/C+\+ buids with "native" autogen\+configure (and a single run for each config combo)
  • .github/workflows/codeql.yml: exile "python" analysis into one "included" matrix cell

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

  • .github/workflows/codeql.yml: add ./ci_build.sh options to constrain build/check scenario workload sprawl
  • .github/workflows/codeql.yml: make a CodeQL matrix of compiler/NUT_SSL_VARIANTS/NUT_USB_VARIANTS instead of single fightwarn-all
  • .github/workflows/codeql.yml: fix stringification of "ubuntu-latest"
  • .github/workflows/codeql.yml: make "ubuntu-latest" formally a part of "matrix.os" for "if" clause
  • .github/workflows/codeql.yml: install prerequisite packages and ensure a "BUILD_TYPE=fightwarn-all ./ci_build.sh" loop for C/C+\+ "Autobuild" implementation
  • .github/workflows/codeql.yml: non-default C/C+\+ "Autobuild" implementation
  • .github/workflows/codeql.yml, .github/codeql/codeql-config.yml: add "paths" for Python scripts
  • Jenkinsfile-dynamatrix: fiddle with BUILD_WARNFATAL settings

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

  • Jenkinsfile-dynamatrix: fix naming for cross-Windows builds ("Strict C" part is optional)
  • Jenkinsfile-dynamatrix: add a TODO about "completely out-of-tree" builds

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

  • .github/workflows/codeql.yml: extend with python

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

  • autogen.sh: in the end of successful execution, lead interactive users to running the ./configure script

2.94. 2024-03-03 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/systemd/nut-driver-enumerator-daemon-activator.path.in: clarify the unit description (it does not strictly restart the daemon, can reload if running too)
  • docs/config-prereqs.txt: clarify that FreeBSD likely does not want to "pkg add openssl" in fact [#2275]
  • README.adoc: update phrasing on DigitalOcean and NUT CI farm

2.95. 2020-04-29 Jim Klimov <jim@jimklimov.com>

  • scripts/systemd/nut-driver-enumerator-daemon-activator.service.in: nut-driver-enumerator-daemon-activator.service : use older Service/StartLimitInterval for broader compatibility Should help avoid this warning and unachieved functionality on systemd-229 and older: * systemd[1]: [/lib/systemd/system/nut-driver-enumerator-daemon-activator.service:30] Unknown lvalue StartLimitIntervalSec in section Service

2.96. 2024-03-02 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/systemd/nut-server.service.in: summarize LimitNOFILE increase and ExecStartPost to monitor that it was applied, from FTY branch Originates from FTY commits: * 062d1868fa (Jim Klimov 2018-01-16 13:11:08 \+0100) * 0e28cc865c (Jim Klimov 2018-01-16 13:37:39 \+0100) * e9a67100a0 (Jim Klimov 2018-01-16 13:41:52 \+0100)

2.97. 2020-04-20 Jim Klimov <jim@jimklimov.com>

  • scripts/systemd/nut-driver-enumerator-daemon-activator.service.in: nut-driver-enumerator-daemon-activator.service.in : disable quick-start throttling

2.98. 2024-03-02 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/scan_snmp.c: apply comments from FTY branch
  • tools/nut-usbinfo.pl: quietly skip editor backup files, and those prepared by "git difftool" for comparisons
  • scripts/systemd/.gitignore: do not GitIgnore nut-driver.target, it lives in SCM now

2.99. 2024-03-01 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/ax_c_pragmas.m4: comment where "-Wcast-function-type-strict" comes from

2.100. 2024-03-02 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/snmp-ups.c: apply comments and formatting from FTY branch

2.101. 2017-01-14 Jim Klimov <jim@jimklimov.com>

  • drivers/nut-libfreeipmi.c: drivers/nut-libfreeipmi.c : set the 4 voltage_range variable to unsigned ints

2.102. 2024-03-02 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/dstate.c: apply comments from FTY branch Originally from commits 9723e08096 and 6909e965a9 (Jan 2017)

2.103. 2016-09-07 Jim Klimov <jim@jimklimov.com>

  • drivers/dstate.c: dstate.c : a pedantic compiler warning fix

2.104. 2016-07-04 Arnaud Quette <arnaud.quette@free.fr>

  • docs/man/nut-scanner.txt: comment about debugging level for troubleshooting Originates from commit 951f8f8b3 by Date: Mon Jul 4 16:27:29 2016 \+0200

2.105. 2024-03-02 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/nut-scanner.txt: reconcile asciidoc markup with FTY branch
  • docs/config-prereqs.txt: reconcile markup with FTY branch
  • docs/config-notes.txt: reconcile markup with FTY branch
  • common/common.c: reconcile markup with FTY branch
  • autogen.sh: reconcile markup with FTY branch
  • UPGRADING.adoc: fix basic asciidoc list markup for releases v2.6.x and older
  • NEWS.adoc, UPGRADING.adoc: clarify drop of oldmge-shut from NUT codebase
  • NEWS.adoc: rephrase the text about Eaton-contributed installer from news prepared in FTY branch
  • tools/nut-scanner/nut-scanner.c: bump © years, reconcile with master branch

2.106. 2024-03-01 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/nut-scanner.c: use same conservative base level of USB scan verbosity when scanning all media types (-C) [#2334]
  • tools/nut-scanner/scan_nut_simulation.c: do not abort if CONFPATH is missing [#2235]
  • NEWS.adoc, conf/ups.conf.sample, docs/man/nut_usb_addvars.txt, docs/man/ups.conf.txt, docs/nut.dict, drivers/arduino-hid.c, drivers/libshut.c, drivers/libusb0.c, drivers/libusb1.c, drivers/main.c, drivers/powervar-hid.c, tools/nut-scanner/scan_usb.c: Multiple USB-capable drivers: add ways to tune USB HID config, report, descriptor indexes and in/out endpoints [#2149]

2.107. 2024-03-01 Yifeng Li <tomli@tomli.me>

  • docs/nut.dict: nut.dict: add model "KRTL" to dictionary.
  • docs/man/huawei-ups2000.txt: huawei-ups2000.txt: add UPS2000-G-3KRTL to the confirmed list A user has reported that UPS2000-G-3KRTL is confirmed working, thus this commit adds it to the list of known-working models. A remark about standard and long runtime variants has also been added.

2.108. 2024-03-01 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am: comment typo fix

2.109. 2024-03-01 Yifeng Li <tomli@tomli.me>

  • docs/Makefile.am: reminder about missing dictionary when aspell is unavailable When aspell is not unavailable, the cause can either be that aspell itself is not installed, or it has no English dictionary (aspell-en). I’ve wasted several minutes due to this oversight. Add this reminder in the error message to give clue to future developers.

2.110. 2024-03-01 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/usb-common.c: free() USB matcher structures if called again [#2309] e.g. when reconnecting after link loss

2.111. 2024-02-29 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/config-prereqs.txt: clarify libneon.so symlink on OpenBSD
  • common/common.c: get_libname_in_dir(): report first found "related" name (if any), if got no hits
  • docs/config-prereqs.txt: document hacks to get pip for Python 2.7 …on systems that only support it partially Courtesy of https://stackoverflow.com/a/65125295/4715872
  • conf/Makefile.am, data/Makefile.am, data/html/Makefile.am, docs/man/Makefile.am, scripts/Makefile.am, scripts/Solaris/Makefile.am, scripts/Windows/Makefile.am, scripts/devd/Makefile.am, scripts/hotplug/Makefile.am, scripts/installer/Makefile.am, scripts/python/Makefile.am, scripts/systemd/Makefile.am, scripts/udev/Makefile.am, scripts/upsdrvsvcctl/Makefile.am, tests/NIT/Makefile.am: */Makefile.am: fix comment referring to "$(top_builddir)/install-sh"
  • drivers/hidparser.h, drivers/libhid.h, drivers/nutdrv_qx.h, drivers/serial.h, drivers/snmp-ups.h, drivers/usb-common.h, drivers/usbhid-ups.h, include/common.h, include/nut_float.h, include/nut_stdint.h, include/proto.h: /.h: use NUT_NETVERSION as a header guard for #include "config.h"
  • NEWS.adoc: fix for battery_voltage_reports_one_pack flag handling [#2324]

2.112. 2024-02-28 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_check_libltdl.m4: fix detection on OpenBSD
  • docs/config-prereqs.txt: clarify how to get pip on OpenBSD
  • indent.sh, scripts/HP-UX/makedepot.sh, scripts/Windows/build-mingw-nut.sh, scripts/installer/make_package.sh, scripts/subdriver/gen-snmp-subdriver.sh, scripts/subdriver/gen-usbhid-subdriver.sh: NUT shell scripts: use a better portable shebang for bash interpreter discovery NOTE: Some scripts require BASH syntax; maybe not all of them do (did not revise at this time)
  • scripts/HP-UX/makedepot.sh: fix whitespace

2.113. 2024-02-27 Denny Page <dennypage@me.com>

  • drivers/nutdrv_qx.c: Correct access method used for flag battery_voltage_reports_one_pack

2.114. 2024-02-27 Jim Klimov <jimklimov+nut@gmail.com>

  • include/state.h: include time headers (we use timespec/timeval here)

2.115. 2024-02-27 Jim Klimov <jimklimov@gmail.com>

  • Makefile.am: ChangeLog: fix shell-scripting typo

2.116. 2024-02-27 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: report if deliberately avoiding hardlinks for LN_S_R implementation
  • ci_build.sh: support CI_FAILFAST also to bail out from parallel/sequential build_to_only_catch_errors_target() logic - ensure parallel builds succeed "as is"
  • configure.ac: revise detection of LN_S_R
  • Makefile.am: avoid what some makes see as a loop for ChangeLog
  • Makefile.am: make sure "make ChangeLog" does some work …even with OpenBSD make implementation
  • docs/Makefile.am: produce proper asciidoc markup for ChangeLog.adoc if "FAILED to resolve input or output filename with this make implementation…"
  • Makefile.am: fix out-of-tree build of ChangeLog file

2.117. 2024-02-26 Jim Klimov <jimklimov+nut@gmail.com>

  • common/Makefile.am: define libnutwincompat.la recipe
  • common/Makefile.am: annotate automake if/else/endif with the appropriate macro name, and indent Should help with navigation/maintenance of the code base
  • common/Makefile.am: pre-define CLEANFILES along with other vars of that sort
  • tools/nut-scanner/Makefile.am: annotate automake if/else/endif with the appropriate macro name Should help with navigation/maintenance of the code base
  • tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_ipmi.c, tools/nut-scanner/scan_xml_http.c: nut-scanner sources : fix leading indentation (SPACEs to TABs) to be consistent in the same file
  • tools/nut-scanner/Makefile.am: rearrange and deduplicate lines for $(top_builddir)/include/nut_version.h target

2.118. 2024-02-22 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: note revised recipes [#2318]
  • Makefile.am, clients/Makefile.am, common/Makefile.am, conf/Makefile.am, data/Makefile.am, data/html/Makefile.am, docs/Makefile.am, drivers/Makefile.am, scripts/Makefile.am, scripts/Solaris/Makefile.am, scripts/Windows/Makefile.am, scripts/devd/Makefile.am, scripts/hotplug/Makefile.am, scripts/installer/Makefile.am, scripts/python/Makefile.am, scripts/python/module/Makefile.am, scripts/systemd/Makefile.am, scripts/udev/Makefile.am, scripts/upsdrvsvcctl/Makefile.am, server/Makefile.am, tests/Makefile.am, tests/NIT/Makefile.am, tools/nut-scanner/Makefile.am, tools/nutconf/Makefile.am: */Makefile.am: be sure to use AM_MAKEFLAGS and invoke jobserver (\+) everywhere we call another $(MAKE)
  • docs/Makefile.am: fix AM_FLAGS ⇒ AM_MAKEFLAGS
  • scripts/python/module/Makefile.am: fix AM_FLAGS ⇒ AM_MAKEFLAGS
  • conf/Makefile.am, data/Makefile.am, data/html/Makefile.am, docs/man/Makefile.am, scripts/Makefile.am, scripts/Solaris/Makefile.am, scripts/Windows/Makefile.am, scripts/devd/Makefile.am, scripts/hotplug/Makefile.am, scripts/installer/Makefile.am, scripts/python/Makefile.am, scripts/systemd/Makefile.am, scripts/udev/Makefile.am, scripts/upsdrvsvcctl/Makefile.am, tests/NIT/Makefile.am: */Makefile.am: pass (top_)(src\|build)dir, MKDIR_P and AM_MAKEFLAGS of caller into docs/Makefile parsing
  • Makefile.am: comment how to maintain list of subdirs for spellchecking TOTHINK: Do we want to just automate this discovery?
  • Makefile.am: use jobserver for spellcheck* callouts; ensure .prep-src-docs are pre-generated
  • Makefile.am, docs/nut.dict, scripts/installer/common/README_ipp-os-shutdown.adoc: Makefile.am: spellcheck "scripts/installer" too [#2288]
  • README.adoc, docs/Makefile.am, …g_Host_Dark_56px.png ⇒ fosshost_org_Host_Dark_56px.png}, …st_Light_309px.png ⇒ fosshost_org_Host_Light_309px.png}, …Host_Light_38px.png ⇒ fosshost_org_Host_Light_38px.png}, docs/images/ci/jenkins-nut.css, docs/images/ci/jenkins-nut.txt, docs/nut.dict: docs: rename FossHost logo files to not include a dot in the name …it upsets some versions of dblatex (used in PDF generation) which treat everything after the first dot as a file extension.
  • ci_build.sh: do not claim "Could not query git repo" if it was just clean
  • docs/Makefile.am, docs/man/Makefile.am, .gitignore: fix back the "-prepped" suffix (with a dash)
  • docs/Makefile.am, docs/man/Makefile.am: fix clean-up of *_prepped files
  • scripts/installer/common/README_ipp-os-shutdown.adoc: scripts/installer/README_ipp-os-shutdown.adoc: fix asciidoc list style
  • docs/nut.dict, scripts/python/module/README.adoc: scripts/python/module/README.adoc: fix spelling error
  • docs/Makefile.am: when touching a *-spellchecked file, ensure its dir exists This file may be the only (or first) build product, so nobody else made that dir for us!

2.119. 2024-02-21 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am: abolish dependency from spellcheck on .prep-src-docs
  • docs/Makefile.am: spellcheck recipes: pass an explicitly empty SPELLCHECK_SRC list to sub-makes (do not confuse .prep-src-docs dependency)
  • docs/Makefile.am: spellcheck recipes: report "pwd" when complaining about bogus paths
  • docs/Makefile.am: do not hard-code running dpkg (for diags) everywhere
  • docs/Makefile.am, docs/man/Makefile.am: use full path relative to abs_top_builddir for .prep-src-docs Facilitate running the docs/Makefile from other dirs (to spell-check their docs)
  • docs/nut.dict: learn about "wildcard" (singular)
  • docs/Makefile.am, docs/man/Makefile.am: do not "ls" files for PREP_SRC, suffices to sort\|uniq the names in a diferent manner
  • docs/Makefile.am, docs/man/Makefile.am: drop shell debug tracing from .prep-src-docs rules
  • docs/Makefile.am, docs/man/Makefile.am: chop non-trivial "srcdir" from PREP_SRC pathnames, if present
  • docs/Makefile.am, docs/man/Makefile.am: list PREP_SRC pathnames starting from builddir as "make" crafts them, not from srcdir
  • docs/Makefile.am, docs/man/Makefile.am: try to accomodate different "make" implementations for .prep-src-docs file discovery

2.120. 2024-02-20 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am, docs/man/Makefile.am: only the paths deal in absolutes!
  • docs/Makefile.am: depend spellcheck on .prep-src-docs too, for completeness
  • docs/Makefile.am, docs/man/Makefile.am: .prep-src-docs: for in-tree builds, cover all PREP_SRC names even if they do not yet exist
  • docs/Makefile.am, docs/man/Makefile.am: revise calling the prep vs. document products again
  • .gitignore, docs/Makefile.am, docs/man/Makefile.am: docs/man/Makefile.am, docs/Makefile.am, Makefile.am: use *.txt_prepped (with underscore) for suffix rules
  • docs/man/Makefile.am, docs/Makefile.am: insist on having a "$(builddir)/.prep-src-docs" …do not get distracted by one in-tree, if any, when doing out-of-tree builds
  • docs/.gitignore: GitIgnore .prep-src-docs* touch-files
  • .gitignore, Makefile.am, docs/Makefile.am, docs/man/Makefile.am: docs/man/Makefile.am, docs/Makefile.am, Makefile.am: avoid hacky rules to pre-call .prep-src-docs; use hacky touch-files instead
  • Makefile.am: try to be sure to use the job server for docs-related sub-makes …when using custom make targets to build specific docs or checks
  • docs/man/Makefile.am: enable the opportunistic suffix rule for build products to depend on .prep-src-docs Hopefully avoids duplicate parallel runs of the helper where the make implementation would support it (courtesy above standard requirements).
  • docs/Makefile.am, docs/man/Makefile.am: play with VPATH to help prefer PREP_SRC symlinks
  • docs/Makefile.am, docs/man/Makefile.am: when creating PREP_SRC symlinks, report current workdir (help with relative src/build dirs)
  • docs/Makefile.am, docs/man/Makefile.am: when cleaning PREP_SRC symlinks, be sure to only hit symlinks
  • docs/man/Makefile.am: be sure to include LINKMAN_INCLUDE_GENERATED into PREP_SRC
  • docs/man/Makefile.am: simplify clean-up
  • docs/man/Makefile.am, docs/Makefile.am: rearrange dependencies on .prep-src-docs, avoid sub-makes where we can
  • docs/man/Makefile.am, docs/Makefile.am: make sure that "all" target is first

2.121. 2024-02-19 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/nutscan-display.c: revise use of nutdev_num in nutscan_display_sanity_check_serial() Actually rewind it back to the number which the first entry for this device type had in the "continuous numbering" we track for this scan report.
  • docs/man/Makefile.am: fix out-of-tree build check for linkman-driver{,tool}-names.txt recipes
  • docs/Makefile.am, docs/man/Makefile.am: touch .prep-src-docs if called for in-tree builds too
  • docs/Makefile.am, docs/man/Makefile.am: do not hard-depend common targets on .prep-src-docs
  • tools/nut-scanner/nutscan-display.c: convert nutdev_num and last_nutdev_num to size_t
  • tools/nut-scanner/nutscan-display.c: update comments about methods iterating WHOLE lists, not just parsing one "device"
  • tools/nut-scanner/nutscan-display.c: fix nutdev_name rendition (it is NOT always a "nut-serialX"!)
  • docs/Makefile.am, docs/man/Makefile.am: PREP_SRC: symlink from abs_srcdir to avoid the mess with relative paths and ".." offsets
  • docs/Makefile.am, docs/man/Makefile.am: prefix sub-make calls with "\+" to invoke jobserver
  • docs/Makefile.am, Makefile.am: explicitly "make .prep-src-docs" before calling (possibly parallel) sub-make for docs or docs/man
  • docs/Makefile.am, docs/man/Makefile.am: report "Preparing to generate" separately from actually "Generating"
  • docs/Makefile.am, docs/man/Makefile.am: augment with .prep-src-docs target for building out-of-tree
  • docs/Makefile.am: do not make a "NOTE:…" line into a heading
  • Makefile.am: ChangeLog: re-use one from tarball when not building from git
  • Makefile.am: call tools/gitlog2changelog.py in SOURCE dir (where git repo is) and use CHANGELOG_FILE to store the result in BUILD dir
  • Makefile.am: add a shortcut to "make ChangeLog.adoc"; fix formal markup if we "failed to generate the ChangeLog" to produce a sane adoc⇒pdf note anyway
  • tools/gitlog2changelog.py.in: allow to use CHANGELOG_FILE="-" for redirect to stdout
  • tools/gitlog2changelog.py.in: allow to customize CHANGELOG_FILE
  • tools/nut-scanner/nutscan-display.c: update comments about last_nutdev_num

2.122. 2024-02-17 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/config-prereqs.txt: update for LUA pacakge naming on new Ubuntu/Debian distros
  • drivers/eaton-ups-pwnm2-mib.c: bump version after edit in be29b to drop values not needed in this fork of the mapping

2.123. 2024-02-16 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/nutipc_ut.cpp: use NutFile::tmp_dir() and NutFile::path_sep() for temporary PID file path construction [#2314]
  • include/nutstream.hpp: expose NutFile::tmp_dir() and NutFile::path_sep() for good measure
  • tests/nutipc_ut.cpp: NutIPCUnitTest::testSignalSend(): report PID file name and contents when in verbose mode
  • tests/nutipc_ut.cpp: use unique PID filenames for each test run Closes: #2314

2.124. 2024-02-15 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: introduce upsd_start_loop() Improve chances of passing the test suite even on congested CI farm agents
  • tests/nutconf_ut.cpp: with fixed ABS_TOP_SRCDIR for WIN32, un-block config file parsing tests
  • configure.ac: The more slashes - the better! One can never fully escape them!
  • .github/workflows/codeql.yml: update to v3 Due to https://github.blog/changelog/2024-01-12-code-scanning-deprecation-of-codeql-action-v2/
  • docs/config-prereqs.txt: fix Windows sub-section heading levels
  • drivers/ever-hid.c: clarify a comment about USB VID 0x0483
  • NEWS.adoc, data/driver.list.in, drivers/cps-hid.c, scripts/upower/95-upower-hid.hwdb: drivers/cps-hid.c et al: add support for Cyber Energy branded devices [#2312]
  • common/nutstream.cpp: NutFile::open(): add a big comment about POSIX/WIN32 (absolute) path concerns Copied from tests, but would hopefully evaporate there eventually as that particular acute issue gets resolved.
  • tests/nutconf_ut.cpp: add a big comment about POSIX/WIN32 (absolute) path concerns
  • common/nutstream.cpp: checkExistsWritableDir(): add debuggging, fix use of access() check
  • configure.ac: fix WIN32 resolution of build/src paths for tests

2.125. 2024-02-14 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: fix up ABS_TOP_SRCDIR/ABS_TOP_BUILDDIR for builds of NUT directly on Windows agents
  • common/nutstream.cpp: NutFile::open(): try to report the filename which was problematic
  • appveyor.yml: be sure to have a NUT_STATEPATH spelled in a way that is writeable by WIN32 system methods (e.g. not mangled by mingw/msys)
  • common/nutstream.cpp: try more locations for getTmpDirPath(), particularly on WIN32
  • tests/nutstream_ut.cpp: improve chances on parallel CI testing: retry listen_sock.bind() a few times; freeze/thaw the writer PID
  • common/nutstream.cpp: neuter fallback localtime_r(), gmtime_r() on mingw builds
  • configure.ac: fix nut_with_debuginfo*="legacy" to consider flag list snapshots made just after autoconf might have mangled them
  • configure.ac: to not change nut_with_debuginfo* from "no" to "legacy", leave it strictly as caller asked Recent changes are more careful about the "LEGACY FALLBACK" application. Let users ask for it explicitly though.
  • common/nutstream.cpp: NutFile(anonymous_t): trace the attempted m_tmp_dir and filename (if known) in theexception (so far WIN32 code path)
  • common/nutstream.cpp: NutFile(anonymous_t): use tmp file as binary in both POSIX and WIN32 code
  • common/nutstream.cpp: NutFile(anonymous_t): pre-zero filename buffer
  • common/nutstream.cpp: getTmpDirPath(): return "/tmp" not "/var/tmp" by default
  • common/nutstream.cpp: getTmpDirPath(): comment about a C\+\+17 equivalent to maybe call later
  • common/nutstream.cpp: :NutFile(anonymous_t), getTmpDirPath(): use ASCII char variants of Windows path related methods
  • configure.ac: typo fix (--with-cppunit ⇒ --enable-cppunit) in messages
  • NEWS.adoc, docs/nut.dict: NEWS.adoc: document "configure --with-debuginfo" possibility [#2310]
  • m4/nut_report_feature.m4: adjust NUT_REPORT_COMPILERS to note about debug optimizations
  • configure.ac: move CONFIG_C(XX)FLAGS definition back down to where we check AC_PROG_C* macros
  • configure.ac: rename C(XX)FLAGS_ORIG to CONFIG_C(XX)FLAGS to avoid conflict with m4 scripts and to maintain similarly to CONFIG_FLAGS
  • configure.ac: move stashing of CFLAGS_ORIG/CXXFLAGS_ORIG higher in the script; only do it if they are not yet set (and do set them if re-entering for an in-place build)
  • configure.ac: add C(XX)FLAGS_ORIG tracing printouts to where we check nut_with_debuginfo
  • configure.ac: hide C(XX)FLAGS_(BEFORE\|AFTER)_ACPROG tracing printouts; move "LEGACY DEFAULT FALLBACK" CFLAGS to the same block where we check AC_PROG_C*
  • configure.ac: fix typo in shell test
  • configure.ac: avoid needless quoting in AC_MSG_RESULT() printouts
  • configure.ac: do not mangle C(XX)FLAGS added by autotools; just stash and consult original values when deciding --with-debuginfo behavior
  • configure.ac: rearrange mangling of CFLAGS and CXXFLAGS by autotools defaults (optimizations/debug barged in) and our script

2.126. 2024-02-13 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: avoid autoconf-added debug/optimization settings
  • configure.ac: allow to --enable-cppunit=force for dev-testing

2.127. 2024-02-12 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac, tests/Makefile.am: define CPPUNIT_NUT_CXXFLAGS properly
  • configure.ac: if we apply nut_with_debuginfo_CXX, avoid separate settings for CPPUNIT_NUT_CXXFLAGS debugging
  • configure.ac: separate internally nut_with_debuginfo into nut_with_debuginfo_C vs. nut_with_debuginfo_CXX
  • configure.ac, ci_build.sh: introduce --with-debuginfo (BUILD_DEBUGINFO) setting
  • ci_build.sh: empty BUILD_TYPE is not an "error", fix the warning message
  • ci_build.sh: add "TAKING SHORTCUT" to re-generate if current configure script syntax is broken

2.128. 2024-02-14 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_report_feature.m4: adjust NUT_REPORT_COMPILERS to note about debug optimizations
  • configure.ac: move CONFIG_C(XX)FLAGS definition back down to where we check AC_PROG_C* macros
  • configure.ac: rename C(XX)FLAGS_ORIG to CONFIG_C(XX)FLAGS to avoid conflict with m4 scripts and to maintain similarly to CONFIG_FLAGS
  • configure.ac: move stashing of CFLAGS_ORIG/CXXFLAGS_ORIG higher in the script; only do it if they are not yet set (and do set them if re-entering for an in-place build)
  • configure.ac: add C(XX)FLAGS_ORIG tracing printouts to where we check nut_with_debuginfo
  • configure.ac: hide C(XX)FLAGS_(BEFORE\|AFTER)_ACPROG tracing printouts; move "LEGACY DEFAULT FALLBACK" CFLAGS to the same block where we check AC_PROG_C*
  • NEWS.adoc, docs/nut.dict: NEWS.adoc: document "configure --with-debuginfo" possibility [#2290]
  • configure.ac: fix typo in shell test
  • configure.ac: avoid needless quoting in AC_MSG_RESULT() printouts
  • configure.ac: do not mangle C(XX)FLAGS added by autotools; just stash and consult original values when deciding --with-debuginfo behavior
  • configure.ac: rearrange mangling of CFLAGS and CXXFLAGS by autotools defaults (optimizations/debug barged in) and our script

2.129. 2024-02-13 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutstream.cpp, common/Makefile.am: augment getTmpDirPath() with NUT altpidpath() support
  • common/nutstream.cpp: drop fflush() for sockets, not applicable type
  • common/nutstream.cpp: refactor getTmpDirPath() with checkExistsWritableDir() helper
  • configure.ac: avoid autoconf-added debug/optimization settings
  • include/nutstream.hpp: make flush() methods in the NutStream classes part of the interface API
  • common/nutstream.cpp, include/nutstream.hpp, tests/nutstream_ut.cpp: introduce flush() methods in the classes; use in NutFile stream tests between write() and read() parts [#2293] WIN32 builds failed due to lack of flush() and read an empty temporary file. Apparently the OS does not read() from a queued write() buffer/FS cache for a file.
  • common/nutstream.cpp, include/nutstream.hpp: track NutSocket domain and type (e.g. AF_INET and SOCK_STREAM) Also sanity-check if they fit when used.
  • common/nutstream.cpp: avoid use of hard-coded temporary path; fix WIN32 use-case [#2293] In WIN32 builds, ::tmpfile() tries to write to C:\ root dir and usually has no permissions to do so. Here we actively probe common envvars for temporary directories (or also use a WIN32 syscall for the effect) to try and get a realistic TMPDIR. TODO: Consider NUT statepath/(alt)pidpath… maybe not available in tests though. Probe if the chosen dir actually exists?
  • tests/nutstream_ut.cpp: use global "verbose" setting to trace readTestData()/writeTestData() helpers
  • tests/cpputest.cpp, tests/nutstream_ut.cpp: let individual tests see the global "verbose" setting from CLI
  • tests/nutstream_ut.cpp: Revert "tests/nutstream_ut.cpp: let the destructor alone close() the bound socket" This reverts commit f93c31fa9a5804d8aadbefb0cfb98e0cc03b6e7d.
  • configure.ac: allow to --enable-cppunit=force for dev-testing
  • common/nutstream.cpp: fix NutSocket calls to read/write/close/connect methods to use our WIN32/POSIX friendly wrappers
  • tests/nutstream_ut.cpp: let the destructor alone close() the bound socket
  • tests/nutstream_ut.cpp: getFreePort(): use sock.closex() with exceptions on errors right away

2.130. 2024-02-12 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: try to print "make check" post-mortem details with a subshell It is surprisingly difficult to do in-line scripts for Windows via YAML
  • configure.ac, tests/Makefile.am: define CPPUNIT_NUT_CXXFLAGS properly
  • configure.ac: if we apply nut_with_debuginfo_CXX, avoid separate settings for CPPUNIT_NUT_CXXFLAGS debugging
  • appveyor.yml: Revert "appveyor.yml: use double-quotes to wrap bash calls (windows shell is quirky with single quotes)" This reverts commit abf2a9e24e2d122f10c6b74121439f88a43f1d57.
  • tests/nutstream_ut.cpp: on IWN32, use WSAStartup() before socket methods
  • include/nutipc.hpp, tests/nutipc_ut.cpp: accomodate the likes of OSX where sigemptyset() is a macro
  • appveyor.yml: use double-quotes to wrap bash calls (windows shell is quirky with single quotes)
  • ci_build.sh: empty BUILD_TYPE is not an "error", fix the warning message
  • tests/nutipc_ut.cpp: testSignalRecvQuick(): avoid switch/case over an enum Avoids warning about "enumeration values not explicitly handled in switch: …"
  • appveyor.yml: print trace files if "make check" failed
  • tests/cpputest.cpp: avoid segfault with debug-trace progress printer and certain compiler optimizations
  • tests/cpputest.cpp: be sure to avoid debug-trace segfaults if "test" is NULL
  • tests/nutstream_ut.cpp: avoid forked helper continuing with another copy of tests
  • configure.ac: separate internally nut_with_debuginfo into nut_with_debuginfo_C vs. nut_with_debuginfo_CXX
  • ci_build.sh: add "TAKING SHORTCUT" to re-generate if current configure script syntax is broken
  • configure.ac, ci_build.sh: introduce --with-debuginfo (BUILD_DEBUGINFO) setting
  • tests/nutipc_ut.cpp: be sure to caught_signals.clear() early in testSignalRecv*()
  • tests/nutipc_ut.cpp, tests/nutconf_ut.cpp: register each test separately to trace them better
  • tests/cpputest.cpp: be sure to flush the printout of starting test name before churning CPU on it
  • tests/nutstream_ut.cpp: try to actively probe an available port number for the test
  • tests/nutipc_ut.cpp: separate tests about received signal count (rapid-fire) and order (staggered)

2.131. 2024-02-10 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: warn early if building with mingw and strict/ansi C/C+\+ mode
  • drivers/mge-hid.c: fix includes and defines for WIN32 build with strict C89
  • common/common.c: avoid "FOR loop initial declarations" (are only allowed in C99 or C11 mode) for a WIN32 codepath
  • server/netssl.c: include common.h⇒config.h first
  • drivers/riello_ser.c: include common.h⇒config.h first
  • drivers/riello.c: include common.h⇒config.h first
  • server/sockdebug.c: include common.h⇒config.h first
  • drivers/snmp-ups.h: rearrange commented-away code
  • drivers/riello_ser.c: rearrange commented-away code
  • clients/upsmon.c, drivers/dstate.c, drivers/eaton-pdu-marlin-mib.c, drivers/main.c, drivers/nutdrv_qx.c, drivers/snmp-ups.c, drivers/tripplite_usb.c, drivers/upsdrvctl.c, drivers/upsdrvquery.c, scripts/Windows/DriverInstaller/wdi-simple.c, server/conf.c, server/pipedebug.c, server/sstate.c: Fix comment style from double-slash to C89 compatible
  • common/strptime.c: fix indentations and comment style
  • drivers/nutdrv_qx_ablerex.c: rearrange commented-away code
  • common/strptime.c: use NUT config.h
  • drivers/pijuice.c: indent nested #if/#endif macros for readability
  • clients/cgilib.c: include common.h⇒config.h first; be sure to have stdio.h for snprintf()
  • docs/developers.txt: extend notes about NUT CI farm hosting (with DigitalOcean) [#2192]
  • docs/developers.txt, docs/nut.dict: docs/developers.txt: extend notes about baseline supported C/C+\+ standards
  • UPGRADING.adoc, NEWS.adoc: mention fixed C/C+\+ standard support in builds
  • tests/generic_gpio_utest.c: "int main()" requires a return value
  • tests/generic_gpio_utest.c, tests/generic_gpio_liblocal.c: avoid "FOR loop initial declarations" (are only allowed in C99 or C11 mode) A little fallout for recent fix of actually doing C89 bulids via ci_build.sh
  • configure.ac, m4/nut_compiler_family.m4: extend sensitivity for "-std=…" to also cover "-ansi" option
  • ci_build.sh: update comment for "ignored" BUILD_WARNOPT and BUILD_WARNFATAL settings when BUILD_TYPE is empty
  • Jenkinsfile-dynamatrix: constrain cross-mingw builds to GNU C standard by default (Strict C seems broken on OS side)

2.132. 2024-02-09 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/sms_ser.c, clients/upssched.c: avoid "FOR loop initial declarations" (are only allowed in C99 or C11 mode) A little fallout for recent fix of actually doing C89 bulids via ci_build.sh
  • m4/nut_compiler_family.m4: fix detection of a compiler standard already requested by caller
  • tests/NIT/nit.sh: support NIT_CASE=isBusy_NUT_PORT for troubleshooting
  • tests/NIT/nit.sh: isBusy_NUT_PORT(): check known sockets also with "ss" tool
  • tests/NIT/nit.sh: isBusy_NUT_PORT(): do not test for non-emptiness of /proc/net/tcp* (they have contents AND are reported empty on some distros)
  • tests/NIT/nit.sh: isBusy_NUT_PORT(): add log_debug() tracing about detected or not detected information
  • tests/NIT/nit.sh: make sure log_debug() never errors out

2.133. 2024-02-10 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/raritan-px2-mib.c: fix NULL from string to pointer (raritanpx2_outlet_status_info[] sentinel) Closes: #2304
  • drivers/raritan-px2-mib.c: add a comment about daisy-chain features anticipated by this vendor MIB
  • drivers/raritan-px2-mib.c: add more values to raritanpx2_outlet_status_info[] Found per https://www.circitor.fr/Mibs/Html/P/PDU2-MIB.php#SensorStateEnumeration
  • drivers/delta_ups-mib.c: fix typo for "split-phase" UPS type mapping Closes: #2302
  • Jenkinsfile-dynamatrix: constrain cross-mingw builds to GNU C standard by default (Strict C seems broken on OS side)

2.134. 2024-02-09 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: support NIT_CASE=isBusy_NUT_PORT for troubleshooting
  • tests/NIT/nit.sh: isBusy_NUT_PORT(): check known sockets also with "ss" tool
  • tests/NIT/nit.sh: isBusy_NUT_PORT(): do not test for non-emptiness of /proc/net/tcp* (they have contents AND are reported empty on some distros)
  • tests/NIT/nit.sh: isBusy_NUT_PORT(): add log_debug() tracing about detected or not detected information
  • tests/NIT/nit.sh: make sure log_debug() never errors out
  • drivers/sms_ser.c, clients/upssched.c: avoid "FOR loop initial declarations" (are only allowed in C99 or C11 mode) A little fallout for recent fix of actually doing C89 bulids via ci_build.sh
  • ci_build.sh: refine CANBUILD_NUTCONF handling vs. CXXFLAGS="-std=…"
  • tests/nutstream_ut.cpp: try to fix the use of really random port numbers (again)
  • tests/nutipc_ut.cpp: try to fix the occasional fault of testSignalRecv() - also with USER1 after USER2 (and a sleep)
  • tests/nutipc_ut.cpp: try to fix the occasional fault of testSignalRecv()
  • m4/nut_compiler_family.m4: fix detection of a compiler standard already requested by caller
  • drivers/eaton-pdu-marlin-mib.c, drivers/hpe-pdu-mib.c: drivers/*-mib.c: fix "open" to "opened" (again) for dry contact states Re-apply commit d3b6ea4d89 to modernized codebase of PR #2285 and newly cover drivers/hpe-pdu-mib.c as well
  • drivers/baytech-mib.c, drivers/eaton-ups-pwnm2-mib.c, drivers/huawei-mib.c: drivers/*-mib.c: clean up typos for PR #2285
  • drivers/tripplite_usb.c: typo fix in formatting string
  • common/nutstream.cpp, include/nutstream.hpp: NutFile class: refactor constructor with access_t mode to not use tmpnam() [#2295] The method for NutFile::tmpName() was private and only used in this constructor, and relied on the unsafe tmpnam() method to openx() the resulting file with a given mode. With this change, the file is created via tmpfile() and freopen()'ed with the desired mode. Downside: name inherently unknown. Upside: auto-deletion of the temporary file. Closes: #2295
  • common/nutstream.cpp, include/nutstream.hpp: NutFile class: refactor strAccessMode() helper into a separate method [#2295]
  • common/nutstream.cpp: NutFile class: take more care about empty m_name or null m_impl values (sanity-checks etc.)
  • common/nutstream.cpp, include/nutstream.hpp: wrap some long exception-printing lines
  • tools/nutconf/nutconf-cli.cpp: rearrange getMode() default handling Avoid claims that "control reaches end of non-void function [-Wreturn-type]"
  • tools/nutconf/Makefile.am, tools/nutconf/{nutconf.cpp ⇒ nutconf-cli.cpp}: tools/nutconf/nutconf.cpp: rename to nutconf-cli.cpp to reduce ambiguity
  • tests/Makefile.am, tests/{nutconf.cpp ⇒ nutconf_parser_ut.cpp}: tests/nutconf.cpp: rename to nutconf_parser_ut.cpp to reduce ambiguity
  • drivers/tripplite_usb.c: harden the int types used to detect and report unit id
  • NEWS.adoc: update for tripplite_usb unit id matcher [#2297]

2.135. 2024-02-09 Jim Klimov <jimklimov@gmail.com>

  • drivers/tripplite_usb.c: update comments and logging for unit id matcher

2.136. 2024-01-31 sapireli <114778791+sapireli@users.noreply.github.com>

  • drivers/tripplite_usb.c: Fix for undefined upsid in config small fix restoring matching when upsid is undefined in config closes #2282

2.137. 2024-01-30 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/cpputest.cpp: initialize random number generator with srand() Ensure better that the ports used by nutstream_ut.cpp can end up random.
  • common/nutwriter.cpp: avoid UPSD_DIRECTIVEX and UPSMON_DIRECTIVEX macros claiming "unreachable code" warnings
  • tests/nutstream_ut.cpp: make use of HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_DEPRECATED_DECLARATIONS to fix warnings on CentOS7 (older clang, older cppunit)
  • m4/ax_c_pragmas.m4: introduce HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_DEPRECATED_DECLARATIONS
  • tools/nutconf/nutconf.cpp: getMode(): wrap potentially unreachable de-enumeration code into pragmas
  • drivers/snmp-ups-helpers.c: convert to info_lkp_fun_vp2s() and info_lkp_sentinel
  • tests/nutstream_ut.cpp: use CPPUNIT_ASSERT_MESSAGE with prepared C+\+ string, not inlined
  • tests/nutstream_ut.cpp: troubleshoot listen_sock.bind(m_listen_address) hiccups
  • tests/nutstream_ut.cpp: nutconf related tests: CPPUNIT_MACROS raise warnings (for older compilers/distros), try some workarounds
  • common/nutconf.cpp, tools/nutconf/nutconf.cpp: nutconf related code: where we use pragmas for "-Wcovered-switch-default", do also use "-Wunreachable-code" (for older compilers)
  • tests/nutstream_ut.cpp: troubleshoot writer_exit!=0
  • tests/nutipc_ut.cpp: not all shells have "test" with two equality chars
  • tests/nutstream_ut.cpp: cast the random() port number to uint16_t

2.138. 2024-01-29 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutipc.hpp, include/nutstream.hpp: Revert "nutconf related headers: tell clang to ignore "unknown" \retval in Doxygen comments" This reverts commit 9ec19231ced75d942955a31108613cecdb4a75fe. Some clang versions warn about unknown pragma. Not a quick win…
  • NEWS.adoc: document addition of nutconf [#2290]
  • NEWS.adoc: update info about installer
  • drivers/snmp-ups.h: do not lose function pointers in non-DMF builds with info_lkp_fun_s2l() and info_lkp_nuf_vp2s()

2.139. 2024-01-23 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/eaton-pdu-marlin-mib.c: marlin_device_count_fun(): decorate a NUT_UNUSED_VARIABLE()

2.140. 2024-01-29 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/eaton-ats16-nm2-mib.c: rename eaton_ats16_ambient_drycontacts_info[] ⇒ eaton_ats16_nm2_ambient_drycontacts_info[] to match other table naming patterns
  • drivers/eaton-ats16-nm2-mib.c: wrap new EMP002 snmp_info_t entries into snmp_info_default() macros

2.141. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/eaton-ats16-nm2-mib.c, drivers/eaton-pdu-marlin-mib.c, drivers/eaton-ups-pwnm2-mib.c, drivers/mge-mib.c, drivers/raritan-pdu-mib.c: drivers/*-mib.c: convert to use info_lkp_sentinel, info_lkp_default et al wrapping

2.142. 2024-01-29 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, docs/nut.dict: NEWS.adoc: document recently addressed issues and merged PRs that would be part of NUT v2.8.2 eventually
  • configure.ac: tell clang to ignore "unknown" \retval in Doxygen comments
  • include/nutipc.hpp, include/nutstream.hpp: nutconf related headers: tell clang to ignore "unknown" \retval in Doxygen comments
  • common/nutipc.cpp: disarm NUT fallbacks for time methods (as may be defined in our common.h) for C+\+ (notably on mingw)
  • tests/nutstream_ut.cpp: ensure random() symbol for WIN32 builds
  • common/nutstream.cpp: comment not-use of wincompat.h wq
  • tools/nutconf/nutconf.cpp: avoid bogus warnings about uninitialized map
  • common/Makefile.am: add NETLIBS to libnutconf (esp. needed on WIN32 builds)

2.143. 2024-01-28 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutipc.cpp, common/nutstream.cpp, include/nutipc.hpp, tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp: nutconf related codebase: neuter code parts that need WIN32 implementations (process IPC, etc.)
  • common/nutstream.cpp: radically avoid the hassle with sa_family type
  • include/nutstream.hpp, common/nutstream.cpp: currently neuter AF_UNIX support code under WIN32
  • common/nutstream.cpp: add a comment about NutFile::m_tmp_dir (should not be hard-coded in the long run)
  • common/nutconf.cpp: rename "system" and "word" vars to avoid clashes with some build environments
  • common/nutstream.cpp: adapt socket operations to Win/Lin cross builds, similar to nutclient.cpp solution
  • common/nutconf.cpp, common/nutipc.cpp, common/nutstream.cpp, common/nutwriter.cpp, include/nutipc.hpp, include/nutstream.hpp, tests/nutconf.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp: nutconf related sources: revise include file lists and order (config.h, WIN32…)

2.144. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: update that nutconf is now fair game for builds and tests
  • configure.ac: default --with-nutconf=auto (based on have_cxx11) and add it to --with-all

2.145. 2024-01-29 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/nutstream_ut.cpp: Randomize bind(port) to try avoiding collisions in parallel testing

2.146. 2022-01-15 Jim Klimov <jim@jimklimov.com>

  • ci_build.sh: add support for CANBUILD_NUTCONF toggle (NUT_BUILD_CAPS=nutconf… for CI farm)

2.147. 2024-01-25 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: use -Wno-exit-time-destructors and -Wno-global-constructors with clang+\+ to not worry about "(static) const something" variables

2.148. 2024-01-28 desertwitch <24509509+desertwitch@users.noreply.github.com>

  • clients/upsmon.c: debug information to rectify unwanted OFF criticalities

2.149. 2024-01-28 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/snmp-ups.h: reshuffle in main codebase for unrecognized DMF macros
  • scripts/installer/Makefile.am, …/{README_ipp-os-shutdown.txt ⇒ README_ipp-os-shutdown.adoc}: scripts/installer/Makefile.am: spellcheck common/README_ipp-os-shutdown.adoc
  • scripts/installer/Makefile.am: EXTRA_DIST all the files

2.150. 2022-02-02 Jim Klimov <jim@jimklimov.com>

  • scripts/installer/common/init, scripts/installer/common/ipp-event.sh, scripts/installer/common/ipp-notifier.sh, scripts/installer/common/ipp-os-shutdown, scripts/installer/common/ipp-shutdown-daemon.sh, scripts/installer/common/ipp-status, scripts/installer/common/shutdown, scripts/installer/common/string.sh: scripts/installer/common/*: update from latest revision snapshot

2.151. 2022-01-14 Jim Klimov <jim@jimklimov.com>

  • scripts/installer/aix/aix_init, …are_shutdown.txt ⇒ README_ipp-os-shutdown.txt}, …usterware_shutdown ⇒ ipp-host-shutdown.sample}, scripts/installer/common/ipp-wrapper, scripts/installer/common_EN/install.res, scripts/installer/install.sh, scripts/installer/make_package.sh, …/{solari ⇒ solcmn}/ipp-os-shutdown.conf.sample, scripts/installer/solcmn/solaris_init, …/installer/solint/ipp-os-shutdown.conf.sample, scripts/installer/uninstall-ipp, scripts/installer/version.sh: Update installer scripts from tentative Eaton IPSS Unix 1.40-5 release (2018)
  • scripts/installer/aix/ipp-os-shutdown.conf.sample, scripts/installer/common/AIX_Clusterware_shutdown, …/common/README_AIX_Clusterware_shutdown.txt, scripts/installer/common/aix_init, scripts/installer/common/init, scripts/installer/common/ipp-event.sh, scripts/installer/common/ipp-notifier.sh, scripts/installer/common/ipp-os-shutdown, scripts/installer/common/ipp-shutdown-daemon.sh, scripts/installer/common/ipp-status, scripts/installer/common/ipp.conf, scripts/installer/common/shutdown, scripts/installer/common/solaris_init, scripts/installer/common/string.sh, scripts/installer/common_EN/install.res, scripts/installer/hpux/ipp-os-shutdown.conf.sample, scripts/installer/install.sh, scripts/installer/make_package.sh, …/installer/solari/ipp-os-shutdown.conf.sample, …/installer/solint/ipp-os-shutdown.conf.sample, scripts/installer/uninstall-ipp, scripts/installer/version.sh: scripts/installer: snapshot from AIX_Clusterware_shutdown delivery (2015-11-18)
  • scripts/installer/install.sh: do not dictate a MANPATH (led to some install errors)
  • scripts/installer/install.sh: add logging to trace installer errors; use more library paths

2.152. 2024-01-28 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac, scripts/Makefile.am, scripts/installer/Makefile.am, scripts/installer/{README.txt ⇒ README.adoc}: scripts/installer/Makefile.am: added to distribute and spell-check README.adoc
  • scripts/installer/README.txt: comments on nutconf and authors

2.153. 2022-01-14 Jim Klimov <jim@jimklimov.com>

  • scripts/installer/README.txt, scripts/installer/common/init, scripts/installer/common/ipp-event.sh, scripts/installer/common/ipp-notifier.sh, scripts/installer/common/ipp-shutdown-daemon.sh, scripts/installer/common/ipp-status, scripts/installer/common/ipp.conf, scripts/installer/common/shutdown, scripts/installer/common/string.sh, scripts/installer/common_EN/install.res, scripts/installer/common_EN/license.txt, scripts/installer/install.sh, scripts/installer/make_package.sh, scripts/installer/nut, scripts/installer/nutconf-dummy, scripts/installer/uninstall-ipp, scripts/installer/uninstall-lsnw.sh, scripts/installer/version.sh: Add installer scripts from Eaton IPSS Unix 1.40-4 release (2013-10-25)

2.154. 2024-01-28 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_check_libgd.m4: fall back to checking with explicit -lpng in the LDFLAGS loop
  • docs/nut.dict: Update nut.dict

2.155. 2021-11-15 Arnaud Quette <ArnaudQuette@eaton.com>

  • drivers/eaton-ats16-nm2-mib.c: Eaton: add support for EMP002 on ATS16 NM2 with SNMP This support is identical to what is in Eaton Marlin and Powerware MIBs. Future improvements should consider putting these bits in a common eaton-sensor-mib file, to avoid multiple definition of the same MIB structure! Imported from DMF branch (with reductions for main trunk) from commit 40c883f42aede519fe716a6d26e7dff567996d75

2.156. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apc-ats-mib.c, drivers/apc-epdu-mib.c, drivers/apc-mib.c, drivers/apc-pdu-mib.c, drivers/baytech-mib.c, drivers/bestpower-mib.c, drivers/compaq-mib.c, drivers/cyberpower-mib.c, drivers/delta_ups-mib.c, drivers/eaton-ats16-nm2-mib.c, drivers/eaton-ats16-nmc-mib.c, drivers/eaton-ats30-mib.c, drivers/eaton-pdu-genesis2-mib.c, drivers/eaton-pdu-marlin-mib.c, drivers/eaton-pdu-nlogic-mib.c, drivers/eaton-pdu-pulizzi-mib.c, drivers/eaton-pdu-revelation-mib.c, drivers/eaton-ups-pwnm2-mib.c, drivers/eaton-ups-pxg-mib.c, drivers/emerson-avocent-pdu-mib.c, drivers/hpe-pdu-mib.c, drivers/hpe-pdu3-cis-mib.c, drivers/huawei-mib.c, drivers/ietf-mib.c, drivers/mge-mib.c, drivers/netvision-mib.c, drivers/raritan-pdu-mib.c, drivers/raritan-px2-mib.c, drivers/xppc-mib.c: drivers/*-mib.c: convert to use snmp_info_sentinel wrapping
  • drivers/apc-ats-mib.c, drivers/apc-epdu-mib.c, drivers/apc-mib.c, drivers/apc-pdu-mib.c, drivers/baytech-mib.c, drivers/bestpower-mib.c, drivers/compaq-mib.c, drivers/cyberpower-mib.c, drivers/delta_ups-mib.c, drivers/eaton-ats16-nm2-mib.c, drivers/eaton-ats16-nmc-mib.c, drivers/eaton-ats30-mib.c, drivers/eaton-pdu-genesis2-mib.c, drivers/eaton-pdu-marlin-mib.c, drivers/eaton-pdu-nlogic-mib.c, drivers/eaton-pdu-pulizzi-mib.c, drivers/eaton-pdu-revelation-mib.c, drivers/eaton-ups-pwnm2-mib.c, drivers/eaton-ups-pxg-mib.c, drivers/emerson-avocent-pdu-mib.c, drivers/hpe-pdu-mib.c, drivers/hpe-pdu3-cis-mib.c, drivers/huawei-mib.c, drivers/ietf-mib.c, drivers/mge-mib.c, drivers/netvision-mib.c, drivers/raritan-pdu-mib.c, drivers/raritan-px2-mib.c, drivers/xppc-mib.c: drivers/*-mib.c: convert to use snmp_info_default() wrapping
  • drivers/apc-ats-mib.c, drivers/apc-epdu-mib.c, drivers/apc-mib.c, drivers/apc-pdu-mib.c, drivers/baytech-mib.c, drivers/bestpower-mib.c, drivers/compaq-mib.c, drivers/cyberpower-mib.c, drivers/delta_ups-mib.c, drivers/eaton-ats16-nm2-mib.c, drivers/eaton-ats16-nmc-mib.c, drivers/eaton-ats30-mib.c, drivers/eaton-pdu-marlin-mib.c, drivers/eaton-pdu-nlogic-mib.c, drivers/eaton-pdu-pulizzi-mib.c, drivers/eaton-pdu-revelation-mib.c, drivers/eaton-ups-pwnm2-mib.c, drivers/eaton-ups-pxg-mib.c, drivers/emerson-avocent-pdu-mib.c, drivers/hpe-pdu-mib.c, drivers/hpe-pdu3-cis-mib.c, drivers/huawei-mib.c, drivers/ietf-mib.c, drivers/mge-mib.c, drivers/netvision-mib.c, drivers/raritan-pdu-mib.c, drivers/raritan-px2-mib.c, drivers/xppc-mib.c: drivers/*-mib.c: convert to use info_lkp_sentinel, info_lkp_default et al wrapping

2.157. 2024-01-27 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/snmp-ups.h: adapt to non-DMF SNMP NUT driver builds

2.158. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/snmp-ups.h: introduce also info_lkp_nuf_vp2s(), info_lkp_nuf_s2l() and info_lkp_fun_s2l() wrappers
  • scripts/subdriver/gen-snmp-subdriver.sh, drivers/snmp-ups.h: introduce short-hand snmp_info_sentinel and info_lkp_sentinel

2.159. 2024-01-27 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/subdriver/gen-snmp-subdriver.sh: bump version and copyright

2.160. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/subdriver/gen-snmp-subdriver.sh: convert C table generator to propose info_lkp_default(…) instead of fixed C structure items
  • scripts/subdriver/gen-snmp-subdriver.sh: convert C table generator to propose snmp_info_default(…) instead of fixed C structure items
  • drivers/snmp-ups.h: introduce wrappers to handle optionally-defined NULL fields for snmp_info_t and info_lkp_t [DMF]
  • scripts/subdriver/gen-snmp-subdriver.sh: start subdriver versions as 0.01 for double digits

2.161. 2024-01-27 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apc-ats-mib.c, drivers/apc-epdu-mib.c, drivers/apc-pdu-mib.c, drivers/bestpower-mib.c, drivers/delta_ups-mib.c, drivers/eaton-pdu-nlogic-mib.c, drivers/eaton-pdu-pulizzi-mib.c, drivers/emerson-avocent-pdu-mib.c, drivers/hpe-pdu3-cis-mib.c, drivers/huawei-mib.c, drivers/raritan-pdu-mib.c, drivers/raritan-px2-mib.c, drivers/xppc-mib.c: drivers/*-mib.c: convert versions to at least double digits

2.162. 2024-01-25 Jim Klimov <jim@jimklimov.com>

  • tools/nut-usbinfo.pl: avoid dying on unknown file name patterns (e.g. *-mib.c.bak), just warn and skip them

2.163. 2024-01-27 Jim Klimov <jimklimov+nut@gmail.com>

  • Makefile.am, clients/Makefile.am, common/Makefile.am, data/html/Makefile.am: */Makefile.am: standardize to have the export commands on top, just after title comment line
  • scripts/python/module/Makefile.am: avoid "make clean" invalidating the NUT build area Otherwise we can not find the test script (generated from .in by configure normally)

2.164. 2024-01-25 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/nutconf.cpp, tests/nutipc_ut.cpp: nutconf related tests: avoid "old-style cast" usage
  • tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp: nutconf related tests: avoid "no out-of-line virtual method definitions" (weak-vtables)
  • tests/nutipc_ut.cpp: declare the override of nut::Signal::Handler methods
  • tests/nutconf.cpp, tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp: nutconf related tests: declare the override of CPPUNIT methods
  • tests/nutstream_ut.cpp: fix cast of size_t vs. double for "pivot"
  • tools/nutconf/nutconf.cpp: avoid shadowing a class property with method arg name
  • tools/nutconf/nutconf.cpp: mark almost all methods in the tool as static
  • tools/nutconf/nutconf.cpp: align "us_timeout" to be "useconds_t" not "long" (per libnutscan API evolution)
  • common/nutconf.cpp: cast around std::getline() for parenthesized syntax Why didn’t the original author just receive the word into target string?.. e.g.: std::getline(system, monitor.upsname, @); std::getline(system, monitor.hostname);
  • common/nutconf.cpp, include/nutconf.hpp: include/nutconf.{c,h}pp: align port type to uint16_t (not plain or short int as mismatched in older code)
  • common/nutwriter.cpp: include/nutwriter.hpp: comment away a currently unused static method
  • common/nutstream.cpp: include/nutstream.hpp: align size_t vs ssize_t maths
  • common/nutipc.cpp: include/nutipc.hpp: align size_t vs ssize_t maths
  • common/nutipc.cpp: include/nutipc.hpp: align array deleter with allocator
  • include/nutipc.hpp: align templated class destructor name with class name
  • include/nutstream.hpp: decorate unimplemented methods which only throw with noreturn (for C\+\+11 and newer)
  • common/nutwriter.cpp, include/nutconf.hpp, tools/nutconf/nutconf.cpp: include/nutconf.hpp: align UpsmonConfiguration::notifyFlags type with clients/upsmon.h (notifylist→flags) Note that here we have "unsigned int" and there a plain "int" at the moment; but even with short signed ints we currently do not have too many values :) This fix also drops a warning about shortening the cast when assigning from a temporary "unsigned int flags" in UpsmonConfigParser::onParseDirective()
  • common/nutconf.cpp: include/nutconf.cpp: NutConfigParser::parseConfig(): explicitly handle all enum values in switch/case (and allow "default" to be safe)
  • common/nutconf.cpp: include/nutconf.cpp: NutConfigParser::parseConfig(): be explicit about the infinite loop Assignment of tok=parseToken() does not return a boolean (nor even a nullptr) so should not be a while(…) condition by itself.
  • common/nutconf.cpp: include/nutconf.cpp: avoid annotating a switch/case fallthrough
  • common/nutconf.cpp: include/nutconf.hpp: err on the safe side by having a default handler in a currently exhaustive switch(enum)
  • common/nutconf.cpp, common/nutipc.cpp, common/nutstream.cpp, include/nutipc.hpp: nutconf related sources: avoid "old-style cast" usage
  • include/nutconf.hpp: avoid naming clash for Token "type" and "str" properties vs. method args
  • common/nutconf.cpp, common/nutipc.cpp, common/nutstream.cpp, common/nutwriter.cpp, include/nutconf.hpp, include/nutipc.hpp, include/nutstream.hpp, include/nutwriter.hpp: nutconf related sources: avoid "no out-of-line virtual method definitions" (weak-vtables)
  • common/nutconf.cpp, common/nutipc.cpp, common/nutstream.cpp, include/nutconf.hpp, include/nutipc.hpp, include/nutstream.hpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp, tools/nutconf/nutconf.cpp: nutconf related changes: avoid NULL ("zero as null pointer constant"), use "::" prefix for C methods

2.165. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/nutconf_ut.cpp: update expectations for current ups.conf.sample default contents
  • configure.ac, tests/nutconf_ut.cpp: rearrange to use ABS_TOP_SRCDIR and ABS_TOP_BUILDDIR in the test program
  • tools/nutconf/nutconf.cpp: adapt nutscan_scan_usb() to libnutscan API evolution
  • common/nutstream.cpp: address a run-time warning about tempnam()
  • include/nutipc.hpp: Process::Child<M>::wait(): fix error-case check
  • common/nutstream.cpp: formatIPv{4,6}addr(): code typo fix (bit maths, not boolean expressions!)

2.166. 2024-01-25 Jim Klimov <jimklimov+nut@gmail.com>

  • include/nutipc.hpp: avoid naming clash for QUIT signal and command

2.167. 2024-01-27 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutconf.cpp: NutConfigParser::parseConfig(): reshuffle base vs. overridden call for parser to work again Fine piece of C+\+ magic and inheritance. Wrong call got called.

2.168. 2024-01-24 Jim Klimov <jimklimov+nut@gmail.com>

  • common/nutconf.cpp, include/nutconf.hpp, include/nutipc.hpp, include/nutstream.hpp, include/nutwriter.hpp: nutconf related sources: fix implicit copy/move operator warnings - use explicit defaults, destructors, and clarify overrides
  • common/nutconf.cpp: NutConfigParser::parseConfig(): fix switch/case that did not check all enum values
  • common/nutconf.cpp, include/nutconf.hpp, include/nutipc.hpp, include/nutstream.hpp, tools/nutconf/nutconf.cpp: nutconf related sources: use NUT_UNUSED_VARIABLE() to decorate the code where needed
  • common/nutconf.cpp, common/nutwriter.cpp, include/Makefile.am, include/{nutconf.h ⇒ nutconf.hpp}, include/nutwriter.hpp, tests/nutconf.cpp, tests/nutconf_ut.cpp, tools/nutconf/nutconf.cpp: Rename include/nutconf.h ⇒ .hpp as a C+\+ specific source file
  • common/nutconf.cpp, common/nutstream.cpp, common/nutwriter.cpp, include/nutconf.h, include/nutipc.hpp, include/nutstream.hpp, include/nutwriter.hpp, tests/nutconf.cpp, tests/nutconf_ut.cpp, tools/nutconf/nutconf.cpp: nutconf related sources: fix typos and wording in comments
  • common/nutipc.cpp, common/nutstream.cpp, include/nutconf.h, include/nutipc.hpp, include/nutstream.hpp, tools/nutconf/nutconf.cpp: nutconf related sources: fix deprecated throw() declarations to not be used since C++11 They are invalid in C++17 as the code did fence against; however C\+\+11 already shows them as deprecated, and with "fatal warnings" this bites!
  • common/nutconf.cpp: NutConfigParser::parseConfig(): pre-initialize "sep" to avoid surporises
  • common/nutconf.cpp, common/nutipc.cpp, common/nutstream.cpp, common/nutwriter.cpp, include/nutconf.h, include/nutipc.hpp, include/nutstream.hpp, include/nutwriter.hpp, tests/nutconf.cpp, tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp, tools/nutconf/nutconf.cpp: nutconf related sources: fix whitespace style
  • tools/nutconf/nutconf.cpp: fix file description
  • tools/nutconf/Makefile.am: update Makefile markup and comments

2.169. 2022-01-15 Jim Klimov <jim@jimklimov.com>

  • common/Makefile.am, configure.ac, tests/Makefile.am, tools/nutconf/Makefile.am: tools/nutconf/Makefile.am, tests/Makefile.am, configure.ac: limit the impact of nutconf codebase quality by default
  • include/nutconf.h, tools/nutconf/nutconf.cpp: nutconf codebase: fix C\+\+17 warnings - equality operators should return *this
  • common/nutipc.cpp, common/nutstream.cpp, include/nutconf.h, include/nutipc.hpp, include/nutstream.hpp, tools/nutconf/nutconf.cpp: nutconf codebase: fix C\+\+17 warnings - dynamic throw() declaration

2.170. 2022-01-14 Jim Klimov <jim@jimklimov.com>

  • docs/man/nutconf.txt, docs/nut.dict: Spellcheck manpage for nutconf tool
  • tools/nutconf/nutconf.cpp: adjust to changed API for nutscan_scan_xml_http() ⇒ nutscan_scan_xml_http_range()
  • tools/nutconf/.gitignore: Add tools/nutconf/.gitignore
  • tools/nutconf/nutconf.cpp: add © header
  • tools/nutconf/Makefile.am: modernize
  • common/Makefile.am, common/nutwriter.cpp, tests/Makefile.am, tools/nutconf/Makefile.am: Import NUT source changes for nutconf tool from 42ITy (initial set)

2.171. 2013-04-12 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • docs/man/nutconf.txt: nutconf man page update

2.172. 2013-03-29 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • include/nutconf.h, tools/nutconf/nutconf.cpp: nutconf: --{add\|set}-device: <key>=<value> support Added support for setting virtually any <key>=<value> pairs for devices by the above options. Now, the synopsis of the options argument lists is: <id> <driver> <port> [<key}=<value>]* (i.e. description is set as desc="blah blah blah")

2.173. 2013-03-18 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • tools/nutconf/nutconf.cpp: nutconf: reintroduction of funcs lost in trans. --set-notifycmd, --set-minsupplies & --set-powerdownflag options reintroduced after being lost in recent multi-step transition to git

2.174. 2013-03-10 Charles Lepple <clepple+nut@gmail.com>

  • tests/Makefile.am: tests: Fix build without libcppunit

2.175. 2013-02-08 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • tools/nutconf/nutconf.cpp: nutconf: --scan-serial port list bugfix Piggybacking: added device type check to skip invalid devices returned from libnutscan
  • tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-device.h: libnutscan: dev. type strings array size fixed

2.176. 2013-02-07 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • tools/nut-scanner/nutscan-device.c: libnutscan: serial device type string undefined

2.177. 2013-02-05 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, common/nutwriter.cpp, docs/man/nutconf.txt, include/nutconf.h, tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-display.c, tools/nut-scanner/scan_avahi.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_ipmi.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, tools/nutconf/nutconf.cpp: nutconf: another round of bugfixes --{get\|set}-mode options have replaced --mode option --set-mode option actually sets the mode in nut.conf libnutscan provides devices list rewinded (i.e. handled by the head) libnutscan options fixed (so that the 1st is dynamic, too)
  • tools/nutconf/nutconf.cpp: nutconf: proper device config dump
  • tools/nutconf/nutconf.cpp: nutconf: device with no options bugfix
  • docs/man/Makefile.am, tools/nutconf/nutconf.cpp: nutconf: bugfixes \+ HTML manpage

2.178. 2013-02-04 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/Makefile.am, docs/man/nutconf.txt, include/Makefile.am, tests/Makefile.am, tests/nutconf_ut.cpp, tools/nutconf/Makefile.am, tools/nutconf/nutconf.cpp: nutconf: compilation & finishing touches

2.179. 2013-02-01 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • docs/man/Makefile.am, docs/man/nutconf.txt: nutconf: manpage added
  • tests/nutconf_ut.cpp, tools/nutconf/nutconf.cpp: nutconf: added --scan-serial option Piggybacking: IPMI devices scanning updated Fixed nutconf UT

2.180. 2013-01-31 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • tools/nutconf/nutconf.cpp: nutconf: --scan-snmp option added

2.181. 2013-01-30 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/Makefile.am, configure.in, tools/Makefile.am, tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-device.h, tools/nutconf/Makefile.am, common/nutconfbin.cpp ⇒ tools/nutconf/nutconf.cpp: nutconf: --scan-* options added --scan-snmp is still not implemented, TODO --scan-serial is missing, too All other device protocols should work as long as libnutscan works.

2.182. 2013-01-29 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconfbin.cpp: nutconf: --{set\|add}-user options added NOTE: The options ONLY manipulate upsd.users configuration file. It shall have to be discussed how upsmon.conf shall be kept in sync with the upsmon user settings (TODO).

2.183. 2013-01-13 Emilien Kia <kiae.dev@gmail.com>

  • clients/cgilib.h, clients/status.h, clients/upsimagearg.h, clients/upslog.h, clients/upsmon.h, clients/upssched.h, clients/upsstats.h, include/common.h, include/extstate.h, include/proto.h, include/state.h, include/upsconf.h, server/conf.h, server/desc.h, server/netcmds.h, server/netget.h, server/netinstcmd.h, server/netlist.h, server/netmisc.h, server/netset.h, server/netssl.h, server/netuser.h, server/sstate.h, server/stype.h, server/upsd.h, server/upstype.h, server/user-data.h, server/user.h, tools/nut-scanner/nut-scan.h, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-init.h, tools/nut-scanner/nutscan-ip.h: Protect header files for C+\+ inclusion.

2.184. 2013-01-22 Arnaud Quette <arnaud.quette@free.fr>

  • docs/man/.gitignore, docs/man/Makefile.am, docs/man/index.txt, docs/man/nut-scanner.txt, docs/man/nutscan_get_serial_ports_list.txt, docs/man/nutscan_scan_avahi.txt, docs/man/nutscan_scan_eaton_serial.txt, docs/man/nutscan_scan_ipmi.txt, docs/man/nutscan_scan_nut.txt, docs/man/nutscan_scan_snmp.txt, docs/man/nutscan_scan_usb.txt, docs/man/nutscan_scan_xml_http.txt, include/nut_platform.h, tools/nut-scanner/Makefile.am, tools/nut-scanner/nut-scan.h, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-display.c, tools/nut-scanner/nutscan-serial.c, tools/nut-scanner/nutscan-serial.h, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c: Add nut-scanner support for Eaton serial units nut-scanner and libnutscan now provides respectively an option and functions to detect Eaton serial devices. The following protocols are supported: SHUT, XCP and Q1 (patch from Frederic Bohe, with parts from Arnaud Quette, both for Eaton)

2.185. 2012-10-04 Arnaud Quette <arnaud.quette@free.fr>

  • docs/man/nut-scanner.txt, drivers/nut-ipmipsu.c, tools/nut-scanner/nut-scan.h, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_ipmi.c: Support power supplies scan over the network nut-scanner can now scan for power supplies with IPMI over LAN. This is currently limited to IPMI 1.5 only

2.186. 2012-09-19 Arnaud Quette <arnaud.quette@free.fr>

  • drivers/nut-libfreeipmi.c, m4/nut_check_libfreeipmi.m4, tools/nut-scanner/scan_ipmi.c: Support for FreeIPMI 1.1.x and 1.2.x (#2) Prepare for supporting API changes in FreeIPMI 1.1.x and 1.2.x. This 2nd patch, which completes [SVN:3675], addresses FRU API changes, and removes code redundancy. This code has been tested with FreeIPMI 0.8.12 and the latest [FreeIPMI SVN] trunk r9505 (reported as 1.2.0.beta2 by pkgconfig)

2.187. 2013-01-28 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconfbin.cpp: nutconf: --set-shutdowncmd option added
  • common/nutconfbin.cpp: nutconf: --set-notifymsg option added
  • common/nutconf.cpp, common/nutconfbin.cpp: nutconf: --{set\|add}-notifyflags options added

2.188. 2013-01-25 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconfbin.cpp: nutconf: --{set\|add}-device options added
  • common/nutconf.cpp, common/nutconfbin.cpp: nutconf: daily commit Changes: Merged with changes/bugfixes suggested by Arnaud --set-monitor option discards existing entries --add-monitor option added --set-listen and --add-listen options added

2.189. 2013-01-24 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, common/nutconfbin.cpp: nutconf: daily commit Changes: --is-configured option added (checks existence of nut.conf and the MODE) --local and --system options added to set config. directory --mode option added (so far it only stores the required mode, TODO) --set-monitor multi-option added, allows to set (add actually) MONITORs

2.190. 2013-01-23 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconfbin.cpp, common/nutstream.cpp, include/nutstream.hpp: nutconf: --is-configured option introduced The option causes nut.conf::MODE being checked; if not "none" (and if the file exists at all), it pronounces NUT as configured.

2.191. 2013-01-22 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconfbin.cpp: The very 1st nutconf tool stub For now, only cmd. options parsing and usage works.

2.192. 2013-01-21 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutwriter.cpp: C\+\+11 code removed due platform compatibility

2.193. 2013-01-09 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutipc.cpp, include/nutipc.hpp, tests/nutipc_ut.cpp: nutipc: signal handling UT added

2.194. 2013-01-08 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, common/nutwriter.cpp, include/nutconf.h, tests/nutconf_ut.cpp: nutconf: fix of misplaced value quoting Value quoting/escaping is now done generically in nutwriter.
  • common/nutconf.cpp, common/nutconfbin.cpp, common/nutipc.cpp, common/nutstream.cpp, common/nutwriter.cpp, include/Makefile.am, include/nutconf.h, include/nutipc.hpp, include/{nutstream.h ⇒ nutstream.hpp}, include/{nutwriter.h ⇒ nutwriter.hpp}, tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp: nutipc: signal sending UTs nut::Signal::send via PIDfile and nut::NutSignal::send via process name added, too. Minor backwards-compatible changes in nutstream (file removal methods).

2.195. 2013-01-07 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutipc.cpp, include/nutipc.hpp, tests/nutipc_ut.cpp: nutipc: ext. command execution improvements The command line segmentation is finally implemented. nut::Process::execute static functions added for simplicity of usage.
  • common/nutipc.cpp, include/nutipc.hpp, tests/Makefile.am, tests/nutipc_ut.cpp: nutipc: linking cleanup & exec UT

2.196. 2012-12-20 Émilien Kia <emilien.kia@gmail.com>

  • common/Makefile.am, common/nutconfbin.cpp: Add a little sample to use libconf. Special dedicace to Fred.

2.197. 2012-12-14 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/Makefile.am, common/nutipc.cpp, include/Makefile.am, include/nutipc.hpp: NUT IPC module introduction A non-complete implementation of NUT IPC support module. Certain functions are just outlined, for now. Deals with signal handling and execution of external commands. I commit this partial implementation because I’ll be on holiday for certain amount of time and it’s IMO better to have the code comitted.

2.198. 2012-12-11 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, include/nutconf.h, tests/Makefile.am, tests/nutconf_ut.cpp: Basic unit tests for libnutconf UTs with focus on basic configuration settings and serialisation were added for nut.conf, upsmon.conf, upsd.conf ups.conf and upsd.users. Note that the tests are not exhaustive; they only parse configuration files samples, change a few randomly selected parameters, serialise the result back and check it.

2.199. 2012-12-07 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, common/nutstream.cpp, common/nutwriter.cpp, include/nutconf.h, include/nutstream.h, include/nutwriter.h: (De)serialisation methods added to config. classes All existing NUT configuration classes now implement Serialisable interface (parseFrom and writeTo methods). Note that the parseFrom implementations are very naive (they simply read whole source stream to memory and call existing parseFromString method). That’s enough for now, however, in future the parsres should directly use NutStream interface.

2.200. 2012-12-06 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, include/nutconf.h: Support for upsd.users config. file added
  • common/nutstream.cpp, common/nutwriter.cpp, include/nutstream.h, include/nutwriter.h: Bugfix: out. std::stringstream constr. arg ignored
  • common/nutwriter.cpp, include/nutwriter.h: Special serialiser for upsd.users config file The special serialiser is needed because of the [upsmon]::upsmon directive (which doesn’t use the standard = key/ value separator). Also, serialisation of section entry value list was fixed (so that multiple entries are produced rather than a list of values).

2.201. 2012-12-05 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutconf.cpp, common/nutwriter.cpp, include/nutconf.h: UpsConfiguration class added to libnutconf Getters/setters for all UPS config. attributes added The getters/setters need further checking for type correctness Generic support for the above implemented in GenericConfiguration class

2.202. 2012-11-30 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutwriter.cpp, include/nutconf.h: NutWriter: ups.conf upsmon.conf upsd.conf support

2.203. 2012-11-28 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/Makefile.am, common/nutstream.cpp, common/nutwriter.cpp, include/Makefile.am, include/nutconf.h, include/nutstream.h, include/nutwriter.h: Partial implementation on NutWriter subtree General serialisers implemented Several TBDs and TODOs left for review tbc…

2.204. 2012-11-22 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • tests/nutstream_ut.cpp: Forgotten UT source from prev. commit
  • common/Makefile.am, common/nutstream.cpp, include/Makefile.am, include/nutstream.h, tests/Makefile.am: Unit tests for nut::NutStream subtree Basic unit tests plus a few minor changes and updates to the code

2.205. 2012-11-16 Vaclav Krpec <VaclavKrpec@Eaton.com>

  • common/nutstream.cpp, include/nutstream.h: Initial implementation of nut::NutStream sub-tree nut::NutMemory (memory-based stream) nut::NutFile (file-stream) nut::NutSocket with nut::NutSocket::Address (UNIX domain, IPv4, IPv6)

2.206. 2012-10-24 Émilien Kia <emilien.kia@gmail.com>

  • common/nutconf.cpp, include/nutconf.h, tests/nutconf.cpp: Add parsing options and allow : to be interpreted as normal character. Add parsing option to NutParser. Add a first option OPTION_IGNORE_COLON to parse : as a normal character and not as token. Use it to allow parsing "::1" IPv6-like as string without having to quote them (upsd.conf).
  • tests/nutconf.cpp: Add test for UpsdConfiguration parsing.
  • include/nutconf.h: Add equality test operators for Settable<T> and UpsdConfiguration::Listen.

2.207. 2012-10-23 Émilien Kia <emilien.kia@gmail.com>

  • common/nutconf.cpp, include/nutconf.h: Implement upsd.conf UpsdConfigParser. Test pending. A bug is pending: IPv6 format must be in quoted string because of :.
  • common/nutconf.cpp, include/nutconf.h, tests/nutconf.cpp: Implement nut.conf NutConfiguration parser.
  • common/nutconf.cpp, include/nutconf.h, tests/nutconf.cpp: Implement UpsmonConfigParser and related.
  • include/nutconf.h: Create and use a Settable helper which indicate if a parameter is set or not.
  • include/nutconf.h: Add notify messages array in UpsmonConfiguration (oups !).

2.208. 2012-10-22 Émilien Kia <emilien.kia@gmail.com>

  • common/nutconf.cpp, include/nutconf.h: Add stubs for upsmon.conf parser and config structure.
  • common/nutconf.cpp, include/nutconf.h, tests/nutconf.cpp: Add unit test for GenericConfiguration parsing. Add UT for GenericConfiguration (validate GenericConfigParser and all the stack). Fix some errors found with UT.

2.209. 2012-10-19 Émilien Kia <emilien.kia@gmail.com>

  • common/nutconf.cpp, include/nutconf.h: Add GenericConfiguration function to parse from string (use GenericConfigParser).
  • common/nutconf.cpp, include/nutconf.h: Virtualize GenericConfiguration with BaseConfiguration to really allow specialized versions of config class.
  • common/nutconf.cpp, include/nutconf.h: Implement GenericConfigParser and related.
  • common/nutconf.cpp, include/nutconf.h: Implement abstract class DefaultConfigParser
  • common/nutconf.cpp, include/nutconf.h: Define a typedef type to make function easier to understand.

2.210. 2012-10-15 Émilien Kia <emilien.kia@gmail.com>

  • common/nutconf.cpp, include/nutconf.h: Add stubs for DefaultConfigParser Add stubs for the default configuration file parser. Basic implementation will follow.
  • common/nutconf.cpp, include/nutconf.h, tests/nutconf.cpp: Implement abstract configuration parser. Rename NutConfParser in NutParser. Implement the abstract class NutConfParser based on NutParser for configuration file parsing. Remove old C sample code.

2.211. 2012-10-10 Émilien Kia <emilien.kia@gmail.com>

  • common/Makefile.am, common/nutconf.cpp, include/nutconf.h, tests/Makefile.am, tests/nutconf.cpp: Initial conf library. Just parse tokens.

2.212. 2024-01-27 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: untie OFF from linestate in upsmon FSD [#2279]

2.213. 2024-01-26 desertwitch <24509509+desertwitch@users.noreply.github.com>

  • clients/upsmon.c: fix offstate not being a requirement for a critical UPS on OFF

2.214. 2024-01-21 Jim Klimov <jimklimov+nut@gmail.com>

  • server/netssl.c: fix decl-after-statement NUT_UNUSED_VARIABLE() implementation counts as a code statement, so should be after true declarations.

2.215. 2024-01-21 Duncan Webb <duncan@linuxowl.com>

  • server/netssl.c: Fix possible buffer overrun calls to PR_GetErrorText Removed call to NSS_NoDB_Init as certfile will be defined. Copy paste from upscli change to ssl_init.

2.216. 2024-01-20 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsmon.c: fix comment wording [#840, #2240]
  • scripts/upower/95-upower-hid.hwdb: update for recent changes in drivers/belkin-hid.c [#2271]

2.217. 2024-01-19 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: upsconf_getSection_content(): optimize string emptiness checks
  • NEWS.adoc, docs/nut.dict: update for nut-driver-enumerator [#682]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: fix systemd_findSavedDeviceName() to use common SYSTEMD_CONFPATH variable
  • drivers/belkin-hid.c: add Liebert PowerSure PST UPS productid [#2271]

2.218. 2024-01-19 Charles Lepple <clepple+nut@gmail.com>

  • drivers/belkin-hid.c: fix Liebert GXT4 UPS productid Follow-up to 3e1b00ec3ff105a05e67ae8602996cf7436f816b which intended to add the ID after NUT v2.7.4 release, but fell prey to copy-paste typo (got 0x0004 instead of intended 0x0000): commit 3e1b00ec3ff105a05e67ae8602996cf7436f816b Date: Sat Jun 3 12:24:15 2017 -0400 usbhid-ups: add Liebert GXT4 USB VID:PID [10AF:0000] Source: http://lists.alioth.debian.org/pipermail/nut-upsuser/2017-June/010682.html Voltage and ConfigVoltage appear to be scaled improperly per the debug output.

2.219. 2024-01-19 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/ci-farm-lxc-setup.txt: errata for virt-top too new to work with LXC

2.220. 2024-01-18 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/security.txt: typography: fix quoting style
  • docs/security.txt, docs/man/upsd.conf.txt, docs/man/upsmon.conf.txt: stress that multi-word "Certificate Name" values should be double-quoted; fix examples [#2265]
  • docs/man/upsmon.conf.txt: fix multi-paragraph attachments in the very nested MONITOR section Blanks and pluses are the trick: https://stackoverflow.com/a/52164722/4715872
  • docs/man/upsd.conf.txt: fix multi-paragraph attachments in sections

2.221. 2024-01-03 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/images/ci/jenkins-nut.css: update hosting logo from FH to DO [#2192] Imported from NUT CI farm where this CSS was edited in the beginning of the month

2.222. 2024-01-18 Vytautas Survila <vytautas.survila@gmail.com>

  • drivers/nutdrv_qx.c: use correct read_size for too much data read message

2.223. 2024-01-15 Vytautas Survila <vytautas.survila@gmail.com>

  • drivers/nutdrv_qx.c: return actual number of bytes we copied to buffer

2.224. 2024-01-15 Jim Klimov <jimklimov@gmail.com>

  • drivers/apc-mib.c: bump DRIVER_VERSION to double-digits 1.60 is more future-proof than 1.7 (after 1.6) :)

2.225. 2024-01-15 Christian Manal <manal@uni-bremen.de>

  • drivers/apc-mib.c: update MIB values

2.226. 2024-01-14 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/Makefile.am: neuter the fictive nutscan_add_commented_option_to_device.html recipe for now [#2221]
  • docs/man/Makefile.am: fix nutscan_add_commented_option_to_device.html recipe for BSD make [#2221]

2.227. 2024-01-13 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/scan_usb.c: code after declarations [#2221]
  • docs/man/nutscan_add_option_to_device.txt, docs/man/Makefile.am: fix markup for a single asciidoc text describing several command names [#2221] https://asciidoc-py.github.io/userguide.html#X1
  • tools/nut-scanner/nut-scanner.c: disambiguate and un-shadow link_detail_level variables [#2221]

2.228. 2024-01-12 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/scan_usb.c, UPGRADING.adoc: make use of nutscan_add_commented_option_to_device() for link-specific details if not suggesting to use them directly [#2221]
  • NEWS.adoc, docs/man/nutscan_add_option_to_device.txt, tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-display.c: libnutscan API: add a concept of commented-away suggested option values instead of hacks in prepared config data [#2221]
  • NEWS.adoc: reword the entry about desktop integration [#2205]
  • NEWS.adoc, docs/man/nut-scanner.txt, docs/man/nutscan_scan_usb.txt, docs/nut.dict, tools/nut-scanner/Makefile.am, tools/nut-scanner/README.adoc, tools/nut-scanner/nut-scan.h, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_usb.c: nut-scanner: change "-U" handling to tweak generated device configuration section level of detail [#2221]
  • NEWS.adoc, drivers/Makefile.am: drivers/Makefile.ami, NEWS.adoc: fix builds --without-usb [#2262]
  • docs/nut.dict, NEWS.adoc: document recent improvements to nut-scanner
  • docs/man/nut-scanner.txt: change markup for code and output examples [#2247]
  • NEWS.adoc: debug level initialized earlier now [#2259] Checked for a similar need in other programs - nut-scanner does it already, and others start with the getopt() loop.
  • drivers/main.c: move NUT_DEBUG_LEVEL and "-D" CLI option handling to start of program [#2259] This allows to use upsdebugx() in early initialization methods like upsdrv_makevartable()

2.229. 2024-01-11 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: add info about #2259
  • drivers/main.c: if nutdrv_qx is built for serial-only support but asked to use USB options at run-time, help the user about the discrepancy [#2259]
  • drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: report in debug trace which USB implementation is used [#2259]

2.230. 2024-01-03 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: testcase_sandbox_nutscanner_list(): adjust generated section names to nut-scanner evolution
  • tools/nut-scanner/scan_avahi.c: fix indentation to match surrounding code [#2246]
  • tools/nut-scanner/Makefile.am: bump libnutscan version due to scan_nut_simulation.c [#2246]
  • tools/nut-scanner/scan_avahi.c: fix indentation to match surrounding code [#2246]
  • tools/nut-scanner/Makefile.am: bump libnutscan version due to scan_nut_simulation.c [#2246]
  • scripts/Windows/DriverInstaller/README.adoc: update link to libwdi
  • docs/ci-farm-lxc-setup.txt: note path to DHCP lease file for troubleshooting

2.231. 2024-01-02 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: fix NUT_AM_MAKE_CAN_EXPORT test syntax for Solaris ksh
  • Makefile.am, clients/Makefile.am, common/Makefile.am, configure.ac, drivers/Makefile.am, include/Makefile.am, lib/Makefile.am, server/Makefile.am, tests/Makefile.am, tests/NIT/Makefile.am, tools/Makefile.am, tools/nut-scanner/Makefile.am: */Makefile.am, configure.ac: constrain makefile exports to implementations where NUT_AM_MAKE_CAN_EXPORT
  • Makefile.am, clients/Makefile.am, common/Makefile.am, drivers/Makefile.am, include/Makefile.am, lib/Makefile.am, server/Makefile.am, tests/Makefile.am, tests/NIT/Makefile.am, tools/Makefile.am, tools/nut-scanner/Makefile.am: /Makefile.am: export PATH and CCACHE_ envvars to be used during rebuilds
  • configure.ac: remember PATH_DURING_CONFIGURE
  • configure.ac: track selected CCACHE_* envvars as "precious"
  • configure.ac: allow to specify --with-CCACHE_NAMESPACE=… for the build
  • docs/Makefile.am, docs/cables/Makefile.am, docs/man/Makefile.am, include/Makefile.am, scripts/python/module/Makefile.am, tests/NIT/Makefile.am, tools/Makefile.am, tools/nut-scanner/Makefile.am: */Makefile.am: add top line descriptions where missing
  • ci_build.sh: fix reporting of used envvars (avoid shell functions/aliases/…)

2.232. 2023-12-24 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/scan_nut_simulation.c: Fix declaration-after-code in scan_nut_simulation.c

2.233. 2023-12-24 Arnaud Quette <arnaud.quette@free.fr>

  • tools/nut-scanner/scan_nut_simulation.c: nut-scanner: actually simplify simulation scan code Reimplement scan algorithm, and remove non-portable scandir code. Get back to my early implemention, using opendir/readdir, as in common/common.c. This works and is portable!
  • tools/nut-scanner/scan_nut_simulation.c: nut-scanner: simplify simulation scan code Remove non-portable directory-filtering code, since there is no actual need for it, and very few chances of false positive results.
  • tools/nut-scanner/scan_nut_simulation.c: nut-scanner: don’t require alphasort Sorting is not needed, and despite alphasort being supported since: * Since glibc 2.10: (_POSIX_C_SOURCE >= 200809L) * || Glibc versions ⇐ 2.19: (_BSD_SOURCE |\| _SVID_SOURCE) it seems still not supported on some platforms.
  • tools/nut-scanner/nut-scan.h, tools/nut-scanner/scan_nut_simulation.c: nut-scanner: fix nutscan_scan_nut_simulation prototype Please CI and add void args

2.234. 2023-12-23 Arnaud Quette <arnaud.quette@free.fr>

  • docs/man/nut-scanner.txt: nut-scanner: spell checks
  • docs/man/nut-scanner.txt, tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-display.c: nut-scanner: fix device-name collisions in generated conf When nut-scanner is called separately, to scan different buses, it will generate similar names for each of these: * USB scan > [nutdev1] > … * NUT scan > [nutdev1] > … * … As a result, one can’t just redirect nut-scanner outputs directly to ups.conf, without a sed hack workaround. Solution: simply refine the device names, like "nutdev-<method><id>". Ex: nutdev-usb1, nutdev-usb2, nutdev-nut1, nutdev-snmp1, nutdev-simulation1, …

2.235. 2023-12-22 Arnaud Quette <arnaud.quette@gmail.com>

  • NEWS.adoc, data/driver.list.in, docs/developer-guide.txt, docs/man/Makefile.am, docs/man/nut-scanner.txt, docs/man/nutscan_init.txt, docs/man/nutscan_scan_nut_simulation.txt, tools/nut-scanner/Makefile.am, tools/nut-scanner/nut-scan.h, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-init.c, tools/nut-scanner/nutscan-init.h, tools/nut-scanner/scan_avahi.c, tools/nut-scanner/scan_nut_simulation.c: nut-scanner: detect and configure NUT simulation devices (#2246) * nut-scanner: detect and configure NUT simlation devices Provide an additional nut-scanner "-n \| --nut_simulation_scan" option to detect and configure dummy simulation (.dev & .seq) from the default $sysconfdir. Also advertise NUT Simulation Devices in HCL. This should standardize and streamline the use of nut-scanner as an automatic detection and configuration tool. Closes: #networkupstools/nut/issues/2242
  • NEWS.adoc, data/driver.list.in, tools/nut-scanner/scan_avahi.c, tools/nut-scanner/scan_nut.c: 2236 nut scanner reports non existent driver for nut discovery (#2245) * Start to advertise NUT support of itself * nut-scanner: NUT scan (old and Avahi) points at dummy-ups the previously pointed driver "nutclient" does not exist yet. At least points to a sane working default * Document in NEWS Closes: #networkupstools/nut/issues/2236

2.236. 2023-12-15 Jim Klimov <jim@jimklimov.com>

  • docs/ci-farm-lxc-setup.txt, docs/nut.dict: suggest dependency packages for LXC and QEMU

2.237. 2023-12-10 Jim Klimov <jimklimov+nut@gmail.com>

  • README.adoc: use DigitalOcean referral campaign identifier in badge URL [#2192]
  • tools/nut-scanner/scan_usb.c: hide bcdDevice logic behind ifdef WITH_BCD_DEVICE [#2221] Earlier approaches to only partially comment away code trigger static analysis warnings here or there, and we do not want to fully drop it here just yet.
  • tools/nut-scanner/scan_usb.c: comment away bcdDevice which we do not currently use [#2221]

2.238. 2023-12-10 Arnaud Quette <Arnaud.Quette@free.fr>

  • tools/nut-scanner/scan_usb.c: nut-scanner USB: disable some output results Some additional fields, like device (device number / path), may introduce more issues than solving. Hence disable these

2.239. 2023-12-05 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, docs/man/usbhid-ups.txt, docs/nut.dict, drivers/usbhid-ups.c: drivers/usbhid-ups.c, docs/man/usbhid-ups.txt, NEWS.adoc: introduce "onlinedischarge_log_throttle_hovercharge" setting [#2215]
  • drivers/usbhid-ups.c, docs/man/usbhid-ups.txt, NEWS.adoc: introduce "onlinedischarge_log_throttle_sec" setting and/or throttling by changes of battery.charge [#2214]
  • NEWS.adoc, docs/man/usbhid-ups.txt, docs/nut.dict, drivers/usbhid-ups.c: drivers/usbhid-ups.c, docs/man/usbhid-ups.txt, NEWS.adoc: deprecate "onlinedischarge" in favor of "onlinedischarge_onbattery" option name [#2213]
  • docs/man/upsmon.txt: update with NOTCAL state
  • conf/upsmon.conf.sample.in: update NOTIFYFLAG examples

2.240. 2023-12-01 Jim Klimov <jimklimov+nut@gmail.com>

  • data/driver.list.in: note that "NEW Keor Multiplug" is not supported as of 2023 …per "mrc989" report on IRC channel
  • server/conf.c, clients/upsmon.c: align logged DEBUG_MIN NUM casing and wording with the setting/docs
  • clients/upsmon.c: when POLLFAIL_LOG_THROTTLE_MAX>0 takes effect, report also how often it would report in seconds [#2207]
  • clients/upsmon.c: align logged POLLFAIL_LOG_THROTTLE_MAX casing with the setting/docs
  • NEWS.adoc, clients/upsmon.c: clients/upsmon.c: forget poll-failure error-states and the counts involved when we reload config [#2207]
  • clients/upsmon.c: markup/style typo fix
  • NEWS.adoc, clients/upsmon.c, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/man/upsmon.txt: clients/upsmon.c, NEWS.adoc: fix an off-by-one error with POLLFAIL_LOG_THROTTLE_MAX loop counting [#2207]
  • clients/upsmon.c, NEWS.adoc: Forget POLLFAIL_LOG_THROTTLE_MAX before configuration reload [#2207]
  • clients/upsmon.c: clarify wording about POLLFAIL_LOG_THROTTLE_MAX "standard behavior"
  • docs/man/upsmon.txt, docs/man/upsmon.conf.txt, conf/upsmon.conf.sample.in: clarify wording about POLLFAIL_LOG_THROTTLE_MAX "standard behavior"

2.241. 2023-11-28 Jim Klimov <jim@jimklimov.com>

  • m4/nut_check_aspell.m4: check if aspell can use the discovered tex module (binary arch match) and try to fall back to built-in defaults if not Either way, avoid an unusable make spellcheck which just reports a massive failure.

2.242. 2023-11-27 Jim Klimov <jim@jimklimov.com>

  • m4/nut_check_aspell.m4: run a live check if the detected aspell is useful
  • m4/nut_check_aspell.m4: AC_SUBST detected paths after checking if detected aspell is useful

2.243. 2023-11-27 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/app/NUT-Monitor-py2gtk2.in: leave a comment to suggest using g_set_prgname() Suggested by Laurent Bigonville Currently I’ve failed to find a test system with Py2 \+ GTK2 preinstalled (the one I had was updated and half the old dependencies are missing), and did not quickly find python syntax examples for it as well.
  • scripts/python/app/NUT-Monitor-py3qt5.in: take a cautious approach to setDesktopFileName()
  • NEWS.adoc, docs/nut.dict: checking and formatting for the entry about DesktopFileName in NUT-Monitor-py3qt5 [#2205]

2.244. 2023-11-27 Laurent Bigonville <bigon@bigon.be>

  • NEWS.adoc, scripts/python/app/NUT-Monitor-py3qt5.in: Set the DesktopFileName in scripts/python/app/NUT-Monitor-py3qt5 This binds the application with the desktop file and allow the Desktop to display the proper icon and application name.

2.245. 2023-11-25 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/app/NUT-Monitor, NEWS.adoc: check if implementation scripts exist before looking into them for a PYTHON* version Closes: #2201
  • NEWS.adoc: note the fix for #2198
  • scripts/python/app/NUT-Monitor, NEWS.adoc: fix typo (qt3⇒qt5) Closes: #2199

2.246. 2023-11-23 Xin LI <delphij@FreeBSD.org>

  • drivers/libusb1.c: Remove unnecessary validation for bus_num The libusb_get_bus_number() function serves as a simple accessor for the bus number of the opaque device struct. Unlike libusb_get_port_number(), it does not have the ability to convey errors back to the caller, and a bus number of 0 is a valid value. Therefore, any validation around bus_num is redundant. This commit removes the unnecessary validation code related to bus_num.

2.247. 2023-11-23 Axel Gembe <axel@gembe.net>

  • drivers/apc_modbus.c: apc_modbus: Add target outlet group to load.* and shutdown.* commands Maybe this is needed, needs to be confirmed.
  • drivers/apc_modbus.c: apc_modbus: Always store times in UTC This changes _apc_modbus_date_from_nut to use timegm instead of mktime which does not add the current time zone information. This fixes dates that are off-by-one compared to what was set.

2.248. 2023-11-24 Axel Gembe <axel@gembe.net>

2.249. 2023-11-23 Axel Gembe <axel@gembe.net>

  • drivers/apc_modbus.c: apc_modbus: Fix re-read of values at the end of setvar The for loop searching for the correct register map kept on looping after finding the value which caused the apc_map mariable to potentially point to the wrong register map. This can cause the re-read of the set value at the end of the function to fail.
  • drivers/apc_modbus.c, drivers/apc_modbus.h: apc_modbus: Add ups.test.result This outputs the test result, the source of the start of the test and a result modifier.

2.250. 2023-11-16 Jim Klimov <jimklimov@gmail.com>

  • drivers/Makefile.am: dist the apc_modbus.h file

2.251. 2023-11-14 Axel Gembe <axel@gembe.net>

  • drivers/apc_modbus.c, drivers/apc_modbus.h, drivers/upshandler.h: apc_modbus: Updates, command, writable variables and outlet group support This adds support for commands, writable variables and outlet groups. - For commands there is a new table called apc_modbus_command_map which defines the supported commands as a tuple of command name, register offset and value to write. This also adds a new instcmd status called STAT_INSTCMD_CONVERSION_FAILED for when conversion of values fails. On startup all the commands are registered using dstate_addcmd. This also adds support for the upsdrv_shutdown function. - For writable variables we added a new flag called APC_VF_RW to the existing variables that indicates a writable variable. We added code to convert from a string to UINT/INT/STRING variables with output in APCs register format. There is a new _apc_modbus_setvar function that handles setting variables and rereading them from the device. This also adds a new setvar status called STAT_SET_CONVERSION_FAILED for when conversion of values fails. Variables are now correctly set as ST_FLAG_STRING and ST_FLAG_RW and we call dstate_setaux to give a maximum length for strings. - For outlet groups, we now have names, configurable delays and commands per outlet group. Devices have an outlet group called MOG (Main outlet group) that switches all the outputs of the UPS and 1-3 SOGs (Switched outlet groups) that can be controlled independently. Note that MOG is outlet.group.0 and the SOGs start at outlet.group.1. The outlet groups should have markings with the same index at the back of the unit. - This also reduces the length of some of the defines to make the variable maps more readable. - It also adds a comment to when the reopen matcher is created that clarifies why we create it.

2.252. 2023-11-22 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/nutdrv_qx.c: armac_command(): avoid "-Wdeclaration-after-statement" Also minor cleanup with comments markup
  • drivers/nutdrv_qx.c: load_armac_endpoint_cache(): avoid "-Wdeclaration-after-statement" situations Also log if effectively skipping the method (not libusb-1.x build)
  • README.adoc: add links to custom Jenkins Dynamatrix library and setup for NUT
  • README.adoc: do our best to top-align the cells in acknowledgements table, and comment about caveats of known renderers
  • README.adoc: rephrase the sponsoring/starring tip section
  • README.adoc: dumb down the table format for GitHub renderer
  • README.adoc: no need for a plus in table for multi-paragraph cells
  • README.adoc: align columns in vendor logo table; leave a FIXME comment for PDF renditions
  • README.adoc: try to fix vendor acknowledgements table width
  • README.adoc: refer from "NUT and Ecosystem" to "Acknowledgements for NUT CI and Ops" table with vendor logos [#2192]
  • README.adoc: use single PNG for OpenCollective vendor logo
  • README.adoc, docs/nut.dict: README.adoc: use alt/url/width/height markup for vendor logo images
  • docs/Makefile.am, docs/images/ci/OC_logo_merged_140x26.png, docs/images/ci/OC_logo_merged_171x32.png: docs/images/ci/OC_logo_merged_XxY.png: add merged (and also resized) single image files
  • docs/asciidoc-vars.conf: fix "imagesdir" for GitHub rendering
  • README.adoc: fix title markup
  • README.adoc, docs/nut.dict: README.adoc: make "NUT and the ecosystem" a separate chapter (including a "TIP" on GitHub starring)
  • .github/pull_request_template.md: remind to Please star NUT on GitHub, this helps with sponsorships [#2192]
  • README.adoc: start with a note about sponsorship and GitHub stars

2.253. 2023-11-21 Jim Klimov <jimklimov+nut@gmail.com>

  • README.adoc, docs/nut.dict: README.adoc: fix GitHub rendering of logos in the README [#2192]
  • docs/Makefile.am, docs/images/ci/jenkins-nut.txt: docs/Makefile.am: list IMAGE_LOGO_FILES andi IMAGE_LOGO_FILES_JENKINS_NUT for EXTRA_DIST

2.254. 2023-11-20 Jim Klimov <jimklimov+nut@gmail.com>

2.255. 2023-11-08 Vytautas Survila <vytautas.survila@gmail.com>

  • drivers/nutdrv_qx.c: support Armac O/850E/PSW #2153 Support for Armac UPS that uses interrupt instead of control msg. It will be enabled automatically only for devices that reports 0x82 as in endpoint address with interrupt transfer type

2.256. 2023-11-21 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/MANIFEST.in, scripts/python/module/Makefile.am, scripts/python/module/setup.py.in: scripts/python/module/MANIFEST.in: distribute "tox.ini" in a different way so it is only in sdist [#2193]
  • drivers/main.c, NEWS.adoc: fix fallout of TOCTOU fixes for socket file non-default permissions [#2185]

2.257. 2023-11-20 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/main.c: clarify numeric errno for faults of fstat/chmod/chown/… for socket file [#2185]
  • scripts/python/module/tox.ini: revise relative paths made available for source testing [#2186]
  • scripts/python/module/Makefile.am: arrange for "make tox"

2.258. 2023-11-19 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/.gitignore: Update .gitignore
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml
  • .github/workflows/PyNUTClient.yml: Update PyNUTClient.yml

2.259. 2023-11-18 Jim Klimov <jimklimov+nut@gmail.com>

  • .github/workflows/PyNUTClient.yml: convert to use scripts/python/module/Makefile.am directly, to avoid discrepancies in two logic impementations
  • scripts/python/module/tox.ini: update pip as a "commands_pre" action [#2186]
  • .github/workflows/PyNUTClient.yml: fix typo determining TAG_NAME
  • scripts/python/module/Makefile.am, scripts/python/module/setup.py.in, scripts/python/module/tox.ini: Py: try to beat sense into packaging all the files
  • scripts/python/module/Makefile.am: add "py-in" and "redist" targets for manual iterations
  • scripts/python/module/.gitignore, scripts/python/module/Makefile.am, scripts/python/module/tox.ini: scripts/python/module: add Python testing framework handling (tox.ini etc) [#2186]

2.260. 2023-11-16 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/setup.py.in: update "keywords" to refer to NUT
  • scripts/python/module/setup.py.in: constrain lowest known compatible python version
  • scripts/python/module/setup.py.in: clean up formatting
  • scripts/python/module/Makefile.am: create the PyNUTClient/src directory for better module naming
  • scripts/python/module/Makefile.am: clean the many .pypi-dist* touch-files we have now
  • scripts/python/module/Makefile.am: allow "make clean dist" to do a sane thing
  • NEWS.adoc: update for arduino-hid [#2188]
  • NEWS.adoc: Update NEWS.adoc
  • drivers/arduino-hid.c: Update arduino-hid.c
  • scripts/systemd/nut-driver-enumerator-daemon-activator.path.in, scripts/systemd/nut-driver-enumerator-daemon-activator.service.in, scripts/systemd/nut-driver-enumerator-daemon.service.in, scripts/systemd/nut-driver-enumerator.path.in: scripts/systemd/nut-driver-enumerator-daemon*.in: add NUT headers like in other systemd units

2.261. 2023-11-15 Kelly Byrd <kbyrd@memcpy.com>

  • drivers/arduino-hid.c: battery.runtime, status OL/OB and more for Arduino subdriver Add support for the common status flags as well as time remaining, battery voltage and other variables found in other HID subdrivers. The Arduino library always supported these items, just the NUT subdriver didn’t pick them up so things like status were always OB.

2.262. 2023-11-14 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/setup.py.in: do not install_require telnetlib which is not a standalone project [#2181]
  • .github/workflows/PyNUTClient.yml, scripts/python/module/.gitignore, scripts/python/module/Makefile.am, scripts/python/module/setup.py.in: scripts/python/module/setup.py.in: reference the license file (GPLv3 per NUT COPYING doc) [#2180]
  • scripts/python/module/setup.py.in: rectify whitespace
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: AVOID_REPARSE of the (empty) ups.conf in the main loop method [#2178]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: consider two empty UPS lists (conf and svc) as a valid situation (nothing to reconcile yet) [#2178]
  • scripts/Solaris/nut-driver-enumerator.xml.in: do not return exit-code 42 if "No more changes to reconcile"
  • server/conf.c, drivers/snmp-ups.c, clients/upsmon.c, clients/upssched.c: report if config errors were seen and we ignored them (went on)
  • scripts/Solaris/nut.xml.in: revise "refresh" handling in umbrella service

2.263. 2023-11-14 Axel Gembe <axel@gembe.net>

  • drivers/apcsmart-old.c: apcsmart-old: Fix return value for not writable variable The code returned STAT_SET_UNKNOWN, which is for variables that were not found, instead this should return STAT_SET_INVALID, which means that the variable is not writable.

2.264. 2023-11-13 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am: when used to make spellcheck from different directories (and of other-directory files) try to report the path to text source relative to NUT source
  • scripts/augeas/README.adoc: for paragraph-quote block markup
  • NEWS.adoc, UPGRADING.adoc, autogen.sh, configure.ac, docs/nut.dict, scripts/devd/.gitignore, scripts/devd/Makefile.am, tools/Makefile.am, tools/nut-usbinfo.pl: tools/nut-usbinfo.pl: generate FreeBSD style quirks information [#2159]
  • data/html/README.adoc, docs/nut.dict, scripts/Windows/README.adoc, scripts/augeas/README.adoc, scripts/python/README.adoc, scripts/python/app/README.adoc, scripts/usb_resetter/README.adoc: scripts/*/README.adoc: revise markup for proper rendered visuals
  • Makefile.am, data/html/Makefile.am, data/html/README, data/html/README.adoc, docs/nut.dict: data/html/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • Makefile.am, tests/NIT/Makefile.am, tests/NIT/{README ⇒ README.adoc}: tests/NIT/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • scripts/Makefile.am, scripts/RedHat/README, scripts/RedHat/README.adoc: scripts/RedHat/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • docs/nut.dict, scripts/Makefile.am, scripts/usb_resetter/{README.md ⇒ README.adoc}: scripts/usb_resetter/README.adoc: convert from .md to .adoc, refresh text, add to spell-checking laundry list (also do EXTRA_DIST this directory)
  • Makefile.am, scripts/hotplug/Makefile.am, scripts/hotplug/README, scripts/hotplug/README.adoc: scripts/hotplug/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • Makefile.am, scripts/udev/Makefile.am, scripts/udev/README, scripts/udev/README.adoc: scripts/udev/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • Makefile.am, docs/nut.dict, scripts/upsdrvsvcctl/Makefile.am, scripts/upsdrvsvcctl/README, scripts/upsdrvsvcctl/README.adoc: scripts/upsdrvsvcctl/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • scripts/Makefile.am, scripts/Solaris/Makefile.am, scripts/Windows/Makefile.am, scripts/augeas/Makefile.am, scripts/devd/Makefile.am, scripts/hotplug/Makefile.am, scripts/systemd/Makefile.am, scripts/udev/Makefile.am, scripts/ufw/Makefile.am, scripts/upsdrvsvcctl/Makefile.am: scripts/*/Makefile.am: add/update headings about the NUT scripts/subdir for easier navigation
  • Makefile.am, scripts/devd/Makefile.am, scripts/devd/README, scripts/devd/README.adoc: scripts/devd/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • scripts/augeas/Makefile.am: comment about spellchecking and markup of README.adoc
  • scripts/ufw/Makefile.am: comment about spellchecking and markup of README.adoc
  • Makefile.am, docs/nut.dict, scripts/systemd/Makefile.am, scripts/systemd/README, scripts/systemd/README.adoc: scripts/systemd/README.adoc: rename to .adoc extension, refresh text and markup, add to spell-checking laundry list
  • Makefile.am, scripts/Makefile.am: scripts/README.adoc: add to spell-checking laundry list
  • scripts/README.adoc: refresh text and markup
  • scripts/Makefile.am, scripts/{README ⇒ README.adoc}: scripts/README: rename to .adoc extension
  • Makefile.am, docs/nut.dict, scripts/python/Makefile.am, scripts/python/app/README.adoc, scripts/python/module/README.adoc: scripts/python/*/README.adoc: add to spell-checking laundry list
  • Makefile.am, docs/nut.dict, scripts/Windows/Installer/README.adoc, scripts/Windows/Makefile.am, scripts/Windows/README.adoc: scripts/Windows/*/README.adoc: add to spell-checking laundry list
  • …/DriverInstaller/{README.txt ⇒ README.adoc}, scripts/Windows/Makefile.am: scripts/Windows/Makefile.am: fix EXTRA_DIST to cover many other scripts and resource files
  • Makefile.am, docs/nut.dict, scripts/Solaris/Makefile.am: scripts/Solaris/README.adoc: add to spell-checking laundry list
  • scripts/Solaris/README.adoc: refresh text and markup
  • scripts/Solaris/Makefile.am, scripts/Solaris/{README ⇒ README.adoc}: scripts/Solaris/README: rename to .adoc extension

2.265. 2023-11-12 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, clients/upsmon.c, clients/upsmon.h, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/nut.dict: clients/upsmon.{c,h} et al: add notification support for NOTCAL state change [#2169]
  • NEWS.adoc, docs/nut.dict: NEWS.adoc: document fix of INSTCMD NPE [#2155]
  • NEWS.adoc: inject a new NUT v2.8.3 expectations plan
  • NEWS.adoc: refer to PR #2156 for powerpanel fix
  • docs/maintainer-guide.txt: ensure PyNUT publication
  • .github/workflows/PyNUTClient.yml: only update TestPyPI repo if PyNUT sources changed

2.266. 2023-11-11 root <root@deb128.rd-dpis77.local>

  • clients/upsmon.c: It is important to reset the "CAL" status. This will be reset later if necessary.

2.267. 2023-11-11 Jim Klimov <jim@jimklimov.com>

  • .github/workflows/PyNUTClient.yml: limit auto-runs to NUT upstream [#2158] Other repos lack needed pypi credentials anyway.

2.268. 2023-11-09 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, conf/nut.conf.sample, conf/upsd.conf.sample, docs/config-notes.txt, docs/man/nut.conf.txt, docs/man/upsd.conf.txt, scripts/augeas/nutupsdconf.aug.in, server/conf.c, server/upsd.c, server/upsd.h: upsd: introduce support for ALLOW_NOT_ALL_LISTENERS configuration toggle [#723]
  • NEWS.adoc, server/upsd.c: server/upsd.c: server_load(): if listenersTotal != listenersValid, default to fatal start-up failure [#723]
  • server/upsd.c: server_load(): if discrepancy of listenersTotal vs. listenersValid amounts to localhost-related addresses, let it slide [#723]
  • server/upsd.c: server_load(): keep track of listenersTotal vs. listenersValid for certain localhost-related string names and IP addresses [#723]
  • NEWS.adoc, server/upsd.c: server/upsd.c: server_load(): keep track of listenersTotal vs. listenersValid, and base "no listening interface available" diagnosis on the latter, not on the firstaddr→sock_fd [#723]
  • server/upsd.c: setuptcp(): warn if requested to LISTEN on "localhost" by name (in case it misfires for IPv4 vs. IPv6)

2.269. 2023-11-10 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/Makefile.am, autogen.sh: cause USB (and SNMP) file re-generation if generating script was changed
  • autogen.sh, m4/nut_check_python.m4: update ad-hoc lists for python3.x program name detection
  • drivers/powervar-hid.c: fix file perms
  • autogen.sh: re-generate USB ID listing files if we updated sources
  • tools/nut-usbinfo.pl: add a big scary header that nutscan-usb.h is generated

2.270. 2023-11-09 Jim Klimov <jimklimov+nut@gmail.com>

  • server/Makefile.am: limit SSL and LIBWRAP options to upsd (sockdebug/pipedebug is not networked)

2.271. 2023-11-09 Greg Troxel <gdt@lexort.com>

  • scripts/python/Makefile.am: python: Do not install setup.py

2.272. 2023-11-09 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/.gitignore: .pypi* touch-files [#2158]

2.273. 2023-11-09 Doug Nazar <nazard@nazar.ca>

  • NEWS.adoc: Update with powerpanel driver changes

2.274. 2023-11-07 Doug Nazar <nazard@nazar.ca>

  • drivers/powerp-txt.c: powerpanel: Rewrite status parsing of text protocol to be generic Instead of having several scanf formats for different devices, parse the individual fields provided only.
  • drivers/powerp-bin.c: powerpanel: Don’t report errors about output voltage if not available

2.275. 2023-11-09 Jim Klimov <jimklimov+nut@gmail.com>

  • .github/workflows/PyNUTClient.yml: fix testpypi repo url argument [#2158]
  • .github/workflows/PyNUTClient.yml: publish from our non-default directory location [#2158]
  • .github/workflows/PyNUTClient.yml: update pypa action to "release/v1" (not chasing specific tag) [#2158]
  • .github/workflows/PyNUTClient.yml: update doc reference comments [#2158]
  • .github/workflows/PyNUTClient.yml: separate source preparation from distro preparation [#2158]
  • scripts/python/module/README.adoc: reshuffle paragraphs for readability, fix a few typos [#2158]
  • docs/maintainer-guide.txt: make note to check PyPI resources [#2158]
  • .github/workflows/PyNUTClient.yml: refine yaml vs. shell syntax some more [#2158]
  • .github/workflows/PyNUTClient.yml: refine yaml vs. shell syntax [#2158]
  • scripts/python/module/setup.py.in: scripts/python/module/setup.py: refer to README.txt made for sdist [#2158]
  • .github/workflows/PyNUTClient.yml, scripts/python/module/Makefile.am: actually better prefer "pip build" as the newest designed solution [#2158]
  • .github/workflows/PyNUTClient.yml, scripts/python/module/Makefile.am: prefer setup.py for its sdist support [#2158]
  • .github/workflows/PyNUTClient.yml: align with recent changes in scripts/python/module/Makefile.am [#2158]
  • scripts/python/module/Makefile.am: use quieter "pip" build wrapper, not directly calling setup.py [#2158]
  • scripts/python/module/Makefile.am: make sure the src/… module is found (wants init.py) [#2158]
  • scripts/python/module/setup.py.in: fix README quoting as the long description [#2158]
  • .github/workflows/PyNUTClient.yml, scripts/python/module/.gitignore, scripts/python/module/Makefile.am: scripts/python/module/Makefile.am: PyPI standard wants a README.txt to be present [#2158]
  • scripts/python/module/Makefile.am: revise verbosity and selection of upload target [#2158]
  • configure.ac, .github/workflows/PyNUTClient.yml: refine definition of NUT_SOURCE_GITREV_NUMERIC to avoid dash separator and use a dot (major.minor.patch.commitnumsince) [#2158]
  • scripts/python/module/Makefile.am: revise GENERATED_DIST artifacts [#2158]
  • scripts/python/module/setup.py.in: fix README content type [#2158]
  • .github/workflows/PyNUTClient.yml, configure.ac, scripts/python/module/Makefile.am, scripts/python/module/setup.py.in: Introduce NUT_SOURCE_GITREV_NUMERIC for scripts/python/module/Makefile.am [#2158]
  • configure.ac, scripts/python/Makefile.am, scripts/python/module/.gitignore, scripts/python/module/Makefile.am: Introduce scripts/python/module/Makefile.am to allow PyPI repo activities from command line [#2158]

2.276. 2023-11-08 Jim Klimov <jimklimov+nut@gmail.com>

  • .github/workflows/PyNUTClient.yml, configure.ac, scripts/python/Makefile.am, scripts/python/module/.gitignore, scripts/python/module/{setup.py ⇒ setup.py.in}: .github/workflows/PyNUTClient.yml, scripts/python/module/setup.py: rename setup.py into a .in template; use @NUT_SOURCE_GITREV@ [#2158]
  • .github/workflows/PyNUTClient.yml: publish (master) branch builds to TestPyPI repository [#2158]
  • .github/workflows/PyNUTClient.yml: follow warnings for token access [#2158]
  • .github/workflows/PyNUTClient.yml: update set-output action ⇒ GITHUB_OUTPUT file [#2158] Follow warnings into https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
  • .github/workflows/PyNUTClient.yml: use definitive version of pypa action - v1.8.10 (current latest) [#2158]
  • .github/workflows/PyNUTClient.yml: use definitive version of pypa action [#2158]
  • scripts/python/module/setup.py: note the renaming of README.adoc
  • .github/workflows/PyNUTClient.yml: fix shell syntax [#2158]
  • .github/workflows/PyNUTClient.yml: fix shell syntax [#2158]
  • .github/workflows/PyNUTClient.yml: fix shell syntax [#2158]
  • .github/workflows/PyNUTClient.yml: use default github-hosted runner [#2158]
  • .github/workflows/PyNUTClient.yml: also publish master-branch rolling changes [#2158]
  • NEWS.adoc, scripts/python/Makefile.am, scripts/python/{README ⇒ README.adoc}, scripts/python/app/{README ⇒ README.adoc}, scripts/python/module/{README ⇒ README.adoc}: scripts/python/*/README: rename to *.adoc extension [#1953]

2.277. 2023-11-08 Jim Klimov <jim@jimklimov.com>

  • .github/workflows/PyNUTClient.yml, NEWS.adoc, scripts/python/module/README, scripts/python/module/setup.py: Add recipes for PyPI publishing of PyNUTClient bindings for NUT [#2158] Note: PyPI names are case-insensitive, and "pynut" was occupied.

2.278. 2023-11-07 Doug Nazar <nazard@nazar.ca>

  • drivers/libhid.c: Fix passing of errors up from libusb 1.x. The api for get_item_buffered() requires the actual error to be in errno which was automatic for libusb 0.x but libusb 1.x doesn’t use errno. Otherwise a poll-only driver will miss errors like disconnects and never try to reconnect.
  • drivers/dstate.c: Fix SIGSEGV while preforming INSTCMD Parameter arg[2] is not guaranteed to be valid while preforming INSTCMD. Don’t pass directly to main_instcmd().

2.279. 2023-11-07 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-usbinfo.pl: track preference of certain drivers over others [#1021]
  • NEWS.adoc, docs/man/nutscan_add_device_to_device.txt, docs/man/nutscan_add_option_to_device.txt, docs/nut.dict, tools/nut-scanner/Makefile.am, tools/nut-scanner/nutscan-device.h, tools/nut-scanner/nutscan-display.c, tools/nut-scanner/scan_usb.c, tools/nut-usbinfo.pl: tools/nut-usbinfo.pl, nut-scanner: extend to track alt_driver_names in generated config suggestions
  • tools/nut-usbinfo.pl: track all suitable driver names (in comments)

2.280. 2023-11-05 Kelly Byrd <kbyrd@memcpy.com>

  • drivers/libusb0.c, drivers/libusb1.c, drivers/nut_libusb.h, drivers/usb-common.h: Add usb_config_index to usb_communication_subdriver_s, default to 0. The tactical goal of this change is to change ret = libusb_get_config_descriptor(device, (uint8_t)usb_subdriver.hid_rep_index, &conf_desc); to ret = libusb_get_config_descriptor(device, (uint8_t)usb_subdriver.usb_config_index, &conf_desc); Before this change, libusb1.c did libusb_get_config_descriptor() with a config index equal to the interface number. For composite devices using an interface index > 0, this is usally the wrong choice. Concretely, I’m using an Arduino for a DIY UPS project and these are composite devices with multiple interfaces under the first (and only) config descriptor. In the USB descriptor heirarchy, deivce descriptors have config descriptors which have interface descriptors. Also, nearly all USB devices have a single configuration (index 0). In order to do this, I added a new member alongside the existing hid_rep_idex and hid_desc_index. I chose to do this instead of using the add_var method because this member is used in places in very similar ways to how hid_rep_index and hid_desc_index is used. This new member defaults to 0 which covers the majority of USB devices. Any future subdriver is able to use this if a device requires it. For existing subdrives, we’ll just use an index of 0. I also changed some debug logging to print out the config index where the code was already printing the interface index.

2.281. 2023-11-06 Jim Klimov <jim@jimklimov.com>

  • configure.ac: quiece -Wincompatible-function-pointer-types-strict for clang-17 on some platforms [#823]

2.282. 2023-11-05 Fabrice Fontaine <fontaine.fabrice@gmail.com>

  • m4/nut_check_python.m4: allow overriding of PYTHON{2,3}_SITE_PACKAGES Allow the end-user to override PYTHON{2,3}_SITE_PACKAGES as this can be useful when cross-compiling

2.283. 2023-11-03 Fabrice Fontaine <fontaine.fabrice@gmail.com>

  • m4/nut_compiler_family.m4: fix cross-compilation Do not use isystem with host paths when cross-compiling

2.284. 2023-11-02 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: nut_enable_inplace_runtime: pass libexecdir if specified
  • docs/man/upsmon.txt: avoid characters (some unicode space) that some versions of asciidoc dislike
  • NEWS.adoc, docs/nut.dict, lib/libnutclientstub.pc.in: Clarify what is libnutclientstub
  • docs/config-prereqs.txt, docs/nut.dict: clarify about /dev/shm and noexec option [#2143 follow-up]
  • docs/config-prereqs.txt: small fixes to Slackware 15 chapter [#2143 follow-up]
  • docs/man/al175.txt, docs/man/apc_modbus.txt, docs/man/apcupsd-ups.txt, docs/man/asem.txt, docs/man/bcmxcp.txt, docs/man/bcmxcp_usb.txt, docs/man/belkin.txt, docs/man/belkinunv.txt, docs/man/bestfcom.txt, docs/man/bestfortress.txt, docs/man/bestuferrups.txt, docs/man/bestups.txt, docs/man/blazer_ser.txt, docs/man/blazer_usb.txt, docs/man/clone.txt, docs/man/dummy-ups.txt, docs/man/etapro.txt, docs/man/everups.txt, docs/man/gamatronic.txt, docs/man/genericups.txt, docs/man/isbmex.txt, docs/man/ivtscd.txt, docs/man/liebert-esp2.txt, docs/man/liebert.txt, docs/man/macosx-ups.txt, docs/man/masterguard.txt, docs/man/metasys.txt, docs/man/microdowell.txt, docs/man/microsol-apc.txt, docs/man/netxml-ups.txt, docs/man/nutdrv_atcl_usb.txt, docs/man/nutdrv_qx.txt, docs/man/nutdrv_siemens_sitop.txt, docs/man/oneac.txt, docs/man/optiups.txt, docs/man/pijuice.txt, docs/man/powercom.txt, docs/man/powerpanel.txt, docs/man/rhino.txt, docs/man/richcomm_usb.txt, docs/man/safenet.txt, docs/man/skel.txt, docs/man/snmp-ups.txt, docs/man/solis.txt, docs/man/tripplite.txt, docs/man/tripplitesu.txt, docs/man/upscode2.txt, docs/man/usbhid-ups.txt, docs/man/victronups.txt: Fix man pages to have SYNOPSIS as the second section per standard
  • docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt: update about docbook-xml / linuxdoc-tools [#2142]
  • m4/nut_check_asciidoc.m4, configure.ac: separate A2X_MIN_VERSION from ASCIIDOC_MIN_VERSION [#2142]
  • docs/config-prereqs.txt, docs/nut.dict: add diffutils to Slackware baseline (not in default install)
  • scripts/Windows/Makefile.am: avoid "Using $< in a non-suffix rule context is a GNUmake idiom" for non-GNU makes
  • docs/Makefile.am: avoid "Using $< in a non-suffix rule context is a GNUmake idiom" for non-GNU makes
  • docs/config-prereqs.txt, docs/nut.dict: docs/nut.dict: update spellchecker to make older systems happy
  • configure.ac: dumb down the check for HAVE_WINDOWS_H to cater for older autotools

2.285. 2023-11-01 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/config-prereqs.txt, docs/nut.dict: add a chapter on Slackware 15 build environment - clarify Sotirov’s SlackPack
  • configure.ac: only define that we HAVE_WINDOWS if both the minimally required tools and headers are in place
  • m4/nut_check_headers_windows.m4: add automake conditionals for detected header files
  • docs/config-prereqs.txt, docs/nut.dict: add a chapter on Slackware 15 build environment - clarify Alien Slack Builds
  • docs/config-prereqs.txt, docs/nut.dict: add a chapter on Slackware 15 build environment
  • scripts/Windows/Makefile.am: limit binary builds to cases where we HAVE_WINDOWS [#2142]
  • docs/man/huawei-ups2000.txt, docs/man/liebert-esp2.txt: fix titles
  • configure.ac: bump AC_INIT to development version 2.8.1.1

2.286. 2023-10-31 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text before NUT v2.8.1 release" This reverts commit 909705233877a45953f9c739abd9bc8156a05627.
  • configure.ac: update AC_INIT for NUT v2.8.1 release
  • docs/configure.txt, scripts/Windows/README.adoc, scripts/Windows/build-mingw-nut.sh: update examples for NUT v2.8.1 release
  • appveyor.yml: update for NUT v2.8.1 release
  • docs/maintainer-guide.txt: revise procedures for NUT v2.8.1 release
  • docs/maintainer-guide.txt: update filenames to adjust for changes leading up to NUT v2.8.1 release
  • docs/docinfo.xml.in: set the date for NUT v2.8.1 release
  • NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text before NUT v2.8.1 release
  • ci_build.sh: for default developer builds without parameters, nowadays we should have default warnings active and fatal
  • tests/NIT/nit.sh: take advantage of NUT_QUIET_INIT_UPSNOTIFY=true [#2136]
  • scripts/Windows/Installer/README.adoc: add initial notes on the NUT for Windows Installer [#1485]
  • scripts/Windows/build-mingw-nut.sh: handle optional cgi-bin location and lack of NUT libs among system dependencies more eloquently (WRT build log)
  • scripts/Windows/build-mingw-nut.sh: allow caller to customize WINDIR, TOP_DIR, BUILD_DIR and INSTALL_DIR
  • scripts/Windows/build-mingw-nut.sh: double-quote path variables
  • scripts/Windows/build-mingw-nut.sh: handle optional cgi-bin location more eloquently (WRT build log)
  • INSTALL.nut.adoc, NEWS.adoc, appveyor.yml, ci_build.sh, docs/config-prereqs.txt, scripts/Windows/Makefile.am, scripts/Windows/{README ⇒ README.adoc}, scripts/Windows/build-mingw-prereqs.sh: Rename scripts/Windows/README ⇒ scripts/Windows/README.adoc

2.287. 2023-10-30 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac, scripts/Windows/Installer/.gitignore, scripts/Windows/Installer/{NUT-Installer.xml ⇒ NUT-Installer.xml.in}: scripts/Windows/Installer/NUT-Installer.xml: make it a .in template and substitute NUT PACKAGE_VERSION

2.288. 2023-10-31 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/apc_modbus.txt: update the man page with caveats applicable at the publication time (Oct 2023) [#2063 follow-up]

2.289. 2023-10-30 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsc.c: typo fix in self-identification message
  • drivers/upsdrvctl.c: fix formatting string for wstat debug-print [#2135]
  • NEWS.adoc, drivers/riello.c, drivers/riello_ser.c, drivers/riello_usb.c: drivers/riello*.c: fix back bit maths changed with #1106
  • UPGRADING.adoc: revise envvars that tweak specific message verbosity

2.290. 2023-10-29 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/upsdrvctl.c: trace (and timestamp) the exit paths from tool [#2135]
  • scripts/Aix/nut.init.in, scripts/HP-UX/nut-drvctl.sh, scripts/HP-UX/nut-upsd.sh, scripts/HP-UX/nut-upsmon.sh, scripts/RedHat/upsd.in, scripts/RedHat/upsmon.in, scripts/Solaris/nut.in, scripts/Solaris/svc-nut-monitor.in, scripts/Solaris/svc-nut-server.in, scripts/Solaris8/S99upsmon: Suggest NUT_QUIET_INIT_UPSNOTIFY=true in sample init-scripts [#2136]
  • common/common.c, NEWS.adoc, docs/nut.dict: support NUT_QUIET_INIT_UPSNOTIFY envvar to hide upsnotify "failed…will not spam more" messages [#2136]
  • drivers/upsdrvctl.c: differentiate waitpid(…, WNOHANG) returns of "-1" vs "0" [#2135]
  • drivers/upsdrvctl.c: make use of return value from execv()
  • drivers/upsdrvctl.c: trace-debug the waitpid() return info
  • drivers/upsdrvctl.c: forkexec(): fix comments and whitespaces
  • drivers/upsdrvctl.c: forkexec(): fix return type of waitpid()
  • drivers/upsdrvctl.c: do not treat a driver initialization timeout as immediate error for upsdrvctl exit code - review the results again [#2134]

2.291. 2023-10-28 Jim Klimov <jimklimov+nut@gmail.com>

  • conf/ups.conf.sample, docs/man/ups.conf.txt: further clarify behavior of maxstartdelay [#2134]
  • conf/ups.conf.sample, docs/man/ups.conf.txt: clarify behavior of maxstartdelay [#2134]
  • clients/upsmon.c: Revert "clients/upsmon.c: remove doshutdown() attributenoreturn annotation, now it can [#2133]" This reverts commit 2e7263812b4f97cb0d667550e0e660ab50c2ed9e.
  • NEWS.adoc, clients/upsmon.c, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt: clients/upsmon.c et al: adjust definition of SHUTDOWNEXIT to allow a finite delay between SHUTDOWNCMD and exit() [#2133]
  • clients/upsmon.c: remove doshutdown() attributenoreturn annotation, now it can [#2133]

2.292. 2023-10-27 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, clients/upsmon.c, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/nut.dict: clients/upsmon.c et al: introduce SHUTDOWNEXIT boolean option [#2133]

2.293. 2023-10-26 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: update list of dummy-ups improvements for NUT v2.8.1

2.294. 2023-10-26 desertwitch <24509509+desertwitch@users.noreply.github.com>

  • NEWS.adoc: reference respective PR for repeater_disable_strict_start option
  • drivers/dummy-ups.c, docs/man/dummy-ups.txt, NEWS.adoc: introduce repeater_disable_strict_start config option

2.295. 2023-10-25 desertwitch <24509509+desertwitch@users.noreply.github.com>

  • drivers/dummy-ups.c: relax error handling to prevent premature driver termination

2.296. 2023-10-25 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apcsmart.c: apc_getcaps(): revert to behavior like in NUT v2.7.4 about invalid nument/entlen value(s) [#1941]
  • drivers/apcsmart-old.c: fix DRIVER_NAME to reflect "old"ness of this driver

2.297. 2023-10-24 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apcsmart-old.c: do_capabilities(): revert to behavior like in NUT v2.7.4 about invalid nument/entlen value(s) [#1941]
  • Jenkinsfile-dynamatrix: leave "enableDebugTraceGithubStatusHighlights=true" default just for fightwarn-like branches

2.298. 2023-10-24 desertwitch <24509509+desertwitch@users.noreply.github.com>

  • clients/upsmon.c: debug msgs for possible FSD conditions on conn drop
  • clients/upsmon.c: sanity check status for debug msg on conn drop
  • clients/upsmon.c: print last remembered line state in connection drop debug msg

2.299. 2023-10-23 desertwitch <24509509+desertwitch@users.noreply.github.com>

  • clients/upsmon.c: keep last UPS linestate on drop_connection

2.300. 2023-10-21 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: add a dynamatrixGlobalState.enableDebugTraceGithubStatusHighlights toggle

2.301. 2023-10-11 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: enable @Library(jenkins-dynamatrix@) notation for custom-built plugin on NUT CI farm

2.302. 2023-10-21 Axel Gembe <axel@gembe.net>

  • drivers/apc_modbus.c: apc_modbus: Add an early exit if a USB regex is non-zero A minuscule optimization.
  • drivers/apc_modbus.c: apc_modbus: Use snprintf instead of strncpy strncpy does not necessarily zero terminate the buffer so we replace it with snprintf and add error checking. This also fixes an off-by-one in the snprintf error checking of the _apc_modbus_double_to_nut and _apc_modbus_power_to_nut functions and adds error checking to every snprintf call.
  • drivers/apc_modbus.c, drivers/apcsmart.c, drivers/belkinunv.c, drivers/openups-hid.c, drivers/optiups.c, drivers/tripplitesu.c, include/common.h, tests/getvaluetest.c: Add SIZEOF_ARRAY macro and use where applicable This adds a new SIZEOF_ARRAY to common.h and changes some code to use it.

2.303. 2023-09-30 Axel Gembe <axel@gembe.net>

  • AUTHORS, data/driver.list.in, docs/man/Makefile.am, docs/man/apc_modbus.txt, docs/nut.dict, drivers/Makefile.am, drivers/apc_modbus.c, m4/nut_check_libmodbus.m4, tools/nut-usbinfo.pl: apc_modbus: Support for APC Modbus protocol This adds a new driver called apc_modbus to support the APC Modbus protocol over serial ports, TCP connections and USB ports. For USB support to work it needs a [patched libmodbus that has support for the APC USB Modbus encapsulation](https://github.com/EchterAgo/libmodbus/commits/rtu_usb). If a libmodbus without USB support is detected the driver will build with just the serial and TCP/IP support.

2.304. 2023-10-19 Jim Klimov <jimklimov+nut@gmail.com>

  • .gitignore: GitIgnore .ci*.txt* if some are left over in the NUT CI farm work area
  • .gitignore: GitIgnore .ci*.txt* if some are left over in the NUT CI farm work area
  • tests/NIT/nit.sh: avoid printing "Error:…" in successful cases This confuses CI log analyzer

2.305. 2023-10-18 Axel Gembe <axel@gembe.net>

  • tools/nut-usbinfo.pl: nut_usbinfo.pl: Lowercase the USB ids before inserting If we don’t normalize the case before inserting VID/PID/Driver into $vendor we can have duplicate entries.

2.306. 2023-10-18 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: testcase_sandbox_nutscanner_list(): fix reporting
  • report why a test case failed sanity-checks; * avoid grep output spilling to test log to avoid confusion; * revise that exactly expected port count was seen (that was the confusion); * use log_*() in that sanity-check block
  • tests/NIT/nit.sh: tag more progress messages with respective testcase; revise upsd stopping after testcase_upsd_allow_no_device()
  • tests/NIT/nit.sh: use log_separator() before sandbox_forget_configs() in testgroup*()
  • tests/NIT/nit.sh: use NUT_DEBUG_PID envvar to help test-log readability
  • NEWS.adoc, UPGRADING.adoc, common/common.c: common/common.c: optionally support NUT_DEBUG_PID envvar presence to include PID number in debug-level identifiers
  • tests/NIT/nit.sh: sandbox_start_drivers(): report success or failure
  • tests/NIT/nit.sh: report driver PIDs when debugging
  • tests/NIT/nit.sh: tag progress/report messages emitted by test cases to help log readability
  • tests/NIT/nit.sh: testcase_sandbox_start_drivers_after_upsd(): fix matching expression and explain why
  • tests/NIT/nit.sh: testcase_sandbox_start_drivers_after_upsd(): bump timeout and explain why
  • tests/NIT/nit.sh: better filter the processes we look at after sandbox_start_drivers() if debugging
  • drivers/dummy-ups.c: bump © and version due to recent changes
  • drivers/dummy-ups.c: avoid blank line in debug logs
  • drivers/dummy-ups.c: refactor prepare_filepath() into one helper method
  • drivers/dummy-ups.c: use better-qualified "fn" rather than potentially short "device_path" to stat the paths
  • drivers/dummy-ups.c: clarify that "upsfd" is not really used in file-based dummy-ups; check for invalid FD for good measure (to avoid fstat() on that)
  • drivers/dummy-ups.c: reconcile method prototype with implem
  • drivers/dummy-ups.c: clarify a nested if/elif/… tree
  • drivers/dummy-ups.c: clarify some debug messages
  • configure.ac: relax the check warning for gmtime_[rs] and localtime_[rs] As long as we have one, it is okay Closes: #2115
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: handle service dependencies for apc_modbus [#139, #2063]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: update a comment
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: revise service dependencies for apcupsd-ups relay driver
  • NEWS.adoc: announce the new apc_modbus driver [#139, #2063]

2.307. 2023-10-17 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/libusb1.c: nut_libusb_open(): do not keep Bus/Device/BusPort pointers to random malloc() block if we did not get a number to print there from libusb Avoid (un-)pretty prints like: 0.031364 [D2] - Bus: 006 0.031366 [D2] - Bus Port: ▒UV▒▒U 0.031368 [D2] - Device: 001

2.308. 2023-10-16 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsmon.c: clients/upsmon.{c,h}: refactor restoring pollfreq (from alert to normal) [#2108]
  • clients/upsmon.c, clients/upsmon.h: clients/upsmon.{c,h}: untie OFF/BYPASS states from ONLINE/ONBATT and linestate attr [#2108]
  • data/cmdvartab: define descriptions for recently added commands and variables [#2112]
  • m4/ax_run_or_link_ifelse.m4: revise to only impose gcc/clang warning option requirements into compilers that identify as GCC or CLANG [#2096 fallout]
  • m4/ax_run_or_link_ifelse.m4: C+\+ does not support -Werror=implicit-function-declaration [#2109, #2096 fallout]
  • include/str.h, m4/ax_c_pragmas.m4, tests/Makefile.am: Refactor uses of HAVE_PRINTF_STRING_NULL vs. REQUIRE_NUT_STRARG for printf("%s", NULL) support [#2109]
  • m4/ax_c_pragmas.m4, configure.ac: merge two tests for printf("%s", NULL) [#2109]
  • m4/ax_c_pragmas.m4: extend AX_C_PRINTF_STRING_NULL with use of AX_RUN_OR_LINK_IFELSE option to ignore certain warnings [#2109]
  • configure.ac: fix logged output of inet_pton() test
  • m4/ax_run_or_link_ifelse.m4: extend with options to customize CFLAGS and CXXFLAGS [#2109]
  • drivers/usbhid-ups.c, docs/man/usbhid-ups.txt, NEWS.adoc: introduce onlinedischarge_calibration config option [#2104]

2.309. 2023-10-15 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: Update NEWS.adoc: clarify wording
  • clients/upsmon.c: revise is_ups_critical() with OFF, BYPASS and CAL considerations [#2104]
  • clients/upsmon.c: reword a message for critically lost primary UPS
  • NEWS.adoc, clients/upsmon.c, clients/upsmon.h, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/nut.dict: clients/upsmon.c et al: introduce OFFDURATION config toggle [#2104]
  • drivers/usbhid-ups.c: set CAL status before reporting other possibly critical power states [#2104, #2044, fallout of #2055]

2.310. 2023-10-13 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/sms_ser.txt: update some wording
  • NEWS.adoc: sms_ser introduced [#2090]

2.311. 2023-10-12 Jim Klimov <jimklimov@gmail.com>

  • drivers/tripplite_usb.c: avoid varname shadowing
  • drivers/sms_ser.c: use explicit void in function prototypes
  • NEWS.adoc: tripplite_usb allows upsid setting [#2075]
  • drivers/tripplite_usb.c: cosmetic fixes (whitespace)

2.312. 2023-10-11 sapireli <114778791+sapireli@users.noreply.github.com>

  • drivers/tripplite_usb.c: @jimklimov my apologies please dont kill me for closing the pull request just saw your typo fix on the old one implemented it here.
  • docs/man/tripplite_usb.txt, docs/nut.dict, drivers/tripplite_usb.c: @jimklimov my apologies i royally screwed up the pull request with a rebase. I just started a new to have a clean slate scnario. also added the NUT_UNUSED_VARIABLE per your recommendation. tripplite_usb.c Added UPS ID (upsid) Support: The code now includes support for matching and uniquely identifying UPS devices using the UPS ID (upsid). The upsid configuration option has been added, which accepts a regular expression to match the UPS ID string. This was done by adding a new function called match_by_unitid, that reads the upsid from the config file, then reads the upsid from the device, and checks if they match. This function is now passed to the comm_driver matcher on first connect and reconnects. Added the upsid to the upsdrv_makevartable function so it is read and stored from the config file. tripplite_usb.txt Updated Documentation: The driver documentation was updated to reflect the new functionality. The "EXTRA ARGUMENTS" section now includes information about the upsid configuration option, and how to set it. thank you to @jimklimov for pointing me in the right direction and hand holding.

2.313. 2023-10-10 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsclient.c, server/netssl.c, m4/ax_c_pragmas.m4: hush -Wcast-function-type-strict due to void* vs. practical pointers with NSS method pointers [#2084]
  • tests/generic_gpio_utest.c: cosmetic fixes
  • tests/generic_gpio_utest.c: avoid "error: variable might be clobbered by longjmp or vfork" [#2092]
  • data/driver.list.in: add CP1350PFCLCD

2.314. 2023-10-10 Clappier, Eric <EricClappier@eaton.com>

  • drivers/compaq-mib.c: Fix issues in compaq mib

2.315. 2023-10-10 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/Makefile.am: refer to nutlogtest$(EXEEXT) for clarity in dependencies

2.316. 2023-10-09 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/nutlogtest.c: revise include statements

2.317. 2023-10-08 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/main.c: follow TOCTOU analysis suggestions about file permissions check and enforcement

2.318. 2023-10-08 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update nut.dict for PR #2090

2.319. 2023-10-08 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: hush down groovy debug verbosity, use BRANCH_NAME patterns as the default toggle to be loud and slow

2.320. 2023-10-08 Alex W Baulé <alexwbaule@gmail.com>

  • docs/man/Makefile.am, docs/man/sms_ser.txt: Add man file and update Makefile.am

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

  • tests/generic_gpio_utest.c: avoid NULL deref in printf() on some platforms
  • Jenkinsfile-dynamatrix: warn about lack of dynacfgPipeline.configureEnvvars when we "Investigate envvars"

2.322. 2023-10-06 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: enable tracing for fightwarn branches

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

  • drivers/sms_ser.h: drivers/sms_ser.c: fix use of methods without a prototype - expose in header
  • drivers/sms_ser.c: Revert "drivers/sms_ser.c: fix use of methods without a prototype - make them static" This reverts commit 8de11079a80754af38ad67524009003028a6912e to try a different approach.
  • drivers/sms_ser.c: fix use of methods without a prototype - make them static
  • drivers/sms_ser.c: fix mixing of "unsigned int" and "long" delays
  • drivers/sms_ser.c: fix printf(ssize_t)
  • drivers/Makefile.am: "dist" the new sms_ser.h header

2.324. 2023-10-06 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/generic_gpio_utest.c: more fscanf() width warnings

2.325. 2023-10-06 Jim Klimov <jimklimov@gmail.com>

  • NEWS.adoc: optiups fixes [#2089]

2.326. 2023-10-05 Jim Klimov <jimklimov@gmail.com>

  • drivers/optiups.c: Shuffle lines to keep declarations before operations

2.327. 2023-10-05 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am: bail out of spellcheck of empty SPELLCHECK_SRC_ONE filenames Sometimes we get this: Makefile:1216: update target asciidoc-vars.conf due to: asciidoc-vars.conf-spellchecked rm -f "asciidoc-vars.conf" |\| true ; \ echo " ASPELL Spell checking on ./"; \ … touch "asciidoc-vars.conf" ASPELL Spell checking on ./ sed: read error on stdin: Is a directory Only seen for "asciidoc-vars.conf" so far: :; git checkout -f ; touch docs/asciidoc-vars.conf ; make spellcheck ; clear ; make dist -j 20 --trace V=1

2.328. 2023-10-05 moonbuggy <3319867+moonbuggy@users.noreply.github.com>

  • drivers/optiups.c: use str_to_short() instead of atoi()

2.329. 2023-10-05 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/Makefile.am: fix EXTRA_DIST of driver man page sources even if the build was configured for just some subset of drivers [#2081]
  • drivers/apcupsd-ups.c: use detected availability of struct pollfd to define or not the fallback
  • configure.ac: detect availability of struct pollfd
  • m4/ax_run_or_link_ifelse.m4: make more effort to detect undefined-ness of methods
  • include/wincompat.h: comment correct portable arg type for inet_ntop()

2.330. 2023-10-03 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apcupsd-ups.c: port bits of poll.h to have this buildable on older WIN32
  • common/wincompat.c, configure.ac, include/wincompat.h, tools/nut-scanner/scan_xml_http.c: Add a fallback inet_ntop() implementation Needed for tools/nut-scanner/scan_xml_http.c on MinGW cross-builds
  • drivers/clone.c: fix casting warnings
  • drivers/upsdrvquery.c: fix casting warnings
  • drivers/main.c: fix cmdret=upsdrvquery_oneshot() as a generally ssize_t value
  • drivers/main.c: fix indentation
  • drivers/main.c: fix portability of chown() used as chgrp() Initial implementation passed -1 as uid to have it not changed. Not all OSes support that behavior.
  • drivers/dummy-ups.c: fix casting warnings
  • clients/upssched.c: fix casting warnings
  • common/common.c: fix casting warnings
  • tests/generic_gpio_utest.c: fix warnings about formatting strings

2.331. 2023-10-02 Jim Klimov <jimklimov+nut@gmail.com>

  • Jenkinsfile-dynamatrix: default a MAKE=make envvar if somehow missing (strange bug for autotools build scenarios)
  • Jenkinsfile-dynamatrix: default a MAKE=make envvar if somehow missing (strange bug for autotools build scenarios)

2.332. 2023-10-05 moonbuggy <3319867+moonbuggy@users.noreply.github.com>

  • drivers/optiups.c: use short instead of long/float

2.333. 2023-10-04 Alex W Baulé <alexwbaule@gmail.com>

  • docs/sms-brazil-protocol.txt, drivers/Makefile.am, drivers/sms_ser.c, drivers/sms_ser.h: add support to SMS 1phase brazil from #1987 Tested on Nobreak SMS PREMIUM 1500 VA (with WiFi) and M3 Senoidal.

2.334. 2023-10-05 moonbuggy <3319867+moonbuggy@users.noreply.github.com>

  • data/driver.list.in: updated driver.list.in

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

  • common/common.c: upsnotify(): make first/only notification faults visible They can be important for troubleshooting, e.g. services that rely on sd_notify() but never get the READY message would loop in restarts.
  • clients/Makefile.am: refactor definitions of LDADD_FULL and LDADD_CLIENT for easier reuse upsmon is a daemon with systemd notify among other things, and uses the full libcommon upssched should suffice with the client version
  • docs/configure.txt, docs/nut.dict: docs/configure.txt: document --libexecdir
  • scripts/systemd/nutshutdown.in: also log critical progress messages to /dev/console if available (and not-quiet mode)

2.336. 2023-10-04 moonbuggy <3319867+moonbuggy@users.noreply.github.com>

  • drivers/optiups.c: correct voltages for Opti-UPS 230V AC models; correct battery capacity for 24V models

2.337. 2023-10-04 Axel Gembe <axel@gembe.net>

  • configure.ac: Fix out of source tree builds The code to detect the available drivers does so by parsing Makefile.am but it does not do so relative to "$srcdir" so trying to do a configure outside of the source directory will fail.

2.338. 2023-10-03 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: update for nut-website additions

2.339. 2023-10-02 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am: avoid defining "check-local" target twice to include optional "spellcheck", not all tools like that [#2081]
  • scripts/systemd/nutshutdown.in: simplify with sourcing of the optional config file
  • scripts/systemd/nutshutdown.in: make it useful for NUT clients (which shut down and may want to avoid power races)

2.340. 2023-10-01 Jim Klimov <jimklimov+nut@gmail.com>

  • conf/nut.conf.sample, docs/man/nut.conf.txt, docs/nut.dict, scripts/systemd/nutshutdown.in: Introduce POWEROFF_QUIET for nutshutdown et al
  • docs/man/nut.conf.txt: document ALLOW_NO_DEVICE setting
  • conf/nut.conf.sample: document other options currently highlighted in the man page
  • conf/nut.conf.sample: fixup! conf/nut.conf.sample: update existing comments
  • conf/nut.conf.sample: refer to man nut.conf for more info
  • conf/nut.conf.sample: update existing comments
  • scripts/systemd/nutshutdown.in: update indentations and comments
  • scripts/systemd/nutshutdown.in: fixup! scripts/systemd/nutshutdown.in: add copyright header, update practical comments
  • configure.ac, scripts/systemd/nut-driver-enumerator.path.in, scripts/systemd/nut-driver-enumerator.service.in, scripts/systemd/nut-driver.target, scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in, scripts/systemd/nut.target: scripts/systemd/*.in: add short copyright header to unit files
  • scripts/systemd/nutshutdown.in: add copyright header, update practical comments

2.341. 2023-10-02 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/generic_gpio_liblocal.c, tests/generic_gpio_utest.c: tests/generic_gpio_*.c: fix clang warnings [#823]
  • drivers/snmp-ups.c: fix the dangling pointer warning some compilers have found [#823]

2.342. 2023-09-30 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: nut_prepare_search_paths(): use realpath() where available, and so xstrdup()/free() in general [#317]
  • NEWS.adoc, common/common.c, include/common.h, tools/nut-scanner/Makefile.am, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-init.c: common, nut-scanner: Introduce nut_prepare_search_paths() to pre-filter the usable set [#317]
  • tools/nut-scanner/nutscan-ip.c: WIN32 builds require WSAStartup() before getaddrinfo() et al
  • tools/nut-scanner/nutscan-ip.c: trace getaddrinfo() failures
  • tests/NIT/nit.sh: consider an empty output of nut-scanner an error (to retry from one mode to another)
  • tools/nut-scanner/nut-scanner.c: typo (lacking newline) in an usage message
  • NEWS.adoc, common/common.c: common/common.c: vupslogx(): dynamically adjust the needed buffer size for longer printouts, e.g. PATH in upsdebugx_report_search_paths() [#317]
  • common/common.c: vupslog(): stash errno value at start of method, so later calls do not corrupt what we want to report; fix declarations-on-top for windows builds
  • common/common.c: fix get_libname_in_pathset() increment of checked-directory counter Be sure to bump the number, not the pointer!
  • common/common.c: fix get_libname_in_pathset() mutilating the input pathset string It was unexpected to see just one entry in getenv("PATH") after the first loop…
  • configure.ac, common/common.c: search_paths[]: introduce MULTIARCH_TARGET_ALIAS as/if suggested by compiler [#317]
  • common/common.c: vupslog(): print timestamp\+buf in one operation
  • common/common.c: extend upsdebugx_report_search_paths() to follow actual search order of get_libname() with more locations possibly checked [#317]
  • common/common.c: comment about peculiarities of search_paths[] contents [#317]
  • NEWS.adoc, UPGRADING.adoc, tools/nut-scanner/Makefile.am, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-init.c: nut-scanner: use upsdebugx_report_search_paths() [#317] Also bumps public API version of libnutscan due to added symbol.
  • common/common.c, include/common.h: common.{c,h}: introduce upsdebugx_report_search_paths() [#317]
  • data/driver.list.in: leave a note about Riello Netman "not-plus" SNMP card naming [#1878]

2.343. 2023-09-21 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut-names.txt: clarify that the tables of short SPEC names is just a component in longer phase-aware naming scheme
  • docs/nut-names.txt: add a section to define and discuss Structured naming
  • ci_build.sh: only impose GNU make as default if spellchecking via script

2.344. 2023-09-20 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: define MAKE=… fallback default in one place
  • ci_build.sh: --disable-spellcheck in many default BUILD_TYPE=… scenarios geared towards binary builds and checks (do not waste time on aspell in matrix checking loops) [#2065]
  • ci_build.sh: make sure our MAKE envvar is defined and not empty - in all cases [jenkins-dynamatrix#24]

2.345. 2023-09-20 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: update dictionary for nut-website changes

2.346. 2023-09-19 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/usb-common.c: make sure to have settings like HAVE_LIBREGEX visible when processing other headers [#1369]
  • drivers/usbhid-ups.c: fix visibility of vars used only in builds with HAVE_LIBREGEX [#1369]
  • docs/developers.txt, docs/nut.dict: clarify that NUT_UNUSED_VARIABLE goes after variable declarations, add chapter headings, revise some text [#2056]
  • docs/Makefile.am: fix ChangeLog.adoc preparation for OpenBSD make [#1953]
  • conf/Makefile.am, data/Makefile.am, docs/Makefile.am, docs/man/Makefile.am: */Makefile.am: spellcheck targets: differentiate SPELLCHECK_SRCDIR vs. SPELLCHECK_BUILDDIR [#2067]
  • docs/Makefile.am: EXTRA_DIST asciidoc-vars.conf [#1953]
  • Makefile.am: Introduce LICENSE-DCO into the source codebase [#1994]
  • configure.ac: configure: fix handling of --enable-cppcheck
  • NEWS.adoc, UPGRADING.adoc, configure.ac, docs/Makefile.am, docs/configure.txt: configure.ac: introduce --enable-spellcheck to have it as part of "make check" where available [#2067]
  • configure.ac, m4/nut_check_asciidoc.m4, m4/nut_check_aspell.m4: externalize detection of aspell tool and ability
  • m4/nut_check_asciidoc.m4: consider a separate ASPELL_FILTER_SHARE_PATH [#2065]
  • appveyor.yml: enable spellchecks [#2065]
  • m4/nut_check_asciidoc.m4: if there is no "tex.amf", do not yield a useless ASPELL_FILTER_TEX_PATH (e.g. ".") [#2065]
  • docs/man/nut_usb_addvars.txt, docs/nut.dict: docs/man/nut_usb_addvars.txt: clarify where "busport" can be verified in the OS [#2043]
  • m4/nut_check_asciidoc.m4, docs/Makefile.am: cater to different ways of packaging aspell with ASPELL_FILTER_TEX_PATH [#2065]

2.347. 2023-09-18 Jim Klimov <jimklimov+nut@gmail.com>

  • .gitignore: GitIgnore leftover conf1234.file patterns
  • m4/nut_check_asciidoc.m4, docs/Makefile.am: detect and use ASPELL_FILTER_PATH where available Thanks to https://github.com/msys2/MSYS2-packages/issues/2088 for hints
  • drivers/nutdrv_qx.c, docs/man/nutdrv_qx.txt: list available "protocol" setting values in command-line usage request (--help) [#1369]
  • drivers/usbhid-ups.c, docs/man/usbhid-ups.txt: list available "subdriver" setting values in command-line usage request (--help) [#1369]
  • docs/man/nutdrv_qx.txt, docs/man/usbhid-ups.txt: update man page notes about subdriver settings [#1369]
  • m4/nut_check_libregex.m4: avoid using cached reply for the absent library name, when checking for -lregex

2.348. 2023-09-18 Jim Klimov <jimklimov@gmail.com>

  • drivers/Makefile.am: Update Makefile.am Steamline use of LIBREGEX_CFLAGS via AM_CFLAGS, same as others.
  • tools/nut-scanner/nutscan-display.c: fix report for "same serial in different devices"
  • tools/nut-scanner/nutscan-display.c: do not drop out after the first (non-NULL) report, let all complaints be known
  • tools/nut-scanner/nutscan-display.c: report trailing blanks in serial numbers
  • configure.ac: hush down some more clang "-Wextra" or "-Weverything" warnings that we can not really address [#2055, #823]

2.349. 2023-09-17 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/usbhid-ups.c: match_function_subdriver_name(): require (or recommend) vendorid/productid [#1369]
  • drivers/usbhid-ups.c: match_function_subdriver_name(): report the name of found USB HID subdriver [#1369]
  • drivers/usbhid-ups.c: match_function_subdriver_name(): automate use of regex "somename.*" [#1369]
  • NEWS.adoc, docs/man/usbhid-ups.txt, drivers/usbhid-ups.c: drivers/usbhid-ups.c: implement match_function_subdriver_name() for "subdriver" matching option; update docs about it [#1369]
  • clients/Makefile.am: build clients against libcommonclient.la (fewer link and run-time deps pulled), not libcommon.la
  • common/Makefile.am, common/common.c, drivers/usb-common.c, include/common.h: common.{c,h}: move here general REGEX helper methods from drivers/usb-common.{c,h} [#1369]
  • configure.ac, drivers/Makefile.am, m4/nut_check_libregex.m4, m4/nut_check_libusb.m4: m4/nut_check_libregex.m4: move detection from m4/nut_check_libusb.m4; adapt configure.ac and */Makefile.am accordingly

2.350. 2023-09-18 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: introduce initial clean-up shortcut (used if recipes change)

2.351. 2023-09-18 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update with words missing in some platform default dictionaries
  • NEWS.adoc, drivers/ever-hid.c: drivers/ever-hid.c: fix "powerfactor" without a namespace

2.352. 2023-09-18 Jim Klimov <jimklimov+nut@gmail.com>

  • .gitattributes: make sure docs/nut.dict is always LF (no CR)

2.353. 2023-09-17 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc, clients/cgilib.c, clients/upsclient.c, clients/upslog.c, clients/upsmon.c, clients/upsset.c, common/common.c, drivers/adelsystem_cbi.c, drivers/al175.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bestuferrups.c, drivers/blazer_usb.c, drivers/dstate.c, drivers/eaton-pdu-marlin-mib.c, drivers/ever-hid.c, drivers/generic_modbus.c, drivers/hidparser.c, drivers/hpe-pdu-mib.c, drivers/libusb0.c, drivers/mge-hid.c, drivers/mge-utalk.c, drivers/mge-xml.c, drivers/netxml-ups.c, drivers/nut-libfreeipmi.c, drivers/nutdrv_atcl_usb.c, drivers/nutdrv_qx.c, drivers/nutdrv_qx_ablerex.c, drivers/nutdrv_qx_bestups.c, drivers/nutdrv_qx_masterguard.c, drivers/nutdrv_siemens_sitop.c, drivers/phoenixcontact_modbus.c, drivers/pijuice.c, drivers/richcomm_usb.c, drivers/riello.c, drivers/riello_ser.c, drivers/riello_usb.c, drivers/snmp-ups.c, drivers/socomec_jbus.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upsdrvctl.c, drivers/upsdrvquery.c, server/netssl.c, server/upsd.c, tests/getvaluetest.c, tests/nuttimetest.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-device.c, tools/nut-scanner/nutscan-init.c, tools/nut-scanner/nutscan-ip.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: Fightwarn: numerous complaints from clang-15 [#823] Surprised that so many of these were not found sooner. Almost all fall into a few simple categories: * method(void) declared without a "void" * declarations after code NUT_UNUSED_VARIABLE() is code scoping in switch() cases * a few smartly detected unused variables ⇒ added reasonable use-cases (logging or better)
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: detect USB drivers by "busport" among config options [#2043]
  • scripts/augeas/nutupsmonconf.aug.in: update for new notification types [#2044 and before]

2.354. 2023-09-16 Jim Klimov <jimklimov+nut@gmail.com>

  • conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/man/upsmon.txt, docs/nut.dict: upsmon(.conf) docs and samples

    • update for new notification types [#2044 and before]
  • NEWS.adoc: upsmon now handles OFF and BYPASS states [#2044]
  • clients/upsmon.c, clients/upsmon.h: clients/upsmon.{c,h}: enhance with support of OFF and BYPASS state reporting (entry/exit) [#2044]
  • clients/upsmon.c, clients/upsmon.h: upsmon: add support for administrative "OFF" state [#2044] Based on patch by "Bomorav" posted at https://github.com/networkupstools/nut/issues/2044#issuecomment-1720752199
  • drivers/usbhid-ups.c: initialize BusPort where used [#2043]
  • drivers/libshut.h: update with formal support of "busport" (no-op for serial mode) [#2043]
  • tools/nut-scanner/scan_usb.c: add support for "busport" discovery where possible [#2043]
  • drivers/blazer_usb.c, drivers/libshut.c, drivers/libusb0.c, drivers/libusb1.c, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usb-common.c, drivers/usb-common.h, drivers/usbhid-ups.c: USB driver: adjust to WITH_USB_BUSPORT normally being always defined, just not always active [#2043]
  • m4/nut_check_libusb.m4: detect if we can support "busport" USB matching value [#2043]
  • docs/man/nut_usb_addvars.txt: fix markup for a NOTE about "device" value
  • docs/man/nut_usb_addvars.txt: add "busport" info [#2043]
  • docs/man/nut_usb_addvars.txt: fix typo about Linux path to usb device info
  • NEWS.adoc, docs/nut.dict: NEWS.adoc: document the addition of "busport" config option [#2043]
  • drivers/libusb0.c: use logging for bus port consistent with other USB-related libs [#2043]
  • drivers/libshut.c: avoid potential small memory leak
  • drivers/libshut.c: update with formal support of "busport" (no-op for serial mode) [#2043]
  • drivers/usb-common.c: constrain regex_matcher_data_t array size to USBMATCHER_REGEXP_ARRAY_LIMIT too (not a hardcoded number like before) [#2043]
  • drivers/blazer_usb.c, drivers/libusb0.c, drivers/libusb1.c, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usbhid-ups.c: USB drivers: bump versions due to new "busport" config option support; free the variables in order of definition (ease maintenance) [#2043]
  • drivers/blazer_usb.c, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/usbhid-ups.c: USB drivers: warn if "busport" is configured but will be ignored by current build [#2043]
  • drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: allow configuring "busport" in ups.conf always, just note it may be ignored in certain builds [#2043]
  • drivers/libusb1.c: allow configuring "busport" always, just note it may be ignored in certain builds [#2043]
  • drivers/libusb0.c: log a notice that BusPort==0 for libusb0 [#2043]
  • drivers/blazer_usb.c, drivers/libusb1.c, drivers/nutdrv_qx.c: Revise "ifdef" indentations
  • drivers/blazer_usb.c, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usb-common.c, drivers/usb-common.h, drivers/usbhid-ups.c: Rename REGEXP_ARRAY_LIMIT⇒USBMATCHER_REGEXP_ARRAY_LIMIT [#2043]

2.355. 2023-09-15 fa <wavebvg@gmail.com>

  • drivers/blazer_usb.c, drivers/libusb0.c, drivers/libusb1.c, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usb-common.c, drivers/usb-common.h, drivers/usbhid-ups.c: Update blazer_usb.c, libusb0.c, and 7 more files…

2.356. 2023-09-16 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: extend xstrdup() definition to return NULL if input was NULL (and log it) [#2052]
  • common/common.c: Revert "common/common.c: extend xbasename(), xstrdup() and xrealloc() definition to return NULL if input was NULL (and log it) [#2052]" This reverts commit 05610d1564c9ea75d7e10780e2c0f8973e5795ab. Seems to cause segfaults on its own, maybe something relied on older behavior (non-NULLs returned in case of bad inputs?) To investigate separately later…

2.357. 2023-09-14 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsclient.c: upscli_splitname(): add explicit checks for empty upsname and/or hostname[:port] parts, to report problems as such [#2052]
  • NEWS.adoc: update for issue #2052 fix
  • clients/upsclient.c: fix strdup()⇒xstrdup() to not segfault with bad inputs [#2052]
  • common/common.c: extend xbasename(), xstrdup() and xrealloc() definition to return NULL if input was NULL (and log it) [#2052]
  • docs/developers.txt: update links for SVN to Git migrations Thanks for Tomas Laurinavicius <tomas@saas.group> for the suggestion.

2.358. 2023-09-13 Jim Klimov <jimklimov@gmail.com>

  • UPGRADING.adoc: Update UPGRADING.adoc

2.359. 2023-09-13 Jim Klimov <jimklimov+nut@gmail.com>

  • Makefile.am, docs/Makefile.am: ensure clean-up of (now-)generated README file
  • UPGRADING.adoc: highlight changes to documentation source and delivered filenames [#1953]
  • README.adoc: Update NUT documentation sources with current docs/asciidoc-vars.conf: 7c5e90132 (2023-09-13)
  • docs/asciidoc-vars.conf: fence against re-definitions of website-url and (top_)(src\|build)dir attributes
  • docs/asciidoc-vars.conf: fence against duplicate includes
  • README.adoc: Update NUT documentation sources with current docs/asciidoc-vars.conf: 36f4f0334 (2023-09-13)
  • docs/asciidoc-vars.conf: update maintenance and reasoning comments
  • README.adoc: fix xref values for user-manual generation
  • .gitignore: GitIgnore /.vscode
  • configure.ac: revert AM_INIT_AUTOMAKE foreign option (may disable "portability checks" per GNU docs)
  • README.adoc, docs/Makefile.am, docs/asciidoc-vars.conf, docs/nut.dict: docs/nut.dict: update for new docs/asciidoc-vars.conf contents
  • README.adoc: Update NUT documentation sources with current docs/asciidoc-vars.conf: 234b70422 (2023-09-13)
  • README.adoc, docs/asciidoc-vars.conf: docs/asciidoc-vars.conf: finish the file with newline
  • docs/asciidoc-vars.conf: refer to make maintainer-asciidocs
  • README.adoc: mangle with "make maintainer-asciidocs"
  • .gitignore, Makefile.am, docs/.gitignore: Makefile.am: introduce "make maintainer-asciidocs" recipe
  • docs/asciidoc-vars.conf: prepare for GH_MARKUP_1095 workarounds
  • README.adoc: prepare for GH_MARKUP_1095 workarounds
  • docs/asciidoc-vars.conf: Revert "docs/asciidoc-vars.conf: define our attributes in a different syntactic fashion" This reverts commit 300942904bef0921bba382103c9c4b96cc1c5f04.
  • docs/asciidoc-vars.conf: Revert "docs/asciidoc-vars.conf: add a debug NOTE" This reverts commit 07a39b950b40857c8d8e5c806551e1c40278d3bb.
  • README.adoc: refer to top_srcdir first, it WILL be defined after the include
  • docs/asciidoc-vars.conf: add a debug NOTE
  • docs/asciidoc-vars.conf: define our attributes in a different syntactic fashion
  • README.adoc: avoid a blank line between document header and include::docs/asciidoc-vars.conf
  • docs/asciidoc-vars.conf: reshuffle and make it a single block of markup as far as asciidoc is concerned
  • README.adoc: move renderer-dependent attribute definitions into includable docs/asciidoc-vars.conf
  • docs/asciidoc-vars.conf: add an includable asciidoc file with renderer-dependent attribute definitions
  • docs/ChangeLog.txt, docs/Makefile.am, docs/man/Makefile.am, docs/man/index.txt, docs/man/nutupsdrv.txt, docs/man/upsd.txt, docs/release-notes.txt, docs/user-manual.txt: docs: in asciidoc markup (and relevant Makefile rules) require that the trailing slash is part of (top_)srcdir and (top_)builddir attributes, so empty values are non-toxic
  • Makefile.am: separate EXTRA_DIST for *.adoc and other filename patterns [#1953]
  • docs/history.txt: add "Backwards and Forwards Compatibility" chapter evicted from README.adoc

2.360. 2023-09-12 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: add (Eaton) IPM
  • docs/Makefile.am: adjust for BSD make implementation
  • .gitignore: GitIgnore .adoc.tmp leftovers, if present [#1953] Probably meaning a broken build, though…
  • .gitignore: GitIgnore old NEWS file by name [#1953]
  • NEWS.adoc, UPGRADING.adoc, docs/Makefile.am, docs/release-notes.txt: docs/release-notes.txt: include UPGRADING as a chapter - it is also release-related info [#1953]

2.361. 2023-09-11 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS.adoc: revise asciidoc markup for old-release entries [#1953]
  • NEWS.adoc: highlight documentation/recipe changes per #1953
  • docs/Makefile.am: specify "builddir" path to generated docinfo.xml, and just ship a copy [follow-up from #2046 and probably before]

2.362. 2023-09-11 Jim Klimov <jimklimov@gmail.com>

  • NEWS.adoc: change asciidoc link tag

2.363. 2023-09-11 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/Makefile.am: do not refer to generatable "../*.adoc-parsed" files via hardcoded ".."
  • .gitignore, NEWS.adoc, docs/ChangeLog.txt, docs/Makefile.am, docs/documentation.txt, docs/release-notes.txt, docs/user-manual.txt: Introduce buildable (HTML/PDF) release-notes and ChangeLog documents [#1953]
  • .gitignore, Makefile.am, NEWS.adoc, docs/Makefile.am, docs/user-manual.txt: Use *.adoc-parsed extension for post-processed asciidoc files used in rendering to HTML/PDF artifacts [#1953]
  • Makefile.am, NEWS ⇒ NEWS.adoc, autogen.sh, docs/Makefile.am: Convert NEWS ⇒ NEWS.adoc (basic section structure) and render it as release-notes (HTML, PDF) [#1953]
  • docs/Makefile.am: implement DOCBUILD_FILTER_GITHUB_LINKS [#1953]
  • .editorconfig, .gitignore, INSTALL.nut ⇒ INSTALL.nut.adoc, Makefile.am, TODO ⇒ TODO.adoc, UPGRADING ⇒ UPGRADING.adoc, docs/Makefile.am, docs/developer-guide.txt, docs/nut.dict, docs/security.txt, docs/user-manual.txt, lib/.gitignore, lib/Makefile.am, lib/{README ⇒ README.adoc}, scripts/Makefile.am, scripts/augeas/.gitignore, scripts/augeas/Makefile.am, scripts/augeas/{README ⇒ README.adoc}, scripts/ufw/.gitignore, scripts/ufw/Makefile.am, scripts/ufw/{README ⇒ README.adoc}, tools/nut-scanner/.gitignore, tools/nut-scanner/Makefile.am, tools/nut-scanner/{README ⇒ README.adoc}: Rename asciidoc-ready documentation sources to *.adoc [#1953 et al] Follows up from #226, #669 and facilitates #1953
  • UPGRADING: suggest --enable-option-checking=fatal for packagers
  • docs/docinfo.xml.in: populate remaining "refremark" fields up to (prospective) NUT v2.8.1 release [#2046]
  • docs/docinfo.xml.in, docs/docinfo.xml.sh: Revert "docs/docinfo.xml.sh: reference the NEWS file (GitHub URL for interactive PDFs) [#2046]" This reverts commit fa8721d98ee3031daed234d50643074e65a9c3a1 and changes for docinfo.xml.in applying it. Referencing the NEWS files for each release proved problematic: the revremark tag does not expect nested tags (like <a href> or even <p>).
  • docs/docinfo.xml.in: populate "refremark" fields [#2046]
  • docs/docinfo.xml.sh: reference the NEWS file (GitHub URL for interactive PDFs) [#2046]

2.364. 2023-09-11 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update nut.dict

2.365. 2023-09-10 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/docinfo.xml.in: update to list releases 2.6.1-2.8.0 missed before [#2046] First use of docinfo.xml.sh - looks decent
  • docs/.gitignore, docs/Makefile.am, docs/docinfo.xml.in, docs/docinfo.xml.sh, docs/maintainer-guide.txt: Introduce docs/docinfo.xml.sh to help maintain docinfo.xml.in (currently limited to ensuring presence of existing tags) [#2046]
  • tools/gitlog2changelog.py.in: bump ©
  • configure.ac, docs/docinfo.xml.in: use current NUT_SOURCE_GITREV for doc revision history if available
  • configure.ac: update comments
  • docs/docinfo.xml.in: update "current version (snapshot)" comment
  • docs/developer-guide.txt: update author list
  • docs/maintainer-guide.txt: update release procedure
  • docs/developers.txt, docs/nut.dict: docs/developers.txt: fix section-level warning, and add AppVeyor CI and CircleCI sections
  • docs/new-drivers.txt: cosmetix fix (indent)
  • docs/hid-subdrivers.txt, docs/nut.dict: docs/hid-subdrivers.txt: add a "screenshot" of rexx usage

2.366. 2023-09-07 Jim Klimov <jim@jimklimov.com>

  • drivers/cyberpower-mib.c: Update cyberpower-mib.c Bump version after #2041

2.367. 2023-09-06 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/cyberpower-mib.c: restore upsAdvanceControlUpsSleep as "shutdown.return" [follow-up from #2029]

2.368. 2023-09-05 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/main.c: comment why we do not solve VAR_SENSITIVE for override/default right now [#1891]
  • NEWS: formatting fix
  • drivers/snmp-ups.c, NEWS: clearer messages for skipped mib2nut mappings New message example: 0.001836 [D2] load_mib2nut: skip the "tripplite" entry from the mapping table which is not "ietf" (and which in turn is not "auto")
  • drivers/snmp-ups.c: add a TODO for multi-MIB approach [#2036]
  • drivers/blazer.c: fix typo in comment

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

  • drivers/nutdrv_qx.c: dial back down the batt.volt.high guesstimation to 130/120 of the nominal (back from experimental 150/120) [#1652]

2.370. 2023-09-02 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/blazer_ser.c, drivers/blazer_usb.c, drivers/nutdrv_qx.c: drivers/blazer_{ser,usb}.c, drivers/nutdrv_qx.c: re-bump driver versions since master versions moved while the PR #1652 was queued

2.371. 2022-09-14 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: comment that _GNU_SOURCE may be needed for strptime() detection

2.372. 2022-09-06 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/main.c: retain "driver.parameter.override.XXX" (and ".default.XXX") for troubleshooting [#1279]
  • drivers/libhid.c: log if we hit the "paranoia check" with inconsistent Max vs Min [#1512]

2.373. 2023-09-01 Jim Klimov <jimklimov+nut@gmail.com>

  • data/driver.list.in: Add APC SmartUPS 750 (SMT750I) reports [#1261]

2.374. 2023-08-31 Jim Klimov <jimklimov+nut@gmail.com>

  • data/driver.list.in: Add APC SmartUPS X 750 (USB) reports [#1261]
  • data/driver.list.in: Add APC SmartUPS SUA1000 (SNMP) reports [#1740]
  • data/driver.list.in: Add UltraMax 1000SC reports [nut#1634]
  • data/driver.list.in: Update PowerCool 1200 report nuances [#1539]
  • data/driver.list.in: Add UPSonic IRT-3K 2U [#441]
  • data/driver.list.in: Add Ippon Smart Power Pro II 1200/1600/… series [#701]

2.375. 2023-08-30 Jim Klimov <jimklimov+nut@gmail.com>

  • data/driver.list.in: Update Riello SNMP HCL names (no vendor in model name usually)
  • data/driver.list.in: Update Riello SER/USB/SNMP HCL per vendor report [#1878]
  • data/driver.list.in: Add FSP Fortron UPS Champ 1000VA, 2000VA and 3000VA Towers [nut-ddl#22, nut#1691, nut#1741, nut#1872] Closes: #1691 Closes: #1741 Closes: #1872
  • data/driver.list.in: Add APC Smart-UPS 3000 [nut-ddl#24]

2.376. 2023-08-30 Jim Klimov <jimklimov@gmail.com>

  • NEWS: fix for cyberpower-mib instcmd definitions [#2029]

2.377. 2023-08-30 Ross Williams <ross@ross-williams.net>

  • drivers/cyberpower-mib.c: Revert "cyberpower-mib: fix instant command declarations" This reverts commit 8bcf255b624e6ba6c89a2a3eeab37658d9cb8cb4. Cyberpower snmp_info_t got updated to conform with pre 5d97d07 instant commands layout, but got merged after it. Reverting 8bcf255 so that command values are correctly in su_info_t->dfl.

2.378. 2023-08-25 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/libshut.c: libshut_open(): calculate desc→wDescriptorLength differently (closer to what libusbX.c do and NUT v2.7.4 did); bump driver version [#2022]
  • drivers/libshut.c: libshut_open(): populate curDevice→Device to be on par with USB drivers (remember a copy of arg_device_path here)
  • drivers/libshut.c: libshut_open(): be sure that arg_device_path is not null
  • NEWS: fix for MGE SHUT broken by changes in 2.8.0 [#2022]
  • drivers/usbhid-ups.c: upsdrv_initups(): only report "Initializing an USB-connected UPS with library…" when not in SHUT_MODE [#2022]
  • drivers/libhid.c: HIDGetEvents(): be sure to not overflow sizeof(buf)
  • drivers/hidparser.h, drivers/libhid.c, drivers/libhid.h, drivers/mge-hid.c, drivers/usbhid-ups.c: Reword "#if(n)def SHUT_MODE" clauses, comment their "#else/#endif" parts [#2022]
  • drivers/hidparser.c, drivers/mge-hid.c, drivers/usbhid-ups.c: A few cosmetic fixes (typos, indents…)

2.379. 2023-08-17 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nutdrv_qx-subdrivers.txt, docs/nut.dict: fix some typos and update the dictionary [#2005]

2.380. 2023-08-13 Tomasz Fortuna <bla@thera.be>

  • NEWS, docs/nut.dict, docs/nutdrv_qx-subdrivers.txt: drivers/nutdrv_qx.c: Add documentation file. Document various possible transmissions. Might be required to construct testcases one day - adding new UPS shouldn’t cause regressions in older ones.

2.381. 2023-08-14 Jim Klimov <jimklimov+nut@gmail.com>

  • server/upsd.c: setuptcp(): when informing about possible IPv6/IPv4 "ANY" address listener conflict, consult actual state in "canhaveAnyV6" and not the possibility via "serverAnyV6!=null" [#2013]
  • server/upsd.c: setuptcp(): update big comment about "LISTEN *" nuances to match current logic; drop GitHub reference [#2013 review for #2012]
  • configure.ac: explicitly check for inet_ntop() support along with both AF_INET and AF_INET6 (we have IPv4 and IPv6 capability everywhere, right?) [#2012]
  • NEWS, UPGRADING: finish full sentences with a period [#2012]
  • server/upsd.c: setuptcp(): drop the trickery to get IPv4 first just to see if we can, then release it, then get IPv6 and then IPv4 again [#2013 review for #2012]
  • server/upsd.c: setuptcp(): drop commented-away optional sleep() [#2012]
  • server/upsd.c: simplify LISTEN * handling to not fiddle with optionality of require_IPV6_V6ONLY for one use-case [#2013 review, #2012]

2.382. 2023-08-13 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS, UPGRADING, conf/upsd.conf.sample, docs/config-notes.txt, docs/man/upsd.conf.txt, docs/security.txt, scripts/augeas/nutupsdconf.aug.in: Revise doc changes about LISTEN
  • support per PR #2013 discussion Notably: * move from "would" to "will" verbiage; * specify IPv6 listening first, IPv4 next, as it goes in code; * lean towards trying to listen on two sockets separately always (unless the OS refuses to avoid IPv4-mapped IPv6 addressing).

2.383. 2023-08-08 Tomasz bla Fortuna <bla@thera.be>

  • drivers/nutdrv_qx.c: Support a quirk in Vultech V2000 UPS. This UPS seems to use null bytes within status bits. This might mean "unsupported". We will treat them as zeroes.

2.384. 2023-08-13 Jim Klimov <jimklimov@gmail.com>

  • NEWS: cyberpower-mib.c supports more data points now [#1982]
  • drivers/cyberpower-mib.c: bump version for new entries

2.385. 2023-08-12 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS, drivers/apcsmart-old.c, drivers/apcsmart.c: drivers/apcsmart(-old).c: do not abort on bad caps, skip them like before [#2015] Closes: #2015

2.386. 2023-08-05 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS, UPGRADING, conf/upsd.conf.sample, docs/config-notes.txt, docs/man/upsd.conf.txt, docs/security.txt, scripts/augeas/nutupsdconf.aug.in, server/upsd.c: server/upsd.c and docs/config examples: handle "LISTEN *" deterministically (for both IPv4 and IPv6 if we can) [#2012]

2.387. 2023-08-06 Craig Holyoak <craig@helmsdeep.org>

  • drivers/cyberpower-mib.c: Moved additional ups.status to ups.alarm

2.388. 2023-08-05 Jim Klimov <jimklimov+nut@gmail.com>

  • server/upsd.c, NEWS, UPGRADING: setuptcp(): when asked to LISTEN on IPv6 addresses, try to disable IPv4-mapping support [#2012]
  • server/upsd.c: refactor server_free() with a new stype_free() [#2012]
  • server/upsd.c: setuptcp(): warn if we bound to one address for a name and end the loop while there seem to be more resolved addresses for it [#2012]
  • server/upsd.c: server_load(): log if defaulting to localhost (IPv4/IPv6) due to lack of LISTEN directive [#2012]
  • NEWS: typo fix
  • server/upsd.c, NEWS, UPGRADING: listen_add(): firstaddr should remain first [#2012]
  • drivers/nutdrv_qx.c: convert to ARMAC_READ_SIZE as a macro

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

  • common/state.c: in state_delinfo_olderthan() do upsdebugx(6,…) that we are deleting an entry because it is too old [#2007]
  • common/state.c: update comment for st_tree_node_compare_timestamp() [#2007]
  • drivers/apcupsd-ups.c: fix use of INVALID_FD_SOCK() macro over complex expression [#2007]
  • docs/Makefile.am: spellcheck LICENSE-DCO file [#1995 follow-up]
  • NEWS: move apcupsd fixes mis-placed into 2.8.0 notes block [#2007]
  • NEWS: announce support for state entry timestamping [#2010]
  • tests/.gitignore, tests/Makefile.am, tests/nuttimetest.c: Introduce nuttimetest (sanity-check difftime*() methods, etc.) [#2007, #1777]
  • configure.ac: fix broken test for clock_gettime(CLOCK_MONOTONIC,ts) [#1777 follow-up]
  • common/common.c: fix build scope for calls to timespec_load() and use of got_monoclock in upsnotify() [#1777 follow-up]
  • drivers/nutdrv_qx.c: cast signed/unsigned int comparison

2.390. 2023-08-03 Jim Klimov <jimklimov@gmail.com>

  • drivers/nutdrv_qx.c: Update drivers/nutdrv_qx.c Fix debug printout

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

  • common/state.c: initialize "lastset" in "state_setinfo()" when adding a new value
  • NEWS: use dstate_delinfo_olderthan() to clean up obsoleted readings AFTER refreshing data from apcupsd daemon [#2007]
  • drivers/apcupsd-ups.c: use dstate_delinfo_olderthan() to clean up obsoleted readings AFTER refreshing data from apcupsd daemon [#2007]
  • drivers/dstate.c, drivers/dstate.h: drivers/dstate.{c,h}: introduce dstate_delinfo_olderthan()
  • drivers/apcupsd-ups.c: refactor getdata() return code paths [#2007]
  • common/state.c, include/state.h: introduce state_delinfo_olderthan()
  • common/state.c, include/state.h: introduce st_tree_timespec_t and state_get_timestamp() and st_tree_node_compare_timestamp() to track age of state entries
  • common/common.c, include/common.h: introduce difftimespec() for completeness
  • common/common.c: clarify "nsec" as "numsec" (not "nanosec") in difftimeval()
  • NEWS: fix check for POLL_INTERVAL_MIN [#2007, #797 fallout]
  • NEWS: fix markup for "new devices" in 2.7.4
  • drivers/apcupsd-ups.c: fix check for POLL_INTERVAL_MIN [#2007, #797 fallout]
  • tools/nut-ddl-dump.sh: suggest posting the file to nut-ddl repo
  • tools/nut-ddl-dump.sh: update generated markup

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

  • tools/nut-ddl-dump.sh: generate the report with use of DEVICE:COMMENT: and DEVICE:COMMENT-BLOCK:FIXME:(UPSRW\|UPSCMD): sections (and place them after upsc dump) Related-to: https://github.com/networkupstools/nut-ddl/issues/32
  • tools/nut-ddl-dump.sh: update scripting style (quotes, comments, etc)

2.393. 2023-07-31 Tomasz Fortuna <bla@thera.be>

  • NEWS, data/driver.list.in, drivers/nutdrv_qx.c: drivers/nutdrv_qx.c: improve Armac subdriver Based on a debug output from a newer device (*/PF1) we’ve improved understanding on how: - those devices encode the length of a chunk of data. - how the end of transmission can be marked / detected. Changed: - Empty buffer before sending command to clear any residual data. - Detect end of message by end of line character \r (0x0d). - Refactor "6" into a READ_SIZE constant. - Limit bytes_available nibble to available READ_SIZE.

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

  • NEWS, drivers/cyberpower-mib.c, drivers/cyberpower-mib.h, drivers/snmp-ups.c: drivers/cyberpower-mib.c, NEWS: extend support to devices which report the shorter Vendor OID as their sysOID [#1997] Closes: #1997

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

  • docs/features.txt: update notes about networked devices and about Windows builds
  • docs/user-manual.txt, docs/features.txt: bump manufacturer count
  • docs/nut.dict: nut.dict: bump for nut-website changes
  • docs/nut.dict: nut.dict: bump for nut-website changes
  • docs/nut.dict: nut.dict: bump for nut-website changes

2.396. 2023-07-30 Jim Klimov <jim@jimklimov.com>

  • COPYING: Update COPYING about LICENSE-DCO file Follow-up to #1995

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

  • .github/pull_request_template.md, docs/developers.txt, docs/nut.dict: docs/developers.txt: add a chapter on DCO (Signed-Off-By) [#1994]
  • LICENSE-DCO: Introduce LICENSE-DCO into the source codebase [#1994]

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

2.399. 2023-07-07 Craig Holyoak <cholyoak@redlands.qld.edu.au>

  • drivers/cyberpower-mib.c: Added more variables from the CyberPower MIB

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

  • docs/security.txt: fix ASCIIDOC markup [#1976]
  • docs/download.txt: chunked-HTML chapter for "security.txt" moved due to daisychain years ago
  • scripts/python/Makefile.am: no need to (re)define Makefile variable MSGFMT - already handled by autotools [#1977]

2.401. 2023-07-02 Jim Klimov <jimklimov@gmail.com>

  • scripts/python/Makefile.am: refactor gettext translations to grep up source (text) file instead the output
  • scripts/python/Makefile.am: refactor gettext translations
  • scripts/python/Makefile.am: avoid POT-Creation-Date in gettext translations

2.402. 2023-07-02 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/Makefile.am: be sure target dirs for MSGFMT exist - regardless of ABS paths
  • scripts/python/Makefile.am: be sure target dirs for MSGFMT exist
  • docs/config-prereqs.txt: be sure to use pip3 for python3 examples
  • scripts/python/Makefile.am: fix msgfmt call syntax for non-GNU makes

2.403. 2023-07-01 Jim Klimov <jimklimov+nut@gmail.com>

  • …/python/app/locale/fr/LC_MESSAGES/NUT-Monitor.mo, scripts/python/app/locale/fr/fr.po: scripts/python/app/locale/fr/*: set custom Project-Id-Version same as in other translations
  • …/python/app/locale/fr/LC_MESSAGES/NUT-Monitor.mo, …/python/app/locale/it/LC_MESSAGES/NUT-Monitor.mo, …/python/app/locale/ru/LC_MESSAGES/NUT-Monitor.mo: scripts/python/app/locale/*/LC_MESSAGES/NUT-Monitor.mo: update binary translation files
  • configure.ac, docs/config-prereqs.txt, docs/nut.dict, scripts/python/Makefile.am: scripts/python/Makefile.am, configure.ac, docs/config-prereqs.txt: use gettext msgfmt to compile binary translation files

2.404. 2023-06-30 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/security.txt, docs/nut.dict: add a chapter on checksum file verification [#1963]
  • docs/security.txt: add maintainer notes on updating nut-key.gpg [#1963]
  • docs/security.txt, docs/nut.dict: update "verifySourceSig" chapter with new GPG key set for "Jim Klimov …" DE0184DA7043DCF7 [#1963]
  • docs/security.txt: clarify that GPG tool output varied over eons
  • AUTHORS, NEWS, README, data/html/header.html.in, data/html/index.html, docs/FAQ.txt, docs/asciidoc.conf, docs/documentation.txt, docs/download.txt, docs/features.txt, docs/hid-subdrivers.txt, docs/history.txt, docs/man/adelsystem_cbi.txt, docs/man/al175.txt, docs/man/apcsmart-old.txt, docs/man/apcsmart.txt, docs/man/apcupsd-ups.txt, docs/man/asem.txt, docs/man/bcmxcp.txt, docs/man/bcmxcp_usb.txt, docs/man/belkin.txt, docs/man/belkinunv.txt, docs/man/bestfcom.txt, docs/man/bestfortress.txt, docs/man/bestuferrups.txt, docs/man/bestups.txt, docs/man/blazer-common.txt, docs/man/clone.txt, docs/man/dummy-ups.txt, docs/man/etapro.txt, docs/man/everups.txt, docs/man/gamatronic.txt, docs/man/generic_gpio.txt, docs/man/generic_modbus.txt, docs/man/genericups.txt, docs/man/hosts.conf.txt, docs/man/huawei-ups2000.txt, docs/man/isbmex.txt, docs/man/ivtscd.txt, docs/man/libupsclient-config.txt, docs/man/liebert-esp2.txt, docs/man/liebert.txt, docs/man/macosx-ups.txt, docs/man/masterguard.txt, docs/man/metasys.txt, docs/man/mge-shut.txt, docs/man/mge-utalk.txt, docs/man/microdowell.txt, docs/man/microsol-apc.txt, docs/man/netxml-ups.txt, docs/man/nut-driver-enumerator.txt, docs/man/nut-ipmipsu.txt, docs/man/nut-recorder.txt, docs/man/nut-scanner.txt, docs/man/nut.conf.txt, docs/man/nutdrv_atcl_usb.txt, docs/man/nutdrv_qx.txt, docs/man/nutdrv_siemens_sitop.txt, docs/man/nutupsdrv.txt, docs/man/oneac.txt, docs/man/optiups.txt, docs/man/phoenixcontact_modbus.txt, docs/man/pijuice.txt, docs/man/powercom.txt, docs/man/powerman-pdu.txt, docs/man/powerpanel.txt, docs/man/rhino.txt, docs/man/richcomm_usb.txt, docs/man/riello_ser.txt, docs/man/riello_usb.txt, docs/man/safenet.txt, docs/man/skel.txt, docs/man/snmp-ups.txt, docs/man/sockdebug.txt, docs/man/socomec_jbus.txt, docs/man/solis.txt, docs/man/tripplite.txt, docs/man/tripplite_usb.txt, docs/man/tripplitesu.txt, docs/man/ups.conf.txt, docs/man/upsc.txt, docs/man/upscmd.txt, docs/man/upscode2.txt, docs/man/upsd.conf.txt, docs/man/upsd.txt, docs/man/upsd.users.txt, docs/man/upsdrvctl.txt, docs/man/upsdrvsvcctl.txt, docs/man/upsimage.cgi.txt, docs/man/upslog.txt, docs/man/upsmon.conf.txt, docs/man/upsmon.txt, docs/man/upsrw.txt, docs/man/upssched.conf.txt, docs/man/upssched.txt, docs/man/upsset.cgi.txt, docs/man/upsset.conf.txt, docs/man/upsstats.cgi.txt, docs/man/upsstats.html.txt, docs/man/usbhid-ups.txt, docs/man/victronups.txt, docs/new-clients.txt, docs/nut-names.txt, docs/security.txt, docs/snmp.txt, docs/support.txt, docs/user-manual.txt, drivers/apcsmart.c, drivers/blazer.c, drivers/blazer.h, drivers/blazer_ser.c, drivers/blazer_usb.c, drivers/delta_ups-mib.c, drivers/eaton-pdu-marlin-mib.c, drivers/hpe-pdu-mib.c, drivers/libhid.c, drivers/libusb0.c, drivers/libusb1.c, drivers/nut_libusb.h, drivers/optiups.c, drivers/riello.c, drivers/riello.h, drivers/riello_ser.c, drivers/riello_usb.c, indent.sh, scripts/Aix/nut-aix.spec.in, scripts/Solaris/pkginfo.in, scripts/Windows/build-mingw-nut.sh, scripts/perl/Nut.pm, scripts/python/app/locale/NUT-Monitor.pot, …/app/locale/fr/LC_MESSAGES/NUT-Monitor.mo, scripts/python/app/locale/fr/fr.po, …/app/locale/it/LC_MESSAGES/NUT-Monitor.mo, scripts/python/app/locale/it/it.po, …/app/locale/ru/LC_MESSAGES/NUT-Monitor.mo, scripts/python/app/locale/ru/ru.po, scripts/python/app/ui/aboutdialog1.ui, scripts/python/app/ui/gui-1.3.glade, scripts/python/app/ui/gui-1.3.glade.h, server/netget.c, server/netmisc.c, tools/nut-ddl-dump.sh, tools/nut-usbinfo.pl: Wholesale update of website URL to "https://www.networkupstools.org"
  • drivers/generic_gpio_common.h, drivers/generic_gpio_libgpiod.h: drivers/generic_gpio*.h: style (whitespace) fixes
  • drivers/apcsmart.c, drivers/apcsmart.h, drivers/generic_gpio_libgpiod.c, drivers/generic_gpio_libgpiod.h: drivers/generic_gpio_libgpiod.{c,h}, drivers/apcsmart.{c,h}: move DRIVER_NAME and DRIVER_VERSION from header to C source file as in other drivers
  • drivers/adelsystem_cbi.c, drivers/al175.c, drivers/apcsmart-old.c, drivers/apcsmart.h, drivers/apcupsd-ups.c, drivers/asem.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/belkin.c, drivers/belkinunv.c, drivers/bestfcom.c, drivers/bestfortress.c, drivers/bestuferrups.c, drivers/bestups.c, drivers/blazer_ser.c, drivers/blazer_usb.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dummy-ups.c, drivers/etapro.c, drivers/everups.c, drivers/gamatronic.c, drivers/generic_gpio_libgpiod.h, drivers/generic_modbus.c, drivers/genericups.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/liebert-esp2.c, drivers/liebert.c, drivers/macosx-ups.c, drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c, drivers/microdowell.c, drivers/microsol-apc.c, drivers/netxml-ups.c, drivers/nut-ipmipsu.c, drivers/nutdrv_atcl_usb.c, drivers/nutdrv_qx.c, drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c, drivers/phoenixcontact_modbus.c, drivers/pijuice.c, drivers/powercom.c, drivers/powerman-pdu.c, drivers/powerpanel.c, drivers/rhino.c, drivers/richcomm_usb.c, drivers/riello_ser.c, drivers/riello_usb.c, drivers/safenet.c, drivers/skel.c, drivers/snmp-ups.c, drivers/socomec_jbus.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c, drivers/usbhid-ups.c, drivers/victronups.c: Bump all driver versions before NUT v2.8.1 release [#1951] Follow-up after core driver changes (main.c etc.) with driver.state #1767, driver reload command #1903, driver inter-instance communications via socket #1922 and others. Also convert remaining single-digit X.Y versions to X.<Y\+1>0 double-digits.

2.405. 2023-06-29 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/nut-scanner.txt, docs/man/snmp-ups.txt: clarify that secLevel is required to use non-trivial authentication [#734]

2.406. 2023-06-26 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/maintainer-guide.txt: stress the release git tag rituals [#1971]

2.407. 2023-06-18 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut-names.txt: reference docs/new-drivers.txt by name for device status data definitions

2.408. 2023-06-17 Blaz Zakrajsek <zakrajsek.blaz@gmail.com>

  • drivers/liebert-hid.c: Apply code review fixes - Replace non-standard variable names for Full charge capacity and Design capacity - Prefix with experimental

2.409. 2023-06-16 Blaz Zakrajsek <zakrajsek.blaz@gmail.com>

  • drivers/liebert-hid.c: Improve liebert-hid driver - Add additional properties by analyzing the HID descriptor of the PowerWalker VI 1200 SHL - Existing properties were kept as they are to avoid breakage with other devices using the same driver

2.410. 2023-06-14 Jim Klimov <jimklimov@gmail.com>

  • clients/upssched.c: add enter/exit log tracing of sock_read() [#1964]

2.411. 2023-06-13 Jim Klimov <jimklimov@gmail.com>

  • NEWS: upssched CPU burn fixed [#1965, #1964]
  • NEWS, docs/man/upssched.txt, clients/upssched.c: warn that enabled debug remains noisy for daemon part too [#1965]
  • clients/upssched.c: start_daemon() loop (POSIX builds): generally throttle in case we have empty sock_read()s [#1964]
  • clients/upssched.c: if we consistently get read()==0, abort eventually (even if no formal errors are reported) [#1964]
  • clients/upssched.c: do not close STDERR of the daemon (to re-open as /dev/null) when nut_debug_level!=0 (follow-up from [#1879, #1889])
  • clients/upssched.c: log-trace when the process (daemon or CLI) exits

2.412. 2023-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upssched.c: improve logging of client connection life cycle
  • tests/NIT/nit.sh: typo fix

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

  • docs/download.txt: update references to NUT client for VMWare ESXi

  • docs/download.txt: update references to NUT client for VMWare ESXi

    • fix asciidoc markup [#1961]
  • NEWS: update with reference to NUT client for VMware ESXi" project on GitHub [#1961]
  • docs/download.txt: update references to NUT client for VMware ESXi And link to NUT Wiki for further setup suggestions

2.414. 2023-06-05 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/new-drivers.txt, docs/nut-names.txt: no need for custom anchor for _status_data, change link style instead [#1957]
  • docs/man/upslog.txt: refer to documentation on supported variable names [#1957]
  • docs/new-drivers.txt: add anchor for _status_data [#1957]

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

  • NEWS, UPGRADING: make note that ChangeLog file markup will differ from that in older NUT releases [#1955]
  • tools/gitlog2changelog.py.in: update TextWrapper settings to not break up file paths Follows up from #1945

2.416. 2023-06-01 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: update with OpenPGP [#1410]
  • NEWS, docs/nut.dict: NEWS: published new maintainer GPG key DE0184DA7043DCF7 [#1410]

2.417. 2023-06-01 Xavier Delaruelle <xavier.delaruelle@cea.fr>

  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: fix bitwise AND into regular AND Several if conditions where using bitwise AND whereas the intent was to do a regular AND test.

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

  • docs/documentation.txt: refer to NUT GitHub Wiki
  • docs/documentation.txt: refer to HCL from near DDL
  • docs/developers.txt: reword a bit about IDE support

2.419. 2023-05-24 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: bump for IntelliJ

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

  • docs/developers.txt: typo fix
  • docs/developers.txt: add a mention of IntelliJ IDEA
  • docs/developers.txt: fix asciidoc table markup; update a few comments for Windows development environments
  • Jenkinsfile-dynamatrix: withEnvOptional() was refactored from "infra" to a standalone step

2.421. 2023-05-19 Xavier Delaruelle <xavier.delaruelle@cea.fr>

  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: apply Flake8 suggestions Apply on gitlog2changelog.py most code change suggestions from Flake8 Python style guide enforcement tool.
  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: apply Black suggestions Apply on gitlog2changelog.py code change suggestions from Black Python code formatter.
  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: fix expected git log format Update gitlog2changelog.py script to ensure git log format is not influenced by user git configuration.

2.422. 2023-05-19 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/developers.txt, docs/nut.dict: docs/developers.txt: chapter on VSCode setup
  • docs/developers.txt: update notes for IDE setup for debug symbols
  • docs/nut.dict: docs/developers.txt: update notes for IDE (specifically NetBeans on Windows) setup
  • docs/developers.txt: update notes for IDE (specifically NetBeans on Windows) setup

2.423. 2023-05-13 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/Makefile.am: typo fix to not override man8_MANS definition

2.424. 2023-05-12 Jim Klimov <jim@jimklimov.com>

  • docs/man/sockdebug.txt: Update sockdebug.txt Fix markup (and a progname mention), add original code authors.

2.425. 2023-05-11 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/sockdebug.txt: fix formatting; clarify standard state path handling (POSIX builds) [#1936]
  • docs/man/index.txt: mention new sockdebug[8] man page
  • clients/upssched.c: start_daemon(): transplant STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO handling instead of hardcoded numbers, from common.c [#1879, #1881]
  • drivers/upsdrvquery.c: upsdrvquery_read_timeout(): only log subsequent sleep-time diffs if we retried a sleep
  • drivers/upsdrvquery.c: upsdrvquery_read_timeout(): fix retry-delays to 0.1sec (100msec, 100000usec)
  • drivers/upsdrvquery.c: clearer parentheses and markup
  • drivers/upsdrvquery.c: upsdrvquery_prepare(): fix time subtraction
  • drivers/upsdrvquery.c: upsdrvquery_oneshot(): bump the sleep for upsdrvquery_read_timeout() PING/PONG
  • drivers/upsdrvquery.c: upsdrvquery_read_timeout(): more tracing of time tracking
  • drivers/upsdrvquery.c: use difftimeval() and better-precision struct timeval
  • common/common.c, include/common.h: introduce a difftimeval()
  • drivers/upsdrvquery.c: fix multipliers around tv_usec (10e6 not 10e3)
  • drivers/upsdrvquery.c: upsdrvquery_read_timeout(): accept shorter delays, Windows does not guarantee a minimum sleep it seems
  • drivers/upsdrvquery.c: fix whitespace
  • server/sockdebug.c: address clang warnings

2.426. 2023-05-10 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/upsdrvquery.c: fix whitespace
  • drivers/upsdrvquery.c: upsdrvquery_prepare(): fix finishing quickly after a PONG
  • drivers/upsdrvquery.c: enable a timeout and PING/PONG when preparing the connection
  • docs/man/sockdebug.txt: update for unified ability to "make sockdebug" and no longer required fully-qualified path to socket in POSIX builds
  • docs/sock-protocol.txt: update for unified ability to "make sockdebug" and no longer required fully-qualified path to socket in POSIX builds
  • drivers/upsdrvquery.c: use PING after NOBROADCAST to minimize delays while playing safe [#1928]
  • drivers/upsdrvquery.c: whitespace fixes
  • server/sockdebug.c: fall back to dflt_statepath() when not using a full path to socket
  • server/Makefile.am, NEWS, UPGRADING: install sockdebug if configured --with-dev
  • docs/man/Makefile.am, docs/man/sockdebug.txt, docs/nut.dict: Introduce docs/man/sockdebug.txt
  • Makefile.am: add a way to "make sockdebug" regardless of target platform

2.427. 2023-04-24 Jim Klimov <jimklimov+nut@gmail.com>

  • conf/upsset.conf.sample, docs/man/upsset.conf.txt, docs/nut.dict: docs/man/upsset.conf.txt, conf/upsset.conf.sample: document CGI securing syntax for modern Apache Thanks to Phil Stracchino <phils at caerllewys.net> for suggestions: https://alioth-lists.debian.net/pipermail/nut-upsuser/2023-April/013262.html
  • drivers/upsdrvctl.c: when starting to send_all_drivers() or send_one_driver(), reset exec_error to 0 [#1927]
  • drivers/main.c, drivers/upsdrvctl.c: drivers/upsdrvctl.c, drivers.main.c: use upsdrvquery_oneshot() caller-provided timeouts [#1929] Closes: #1929
  • drivers/upsdrvquery.c, drivers/upsdrvquery.h: drivers/upsdrvquery.c: upsdrvquery_oneshot(): support optional caller-provided timeouts [#1929]
  • drivers/upsdrvquery.c: upsdrvquery_request(): report how long we wait (and support indefinite waits) [#1914]
  • docs/new-drivers.txt, docs/nut.dict: docs/new-drivers.txt: upsdrv_shutdown() must not exit() anymore [#1923]
  • drivers/dummy-ups.c: do not ignore return of getcwd() [#1921]
  • NEWS: Update about reload ability [#1903, #1914, #1924] and new use of driver.killpower instcmd [#1917, #1923]
  • drivers/upsdrvquery.c: typo fix
  • drivers/dummy-ups.c: handle "-x port=./path" or "C:\somepath" (WIN32) [#1921] Closes: #1921
  • drivers/main.c: try to do_forceshutdown via socket protocol with a running driver first [#1923] Closes: #1923
  • drivers/al175.c, drivers/apcupsd-ups.c, drivers/asem.c, drivers/bcmxcp.c, drivers/blazer.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dummy-ups.c, drivers/generic_gpio_common.c, drivers/generic_modbus.c, drivers/genericups.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/liebert.c, drivers/macosx-ups.c, drivers/main.c, drivers/netxml-ups.c, drivers/nut-ipmipsu.c, drivers/nutdrv_qx.c, drivers/phoenixcontact_modbus.c, drivers/powercom.c, drivers/powerman-pdu.c, drivers/riello_ser.c, drivers/riello_usb.c, drivers/safenet.c, drivers/skel.c, drivers/snmp-ups.c, drivers/socomec_jbus.c, drivers/usbhid-ups.c: drivers/*: Avoid exit() and fatalx() in upsdrv_shutdown() handlers; set_exit_flag() instead [#1923]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: clarify in logged messages that we are reloading or restarting daemons
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: avoid re-definition of the driver if we can just reload it [#1924] Closes: #1924
  • drivers/upsdrvquery.c: upsdrvquery_request(): drop received unrecognized queued replies [#1914]
  • drivers/upsdrvquery.c, drivers/upsdrvquery.h: drivers/upsdrvquery.{c,h}: add a way to request new ReadFile() operation on WIN32 [#1914]
  • drivers/upsdrvquery.c: update messages [#1914]
  • drivers/upsdrvquery.c: rectify timeout processing precision [#1914]

2.428. 2023-04-23 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/upsdrvquery.c: upsdrvquery_oneshot(): do not wait for NOBROADCAST to flush, we now support not-bailing on unexpected lines [#1920]
  • drivers/upsdrvquery.c: upsdrvquery_read_timeout(): support zeroed-out "tv" as disable of wait
  • drivers/upsdrvquery.c: upsdrvquery_prepare(): support zeroed-out "tv" as disable of wait
  • drivers/upsdrvctl.c: enable "-c reload-or-error" on WIN32 [#1914, #1903]
  • drivers/upsdrvquery.c, drivers/upsdrvquery.h: drivers/upsdrvquery.{c,h}: refactor to pass udq_pipe_conn_t around, and complete WIN32 fixes [#1914]
  • docs/developers.txt: expand with a few IDE notes on Windows
  • drivers/upsdrvquery.c: fix upsdrvquery_read_timeout() for WIN32 builds [#1903, #1914]
  • ci_build.sh: suggest follow-up to poor maintainer-clean handling in autotools
  • include/upsconf.h, common/upsconf.c, server/conf.c, server/upsd.c, drivers/main.c, drivers/upsdrvctl.c: change read_upsconf() API so it is not always fatal [#1903]
  • drivers/main.c, drivers/main.h: drivers/main.c: enable SIGCMD_RELOAD_OR_ERROR handling for WIN32 [#1914, #1903]
  • drivers/main.c: address compiler style warning
  • drivers/upsdrvquery.c: upsdrvquery_connect(): copy-paste fixes for WIN32 part [#1903, #1914]
  • drivers/main.c: address compiler style warning

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

  • docs/man/nutupsdrv.txt, docs/man/upsdrvctl.txt, drivers/main.c, drivers/main.h, drivers/upsdrvctl.c: drivers/main.{c,h}, upsdrvctl sources and docs: add "reload-or-error" CLI handling [#1903, #1914] Handle SIGCMD_RELOAD_OR_ERROR commands to running drivers via upsdrvquery_oneshot()y
  • drivers/Makefile.am, drivers/upsdrvquery.c, drivers/upsdrvquery.h: drivers/upsdrvquery.{c,h}, drivers/Makefile.am: Introduce a socket protocol client for quickshot commands [#1903, #1914]
  • docs/man/nutupsdrv.txt: add placeholder for "-c reload-or-restart" CLI argument [#1903]
  • drivers/main.c: main_instcmd(): add placeholder for "driver.reload-or-restart" support [#1903, #1914]
  • drivers/main.c: main_instcmd(): set_reload_flag() by SIGCMD_* macros, not numbers [#1903, #1914]
  • drivers/main.c: add socket-protocol handling for "driver.reload-or-error" INSTCMD [#1903, #1914]

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

  • drivers/main.c: main(): register "driver.reload(-or-exit)" commands so upsd would accept them and upscmd can request them [#1903]
  • drivers/dstate.c: sock_arg(): if shared main_instcmd()/main_setvar() did recognize and somehow process the request, honour TRACKING if present [#1903, #1920]
  • drivers/main.c: un-hide nut_debug_level_args for mock-driver builds aka DRIVERS_MAIN_WITHOUT_MAIN now that it is referenced in main_setvar()⇒assign_debug_level() [#1903, #1285]
  • server/pipedebug.c: seems WIN32 needs fflush(stdout)
  • docs/sock-protocol.txt: clarify use of sockdebug in WIN32 builds
  • common/common.c: vupslog(): only print timestamps to stderr if xbit_test(upslog_flags, UPSLOG_STDERR) at all, not just that the debug is enabled; also mark upslog_start when we first call the method, even if debu is not currently verbose (may change at run time) [#1903]
  • common/common.c: vupslog(), nut_report_config_flags(): seems WIN32 needs fflush(stderr)
  • drivers/dstate.c: sock_arg() (NO)BROADCAST handling ⇒ POSIX/WIN32 preparation of string: satisfy platforms where snprintf is a macro [#1914]
  • drivers/main.c: main_instcmd()/main_setvar() POSIX/WIN32 preparation of string: satisfy platforms where snprintf is a macro [#1914]
  • drivers/main.c: un-hide assign_debug_level() for mock-driver builds aka DRIVERS_MAIN_WITHOUT_MAIN now that it is referenced in main_setvar() [#1903, #1285]
  • drivers/main.c: set_reload_flag (and SIGUSR1) are currently only for non-WIN32 builds [#1903, #1916]
  • server/pipedebug.c: whitespace fixes (indentations et al)
  • server/sockdebug.c, server/pipedebug.c: support -h/--help on CLI
  • docs/sock-protocol.txt: suggest also server/sockdebug for dev/testing
  • server/sockdebug.c: check return of fgets()
  • server/sockdebug.c: #include "nut_stdint.h" for PRI* macros

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

  • drivers/main.c: driver/main.c: main_instcmd() with basic "driver.reload" and "driver.reload-or-exit" support [#1903, #1914]
  • drivers/dstate.c, drivers/dstate.h, drivers/main.c, drivers/main.h: driver/(main|dstate).(c\|h): extend main_instcmd()/main_setvar() with knowledge of conn_t involved [#1914]\
  • NEWS, docs/nut.dict, docs/sock-protocol.txt, drivers/dstate.c, drivers/dstate.h: docs/sock-protocol.txt, drivers/dstate.{c,h}: extend driver-server socket protocol with (NO)BROADCAST option [#1914]
  • docs/man/nutupsdrv.txt, docs/man/upsdrvctl.txt, docs/man/upsmon.txt, docs/man/upssched.txt: docs: update about NUT_*PATH envvars support
  • docs/man/upssched.txt: mention UPSNAME and NOTIFYTYPE among supported envvars
  • clients/upssched.c: comment how checkconf() is the processing loop
  • clients/upssched.c: debugging does not impact backgrounding (update help text)
  • NEWS, clients/upsmon.c, clients/upssched.c, docs/man/nutupsdrv.txt, docs/man/upsd.txt, docs/man/upsdrvctl.txt, docs/man/upsmon.txt, docs/man/upssched.txt, drivers/main.c, drivers/upsdrvctl.c, server/upsd.c: upsd, upsdrvctl, drivers, upsmon, upssched progs and docs, NEWS: introduce NUT_DEBUG_LEVEL envvar support (if no "-D" option(s) among CLI args) [#1915] Closes: #1915
  • NEWS, docs/man/ups.conf.txt, drivers/main.c: drivers/main.c, NEWS: constrain INSTCMD "driver.killpower" by "driver.flag.allow_killpower" setting [#1917] Closes: #1917
  • drivers/dstate.c: if main_setvar()/main_instcmd() return STAT_*_INVALID, do not proceed to driver handler [#1914]
  • NEWS, drivers/main.c: drivers/main.c: add support for INSTCMD "driver.killpower" [#1917]
  • NEWS, drivers/main.c: drivers/main.c: introduce a way to show and set "driver.debug" level via socket protocol (upsrw etc.) [#1285] Closes: #1285
  • drivers/main.c: debug-trace (and so use) args to main_instcmd() and main_setvar() handlers [#1285, #1914]
  • drivers/dstate.c, drivers/main.c, drivers/main.h: drivers/main.{c,h}, drivers/dstate.c: introduce and handle shared main_instcmd() and main_setvar() handlers [#1285, #1914]
  • docs/sock-protocol.txt: update with some clarifications

2.432. 2023-04-20 Clappier Eric <ericclappier@eaton.com>

  • drivers/snmp-ups.c: Acquisition failed with daisychain epdu G3 with sensors (#1911) * Hot fix for infinite loop during discovery daisychain epdu G3 with sensors * Change log message in guesstimate_template_count function

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

  • tests/NIT/nit.sh: report test case names at start of ther methods, to find error reports in log more easily

2.434. 2023-04-19 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/upsdrvctl.c: buildability for WIN32 (unused code warnings) [#1903]
  • drivers/upsdrvctl.c: fix main loop buildability for WIN32 [#1903]
  • drivers/upsdrvctl.c: set_signal_flag(): relax const-ness to save the signal
  • drivers/upsdrvctl.c: fix builds for WIN32 [#1903]
  • NEWS: clarify nut-driver-enumerator vs. debug_min edits [#1903]
  • scripts/systemd/nut-driver@.service.in: exec upsdrvctl to avoid another extra fork
  • scripts/Solaris/nut-driver.xml.in: fix refresh to send SIGUSR1 now [#1903]
  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: use systemd ExecReload for drivers now [#1903]
  • scripts/systemd/nut-driver@.service.in: fix ExecReload to send SIGUSR1 now [#1903]
  • configure.ac: set SYSTEMD_DAEMON_ARGS_DRIVER="-FF" to avoid excess forking (thanks to #1903)
  • drivers/main.c: fix WIN32 buildability
  • drivers/upsdrvctl.c: help() exits here, so leave just fatalx() with diagnosis
  • drivers/upsdrvctl.c: avoid name shadowing after including main.h (for #1903)
  • drivers/main.c: main(): rectify handling of "foreground" variants, fix a typo [#1903]
  • NEWS, docs/nut.dict: NEWS: update for signal support with drivers and upsdrvctl [#1903]
  • drivers/upsdrvctl.c: recycle drivers that aborted due to SIGCMD_RELOAD_OR_EXIT [#1903]
  • drivers/main.c: reload-or-exit: exit with 128\+SIGNUM on POSIX systems [#1903]
  • drivers/upsdrvctl.c: actually forward supported signals accumulated by a running upsdrvctl [#1903]
  • drivers/upsdrvctl.c: refactor reset_signal_flag() [#1903]
  • docs/man/upsdrvctl.txt: update for new signal-sending support [#1903]
  • drivers/main.c: handle_reload_flag(): log for which device (help mass-mgmt via upsdrvctl) [#1903]
  • drivers/upsdrvctl.c: error out for dangling CLI arguments
  • drivers/upsdrvctl.c: implement signal handling and "-c COMMAND" to pass on to drivers [#1903]
  • drivers/main.c, drivers/main.h: drivers/main.{c,h}: move SIGCMD_* definitions to header for re-use [#1903]
  • server/upsd.c, clients/upsmon.c: optargs: check other command options only if we did not have a hit earlier
  • drivers/main.c: do not need a "port=…" to handle a command/signal option (with -s TMPUPSNAME) [#1903]
  • drivers/main.c: optargs: only accept command/signal option once [#1903]
  • drivers/main.c: optargs: check other command options only if we did not have a hit earlier [#1903] In particular, avoid finding "reload" again in longer command names
  • drivers/main.c: set_reload_flag(), optargs: log the command signal posted/received [#1903]
  • drivers/main.c: set_reload_flag(): rearrange comments and log messages [#1903]
  • docs/man/upsdrvctl.txt, drivers/upsdrvctl.c: drivers/upsdrvctl.c: add "-FF" mode to match driver abilities [#1299]
  • docs/man/nutupsdrv.txt, drivers/main.c: drivers/main.c: refactor "background_flag" ⇒ "foreground" and add "-FF" mode to match upsd/upsmon [#1299]
  • docs/man/nutupsdrv.txt, drivers/main.c: drivers/main.c: add support for command-line "reload", "reload-or-exit" (reserved "reload-or-restart" not implemented/offered yet), and -P OLDPID options [#1903]
  • drivers/main.c: use macros to define SIGCMD_DATA_DUMP (moved from SIGUSR2 to SIGURG/SIGWINCH by default), SIGCMD_RELOAD, SIGCMD_RELOAD_OR_EXIT (and clarify difference from reserved SIGCMD_RELOAD_OR_RESTART) [#1903]
  • drivers/main.c: rename temporary "buffer" to "pidfnbuf" for a bit of readability
  • server/conf.c: parse_upsd_conf_args(): only warn about ignoring STATEPATH in favor of NUT_STATEPATH if the two strings are not equal [#1908]

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

  • drivers/main.c: hide nut_debug_level_args as for DRIVERS_MAIN_WITHOUT_MAIN [#1903]
  • docs/man/generic_gpio.txt: do not suggest non-standard "description", use "desc" instead [#1892]
  • drivers/generic_gpio_common.c, drivers/generic_gpio_libgpiod.c: fix "upsdebugx(LOG_DEBUG,…)" calls We debug with somewhat arbitrarily assigned verbosity numbers. The LOG_* definitions are from syslog (and equivalents for WIN32 event log).
  • drivers/main.c: log that a VAR_SENSITIVE value is not saved (and comment that override/default bypasses this) [#1892]
  • drivers/generic_gpio_common.c, tests/generic_gpio_utest.c: mfr/model vars are not "sensitive" and "desc(ription)" are not handled via addvar() at all [#1892]
  • drivers/main.c, NEWS: support SIGUSR2 to immediately dstate_dump() and move on [#1907]
  • server/conf.c: parse_upsd_conf_args(): prefer NUT_STATEPATH envvar to STATEPATH from file [#1908]
  • server/upsd.c: trace-log the statepath actually used [#1908]
  • server/sstate.c: sstate_connect(): trace-log the paths involved if failed to connect() to a driver pipe [#1908]
  • drivers/main.c: testvar_reloadable(): fix logic botched by refactoring [#1903]
  • drivers/main.c: test*_reloadable(): trace-log the verdict in all cases [#1903]
  • drivers/main.c: move reload_flag support in main loop to be more reactive and refactor as handle_reload_flag() [#1903]
  • drivers/main.c: refactor reload_flag support for existing flags (log that skipped) [#1903]
  • drivers/main.c: support SIGUSR1 ⇒ reload_flag=2 ⇒ driver may exit() if changed configs that can not be applied on the fly [#1903]
  • drivers/main.c: cover assign_debug_level() under DRIVERS_MAIN_WITHOUT_MAIN [#1903]
  • common/common.c: #if ⇒ #ifdef\+if [#1903]

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

  • configure.ac: AM_COND_IF macro supported since aclocal-1.11; fall back to raw vars for older tools
  • scripts/Solaris/nut-driver.xml.in: define basic SMF "refresh" support to send SIGHUP to a driver [#1903]
  • NEWS: Implemented basic support for ups.conf reloading in NUT drivers [#1903]
  • configure.ac: do fail checks due to unknown tokens with SYSTEMD_ANALYZE_PROGRAM [#1903, #1590]
  • configure.ac: do not make noise with SYSTEMD_ANALYZE_PROGRAM [#1903, #1590]
  • configure.ac: fix "end-user" square brackets for M4 markup [#1903]
  • configure.ac: for common.c::upsnotify(): detect actual support for systemd Type=notify for good measure [#1903, #1590]
  • configure.ac: for common.c::upsnotify(): detect support for systemd Type=notify-reload and enable it for nut-driver@.service if applicable [#1903]
  • configure.ac: for common.c::upsnotify(): detect support for HAVE_CLOCK_GETTIME and HAVE_CLOCK_MONOTONIC [#1903]
  • common/common.c: upsnotify(): support posting MONOTONIC_USEC when RELOADING/READY [#1903]
  • scripts/systemd/nut-driver@.service.in: typo fix in comment
  • scripts/systemd/nut-driver@.service.in: support ExecReload via "kill -SIGHUP" [#1903]
  • drivers/main.c: assign_debug_level(): update messages and comments, report if nut_debug_level_args overrides smaller/unset nut_debug_level_upsconf
  • drivers/main.c: fix do_global_args() and main_arg() to not ignore unmodified settings during reload [#1903]
  • drivers/main.c: actually read_upsconf() to handle reload (SIGHUP) [#1903]
  • drivers/main.c: always setup_signals() if we are not a one-shot run (fore- or back-ground)
  • drivers/main.c: upsdebugx() raising the flags due to signals (exit, reload) [#1903]
  • drivers/main.c: do_upsconf_args(): fix handling of "driver" value [#1903]
  • drivers/main.c: pepper test*_reloadable() and do_upsconf_args() with upsdebugx() [#1903]
  • drivers/main.c: testvar_reloadable(): handle known flags conservatively [#1903]
  • drivers/main.c: introduce (and honour) nut_debug_level_args [#1903]
  • drivers/main.c: refactor assign_debug_level()
  • drivers/main.c: do_global_args(), main_arg(): respect reload_flag [#1903]
  • drivers/main.c: move pollinterval handling from do_upsconf_args() to main_arg()
  • drivers/main.c: testvar_reloadable(), testval_reloadable(): clarify if the driver must be restarted to apply a value change [#1903]
  • drivers/main.c, drivers/main.h: drivers/main.{c,h}: make testvar_reloadable(), testval_reloadable(), testinfo_reloadable() a public API in case drivers would need to know [#1903]
  • drivers/main.c: add skeleton handling for reload_flag [#1903]
  • drivers/main.c, drivers/main.h: driver/main.{c,h}: extend internal API with addvar_reloadable() and vartab_t→reloadable field [#1903]

2.437. 2023-04-12 Jim Klimov <jimklimov@gmail.com>

  • scripts/usb_resetter/README.md: Update README.md Some more formatting/wording fixes
  • scripts/usb_resetter/README.md: Update README.md Reformatted line widths and code examples, incorporated PR discussion notes

2.438. 2023-04-04 Jim Klimov <jimklimov@gmail.com>

  • drivers/salicru-hid.c: Update salicru-hid.c Whitespace and alphabetic fixes, subdriver version bump

2.439. 2023-04-04 David Martinez <dmartinez.martin@atsistemas.com>

  • data/driver.list.in, drivers/salicru-hid.c, scripts/upower/95-upower-hid.hwdb: feat: Added support for Salicru SPS 3000 ADV RT2

2.440. 2023-04-01 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: adapt to newer website preparations

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

  • drivers/nutdrv_qx_voltronic.c: cover another path to "battery.voltage" with qx_multiply_battvolt()

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

  • drivers/nutdrv_qx.c: should we not use correct battery_voltage_reports_one_pack_considered every loop?

2.443. 2023-03-31 Jim Klimov <jimklimov@gmail.com>

  • NEWS: integration with usb_resetter documented [#1887]
  • docs/nut.dict: Update nut.dict

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

  • Makefile.am: MAINTAINERCLEANFILES\+=ar-lib
  • common/common.c: background(): use STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO macros instead of hard-coded FD 0-1-2 numbers [#1879, #1881] Closes: #1879 Closes: #1881
  • include/common.h: define STDIN_FILENO/STDOUT_FILENO/STDERR_FILENO if absent on the platform
  • configure.ac: detect support of dup() and/or dup2() on the platform
  • .gitignore: GitIgnore ar-lib tool, if added by automake (see AM_PROG_AR in configure.ac)

2.445. 2023-03-31 Orsiris de Jong <ozy@netpower.fr>

  • scripts/usb_resetter/README.md: usb_resetter: add --list-hubs command example
  • docs/FAQ.txt: Add driver disconnected usb_resetter entry
  • scripts/usb_resetter/nut-driver.service: Add usb_resetter enabled nut-driver systemd service
  • scripts/usb_resetter/README.md: Add usb_resetter instructions

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

  • configure.ac: use m4_ifdef for optional AM_SILENT_RULES support
  • configure.ac: use AM_PROG_AR if available (quiesce autoreconf portability warning) Inspired by https://github.com/vlm/asn1c/pull/63/files
  • autogen.sh: add "-v" or "export (CI_)DEBUG=true" support

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

  • configure.ac: test C\+\+11 nuances that NUT uses and which fail with older gcc-4.x with intermediate levels of support
  • configure.ac: typo fix for "have_cxx11=no," verdict
  • clients/nutclient.cpp, clients/nutclient.h: clients/nutclient.h: declare NutException&Co destructors as "noexcept" to match some system headers std::except
  • autogen.sh: suggest what to do in case of m4 "ifdef" errors
  • docs/config-prereqs.txt: typo and markup fixes
  • docs/ci-farm-lxc-setup.txt: split container installation and setup into visible sub-chapters
  • docs/ci-farm-lxc-setup.txt, docs/nut.dict: docs/ci-farm-lxc-setup.txt: clarify use of expired keys for ancient Debian releases

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

  • NEWS, drivers/baytech-mib.c: drivers/baytech-mib.c: update baytech_outlet_status_info[] valid values [#1871]

2.449. 2023-03-22 Evgeny Klimov <jimklimov+nut@gmail.com>

  • drivers/upsdrvctl.c: avoid another warning (WIN32 builds)

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

  • drivers/upsdrvctl.c: fix build warnings
  • drivers/upsdrvctl.c: only check for child process PIDs on POSIX platforms
  • drivers/upsdrvctl.c: track if any of launched foreground-mode drivers exited, and then abort the whole bundle (so it can be consistently restarted)
  • drivers/upsdrvctl.c: fix some WIN32 code style
  • drivers/upsdrvctl.c: track started foregrounded driver PID(s) to stop when exiting on signal
  • drivers/upsdrvctl.c: fix logged message markup and TODO comments for foregrounded mode
  • docs/man/upsdrvctl.txt, NEWS: update info about upsdrvctl foregrounding mode support
  • drivers/upsdrvctl.c: update logged messages about foregrounding mode
  • drivers/upsdrvctl.c: do not exit the tool if foregrounding was requested
  • drivers/upsdrvctl.c: log when the tool is exiting
  • drivers/upsdrvctl.c: count the UPSes we would command; foregrounding behavior depends on that number
  • drivers/upsdrvctl.c: complete the fix for upsdrvctl explicit fore-/back-grounding mode [#1806 follow-up]
  • tests/NIT/nit.sh: double-quote the driverpath value so it is properly parsed

2.451. 2023-03-13 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/Makefile.am: clean away symlinked gpiotest sources
  • tests/Makefile.am, tests/.gitignore: refer to generic_gpio_libgpiod.c/generic_gpio_common.c differently for portability
  • tests/Makefile.am: relocate "endif" lines back, with a different way for sources of tests are always redistributed

2.452. 2023-03-14 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: fixup! NEWS: libdummy_mockdrv.la added [#1855]

2.453. 2023-03-13 Jim Klimov <jimklimov@gmail.com>

  • tests/Makefile.am: simplify recipe for gpiotest
  • NEWS: libdummy_mockdrv.la added [#1855]
  • drivers/generic_gpio_common.c, drivers/generic_gpio_common.h, tests/Makefile.am, tests/generic_gpio_utest.c: tests/generic_gpio_utest.c, tests/Makefile.am: avoid "include generic_gpio_common.c generic_gpio_liblocal.c generic_gpio_libgpiod.c" in test code
  • tests/generic_gpio_utest.c, tests/Makefile.am: avoid sourcing "main.c" and "dstate.c" right into test code
  • drivers/Makefile.am, drivers/main.c, drivers/main.h: drivers/main.{c,h} drivers/Makefile.am: introduce libdummy_mockdrv.la (and DRIVERS_MAIN_WITHOUT_MAIN)
  • tests/generic_gpio_utest.c, tests/Makefile.am: EXTRA_DIST and use for out-of-tree builds the generic_gpio_test.txt resource file
  • tests/Makefile.am: refer to "tests/" as include-dir for gpiotest
  • tests/generic_gpio_utest.c: add a declaration of ignore() to override the original main() from included main.c
  • drivers/dstate.c: sock_fail(): rename "struct passwd *user" to avoid clash with global varname in main.c (due to tests/generic_gpio_utest.c construction)
  • drivers/generic_gpio_common.h, tests/generic_gpio_liblocal.c, tests/generic_gpio_utest.c: Define NUT_GPIO_SUBTYPEBUF and NUT_GPIO_CHIPNAMEBUF for consistency, avoid local/global varname clashes for chipName
  • drivers/generic_gpio_libgpiod.c: rename "num_lines" to avoid global varname clash (in tests)
  • tests/Makefile.am, tests/generic_gpio_liblocal.c, tests/generic_gpio_utest.c, tests/generic_gpio_utest.h: Introduce tests/generic_gpio_utest.h
  • tests/Makefile.am: drivers/Makefile.am: relocate "endif" lines so sources of tests are always redistributed
  • drivers/generic_gpio_libgpiod.c: rename "(gpio)upsfd" method arguments to avoid shadowing global varnames
  • drivers/generic_gpio_common.c: rename "(gpio)upsfd" method arguments to avoid shadowing global varnames
  • drivers/generic_gpio_common.c, drivers/generic_gpio_common.h, drivers/generic_gpio_libgpiod.h: drivers/generic_gpio*.h: move "extern struct gpioups_t *gpioupsfd" to generic_gpio_common.h
  • tests/.gitignore: GitIgnore tests/gpiotest* artifacts

2.454. 2023-03-11 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: do not require --with-gpio=yes for builds --with-all even on Linux: only the newer distros support the tech
  • NEWS, UPGRADING, docs/configure.txt: clarify that libgpiod is for Linux released after \~2018
  • docs/config-prereqs.txt: add installation of (lib)gpio(d)-dev(el) where feasible
  • docs/configure.txt: update prereq note for GPIO drivers
  • configure.ac, m4/nut_check_libgpiod.m4: fix actual --with-gpio handling
  • drivers/Makefile.am: add generic_gpio*.h to dist_noinst_HEADERS
  • configure.ac: relocate all "NUT_ARG_WITH(build and install GPIO driver)" to other drivers, so they are nearby in configure --help
  • m4/nut_check_pkgconfig.m4: fix AS_HELP_STRING (program name; not optional)
  • configure.ac: relocate all "NUT_ARG_WITH(build and install … driver)" together, so they are nearby in configure --help

2.455. 2023-03-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: suggest Zadig tool to handle UPS with WinUSB (for WIN32 builds)

2.456. 2023-03-11 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS, UPGRADING, docs/configure.txt, docs/packager-guide.txt: mention new category of GPIO drivers
  • configure.ac: currently --with-gpio defaults are platform-dependent

2.457. 2023-03-07 modrisb <modrisb@apollo.lv>

  • drivers/generic_gpio_libgpiod.c: fixed debug print in common
  • tests/Makefile.am, tests/generic_gpio_liblocal.c, tests/generic_gpio_test.txt, tests/generic_gpio_utest.c: added tests for gpio
  • drivers/generic_gpio_libgpiod.c: libgpiod formatting
  • drivers/generic_gpio_libgpiod.c, m4/nut_check_libgpiod.m4: adding 2 missed commits

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

  • ci_build.sh: add rudimentary support for "./ci_build.sh spellcheck-interactive"
  • docs/developers.txt, docs/nut.dict: docs/developers.txt: add a chapter on IDEs

2.459. 2023-03-06 modrisb <modrisb@apollo.lv>

  • drivers/generic_gpio_common.c: 2n round of refactoring after test

2.460. 2023-03-06 Jim Klimov <jimklimov@gmail.com>

  • tools/nut-scanner/scan_xml_http.c: Update scan_xml_http.c

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

  • tools/nut-scanner/scan_ipmi.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_usb.c, tools/nut-scanner/scan_xml_http.c: nut-scanner: reformat "Cannot load … library" reports, fix varname for libneon

2.462. 2023-03-05 Jim Klimov <jimklimov@gmail.com>

  • drivers/libusb1.c: Update libusb1.c Change to conventional error-message format

2.463. 2023-03-05 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: become_user(): "pw" is not NUT_UNUSED_VARIABLE() anymore
  • drivers/libusb1.c: report text of libusb_error when libusb_kernel_driver_active() fails

2.464. 2023-03-05 modrisb <modrisb@apollo.lv>

  • drivers/generic_gpio_common.c: fixes after extensive rules& states calc tests

2.465. 2023-03-05 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: try to ensure a TMPDIR

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

  • common/common.c: become_user(): fix behavior with NULL arg
  • tools/nut-scanner/nutscan-init.c: pepper with upsdebugx(1,…) to track overview progress of library loading (or not)
  • tools/nut-scanner/nutscan-init.c: first search for contemporary libupsclient DLL on Windows
  • tools/nut-scanner/nutscan-init.c: fix searching for libneon and libnetsnmp on Windows
  • common/common.c: fix checking for DLLs in "../lib" relative to EXE location
  • common/common.c: be sure to check for DLLs in EXE location (even if it is not "." workdir)
  • drivers/main.c: use common nut_report_config_flags() to debug-log details of the driver build
  • common/common.c: reword stderr printout as upsdebugx(1,…) pattern
  • common/common.c: externalize (and rename) struct timeval upslog_start so other methods can use the same accounting

2.467. 2023-03-02 modrisb <modrisb@apollo.lv>

  • drivers/generic_gpio_common.c, drivers/generic_gpio_libgpiod.c: removed test code and finalized styling

2.468. 2023-03-01 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/scheduling.txt: align example timeouts in different paragraphs

2.469. 2023-03-01 modrisb <modrisb@apollo.lv>

  • drivers/generic_gpio_libgpiod.c: removed define for debug

2.470. 2023-03-01 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: extend search for RUN_AS_USER in upsmon.conf [#1859]
  • configure.ac: reshuffle for --enable-inplace-runtime=reenter support; detect sysconfdir/user/group in one place where we care for "inplace" mode [#1859]
  • configure.ac: fix re-entry of the script when handling --enable-inplace-runtime [#1859]
  • configure.ac: comment that in some systems, the upsd in PATH is a shell wrapper [#1859] e.g. in Debian packaging where it is tied into "MODE" of nut.conf

2.471. 2023-02-28 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/developers.txt: update coding style guide about braces after if/while/for/… even for a single line
  • clients/upssched.c: parse_at(): add upsdebugx() tracing [#1858]
  • clients/upsc.c, clients/upscmd.c, clients/upslog.c, clients/upsmon.c, clients/upsrw.c, server/upsd.c, tools/nut-scanner/nut-scanner.c: Fix help()/usage() in many programs to suggest "-h" and/or "-V" options
  • clients/upssched.c: enable command-line argument handling [#1863] Closes: #1863
  • clients/upssched.c: Revert "clients/upssched.c: main(): find use for argc" This reverts commit dca2315fa8fb9a80528726cbc235310f19aa948f. Not needed anymore, and actually added a bug (prog not remembered).
  • m4/ax_realpath.m4: comment about recursion involved [#1859]
  • configure.ac: disable UNITTEST_AX_REALPATH and the exit afterwards [#1859]
  • m4/ax_realpath.m4: AX_REALPATH(): quote reported pathnames consistently [#1859]
  • m4/ax_realpath.m4: AX_REALPATH(): report if resolved pathname differs from input value [#1859]
  • m4/ax_realpath.m4: AX_REALPATH(): try AX_REALPATH_SHELL_RECURSIVE even if file is not found initially; fix how we decide it is not found [#1859]
  • m4/ax_realpath.m4: AX_REALPATH_SHELL_RECURSIVE() AX_REALPATH_SHELL_ONELEVEL(): drop support for LVL (shell vars misbehave here so not interesting) [#1859]
  • m4/ax_realpath.m4: split AX_REALPATH_SHELL_RECURSIVE() into a loop and its called method [#1859]
  • m4/ax_realpath.m4: UNITTEST_AX_REALPATH(): relocate shell logic into AX_REALPATH_SHELL_RECURSIVE() [#1859]
  • m4/ax_realpath.m4: UNITTEST_AX_REALPATH(): reword a test description [#1859]
  • m4/ax_realpath.m4: UNITTEST_AX_REALPATH(): avoid using /tmp directly if possible [#1859]
  • m4/ax_realpath.m4: format messages in UNITTEST_AX_REALPATH() and UNITTEST_AX_REALPATH_EXPECT() in a friendlier fashion [#1859]
  • m4/ax_realpath.m4: refactor UNITTEST_AX_REALPATH() with UNITTEST_AX_REALPATH_EXPECT() helper [#1859]
  • configure.ac: TEMPORARY: add call to UNITTEST_AX_REALPATH and exit after it [#1859]
  • m4/ax_realpath.m4: introduce UNITTEST_AX_REALPATH [#1859]

2.472. 2023-02-27 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/ax_realpath.m4: add some error-checking for unresolved paths [#1859]
  • configure.ac, m4/ax_realpath.m4: configure.ac: refactor realpath_m4() into m4/ax_realpath.m4 [#1859]
  • configure.ac: introduce realpath_m4() [#1859]

2.473. 2023-02-27 modrisb <modrisb@apollo.lv>

  • m4/nut_check_libgpiod.m4: naming change for PKG_CONFIG - dev version
  • configure.ac, drivers/Makefile.am, m4/nut_check_libgpiod.m4: added m4 file for driver

2.474. 2023-02-27 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update docs/nut.dict

2.475. 2023-02-26 Jim Klimov <jimklimov@gmail.com>

  • INSTALL.nut: update instructions for parallel make all \+ check

2.476. 2023-02-26 modrisb <modrisb@apollo.lv>

  • docs/man/Makefile.am, docs/man/{gpio.txt ⇒ generic_gpio.txt}, drivers/Makefile.am, drivers/generic_gpio_common.c, drivers/generic_gpio_common.h, drivers/generic_gpio_libgpiod.c, drivers/generic_gpio_libgpiod.h: PR review #1 (no m4)

2.477. 2023-02-25 modrisb <modrisb@apollo.lv>

  • docs/man/gpio.txt, drivers/Makefile.am, drivers/{gpio.c ⇒ generic_gpio_common.c}, drivers/{gpio.h ⇒ generic_gpio_common.h}, drivers/generic_gpio_libgpiod.c, drivers/generic_gpio_libgpiod.h: renamed source code files

2.478. 2023-02-23 modrisb <modrisb@apollo.lv>

  • drivers/gpio.c, drivers/gpio.h: refactored to better split generic code from gpio library specific code
  • docs/man/gpio.txt, docs/nut.dict: man page spellcheck fixes

2.479. 2023-02-22 modrisb <modrisb@apollo.lv>

  • drivers/gpio.c: removed local test define
  • docs/man/Makefile.am, docs/man/gpio.txt, drivers/gpio.c: PR preparation fixes

2.480. 2023-02-22 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: nut_report_config_flags(): avoid warnings about unreachable code
  • common/common.c: nut_report_config_flags(): make it clear (and safe for in-place mode) when no CONFIG_FLAGS were customized for a NUT build

2.481. 2023-02-22 modrisb <modrisb@apollo.lv>

  • drivers/gpio.h: .h updates

2.482. 2023-02-22 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_report_feature.m4: fix NUT_REPORT_TARGET() for multi-token values of CC_VERSION etc.

2.483. 2023-02-22 modrisb <modrisb@apollo.lv>

  • docs/man/gpio.txt, drivers/gpio.c: preparing for PR

2.484. 2023-02-22 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: fixup! configure.ac: report CC_VERSION (also into config.h)
  • m4/nut_report_feature.m4: fix printf() reporting of potentially "funny" strings
  • common/common.c: nut_report_config_flags(): report CC_VERSION if available
  • configure.ac: report CC_VERSION (also into config.h)
  • configure.ac, m4/nut_compiler_family.m4: minimize executions of "CC --version" etc, make it LANG-agnostic, cache as CC_VERSION etc.
  • common/common.c, configure.ac: configure.ac: actually, we should not forcefully export NUT_SOURCE_GITREV into config.h
  • common/common.c, configure.ac: configure.ac, common/common.c nut_report_config_flags(): track and report NUT_SOURCE_GITREV if available (even where nut_version.h imposes strict version)

2.485. 2023-02-22 modrisb <modrisb@apollo.lv>

  • docs/man/gpio.txt: added draft man page

2.486. 2023-02-20 modrisb <modrisb@apollo.lv>

  • drivers/gpio.h: initial for GPIO(2)
  • configure.ac, drivers/Makefile.am, drivers/gpio.c: initial for gpio driver support

2.487. 2023-02-12 Jim Klimov <jimklimov@gmail.com>

  • drivers/tripplite-hid.c: Update tripplite-hid.c Update subdriver version along with content bump

2.488. 2023-02-12 Jon Gilmore <jon@gilmore.cloud>

  • drivers/tripplite-hid.c, scripts/upower/95-upower-hid.hwdb: add support for minuteman device a0a0

2.489. 2023-02-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/main.c: options -a id and -s id are mutually exclusive and single-use only
  • configure.ac: --enable-inplace-runtime should not disregard sysconfdir which the build user may not read

2.490. 2023-02-11 Yifeng Li <tomli@tomli.me>

  • drivers/huawei-ups2000.c: huawei-ups2000: fix broken timeout recovery behavior in Issue #1846. Occasionally, the UPS takes longer than 1 second to respond and finish transmitting a message. This causes a timeout in modbus_read_registers(), and the driver is supposed to retry the request and recover from the failure. Unfortunately, when the driver retries, instead of getting the result of the current request, the leftover bytes from the previous read is received from the serial buffer, creating invalid messages. It causes all following reads to also fail, often with an "Invalid CRC" error, and the driver can never recovery from the failure. This commit fixes the bug by flushing the buffer using function modbus_flush() before invoking modbus_read_registers(). The libmodbus timeout value is also bumped to 2 seconds to avoid unnecessary timeouts and subsequent retries. Finally, the version number is also bumped to reflect the existence of this fix.

2.491. 2023-02-07 Jim Klimov <jimklimov+nut@gmail.com>

  • INSTALL.nut: fix link to Config Prereqs in generated HTML version

2.492. 2023-02-05 Jim Klimov <jimklimov+nut@gmail.com>

  • INSTALL.nut, docs/nut.dict: INSTALL.nut: update with "in-place" rebuilds chapter [#1826]

2.493. 2023-02-03 Jim Klimov <jimklimov+nut@gmail.com>

  • .github/FUNDING.yml: Introduce .github/FUNDING.yml metadata

2.494. 2023-02-02 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: add OSC and opencollective

2.495. 2023-02-01 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: rearrange progress message for "whether to build binaries with tighter systemd integration support"
  • configure.ac: quiesce python checks for modules

2.496. 2023-01-28 Jim Klimov <jimklimov@gmail.com>

  • docs/man/riello_usb.txt: Update riello_usb.txt
  • NEWS: Update NEWS
  • docs/man/riello_usb.txt: Update riello_usb.txt

2.497. 2023-01-26 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: avoid redirect to /dev/null on Windows

2.498. 2023-01-24 Jim Klimov <jimklimov@gmail.com>

  • NEWS: bestfortress shutdown timeout fixed [#1820]

2.499. 2023-01-22 Jim Klimov <jimklimov@gmail.com>

  • drivers/bestfortress.c: Update bestfortress.c Fix prints of (s)size_t variables

2.500. 2023-01-20 Greg Troxel <gdt@lexort.com>

  • drivers/bestfortress.c: bestfortress: Switch logging to func Add a few comments about needed future work, but no code changes. Adjust to (surprising to me) non-POSIX file descriptor types.

2.501. 2023-01-15 Greg Troxel <gdt@lexort.com>

  • drivers/bestfortress.c: driver/bestfortress: Fix serious shutdown bug and improve shutdown code - Move setting "ups.shutdown.delay" earlier so that it is available for upsdrvctl shutdown. This results in using that delay, instead of 1s. - Change shutdown delay to 20s from 10s, because that seems more common, and 10s feels too tight. - Add logging about shutdown. When run with -k, ups.delay.shutdown has apparently not been initialized. Fall back to 20, rather than 1, and log better.
  • drivers/bestfortress.c: drivers/bestfortress: Rationalize and improve debugging - Define a debug logging plan - Add debug log calls - Adjust several existing calls This commit does not intend to modify behavior other than logging.

2.502. 2023-01-26 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: bolt ccache location to avoid wasting space on Appveyor for older vs newer layouts
  • appveyor.yml: avoid amperesand in YAML
  • ci_build.sh: in the end, query ccache compression stats if supported
  • appveyor.yml: stash another possible ccache location
  • appveyor.yml: in the end, query ccache compression stats if supported
  • appveyor.yml: set ccache config options
  • tests/NIT/nit.sh: have a sense of time in the log_*() messages When tests fail on CI farm, this should help see timeouts due to farm under too much stress vs. "real" reasonable problems.
  • ci_build.sh: separate [build] and [check] failures (and successes) in BUILD_TYPE=default-all-errors reports

2.503. 2023-01-23 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: suggest CI_REQUIRE_GOOD_GITIGNORE="false" in error message
  • ci_build.sh: fix condition and shorten the printed lines for install-sh warning
  • configure.ac: fix condition and shorten the printed lines for install-sh warning
  • ci_build.sh: try workarounds for old and broken install-sh [#1831]
  • configure.ac: suggest workarounds for old and broken install-sh, visibly just before the end [#1831]

2.504. 2023-01-22 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/Makefile.am: give delivery of GENERATED_USB_OS_FILES more chances to succeed
  • docs/Makefile.am, docs/man/Makefile.am, scripts/Solaris/Makefile.am: */Makefile.am: replace "mkdir -p" by MKDIR_P autotools macro
  • tools/Makefile.am: do not fail (just warn) if any of GENERATED_USB_OS_FILES are missing or empty [#1831]
  • autogen.sh: ensure that nut-usbinfo.pl runs if any of its products are missing, not just a few (and comment how to keep the list updated) [#1831]
  • tools/Makefile.am: streamline "rebuilds" of GENERATED_USB_OS_FILES if needed [#1831] An alternative solution to #1832
  • tools/Makefile.am: comment GENERATED_SNMP_FILES\+GENERATED_USB_FILES vs. GENERATED_USB_OS_FILES lifecycles [#1831]
  • scripts/augeas/Makefile.am: fix EXTRA_DIST for nutupsconf.aug.in [#1831]
  • scripts/Makefile.am, tools/Makefile.am: scripts/Makefile.am: fix EXTRA_DIST for upower/95-upower-hid.hwdb [#1831]
  • scripts/devd/Makefile.am: fix EXTRA_DIST for nut-usb.conf.in [#1831]
  • scripts/udev/Makefile.am: fix EXTRA_DIST for nut-usbups.rules.in [#1831]
  • scripts/hotplug/Makefile.am: fix EXTRA_DIST for libhid.usermap [#1831]
  • ci_build.sh: help find end of NUT_x_VARIANT=… failed build (before cleanup noise) in CI logs
  • docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt: suggest MKDIRPROG hack for installing on NetBSD [#1834]
  • configure.ac, m4/nut_report_feature.m4: move KEEP_NUT_REPORT definition to before AC_OUTPUT [#1826]
  • UPGRADING: document --enable-keep_nut_report_feature and that the file can be installed [#1826, #1708]
  • docs/configure.txt: debug-report of CONFIG_FLAGS is now shorter
  • docs/configure.txt: document --enable-keep_nut_report_feature and that the file can be installed [#1826]
  • configure.ac: NUT_REPORT() the PACKAGE_VERSION (and GITREV if any) valid at the time of configure run [#1826]
  • configure.ac: report GITREV (if any) valid at the time of configure run
  • m4/nut_report_feature.m4, Makefile.am: install config.nut_report_feature.log if kept [#1826]
  • m4/nut_report_feature.m4: standardize indentation, more M4 AS_IFs [#1826]
  • drivers/richcomm_usb.c, drivers/nutdrv_atcl_usb.c, drivers/bcmxcp_usb.c: sync naming changes with drivers/libusb1.c [#1819, #1763, #1764]
  • drivers/libusb1.c: bump version for libusb_get_device_address() vs. libusb_get_port_number() [#1819]
  • tools/nut-scanner/scan_usb.c: sync naming and method changes with drivers/libusb1.c [#1819]
  • drivers/libusb1.c: align device_addr/devnum printing (back) with their int types [#1819]

2.505. 2023-01-21 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: fix systemd-tmpfiles detection from AC_CHECK_PROGS to AC_PATH_PROG for full pathname [#1822]
  • configure.ac: set --prefix, --sbindir or --bindir into CONFIG_FLAGS according to older binaries found (if not provided otherwise) [#1826, #1709]
  • configure.ac: do not pollute "SBINDIR" variable with tests for nut_enable_inplace_runtime, try PATH beside PREFIX, and generalize to try upsc if upsd is not found [#1826]
  • configure.ac: typo fix for CONFIG_FLAGS [#1826]
  • configure.ac: report determining CONFIG_FLAGS [#1709, #1826]
  • configure.ac: track NUT_VERSION_DEPLOYED which we inherit from with --enable-inplace-runtime [#1826]
  • configure.ac: update comments for systemd/nut-common-tmpfiles.conf.in
  • common/common.c: refactor nut_report_config_flags() to allow for longer option lists for purposes of "configure --enable-inplace-runtime" [#1826]
  • clients/Makefile.am, tools/nut-scanner/Makefile.am: Refactor nut_report_config_flags() from many programs into common.c [#1826, #1709] - bump libs version-info
  • clients/upsc.c, clients/upscmd.c, clients/upslog.c, clients/upsmon.c, clients/upsrw.c, common/common.c, drivers/main.c, include/common.h, server/upsd.c, tools/nut-scanner/nut-scanner.c: Refactor nut_report_config_flags() from many programs into common.c [#1826, #1709]
  • configure.ac: do not track in CONFIG_FLAGS that we --disable-runtime-support, and only track once that we --enable-runtime-support [#1826]
  • lib/libupsclient-config.in: comment that NUT_VERSION_MACRO in binaries may differ from PACKAGE_VERSION in the script [#1826]

2.506. 2023-01-20 Neil Romig <neilromig@gmail.com>

  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: Update nut-driver-enumerator.sh.in Remove backslash from grep expression at line 836 to avoid grep warning of stray backslash.

2.507. 2023-01-19 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: prepare nut-common-tmpfiles.conf.in subdir for @STATEPATH@/upssched, and update comments

2.508. 2023-01-18 Jim Klimov <jimklimov+nut@gmail.com>

  • autogen.sh, configure.ac, docs/config-prereqs.txt: Bump commented suggestions to automake-1.13 or newer Follow-up to #1821
  • scripts/python/module/PyNUT.py.in: update for dual Py2/Py3 citizenship
  • scripts/python/app/NUT-Monitor-py2gtk2.in, scripts/python/app/NUT-Monitor-py3qt5.in, scripts/python/module/PyNUT.py.in, scripts/python/module/README, scripts/python/module/test_nutclient.py.in: scripts/python/*: import definition and use-case of CheckUPSAvailable() from Fedora packaging patches Py2: https://src.fedoraproject.org/rpms/nut/blob/3c9fea3a359db592e3c7d25ff5c8050325b21dfe/f/nut-2.6.5-unreachable.patch Py3: https://src.fedoraproject.org/rpms/nut/blob/48685366900985696be8371d8deea6494ae36c43/f/nut-2.6.5-unreachable.patch by Michal Hlavinka
  • configure.ac, scripts/systemd/nut-driver-enumerator.service.in, scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in: scripts/systemd/*.service.in: parameterize systemd-tmpfiles program location
  • scripts/systemd/nut-driver-enumerator.service.in, scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in: scripts/systemd/*.service.in: ExecStartPre systemd-tmpfiles to facilitate install/upgrade with less fuss Inspired by Fedora Rawhide patches at https://src.fedoraproject.org/rpms/nut/blob/0a29e563e374f274f801270bce8eaab9159c7d16/f/nut-2.6.3-tmpfiles.patch
  • ci_build.sh: shuffle quotes in NUT_*_VARIANT=… reports for easier search in logs
  • ci_build.sh: make maintainer-clean less noisy in CI if V=0 (automake clean.m4 echoes unconditionally)
  • Makefile.am, clients/Makefile.am, common/Makefile.am, docs/Makefile.am, docs/man/Makefile.am, drivers/Makefile.am, include/Makefile.am, scripts/python/Makefile.am, server/Makefile.am, tests/Makefile.am, tests/NIT/Makefile.am, tools/nut-scanner/Makefile.am: */Makefile.am: use AM_V_at for optionally-quieter cleanup
  • ci_build.sh: for developer builds, disable silent rules to see all problems better
  • ci_build.sh: make cleanup less noisy
  • ci_build.sh: make verbose builds actually verbose
  • configure.ac: default to automake-"silent" rules for builds

2.509. 2023-01-17 Edgar Fuß <ef@math.uni-bonn.de>

  • drivers/libusb1.c: Use libusb_get_device_address(), not libusb_get_port_number() In USB device enumeration, when setting curDevice→Device, use libusb_get_device_address(), not libusb_get_port_number(). While there, rename bus to bus_num to avoid ambiguity. When printf()ing devnum (a size_t), use %zd, which is POSIX, not PRIuSIZE, which is not.

2.510. 2023-01-16 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/app/nut-monitor.appdata.xml: nut-monitor.appdata.xml: add launchable=nut-monitor.desktop Inspired by https://salsa.debian.org/debian/nut/-/blob/a009ca10a327d7db383f5d7726091050ceb4d60f/debian/patches/appdata-launchable.patch from @bigon but adjusted for general version-agnostic dispatcher (py2 or py3, whatever is installed for this end-user deployment)
  • tools/nut-scanner/scan_nut.c: simplify check for "port" similar to scan_avahi.c [#1815]
  • tools/nut-scanner/scan_avahi.c: comments similar to scan_nut.c
  • tests/NIT/nit.sh: verify that port number is suffixed by nut-scanner when needed [#1815]
  • tools/nut-scanner/scan_nut.c: comment about "nutclient" driver value
  • tools/nut-scanner/scan_nut.c: suffix non-standard port numbers to "port" in config [#1815]
  • tools/nut-scanner/scan_nut.c: use uint16_t port to align with upsclient.c [#1815]
  • tests/NIT/nit.sh: fix LD_LIBRARY_PATH for testcase_sandbox_nutscanner_list()
  • tests/NIT/nit.sh: simplify bail-out pattern for nut-scanner to match on more OSes
  • configure.ac: CONFIG_FLAGS: older ksh dislikes doublequotes inside backticks, all doublequoted outside ⇒ use $(…)

2.511. 2023-01-15 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: fix support for CONFIG_FLAGS with spaces
  • configure.ac: log the CLI options for restarted run when nut_enable_inplace_runtime
  • tests/NIT/nit.sh: testcase_sandbox_nutscanner_list(): excuse lack of libupsclient.so/dll in path
  • configure.ac, docs/configure.txt: configure.ac: consult CONFIG_FLAGS_DEPLOYED and CONFIG_FLAGS when --enable-inplace-runtime mode is used
  • drivers/main.c: report CONFIG_FLAGS always when debugging [#1789]
  • clients/upsc.c, clients/upscmd.c, clients/upslog.c, clients/upsmon.c, clients/upsrw.c, docs/configure.txt, drivers/main.c, server/upsd.c, tools/nut-scanner/nut-scanner.c: NUT programs should report CONFIG_FLAGS for help/version requests with debug enabled Related-to: #1789
  • configure.ac: lib/libupsclient-config is a SCRIPTFILE
  • lib/libupsclient-config.in: report CONFIG_FLAGS
  • lib/libupsclient-config.in: double-quote shell expansions

2.512. 2022-11-16 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac, m4/nut_report_feature.m4: m4/nut_report_feature.m4: report configure invocation args

2.513. 2023-01-15 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/scan_avahi.c: when bailing out of Avahi scan, do so comprehensibly for readers of error messages
  • tests/NIT/nit.sh: add rudimentary nut-scanner tests
  • tools/nut-scanner/nutscan-display.c: weave nutdevX numbering for different scan types when generating ups.conf with sanity-check warnings with a global var [#1810]

2.514. 2023-01-14 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/nutscan-display.c: nutscan_display_sanity_check_serial(): fix failsafe condition [#1810]
  • tools/nut-scanner/nutscan-display.c: nutscan_display_sanity_check_serial(): if not null, one device entry exists [#1810]
  • tools/nut-scanner/nutscan-display.c: nutscan_display_sanity_check_serial(): trace progress through logic [#1810]
  • tools/nut-scanner/nutscan-display.c: trace entry into the display methods [#1810]
  • NEWS, UPGRADING, docs/man/Makefile.am, docs/man/nut-scanner.txt, docs/man/nutscan.txt, docs/man/nutscan_add_option_to_device.txt, docs/man/nutscan_cidr_to_ip.txt, docs/man/nutscan_display_parsable.txt, docs/man/nutscan_display_sanity_check.txt, docs/man/nutscan_display_sanity_check_serial.txt, docs/man/nutscan_display_ups_conf.txt, …/nutscan_display_ups_conf_with_sanity_check.txt, docs/man/nutscan_free_device.txt, docs/man/nutscan_get_serial_ports_list.txt, docs/man/nutscan_init.txt, docs/man/nutscan_new_device.txt, docs/man/nutscan_scan_avahi.txt, docs/man/nutscan_scan_eaton_serial.txt, docs/man/nutscan_scan_ipmi.txt, docs/man/nutscan_scan_nut.txt, docs/man/nutscan_scan_snmp.txt, docs/man/nutscan_scan_usb.txt, docs/man/nutscan_scan_xml_http_range.txt, tools/nut-scanner/nut-scan.h, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-display.c: nut-scanner: report bogus and duplicate serial numbers [#1810]
  • NEWS, docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt: document notes about a build for Solaris 8 [#1736, #1738]
  • NEWS: mention instructions for CentOS 6 native NUT 2.8.x builds [#1804]

2.515. 2023-01-12 Jim Klimov <jimklimov+nut@gmail.com>

  • .editorconfig: Revert ".editorconfig: try to neuter additional IntelliJ IDEA formatter [#894]" This reverts commit f9b195a4650766ef81cc4daa35f2d6cee932c87a.
  • .editorconfig, AUTHORS, INSTALL.nut, NEWS, README, TODO, UPGRADING, docs/.editorconfig, docs/acknowledgements.txt, docs/cables/apc.txt, docs/cables/ge-imv-victron.txt, docs/cables/mgeups.txt, docs/cables/powerware.txt, docs/cables/repotec.txt, docs/config-prereqs.txt, docs/maintainer-guide.txt, docs/man/.editorconfig, docs/man/apcsmart.txt, docs/man/apcupsd-ups.txt, docs/man/asem.txt, docs/man/bcmxcp.txt, docs/man/bcmxcp_usb.txt, docs/man/belkinunv.txt, docs/man/bestfortress.txt, docs/man/blazer-common.txt, docs/man/blazer_usb.txt, docs/man/generic_modbus.txt, docs/man/liebert-esp2.txt, docs/man/macosx-ups.txt, docs/man/nut-ipmipsu.txt, docs/man/nut-scanner.txt, docs/man/nut_usb_addvars.txt, docs/man/nutdrv_qx.txt, docs/man/nutdrv_siemens_sitop.txt, docs/man/powerman-pdu.txt, docs/man/socomec_jbus.txt, docs/man/tripplite_usb.txt, docs/man/ups.conf.txt, docs/man/upsclient.txt, docs/man/upslog.txt, docs/nut.dict, docs/snmp-subdrivers.txt, docs/solaris-usb.txt, scripts/RedHat/README, scripts/Windows/DriverInstaller/README.txt, scripts/Windows/README, scripts/augeas/README, scripts/devd/README, scripts/hotplug/README, scripts/python/README, scripts/systemd/README, scripts/udev/README, scripts/ufw/README, tests/NIT/README, tools/nut-scanner/README: Apply .editorconfig driven cleanup to docs [#894]
  • docs/man/nut_usb_addvars.txt: update comment for allow_duplicates [#1756]
  • docs/man/nut_usb_addvars.txt: update comment for nut-scanner [#1790]
  • .editorconfig: exempt itself from trailing whitespace (possibly needed for block-comment definitions) [#894]
  • .editorconfig: try to neuter additional IntelliJ IDEA formatter [#894]
  • docs/developers.txt, docs/nut.dict: docs/developers.txt: mention editorconfig [#894]
  • .editorconfig: Elaborate on .editorconfig some more [#894]
  • .editorconfig: Elaborate on .editorconfig [#894]
  • .editorconfig: Introduce a basic .editorconfig file [#894]
  • configure.ac: drop double-quotes from NUT_REPORT*() args [#1708]
  • NEWS, docs/man/upsdrvctl.txt, drivers/upsdrvctl.c: drivers/upsdrvctl.c: add "-F"/"-B" args for drivers to be fore/back-grounded explicitly [#1759]
  • drivers/upsdrvctl.c: whitespace fix in usage()
  • docs/config-prereqs.txt: clarify lack of libusb-1.0 in CentOS 6
  • autogen.sh: ensure quieter perl on system with invalid locale

2.516. 2023-01-11 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac, m4/ax_check_compile_flag.m4: relax minimum autoconf to 2.63 (checked on CentOS6)
  • docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt: update for CentOS6
  • scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in: network-online.target dependency [#749]
  • UPGRADING, docs/nut.dict: UPGRADING: clarify improvements for "duplicate" USB device handling in NUT 2.8.1 [#1763, #1766, #1756, #1790]
  • drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: clarify expected/got byte amounts (fix typo) [#1797]
  • configure.ac: evaluate pkgconfigdir into a real pathname Have an needs further evaluation
  • configure.ac: report enabling SMF support (consistent vs. reporting systemd already) [#1708]
  • configure.ac: report installation paths for optional third-party integrations [#1708, #1668]
  • configure.ac: simplify reporting of Python site-packages location [#1787, #1708]
  • configure.ac: rearrange Python interpreter and path reporting [#1787, #1708]
  • m4/nut_report_feature.m4: introduce NUT_REPORT_PATH_INTEGRATIONS and NUT_REPORT_SETTING_PATH_INTEGRATIONS chapter [#1708]
  • m4/nut_check_python.m4: fix copy-paste typo in autoconf m4 markup [#1787]
  • m4/nut_check_python.m4: use stricter conditions to check if PYTHONx values are invalid [#1787]

2.517. 2023-01-10 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: report Python choices (if installing anything of it) [#1787]
  • m4/nut_check_python.m4: if resolved versioned interpreter filename is not a strict expected pattern, fall back to search [#1787]
  • m4/nut_check_python.m4: warn if using "PYTHON" via "/usr/bin/env" and not exact path [#1787]
  • m4/nut_check_python.m4: if major version is known and expected, try to resolve the versioned interpreter starting from any initial name (check sanity afterwards, not before) [#1787]
  • m4/nut_check_python.m4: add python 3.10 to searching list [#1787]
  • m4/nut_check_python.m4: use pythonX-config if available to find the interpreter path [#1787]
  • m4/nut_check_python.m4: add comments (and warning) about interpreter names without an exact version (2.* or 3.*) [#1787]
  • docs/configure.txt: warn about delivering for both Pythons if two are present [#1787]

2.518. 2023-01-09 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/configure.txt: warn about naming "relaxed" python interpreter versions [#1787]
  • m4/nut_check_python.m4: for args like --with-python=python3 try to find build environment dictated pathname first, fall back to "env" second [#1787] Note: this does not apply to --with-python="prog args" as a bit too complex for now
  • m4/nut_check_python.m4, docs/configure.txt: detect not-specified PYTHON2/PYTHON3 from PYTHON first (if version is suitable) [#1787]

2.519. 2023-01-11 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apc-hid.c: comment 0xff86007c as "APCDelayBeforeReboot" vs "APCForceShutdown" uncertainty [#1796]
  • data/driver.list.in: update for APC CS500 (from 2004) [#1776]

2.520. 2023-01-10 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: copy-paste typo fix for CANBUILD_NIT_TESTS handling
  • NEWS, drivers/libusb0.c, drivers/libusb1.c, tools/nut-scanner/scan_usb.c: nut-scanner: report same USB matching values as seeked by libusb{0,1}.c [#1790]
  • NEWS, drivers/powercom.c: powercom driver should try harder to refresh data from device [#356]

2.521. 2023-01-09 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_check_python.m4: if --with-python2/3 are not specified, use exact path from --with-python (if available) to match its site-packages [#1787]
  • docs/configure.txt: clarify that autogen.sh and configure may default to different PYTHON versions [#1787]
  • m4/nut_check_python.m4: actually fail if a Python version was required but not found [#1787]
  • configure.ac, m4/nut_check_python.m4: refactor with NUT_CHECK_PYTHON_DEFAULT [#1518]
  • docs/configure.txt: current configure script does not use "PYTHON{,2,3}" envvars [#1787]
  • docs/configure.txt: document python, pynut and nut_monitor related options and autogen.sh fuss about it [#1787]
  • docs/configure.txt: whitespace fixes
  • docs/configure.txt: hint for builds of git checkouts [#1750]

2.522. 2023-01-10 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: bump version for allow_duplicates [#1756]

2.523. 2023-01-08 Greg Troxel <gdt@lexort.com>

  • conf/upsd.conf.sample: upsd.conf.sample: Clarify LISTEN/firewall comments

2.524. 2023-01-07 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: fix if/ifdef for configure-detected methods [#1590, #1739]
  • NEWS, clients/upsclient.h, clients/upsmon.c, clients/upsmon.h, conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt, docs/man/upsmon.txt, docs/nut.dict: upsmon: Introduce POLLFAIL_LOG_THROTTLE_MAX [#506]
  • clients/upsmon.c: cosmetic fixes
  • NEWS, docs/FAQ.txt, docs/config-notes.txt, docs/man/upsd.txt: fixup! scripts/systemd/nut-server.service.in, scripts/systemd/nut-monitor.service.in: provide an Alias for convenience (upsd, upsmon)
  • docs/configure.txt: document --with-libsystemd related options [#1590]
  • common/common.c: optionally define DEBUG_SYSTEMD_WATCHDOG to ignore upsnotify_reported_watchdog_systemd hush-flag when troubleshooting [#1590]
  • common/common.c: set WATCHDOG_PID along with MAINPID and re-enable not-posting the pings if expected PID is not ours [#1590]
  • common/common.c, m4/nut_check_libsystemd.m4: use sd_notify_barrier() if available after reporting MAINPID to systemd [#1590]
  • configure.ac, docs/man/upsd.txt: configure.ac: run systemd/nut-server.service both with a PID file and without forking [#1781]
  • scripts/systemd/nut-server.service.in, scripts/systemd/nut-monitor.service.in: use Restart=on-failure so that clean intentional exit (e.g. by signal handling) does not revive it [#1781]

2.525. 2023-01-06 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: upsnotify(): opportunistically post sd_notify() even if "WATCHDOG_PID" mismatches [#1590]
  • common/common.c: upsnotify(): log checking "WATCHDOG_USEC" and "WATCHDOG_PID" (once) [#1590]
  • common/common.c: upsnotify(): log setting MAINPID [#1590]
  • common/common.c: upsnotify(): hush watchdog-related logging further [#1590]
  • configure.ac, scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in: Suggest default systemd NotifyAccess settings for upsd, upsmon and drivers [#1590]
  • common/common.c: upsnotify(): revise "snprintf needed more than…" messages [#1590]
  • configure.ac: comment a TODO: consider calling "systemd-notify" if have no sd_notify() [#1590]
  • configure.ac, scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in: Suggest default systemd watchdog settings for upsd, upsmon and drivers [#1590]
  • NEWS, UPGRADING, docs/nut.dict: NEWS, UPGRADING: added libsystemd notification support [#1590]
  • NEWS, UPGRADING: cosmetic fixes
  • configure.ac, scripts/systemd/nut-driver@.service.in, scripts/systemd/nut-monitor.service.in, scripts/systemd/nut-server.service.in: configure.ac, scripts/systemd/*.in: optionally support Type=notify for upsd, upsmon and drivers [#1590]
  • scripts/systemd/nut-server.service.in, scripts/systemd/nut-monitor.service.in: provide an Alias for convenience (upsd, upsmon)
  • drivers/main.c: make use of new upsnotify() [#1590]
  • server/upsd.c: make use of new upsnotify() [#1590]
  • clients/upslog.c: make use of new upsnotify() [#1590]
  • clients/upsmon.c: make use of new upsnotify() [#1590]
  • common/common.c: parsepid(): handle NULL input reasonably on all platforms [#1590]

2.526. 2023-01-05 Jim Klimov <jimklimov+nut@gmail.com>

  • common/Makefile.am, common/common.c, include/common.h: common/common.c: add upsnotify() method into libcommon.la (but not libcommonclient) [#1590]
  • configure.ac, drivers/Makefile.am: use LIBI2C_LIBS to avoid pulling -li2c everywhere
  • configure.ac, docs/config-prereqs.txt, m4/nut_check_libsystemd.m4: m4/nut_check_libsystemd.m4, configure.ac: On systemd aware OSes, optionally integrate with sd_notify() [#1590]

2.527. 2023-01-06 Greg Troxel <gdt@lexort.com>

  • docs/man/upsmon.txt: Explain POWERDOWNFLAG Document that it is removed at successful startup

2.528. 2023-01-05 Greg Troxel <gdt@lexort.com>

  • docs/man/upsdrvctl.txt: docs/man: Clarify upsdrvctl shutdown
  • docs/man/bestfcom.txt, docs/man/bestfortress.txt, docs/man/bestups.txt: docs/man: Clarify Best driver support for Fortress LI660

2.529. 2023-01-06 Yifeng Li <tomli@tomli.me>

  • drivers/huawei-ups2000.c: huawei-ups2000.c: log error code/string for Modbus failures Currently, failures in modbus_read_registers() or modbus_write_registers() do not show any error code or message in the log, making it difficult to debug. This commit logs the error code, errno, and modbus_strerror() if an error occurs. Furthermore, the log level of a fatal warning has been changed from LOG_WARNING to LOG_ERR (LOG_WARNING was previously used due to an oversight).

2.530. 2023-01-06 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/libusb1.c: handle non-zero libusb port numbers as valid [#1774]

2.531. 2023-01-05 Greg Troxel <gdt@lexort.com>

  • MAINTAINERS: add pkgsrc

2.532. 2023-01-05 Edgar Fuß <ef@math.uni-bonn.de>

  • drivers/libusb1.c: Set curDevice→Device during USB enumeration During USB enumeration, set curDevice→Device. Try to use libusb1’s port number obtained by libusb_get_port_number(), but that seems useless at least on NetBSD. So, use devnum (the enumeration loop variable), which at least makes two identically looking USB UPSen distinguishable again. Maybe we want to add a Port property set to what libusb_get_port_number() reports? Previously missed during refactoring to libusb1.
  • drivers/nutdrv_qx_masterguard.c: Add experimental prefix missed in 7ef2874e81 drivers/nutdrv_qx_masterguard.c: Add "experimental." prefix in masterguard_claim(). Needed because that prefix had been added (in 7ef2874e81952fac532014a8840a217cf1d636b6) to the variable names in the masterguard_qx2nut[] table.

2.533. 2023-01-05 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS: mention update of NUT COPYING file [#1758]
  • NEWS, docs/man/nut_usb_addvars.txt, drivers/libusb0.c, drivers/libusb1.c: Introduce an allow_duplicates flag for common USB matching options [#1756]
  • drivers/libusb0.c, drivers/libusb1.c, drivers/usb-common.c: drivers/libusb{0,1}.c, drivers/usb-common.c: update comments in device matcher code
  • drivers/usb-common.h: update amount of supported possibly unique fields to try for device matching
  • drivers/libusb0.c, drivers/libusb1.c, drivers/usb-common.c: drivers/libusb{0,1}.c, drivers/usb-common.c: update comments in device matcher code

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

  • NEWS: announce new "driver.state" feature [#1767]
  • docs/nut-names.txt, drivers/adelsystem_cbi.c, drivers/bcmxcp_usb.c, drivers/blazer_usb.c, drivers/generic_modbus.c, drivers/main.c, drivers/nutdrv_qx.c, drivers/powerman-pdu.c, drivers/richcomm_usb.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usbhid-ups.c: driver/*.c: report reconnection attempts as a "driver.state" [#1767]
  • drivers/main.c: report where driver.state changes from init.* to just before regular work [#1767]
  • docs/nut-names.txt, docs/nut.dict, drivers/main.c: drivers/main.c, docs/nut-names.txt: introduce "driver.state" tracking [#1767]
  • docs/nut-names.txt: update with final RFC 9271 reference
  • docs/nut-names.txt: update WITH_UNMAPPED_DATA_POINTS [#1699, #1742]
  • drivers/richcomm_usb.c: hide from help() the USB matching settings that are not currently handled by the driver [#1768]
  • docs/man/richcomm_usb.txt: hide from docs the USB matching settings that are not currently handled by the driver [#1768]
  • docs/man/nut_usb_addvars.txt: document usb_set_altinterface setting (from libusb{0,1}.c)
  • NEWS: man pages refactored for USB matching options description [#1766]
  • docs/man/usbhid-ups.txt: refactor to include nut_usb_addvars.txt
  • docs/man/nut_usb_addvars.txt: update with reasoning for nut_usb_addvars settings from usbhid-ups.txt
  • docs/man/tripplite_usb.txt: refactor to include nut_usb_addvars.txt
  • docs/man/nut_usb_addvars.txt: update with references to lsusb and regex from tripplite_usb.txt
  • docs/man/richcomm_usb.txt, docs/man/riello_usb.txt: refactor to include nut_usb_addvars.txt [#1763]
  • docs/man/nutdrv_qx.txt: refactor to include nut_usb_addvars.txt
  • docs/man/nut_usb_addvars.txt: pick up "port" mention from nutdrv_qx.txt and expand on it
  • drivers/nutdrv_atcl_usb.c: report device_match_func() failure and refer to nutdrv_qx more prominently
  • docs/man/nutdrv_atcl_usb.txt: this driver uses a very custom device-matcher with only a vendor string
  • NEWS, drivers/Makefile.am, drivers/nutdrv_atcl_usb.c: Revert "drivers/nutdrv_atcl_usb.c: upsdrv_makevartable(): refer to nut_usb_addvars() [#1754]" This reverts commit 3b1b921669da9ca7f360cbcfa9645fa6816f66ed. This driver uses a very custom device-matcher.
  • docs/man/bcmxcp_usb.txt: mention lack of support for common nut_usb_addvars [#1764]
  • docs/man/Makefile.am, docs/man/blazer-common.txt, docs/man/nut_usb_addvars.txt, docs/nut.dict: Introduce docs/man/nut_usb_addvars.txt (initial content from blazer-common.txt with updated formatting)
  • NEWS: mention the fix for USB matching options fix for some drivers
  • drivers/riello_usb.c: upsdrv_makevartable(): refer to nut_usb_addvars() [#1754]
  • drivers/Makefile.am, drivers/richcomm_usb.c: drivers/richcomm_usb.c: upsdrv_makevartable(): refer to nut_usb_addvars() [#1754]
  • drivers/Makefile.am, drivers/nutdrv_atcl_usb.c: drivers/nutdrv_atcl_usb.c: upsdrv_makevartable(): refer to nut_usb_addvars() [#1754]
  • drivers/blazer_usb.c, drivers/nutdrv_qx.c: upsdrv_makevartable(): cosmetic fixes
  • drivers/bcmxcp.h: fix include-fencing macros
  • configure.ac: make default POWERDOWNFLAG configurable [#529] - escape more for autotools
  • configure.ac, scripts/Makefile.am, scripts/RedHat/.gitignore, scripts/RedHat/ups, scripts/RedHat/ups.in, scripts/RedHat/upsd, scripts/RedHat/upsd.in, scripts/RedHat/upsmon, scripts/RedHat/upsmon.in: scripts/Redhat/*: drop older scripts with hardcoding, modernize .in templates for POWERDOWNFLAG and similar config options
  • configure.ac: revise configuration of NUT path location variables and their substitutions

2.535. 2023-01-03 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/man/belkinunv.txt: modernize about "upsmon -K" and POWERDOWNFLAG or explicit /etc/killpower [#529]
  • docs/FAQ.txt: modernize about "upsmon -K" and POWERDOWNFLAG or explicit /etc/killpower [#529]
  • NEWS, conf/upsmon.conf.sample.in, configure.ac, docs/configure.txt, docs/nut.dict: configure.ac and many others: make default POWERDOWNFLAG configurable [#529] Closes: #529
  • server/conf.c, server/conf.h, server/upsd.c: server/upsd.c, server/conf.c: remember debug level specified in command line args, may be useful in reload [#1761] Closes: #1761
  • clients/upsmon.c: do not report initial debug level twice
  • clients/upsmon.c: remember debug level specified in command line args, may be useful in reload [#1761]
  • clients/upsmon.c: "upsmon -K" should not die if daemon is running [#1680] Closes: #1680
  • clients/upsmon.c: debug-trace notification activity [#1760]

2.536. 2023-01-02 Jim Klimov <jimklimov+nut@gmail.com>

  • COPYING, docs/nut.dict: COPYING: update to acknowledge codebase picked up from BSD, curl and CC BY-SA sources over time
  • docs/man/ups.conf.txt, docs/man/upsdrvctl.txt, docs/man/upsdrvsvcctl.txt, drivers/upsdrvctl.c, scripts/systemd/nut-driver@.service.in: drivers/upsdrvctl.c, scripts/systemd/nut-driver@.service.in: add support for NUT_IGNORE_NOWAIT [#1753]
  • UPGRADING: highlight nut-common.tmpfiles(.in) ⇒ nut-common-tmpfiles.conf(.in) rename and other changes since NUT v2.8.0 release
  • autogen.sh, configure.ac, scripts/systemd/.gitignore, scripts/systemd/Makefile.am: Rename generated nut-common.tmpfiles(.in) ⇒ nut-common-tmpfiles.conf(.in) to install a *.conf pattern [#1754] Follow-up for #1030, #1037, #1117 May be related to #1712
  • NEWS, docs/nut.dict: NEWS: reference arcane installation know-how for Solaris 8 [#1736]
  • NEWS: Clarified documentation in codebase according to end-user feedback for NUT v2.8.1 release
  • INSTALL.nut: clarify that the instruction is for tarballs (hint for builds of git checkouts) [#1750]
  • docs/man/upsmon.txt: clarify that FSD latches until upsd is restarted [#1721]
  • docs/man/upsmon.txt: rearrange paragraphs with related content [#1721]
  • tools/nut-scanner/nutscan-init.c: adjust WIN32 shared library detection for SNMP and NEON [#1735] At least as of Appveyor CI builds and their DLL naming both on MSYS2 MinGW "semi-native" builds, and linux mingw (libneon).
  • tools/nut-scanner/nutscan-init.c: annotate blocks for shared library detection

2.537. 2022-12-28 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: testcase_upsd_allow_no_device(): give VERY laggy systems (e.g. build farm swapping) another chance
  • ci_build.sh: apply CCACHE PATH discovery to mingw builds
  • ci_build.sh: cosmetic fix
  • ci_build.sh: report PATH and CCACHE decisions in build host settings

2.538. 2022-12-26 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/augeas/Makefile.am: clean away nutupsconf.aug.in.AUTOGEN_WITHOUT if it appears
  • configure.ac: if default "python" was not found, use py2 or py3; avoid keeping "no" as an answer [#1736]
  • m4/nut_check_python.m4: recognize python-3.6 too
  • include/common.h: size_t
  • tests/NIT/nit.sh: avoid "sed -i" - safer approach [#1736]

2.539. 2022-12-25 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: avoid prefixing file list to messages whose commit comment starts with equivalent list
  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: support Python 3.6 (and older 3.x) regarding UTF-8 content of git changelog
  • drivers/belkin-hid.c, drivers/cps-hid.c, drivers/ever-hid.c, drivers/idowell-hid.c, drivers/liebert-hid.c, drivers/powercom-hid.c, drivers/tripplite-hid.c: drivers/*-hid.c: fence WITH_UNMAPPED_DATA_POINTS [#1699]
  • drivers/apc-ats-mib.c, drivers/apc-epdu-mib.c, drivers/apc-mib.c, drivers/apc-pdu-mib.c, drivers/compaq-mib.c, drivers/delta_ups-mib.c, drivers/eaton-ats16-nm2-mib.c, drivers/eaton-ats16-nmc-mib.c, drivers/eaton-ats30-mib.c, drivers/eaton-pdu-marlin-mib.c, drivers/eaton-pdu-nlogic-mib.c, drivers/emerson-avocent-pdu-mib.c, drivers/hpe-pdu-mib.c, drivers/hpe-pdu3-cis-mib.c, drivers/huawei-mib.c, drivers/raritan-px2-mib.c: drivers/*-mib.c: fence WITH_UNMAPPED_DATA_POINTS [#1699]
  • NEWS, configure.ac, docs/configure.txt, docs/hid-subdrivers.txt, docs/snmp-subdrivers.txt, scripts/subdriver/gen-snmp-subdriver.sh, scripts/subdriver/gen-usbhid-subdriver.sh: configure.ac, scripts/subdriver/gen-*.sh: introduce WITH_UNMAPPED_DATA_POINTS flag [#1699]
  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: avoid prefixing file list to messages whose commit comment starts with equivalent list
  • tools/gitlog2changelog.py.in: tools/gitlog2changelog.py: support Python 3.6 (and older 3.x) regarding UTF-8 content of git changelog

2.540. 2022-12-22 Jim Klimov <jimklimov@gmail.com>

  • common/common.c, common/snprintf.c, configure.ac, drivers/mge-hid.c: configure.ac: fix AC_CHECK_FUNCS ⇒ AC_CHECK_DECLS where we care for includes [#1738]

2.541. 2022-12-22 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac, tests/.gitignore, tests/Makefile.am: configure.ac, tests/Makefile.am: introduce and check for REQUIRE_NUT_STRARG flag [#1736, #1737]
  • tests/nutlogtest.c: reword message so we see it even if libc printf("%s", NULL) does a null-dereference [#1736]
  • tests/NIT/nit.sh: avoid PYTHON=no [#1736]
  • tests/NIT/nit.sh: avoid "sed -i" [#1736]
  • tests/NIT/nit.sh: dumb down shell syntax for older Solaris interpreter [#1736]
  • tools/nut-usbinfo.pl: old typo fix (overlaid file variable and file name)
  • configure.ac, tools/nut-scanner/Makefile.am: if we HAVE_SEMAPHORE, some systems may need additional SEMLIBS [#1736]
  • tools/Makefile.am: avoid spurious error messages when PYTHON=no [#1736]
  • scripts/augeas/Makefile.am: avoid spurious error messages when PYTHON=no [#1736]
  • drivers/mge-hid.c: provide a fallback round() [#1736]
  • tests/getvaluetest.c: do not directly include stdint.h (not ubiquitous) [#1736]
  • drivers/pijuice.c: do not directly include stdint.h (not ubiquitous) [#1736]
  • drivers/eaton-pdu-marlin-helpers.c: do not directly include stdint.h (not ubiquitous) [#1736]
  • drivers/adelsystem_cbi.h: drivers/adelsystem_cbi.c: do not directly include stdint.h (not ubiquitous) [#1736]
  • common/strptime.c: do not always directly include stdint.h (not ubiquitous) [#1736]
  • drivers/riello.c, drivers/riello.h, drivers/riello_ser.c, drivers/riello_usb.c: drivers/riello*.{c,h}: do not directly include stdint.h (not ubiquitous) [#1736]
  • common/strnlen.c: untie from freeBSD specifics [#1736]
  • common/Makefile.am, common/strnlen.c, configure.ac: configure.ac, common/strnlen.c: Detect and provide a fallback strnlen() if needed [#1736]
  • common/common.c: fix pragmas for systems without a UINTPTR_MAX defined [#1736]
  • NEWS: autogen.sh support for CONFIG_SHELL [#1736]
  • autogen.sh: support CONFIG_SHELL envvar to embed into generated configure script (and syntax-check with it) [#1736]

2.542. 2022-12-21 Jim Klimov <jimklimov+nut@gmail.com>

  • autogen.sh: enhance report of failed syntax checks [#1736]
  • autogen.sh: dumb syntax down for xpg/ksh88 or older [#1736]
  • tools/nut-usbinfo.pl: dumb syntax down for perl 5.005 (Solaris 8 compat) [#1736]

2.543. 2022-12-20 Clappier, Eric <EricClappier@eaton.com>

  • drivers/eaton-pdu-nlogic-mib.c: Fix discovery issue with Eaton pdu nlogic

2.544. 2022-12-08 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: update dict

2.545. 2022-09-25 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/nutdrv_qx.c: qx_initbattery(): adjust initially known "battery.voltage" right away, if we know the batt.packs and that battery_voltage_reports_one_pack [#1279]

2.546. 2022-09-22 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/nutdrv_qx.c: qx_multiply_battvolt(): init temporary "s" to 0 (so if sscanf() somehow fails/skips, we have a non-toxic outcome)
  • drivers/nutdrv_qx.c: fix getval("battery_voltage_reports_one_pack") for the driver option flag [#1279]

2.547. 2022-09-21 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/nutdrv_qx.c, drivers/nutdrv_qx.h, drivers/nutdrv_qx_bestups.c, drivers/nutdrv_qx_hunnox.c, drivers/nutdrv_qx_mecer.c, drivers/nutdrv_qx_megatec-old.c, drivers/nutdrv_qx_megatec.c, drivers/nutdrv_qx_mustek.c, drivers/nutdrv_qx_q1.c, drivers/nutdrv_qx_voltronic-qs.c, drivers/nutdrv_qx_voltronic.c, drivers/nutdrv_qx_zinto.c: drivers/nutdrv_qx*: rename multiply_battvolt() to qx_multiply_battvolt() to remain specific about the code source

2.548. 2022-09-19 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS: reflect extended default ranges for max battery voltage when guessing [#1279]
  • drivers/blazer_ser.c, drivers/blazer_usb.c: drivers/blazer_{usb,ser}.c: bump DRIVER_VERSION due to changes in blazer.c [#1279]
  • drivers/nutdrv_qx.c: qx_initbattery(): extend default batt.volt.high range when guessing battery.packs count [#1279]
  • drivers/blazer.c: blazer_packs(): extend default batt.volt.high range when guessing battery.packs count [#1279]
  • drivers/nutdrv_qx.c: qx_initbattery(): report if we autodetected number of battery packs [#1279]
  • drivers/nutdrv_qx.c: qx_initbattery(): extend default batt.volt.high range [#1279]
  • NEWS, docs/man/nutdrv_qx.txt, docs/nut.dict, drivers/nutdrv_qx.c, drivers/nutdrv_qx.h, drivers/nutdrv_qx_bestups.c, drivers/nutdrv_qx_hunnox.c, drivers/nutdrv_qx_mecer.c, drivers/nutdrv_qx_megatec-old.c, drivers/nutdrv_qx_megatec.c, drivers/nutdrv_qx_mustek.c, drivers/nutdrv_qx_q1.c, drivers/nutdrv_qx_voltronic-qs.c, drivers/nutdrv_qx_voltronic.c, drivers/nutdrv_qx_zinto.c: nutdrv_qx: introduce a "battery_voltage_reports_one_pack" driver option [#1279]
  • drivers/nutdrv_qx.c: bump DRIVER_VERSION for issue #1279 changes

2.549. 2022-09-14 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: comment that _GNU_SOURCE may be needed for strptime() detection

2.550. 2022-09-06 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/nutdrv_qx.c: qx_initbattery(): initialize battery.packs and battery.voltage.low/high/nom if known always (not just if battery.charge or battery.runtime are not served) [#1279]
  • drivers/main.c: retain "driver.parameter.override.XXX" (and ".default.XXX") for troubleshooting [#1279]
  • drivers/libhid.c: log if we hit the "paranoia check" with inconsistent Max vs Min [#1512]

2.551. 2022-12-02 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsmon.c: refactor probing/signaling old instance into one handling/reporting codebase [#1721]
  • server/upsd.c: refactor probing/signaling old instance into one handling/reporting codebase [#1721]
  • clients/upsmon.c: generic report if we "Failed to signal the currently running daemon" [#1721]
  • server/upsd.c: generic report if we "Failed to signal the currently running daemon" [#1721]

2.552. 2022-12-01 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: clarify inability to find OS user info (vs. NUT user) [#1721]
  • docs/FAQ.txt, docs/config-notes.txt, docs/man/upsd.txt: docs/*.txt: clarify "upsd -c reload" vs. PID file (and systemd) [#1721]
  • conf/upsmon.conf.sample.in: clarify RUN_AS_USER as OS-defined account for upsmon [#1721]
  • conf/ups.conf.sample, conf/upsd.users.sample, conf/upsmon.conf.sample.in: conf/*.sample: standardize on "monuser" as example NUT-defined account for upsmon [#1721]
  • clients/upsmon.c: consider HAVE_SYSTEMD to report if PID file was missing [#1721]
  • server/upsd.c: consider HAVE_SYSTEMD to report if PID file was missing [#1721]
  • configure.ac: refactor definition of HAVE_SYSTEMD so we can use it in C code [#1721]
  • scripts/systemd/nut-server.service.in: re-document use of PID file, for reloads to work [#1721]

2.553. 2022-12-01 Jim Klimov <jim@jimklimov.com>

2.554. 2022-12-01 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: become_user(): cosmetic/messaging: discern starting as not-root vs. already the requested user [#1718] Closes: #1718
  • NEWS, UPGRADING: reference GitHub PR numbers for snmp-ups updates [#1715, #1716]

2.555. 2022-11-28 Tiph <titi__13@hotmail.com>

  • drivers/mge-hid.c: Update mge-hid.c fixed conversion issue

2.556. 2022-11-27 Florian Weimer <fweimer@redhat.com>

  • m4/ax_c_pragmas.m4: Fix several issues with the AX_C_PRINTF_STRING_NULL check Adjust quoting in the AX_C_PRINTF_STRING_NULL definition. Switch to strstr and include <string.h> instead of <strings.h>. Add missing braces and parentheses. Use double-quote for string literals. The test now reports success on glibc, as expected.
  • m4/ax_c_attribute.m4: Fix AX_C_ATTRIBUTE configure check to call the right function The function foo is defined in the C fragment, but the func function is undeclared. This avoids relying on an implicit function declaration, a C language feature that was removed in 1999.

2.557. 2022-11-25 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: comment about nut_inplace_user detection from *.pc files [#1714]
  • configure.ac: fix inplace sysconfdir detection [#1714]
  • configure.ac: clarify "checking requested X" ⇒ default/specified vs "checking setting X" ⇒ final value [#1714]
  • configure.ac: try to detect nut_inplace_group and nut_inplace_user from existing configs [#1714]
  • configure.ac: avoid changing permissions of */tmp and /dev/shm with nut-common.tmpfiles
  • configure.ac: use PIDPATH="/run" if it is so on the build system
  • NEWS, UPGRADING: document @ALTPIDPATH@ vs. @PIDPATH@ (and removal of @PIDPATH@/nut ambiguity) [#1712]
  • scripts/Aix/nut.init.in, scripts/HP-UX/postinstall.in, scripts/Solaris/nut-server.xml.in, scripts/Solaris/postinstall.in, scripts/Solaris/postremove.in, scripts/Solaris/svc-nut-monitor.in, scripts/Solaris/svc-nut-server.in: Reference init-script and packaging templates: eradicate "@PIDPATH@/nut" ambiguity in favor of "@ALTPIDPATH@" (and explicitly ensure "@PIDPATH@" where applicable) [#1712]
  • configure.ac: AC_SUBST(ALTPIDPATH)
  • configure.ac: report "$prefix"
  • m4/nut_report_feature.m4: fix detection of chapter "1" and other nuances
  • m4/nut_report_feature.m4: align reports with tabulation
  • configure.ac: use NUT_REPORT_TARGET [#1708]
  • m4/nut_report_feature.m4: add NUT_REPORT_TARGET [#1708]
  • m4/nut_report_feature.m4: fix comments
  • m4/nut_report_feature.m4: refactor NUT_REPORT_FILE() for second-level headings and less file-openings
  • configure.ac, docs/configure.txt: configure.ac: clarify that PIDPATH is for NUT directly (privileged daemons) [#123, #1712]
  • configure.ac: refactor to use NUT_REPORT_SETTING_PATH() to summarize separately from other toggles [#1708 follow-up]
  • m4/nut_report_feature.m4: add separate chapter for NUT_REPORT_PATH() and NUT_REPORT_SETTING_PATH() to populate it
  • .gitignore, Makefile.am, m4/nut_report_feature.m4: m4/nut_report_feature.m4: refactor to hold and append different summary chapters in different files [#1708 follow-up]
  • m4/nut_report_feature.m4: change markup of usage() comments to avoid m4 surprises
  • ci_build.sh: in case of success for default build, remind the chosen config.nut_report_feature.log settings
  • Makefile.am: install-win-bundle-thirdparty: fix indentations
  • configure.ac: use NUT_REPORT_SETTING() for various path tunables
  • configure.ac: fix generation of systemd/nut-common.tmpfiles Should have no "nut" subdir for STATEPATH and ALTPIDPATH Follow-up for #1030, #1037, #1117 May be related to #1712
  • configure.ac: NUT_REPORT_SETTING() for RUN_AS_USER and RUN_AS_GROUP
  • configure.ac: change AS_HELP_STRINGs and some other comments/messages for STATEPATH and PIDPATH to clarify

2.558. 2022-11-25 Arnaud Quette <ArnaudQuette@eaton.com>

  • NEWS, drivers/snmp-ups.c: snmp-ups: fix "Warning: excessive poll failures" Fix that long standing issue, which was tied to non-existent OIDs, not well handled in some part of the driver Closes: #743

2.559. 2022-11-25 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_report_feature.m4: introduce NUT_REPORT_SETTING() …and comment arguments for NUT_REPORT_FEATURE()
  • NEWS, ci_build.sh: NEWS: add ./ci_build.sh inplace operation shortcut [#1714]
  • ci_build.sh: add support for INPLACE_RUNTIME=true
  • configure.ac: move checking for better default user/group based on current system circumstances down, to just before we use them
  • configure.ac: report if checking for better sysconfdir/user/group and how it went
  • NEWS: update for configure --enable-inplace-runtime [#1714]
  • docs/configure.txt, docs/nut.dict: docs/configure.txt: update for --enable-inplace-runtime [#1714]
  • configure.ac: impact default sysconfdir by --enable-inplace-runtime
  • configure.ac: change AS_HELP_STRINGs for hotplugdir, udevdir and devddir to report current defaults (not arbitrary suggestions)
  • configure.ac: introduce --enable-inplace-runtime and impact default RUN_AS_USER and RUN_AS_GROUP by that
  • configure.ac: move final processing of --with-user and --with-group to end of script
  • configure.ac: comment initial settings for RUN_AS_* and PIDPATH

2.560. 2022-11-24 Arnaud Quette <ArnaudQuette@eaton.com>

  • docs/nut.dict: Spelling dictionnary completion
  • NEWS, UPGRADING, docs/man/snmp-ups.txt, drivers/Makefile.am, drivers/{powerware-mib.c ⇒ eaton-ups-pwnm2-mib.c}, drivers/eaton-ups-pwnm2-mib.h, drivers/eaton-ups-pxg-mib.c, drivers/{powerware-mib.h ⇒ eaton-ups-pxg-mib.h}, drivers/snmp-ups.c: snmp-ups: split Eaton pw and pxgx_ups implementation To better manage the slight nuances (especially in ups.status), between Eaton UPSs, implementation file was split in 2 files, and mib name were renamed from pw to eaton_pw_nm2, and from pxgx_ups to eaton_pxg_ups Thanks to Quentin Renard (Eaton) for discovering the bug

2.561. 2022-11-22 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/hpe-pdu3-cis-mib.c: fix reference to WITH_UNMAPPED_DATA_POINTS This feature was only proposed, not yet implemented in main codebase
  • docs/nut.dict: update for #1713

2.562. 2022-11-22 Jim Klimov <jimklimov@gmail.com>

  • NEWS: added "hpe-pdu3-cis-mib" snmp-ups subdriver [#1713]

2.563. 2022-11-22 Arnaud Quette <ArnaudQuette@eaton.com>

  • data/driver.list.in, drivers/Makefile.am, drivers/hpe-pdu3-cis-mib.c, drivers/hpe-pdu3-cis-mib.h, drivers/snmp-ups.c: snmp-ups: add support for HPE G2 Metered & Switched PDU This support is unitary (no daisychain support yet). Also note that, due to SNMP v1 implementation limitations on this device, you should prefer SNMP v3 to get both read and write rights

2.564. 2022-11-21 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS: update for snmp-ups fix with wrong sysOID responses [#1710]

2.565. 2022-11-21 Arnaud Quette <ArnaudQuette@eaton.com>

  • drivers/snmp-ups.c: Fix sysOID retrieval on non-compliant device Some SNMP agent (device) wrongly return the sysOID value as a string instead of an OID. This breaks the initial sysOID matching system of the driver

2.566. 2022-11-16 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS, docs/nut.dict: NEWS: snmp-ups added "eaton-pdu-nlogic-mib" subdriver [#1698]

2.567. 2022-11-15 Jim Klimov <jimklimov@gmail.com>

  • Makefile.am: Update Makefile.am maintainer-clean the config.nut_report_feature.log

2.568. 2022-11-15 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/eaton-pdu-nlogic-mib.c: provide default (NULL) for "device.part"
  • appveyor.yml: publish config.nut_report_feature.log artifact
  • m4/nut_report_feature.m4: NUT_REPORT_COMPILERS: separate cosmetic colon from reported values
  • scripts/Windows/build-mingw-nut.sh: parameterize ARCH_PREFIX
  • scripts/Windows/build-mingw-nut.sh, ci_build.sh: --enable-keep_nut_report_feature in CI builds
  • ci_build.sh: --enable-keep_nut_report_feature in CI builds
  • m4/nut_report_feature.m4: make config.nut_report_feature.log contents more asciidoc-friendly
  • m4/nut_report_feature.m4: start config.nut_report_feature.log with title, not empty line
  • m4/nut_report_feature.m4, configure.ac: introduce --enable-keep_nut_report_feature
  • m4/nut_report_feature.m4, configure.ac: separate NUT_REPORT_COMPILERS from NUT_PRINT_FEATURE_REPORT
  • m4/nut_report_feature.m4: update headings in generated config.nut_report_feature.log sections
  • configure.ac: fix behavior for customized paths in systemdsystemunitdir/systemdshutdowndir/systemdtmpfilesdir
  • configure.ac: fix mis-diagnosed "--with-systemdsystemunitdir=yes was requested, but PKG_CONFIG…" when it was not requested in fact
  • .gitignore, m4/nut_report_feature.m4: m4/nut_report_feature.m4: Rename conf_nut_report_feature artifact to config.nut_report_feature.log
  • m4/nut_report_feature.m4: save compiler settings into "conf_nut_report_feature" too
  • docs/nut.dict: update for nut-website::projects.txt

2.569. 2022-11-15 Arnaud Quette <arnaud.quette@gmail.com>

  • drivers/eaton-pdu-nlogic-mib.c: Update eaton-pdu-nlogic-mib.c Fix a typo in data flags

2.570. 2022-11-09 Clappier, Eric <EricClappier@eaton.com>

  • data/driver.list.in: Add eaton (nLogic) pdu in driver.list
  • drivers/Makefile.am, drivers/eaton-pdu-nlogic-mib.c, drivers/eaton-pdu-nlogic-mib.h, drivers/snmp-ups.c: Integrate nLogic pdu (snmp)

2.571. 2022-11-15 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: update dict
  • docs/nut.dict: update for nut-website::projects.txt

2.572. 2022-11-12 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: disable required forced rebuilds of netsnmp (and debug of build-mingw-prereqs.sh) [#1475]

2.573. 2022-11-11 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/build-mingw-prereqs.sh: use curl if wget fails from sourceforge [#1475]
  • appveyor.yml: temporarily force rebuild of netsnmp
  • scripts/Windows/build-mingw-prereqs.sh: handle possibly missing SUDO differently [#1475]
  • appveyor.yml: use scripts/Windows/build-mingw-prereqs.sh [#1475]
  • scripts/Windows/build-mingw-prereqs.sh: Add scripts/Windows/build-mingw-prereqs.sh [#1475]
  • appveyor.yml: fix typo
  • appveyor.yml: fix comment for config.log artifact
  • appveyor.yml: try to ensure presence of net-snmp in MSYS2 MinGW builds [#1475]
  • scripts/Windows/README: update DLDIR and WSDIR definitions
  • scripts/Windows/README: update sudo suggestions for Windows MSYS2 builds [#1475]
  • scripts/Windows/README: update envvar setting suggestions for Windows MSYS2 builds [#1475]

2.574. 2022-11-10 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/README, docs/config-prereqs.txt: document missing bits for net-snmp in MSYS2 [#1475]
  • scripts/Windows/README: do not hardcode /usr/$ARCH when we have $PREFIX
  • docs/nut-names.txt: clarify "unmapped.x.y" not-quite-namespace

2.575. 2022-11-09 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/augeas/gen-nutupsconf-aug.py.in: skip a false-positive from Augeas driver options

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

  • docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt: update freeipmi -largp install for OpenBSD (6.4 \+ 6.5 checked)

2.577. 2022-11-03 Jim Klimov <jimklimov@gmail.com>

  • drivers/riello_usb.c: Update riello_usb.c Log that guesstimation will be used instead of device readings (if any)
  • docs/man/riello_usb.txt: Update riello_usb.txt Use "guesstimate" as common NUT term for future searches

2.578. 2022-11-03 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/riello_usb.c: testvar("localcalculation") only once, use cached int in the loop [#1692]
  • drivers/riello_usb.c: do not set bogus "ups.temperature" as 0, log low-prio message instead [#1692]
  • drivers/riello_usb.c: only log once about possibly missing battery.charge and battery.runtime [#1692]
  • NEWS, docs/man/riello_usb.txt: fix "docs/man/riello_usb.txt" description [#1692]
  • drivers/riello_usb.c: deduplicate message about possibly missing battery.charge and battery.runtime [#1692]
  • drivers/riello_usb.c: fix indentation [#1692]

2.579. 2022-11-03 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update nut.dict
  • NEWS: Update NEWS

2.580. 2022-11-02 Jim Klimov <jimklimov@gmail.com>

  • NEWS: we log uid/gid/chroot changes since 2.8.1 [#1694]

2.581. 2022-11-01 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: expand permissions for NUT_CONFPATH/*.conf if started as root (tested daemons cannot read them otherwise)
  • common/common.c: chroot_start(): log entering chroot jail (or inability to do so)
  • common/common.c: become_user(): log change of UID/GID (or inability to do so)

2.582. 2022-10-31 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update nut.dict
  • docs/nut.dict: Update nut.dict
  • docs/man/riello_usb.txt: Update riello_usb.txt Added localcalculation flag description
  • NEWS: added localcalculation flag for riello_usb

2.583. 2022-10-30 amikot <3470285+amikot@users.noreply.github.com>

  • drivers/riello_usb.c: Update riello_usb.c Added driver setting flag localcalculation. When enabled, driver will calculate values of battery.runtime and battery.load locally. This is for some Riello models (iPlug and iDialog series) that provides incorrect values. Local calculation is done according to nominal battery capacity, nominal battery voltage, actual battery charge, maximum and actual UPS load. Added condition to filter off situation when battery temperature variable is incorrectly set to variable type maximum (255) - which is typical issue of some Riello models (iPlug and iDialog series). If incorrect value is detected temperature is set to 0.

2.584. 2022-10-21 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: fix more "egrep" ⇒ "grep -E" cases in the older branch

2.585. 2022-10-21 Yifeng Li <tomli@tomli.me>

  • docs/man/huawei-ups2000.txt: huawei-ups2000.txt: document another UPS2000-G-1KRTS. This is another newer "UPS2000-G" variant encountered by a user in the wild and reported [1] to me. [1] Personal communication, thanks for reporting.
  • docs/man/huawei-ups2000.txt: huawei-ups2000.txt: document another UPS2000-A-1KTTS. This commit adds UPS2000-A-1KTTS with another firmware version (V2R1C1SPC50) to the list of tested UPS models. Thanks @ultinous-dancsa for reporting it [1]. [1] https://github.com/networkupstools/nut/issues/1017#issuecomment-1020013055

2.586. 2022-10-20 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/nut_check_python.m4: clarify message for "Version reported … not suitable""
  • NEWS: fix for snmp-ups type error handling [#1682]
  • drivers/snmp-ups.c: apply comments from PR review to make code better understandable [#1682]

2.587. 2022-10-18 Clappier, Eric <EricClappier@eaton.com>

  • drivers/snmp-ups.c: Fix walk issue with snmpv3 ( add type error execption )

2.588. 2022-10-14 Jim Klimov <jimklimov@gmail.com>

  • drivers/snmp-ups.c: Update snmp-ups.c Avoid potential NULL pointer dereference in a debug printout

2.589. 2022-10-13 Clappier, Eric <EricClappier@eaton.com>

  • drivers/apc-epdu-mib.c: Fix bad traduction in code
  • drivers/apc-epdu-mib.c: Fix outlets display Add global current
  • drivers/snmp-ups.c: Fix index computed issue when OID is absent

2.590. 2022-10-13 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update nut.dict
  • AUTHORS: Update AUTHORS

2.591. 2022-10-12 zakx <zakx@users.noreply.github.com>

  • AUTHORS, data/driver.list.in, docs/man/snmp-ups.txt: Documentation update regarding Network-M2 card The Eaton Gigabit Network Card (Network-M2) is already well-supported by the powerware driver. This patch updates the documentation to reflect this.

2.592. 2022-10-12 Jim Klimov <jimklimov@gmail.com>

  • NEWS: apc-epdu-mib added for NUT v2.8.1

2.593. 2022-10-10 Clappier, Eric <EricClappier@eaton.com>

  • drivers/Makefile.am, drivers/apc-epdu-mib.c, drivers/apc-epdu-mib.h, drivers/snmp-ups.c: Add SNMP apc easy pdu support

2.594. 2022-10-05 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/README: update mingw libneon build instructions

2.595. 2022-09-25 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: make use of NUT_QUIET_INIT_SSL
  • NEWS, clients/upsclient.c, docs/man/upscli_init.txt: clients/upsclient.c, docs, NEWS: support NUT_QUIET_INIT_SSL envvar to hide "Init SSL without certificate database" message [#1662]
  • clients/upsclient.c: fix typo in message

2.596. 2022-09-19 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/eaton-pdu-pulizzi-mib.c: standardize on "guesstimate", "guesstimation" spelling
  • drivers/snmp-ups.c: standardize on "guesstimate", "guesstimation" spelling
  • drivers/blazer.c: standardize on "guesstimate", "guesstimation" spelling
  • docs/man/upscode2.txt, docs/nut.dict: docs/man/upscode2.txt, nut.dict: standardize on "guesstimate", "guesstimation" spelling

2.597. 2022-09-14 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh, docs/Makefile.am, docs/man/Makefile.am, indent.sh, scripts/subdriver/gen-snmp-subdriver.sh, scripts/subdriver/gen-usbhid-subdriver.sh, scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in, tools/nut-scanner/scan_snmp.c: Replace "egrep" by "grep -E" in shell code - modern systems frown on the former
  • configure.ac: move detection of TIME_WITH_SYS_TIME to before we use it This should help find strptime() in particular on systems that have both time.h and sys/time.h files, and one does not include the other (e.g. Arch Linux).
  • docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt: detail Arch Linux package installation for a build agent
  • docs/ci-farm-lxc-setup.txt, docs/nut.dict: docs/ci-farm-lxc-setup.txt: detail getting "pacman" and related tools on a Debian Linux host
  • tests/NIT/nit.sh: add a BASH way to check port availability
  • tests/NIT/nit.sh: typo fix looking in /proc/net/tcp
  • tests/NIT/nit.sh: cosmetic: fix indentations botched by IDEs

2.598. 2022-09-12 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/documentation.txt: refer to NUT Configuration Examples book
  • docs/nut.dict: update for nut-website::projects.txt refresh
  • NEWS, drivers/apc-hid.c, scripts/upower/95-upower-hid.hwdb: drivers/apc-hid.c, NEWS, 95-upower-hid.hwdb: Support VID:PID = 0x051d:0x0004 [#1429]

2.599. 2022-09-08 Jim Klimov <jimklimov+nut@gmail.com>

2.600. 2022-09-03 Jim Klimov <jim@jimklimov.com>

  • Jenkinsfile-dynamatrix: enable linux\+mingw cross builds as part of NUT baseline

2.601. 2022-09-02 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS, drivers/powercom-hid.c: drivers/powercom-hid.c: fix UPS.Battery.ManufacturerDate to map to battery.mfr.date …(not battery.date which is the maintenance/replacement date) Closes: #1644
  • drivers/cps-hid.c: prefer mapping battery.mfr.date from UPS.Battery.ManufacturerDate if available [#437]
  • drivers/usbhid-ups.c: date_conversion_fun(): comment the PDC standard formula for reference
  • common/Makefile.am, common/strsep.c, configure.ac, include/str.h: Add fallback strsep() implementation (for Windows mingw builds) after PR #1639

2.602. 2022-09-01 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upslog.c: adjust to Windows branch after PR #1639

2.603. 2022-09-02 Jim Klimov <jimklimov+nut@gmail.com>

  • include/Makefile.am: fix merge error (duplicate code)

2.604. 2022-08-31 Jim Klimov <jimklimov+nut@gmail.com>

  • UPGRADING: refer to collectd PR about int/size_t/time_t adaptation for NUT API consumers
  • tools/nut-scanner/nut-scan.h: ensure useconds_t is defined
  • NEWS, UPGRADING: note public API header revision for NUT v2.8.1
  • include/parseconf.h: ensure size_t is defined
  • clients/upsclient.h: ensure time_t is defined
  • clients/Makefile.am, include/Makefile.am, tools/nut-scanner/Makefile.am: {tools/nut-scanner,include,clients}/Makefile.am: comment include_HEADERS as "Optionally deliverable as part of NUT public API"

2.605. 2022-08-21 Cy Schubert <cy@FreeBSD.org>

  • NEWS, clients/upslog.c, docs/man/upslog.txt: upslog: Add support for multiple UPSs upslog is a utility that logs UPS status at regular intervals, specified by the -i option. Unfortunately upslog supports only one UPS. For sites that need to monitor multiple UPSs the options are to cobble an rc script for each or doctor up the nut_upslog.in script to support cloning of the script. Unfortunately an rc script capable of being cloned would become the source of more PRs and would require significanly more tehcnical documentation that by itself might become confusing for the average system administrator. Therefore a new -m option is added to support multiple UPSs using the same invocation of upslog. The patch parses a -m option, polling each ups listed.

2.606. 2022-08-29 Cy Schubert <cy@FreeBSD.org>

  • clients/upslog.c: upslog: Messages should go to syslog Messages to stderr are unreliable when output to the console and mesg is n (0600). For example, the following will disallow console output to UID uucp. # mesg < /dev/console is n # mesg < /dev/ttyv0 is n # ls -l /dev/console /dev/ttyv0 crw------- 1 root wheel 0x7 Aug 29 14:03 /dev/console crw------- 1 root wheel 0x46 Aug 29 12:32 /dev/ttyv0 #

2.607. 2022-08-29 Jim Klimov <jimklimov@gmail.com>

  • drivers/usb-common.h: Update usb-common.h Detect configure script error: Neither HAVE_USB_H nor HAVE_LUSB0_USB_H is set for the WITH_LIBUSB_0_1 build
  • tools/nut-usbinfo.pl: Update nut-usbinfo.pl Detect configure script error: Neither HAVE_USB_H nor HAVE_LUSB0_USB_H is set for the WITH_LIBUSB_0_1 build
  • tools/nut-usbinfo.pl: Update nut-usbinfo.pl Typo fix for ifdef HAVE_USB_H (libusb-0.1 header)
  • drivers/usb-common.h: Update usb-common.h Typo fix for ifdef HAVE_USB_H (libusb-0.1 header)

2.608. 2022-08-29 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/hid-subdrivers.txt: remind about wire byte order vs. computer multi-byte word layout
  • docs/hid-subdrivers.txt: document USB HID report descrptor troubleshooting [#1618] Great thanks to @nbriggs for putting this together and practicing many times!
  • docs/hid-subdrivers.txt: mention disable_fix_report_desc troubleshooting [#1566]
  • docs/hid-subdrivers.txt: add chapter on "Updating a subdriver"
  • docs/hid-subdrivers.txt: update chapter on gen-usbhid-subdriver.sh
  • docs/nut.dict: Update nut.dict for hid-subdrivers.txt

2.609. 2022-08-29 Jim Klimov <jimklimov@gmail.com>

  • scripts/subdriver/gen-usbhid-subdriver.sh: Update gen-usbhid-subdriver.sh Old -x generic suggestion apparently became -x explore later in this timeline (also -d1 to dump and exit after one data collection loop, without requiring a valid NUT_STATEPATH).

2.610. 2022-08-28 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-usbinfo.pl: build against mingw-w64-x86_64-libusb-win32 as libusb-0.1 variant
  • drivers/usb-common.h: build against mingw-w64-x86_64-libusb-win32 as libusb-0.1 variant
  • m4/nut_check_libusb.m4: detect mingw-w64-x86_64-libusb-win32 as libusb-0.1 variant
  • scripts/subdriver/gen-usbhid-subdriver.sh: only ask for VENDORID and PRODUCTID interactively if not provided via CLI args
  • scripts/subdriver/gen-usbhid-subdriver.sh: update instructions
  • docs/nut.dict: add "sstate"
  • m4/nut_check_libusb.m4: when on Windows, prefer libusb-0.1 [#1507]
  • configure.ac, drivers/libusb0.c: fix detection of strlwr() and fallback strcasestr() implem

2.611. 2022-08-27 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: get_libname_in_dir(): check for exact filename match (not just common start of string)
  • drivers/usbhid-ups.c: cosmetic fixes
  • drivers/usbhid-ups.c: account interrupt_pipe_EIO_count for suggestions when reconnecting [#1295]
  • drivers/usbhid-ups.c: if reconnecting with use_interrupt_pipe mode, suggest to use pollonly [#1295]
  • drivers/usbhid-ups.c: only report "Closing comm_driver previous handle" when we do so, and invalidate it too [#1627]
  • drivers/dstate.c, server/sstate.c: server/sstate.c: log DATAOK/DATASTALE processing

2.612. 2022-08-28 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS: sstate should always PING a driver (even if last known as stale) [#1626]
  • server/sstate.c: sstate_dead(): always PING a driver (even if last known as stale) [#1626]

2.613. 2022-08-25 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update with key words from NUT for Windows effort for nut-website

2.614. 2022-08-25 Jim Klimov <jimklimov+nut@gmail.com>

2.615. 2022-08-24 Jim Klimov <jimklimov@gmail.com>

  • scripts/python/module/PyNUT.py.in: Update PyNUT.py.in Add a note on PyNUTError("Always a string") to file-heading changelog

2.616. 2022-08-24 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/test_nutclient.py.in: allow testing against UPSD on a remote host
  • scripts/python/module/test_nutclient.py.in: fail if we could RunUPSCommand/SetUPSVar/DeviceLogin when we should not have [#1589]
  • scripts/python/module/README: typo fixes
  • scripts/python/module/PyNUT.py.in, scripts/python/module/README: scripts/python/module/PyNUT.py.in: raise PyNUTError() from strings not byte arrays [#1589]

2.617. 2022-08-23 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/test_nutclient.py.in: ListClients-dummy-after: check b"dummy" (not a string) as dict key [#1589]
  • scripts/python/module/test_nutclient.py.in: thanks to "ex = str(sys.exc_info()[1])" we should check strings, not byte arrays [#1589]
  • scripts/python/module/test_nutclient.py.in: account unexpected failures to detect actual errors [#1589]
  • scripts/python/module/PyNUT.py.in: raise PyNUTError() with standard protocol strings; leave layman text to debug printouts [#1589]
  • scripts/python/module/PyNUT.py.in: raise PyNUTError() with standard protocol strings; leave layman text to debug printouts [#1589]

2.618. 2022-08-25 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/config-prereqs.txt: update to OpenBSD 6.5 due to JDK 11\+ for Jenkins agents, and update other OS instructions

2.619. 2022-08-24 Jim Klimov <jim@jimklimov.com>

  • NEWS: RFC 9271 published 2022-08-10

2.620. 2022-08-23 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/nut-scan.h: avoid including private "timehead.h" in public header [#1593]
  • tools/nut-scanner/nut-scan.h: prefer co-located "nutscan-*.h" in public header [#1593]
  • tools/nut-scanner/nut-scan.h, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c: tools/nut-scanner/nut-scan.h: avoid including private "nut_stdint.h" in public header [#1593]
  • scripts/Windows/build-mingw-nut.sh: report completion of configure/build/install phases
  • include/Makefile.am, clients/Makefile.am: rectify distributon of parseconf.h [#1593]
  • tools/nut-scanner/nut-scan.h: avoid including private "config.h" in public header [#1593] In-tree consumers of this file include "common.h" first which in turn includes "config.h" first.
  • tools/nut-scanner/nutscan-ip.c, tools/nut-scanner/nutscan-ip.h: tools/nut-scanner/nutscan-ip.{c,h}: avoid including private "common.h" in public header [#1593]
  • docs/new-drivers.txt, docs/nut.dict: docs/new-drivers.txt: update documentation for TYPE_FD_SER [#1593]
  • tools/nut-scanner/nut-scan.h: avoid including private "timehead.h" in public header [#1593]
  • tools/nut-scanner/nut-scan.h: prefer co-located "nutscan-*.h" in public header [#1593]
  • tools/nut-scanner/nut-scan.h, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c: tools/nut-scanner/nut-scan.h: avoid including private "nut_stdint.h" in public header [#1593]
  • include/Makefile.am, clients/Makefile.am: rectify distributon of parseconf.h [#1593]

2.621. 2022-08-21 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/Makefile.am: separate delivery of C+\+ headers - do it only if we deliver the libs [#1598]

2.622. 2022-08-23 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/nut-scan.h: avoid including private "config.h" in public header [#1593] In-tree consumers of this file include "common.h" first which in turn includes "config.h" first.
  • tools/nut-scanner/nutscan-ip.c: tools/nut-scanner/nutscan-ip.{c,h}: avoid including private "common.h" in public header [#1593]
  • clients/nutclientmem.cpp: include config.h first
  • drivers/serial.c, drivers/serial.h: drivers/serial.{h,c}: relocate ser_flush_io() to ser_flush_in() to match logical relation and documentation ordering [#1593]

2.623. 2022-08-19 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: NUT_REPORT_FEATURE the HAVE_CXX11 and HAVE_CPPUNIT aspects

2.624. 2022-08-21 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: warn to have prepared a listening NUT_PORT before asking for individual test cases

2.625. 2022-08-20 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/Makefile.am: check-NIT-devel: become EXEEXT-aware
  • tests/NIT/nit.sh: report if skipping cppnit because absent

2.626. 2022-08-21 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: refactor with autogen_get_CONFIGURE_SCRIPT and configure_CI_BUILDDIR for better out-of-tree builds

2.627. 2022-08-23 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/nutclientmem.cpp: include config.h first

2.628. 2022-08-21 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: shorter lines in install proto area report
  • scripts/Windows/dllldd.sh: less ominous warning message
  • appveyor.yml: fix shell syntax for YAML transport
  • scripts/Windows/dllldd.sh: consult COMPILER_PATHS for C+\+ libs [#1603]
  • m4/nut_check_libnetsnmp.m4, tools/nut-scanner/Makefile.am: tools/nut-scanner/Makefile.am: fix referencing of libnetsmp (static) build flags, so shared libnutscan.dll can be built [#1603]
  • ci_build.sh: pass PARMAKE_FLAGS to build-mingw-nut.sh
  • ci_build.sh: require successful autogen for cross-mingw builds
  • ci_build.sh: refactor with autogen_get_CONFIGURE_SCRIPT and configure_CI_BUILDDIR for better out-of-tree builds
  • tools/nut-scanner/Makefile.am: enable shared DLL builds for C+\+ libraries [#1603]
  • clients/Makefile.am: enable shared DLL builds for C+\+ libraries [#1603]
  • Jenkinsfile-dynamatrix: failure is no longer an option in linux\+mingw Windows cross-builds
  • appveyor.yml: "find" all filenames we would archive to 7z artifact from the install proto area
  • scripts/Windows/build-mingw-nut.sh: use different CXXFLAGS from CFLAGS (append vs external settings)

2.629. 2022-08-22 Jim Klimov <jimklimov@gmail.com>

  • clients/nutclient.cpp: Update nutclient.cpp include "config.h" first

2.630. 2022-08-21 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: archive any NUT-for-Windows*.7z tarballs
  • clients/Makefile.am: separate delivery of C+\+ headers - do it only if we deliver the libs [#1598]
  • common/snprintf.c: added a FIXME for dopr("%p") on some platforms
  • include/timehead.h: fence with "extern C"
  • clients/nutclientmem.cpp: avoid (mingw) conflict for C+\+ builds with fallback gmtime_r() etc that C\+ code does not even use [#1594]
  • clients/nutclient.cpp: avoid (mingw) conflict for C+\+ builds with fallback gmtime_r() etc that C\+ code does not even use [#1594]
  • clients/Makefile.am: add libnutclient.la to lib_LTLIBRARIES also on Windows now so it gets installed [#1594, #1598] Closes: #1598
  • clients/Makefile.am: bump semver of libnutclient due to added TcpClient::setDebugConnect(bool) [#1594]
  • clients/nutclient.cpp, clients/nutclient.h: clients/nutclient.cpp: internal::Socket::connect(): make debug noise optional
  • tests/NIT/nit.sh: warn to have prepared a listening NUT_PORT before asking for individual test cases

2.631. 2022-08-20 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/nutclient.cpp: Socket::connect(): add debug
  • tests/NIT/Makefile.am: check-NIT-devel: become EXEEXT-aware
  • tests/NIT/nit.sh: report if skipping cppnit because absent
  • tests/Makefile.am: Revert "tests/Makefile.am: make POSIX style short names aliases for HAVE_WINDOWS .exe targets" This reverts commit b3d36d9a81f42ca6e2cae15e04e54f5ce6ec80f6.
  • tests/Makefile.am: make POSIX style short names aliases for HAVE_WINDOWS .exe targets
  • clients/nutclient.cpp: Socket::connect(): add debug
  • clients/nutclient.cpp: port W32_NETWORK_CALL_OVERRIDE code from upsclient.c

2.632. 2022-08-19 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/nutclient.cpp: port connect() WIN32 code from upsclient.c

2.633. 2022-08-19 Jim Klimov <jimklimov@gmail.com>

  • appveyor.yml: Update appveyor.yml Add mingw-w64-x86_64-cppunit to check cppnit et al

2.634. 2022-08-19 Kubisz Mariusz <mmzk987@gmail.com>

  • drivers/blazer.c: Blazer: Accept the value of "idleload" equal to zero It allows setting the "idleload" parameter equal to zero

2.635. 2022-08-19 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/config-prereqs.txt: document how to get cppunit in Windows MSYS2 [#1594]
  • appveyor.yml: tarball built NUT binaries marked as x86_64 (maybe do i686 later?)
  • configure.ac: NUT_REPORT_FEATURE the HAVE_CXX11 and HAVE_CPPUNIT aspects
  • configure.ac, m4/nut_check_libnetsnmp.m4, tools/nut-scanner/Makefile.am: introduce WITH_SNMP_STATIC flag
  • drivers/riello_ser.c: fix whitespace in WIN32 codepath
  • server/conf.c: pedantically handle a case of VALID_FD
  • server/conf.c: pedantically handle a case of ERROR_FD
  • drivers/netxml-ups.c: pedantically handle a case of ERROR_FD
  • drivers/dstate.c: no need to cast sockfd to int anymore, we adhere to TYPE_FD (or fail build if not)
  • clients/nutclient.cpp: err on the safe side, check "ifdef" before we "define" WINAPI-compatibility macros
  • clients/nutclient.cpp: err on the safe side, check "ifdef" before we "define" WINAPI-compatibility macros
  • drivers/apcupsd-ups.c: convert to use of TYPE_FD_SOCK and its macros

2.636. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: avoid realpath() on platforms that lack it Part of this was merged to master earlier, except the header include

2.637. 2022-08-19 Jim Klimov <jimklimov+nut@gmail.com>

  • common/Makefile.am: only add wincompat.{c,h} to libcommon* if HAVE_WINDOWS in the build
  • clients/upssched.c: try_connect(): further reduce discrepancy of WIN/non-WIN codepaths
  • clients/upsmon.h: clients/upsmon.{c,h}: rename ST_CONNECTED to ST_CLICONNECTED - WIN32 cleanup
  • clients/upsmon.c, clients/upsmon.h: clients/upsmon.{c,h}: rename ST_CONNECTED to ST_CLICONNECTED ST_CONNECTED is defined for WIN32 DDE (Dynamic Data Exchange) in ddeml.h Renaming avoids the conflict in easiest manner
  • clients/upsmon.c, clients/upsmon.h: clients/upsmon.{c,h}: rename ST_CONNECTED to ST_CLICONNECTED ST_CONNECTED is defined for WIN32 DDE (Dynamic Data Exchange) in ddeml.h Renaming avoids the conflict in easiest manner

2.638. 2022-08-18 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: restructure error-catching in default BUILD_TYPE="" case

2.639. 2022-08-17 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: introduce CI_SKIP_CHECK support to help split CI jobs into stages
  • ci_build.sh: comment away DMF-specific check_gitignore() calls for now - they refer to BUILD_TGT not (yet) defined in this codepath
  • ci_build.sh: clarify report of "Using ccache via PATH…"

2.640. 2022-08-19 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS: group "NUT for Windows" bullet points

2.641. 2022-08-18 Jim Klimov <jim@jimklimov.com>

  • appveyor.yml: Update appveyor.yml Display ccache stats after tarballing, to see them better. And still after build in case tests fail. (TODO: on any outcome - postprocessing tag?) Do not shell-trace tarballing routine.

2.642. 2022-08-18 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/snmp-ups.c: err on the safe side with "long" value and "int" arg of nut_snmp_walk()
  • scripts/Windows/dllldd.sh: ignore zero-sized files under DESTDIR (bad copies etc)
  • scripts/Windows/dllldd.sh: one hit under DESTDIR suffices
  • scripts/Windows/build-mingw-nut.sh: tell DESTDIR to dllldd() search code
  • scripts/Windows/dllldd.sh: ignore some more known system DLLs
  • Makefile.am: tell scripts/Windows/dllldd.sh to check under DESTDIR [#1492]
  • Makefile.am: Revert "Makefile.am: install freshly built libups*.dll libnut*.dll into non-binary dirs from the bin [#1492]" This reverts commit b39e3a3d2d1652ef23e82bee2c2dc4d638751b5a.
  • scripts/Windows/dllldd.sh: rearrange to probe for each file in all possible locations; check under DESTDIR if provided
  • scripts/Windows/dllldd.sh: comment about not-searching for our own build products
  • m4/nut_check_python.m4: inform if python version was not suitable [#1583]
  • m4/nut_check_python.m4: take "no" for an answer [#1583]
  • m4/nut_check_python.m4: simplify PYTHON*_VERSION_REPORT to avoid brackets from m4 code [#1583]
  • m4/nut_check_python.m4: constrain python{,2,3} versions - check that what is found is in range [#1583]
  • scripts/Windows/dllldd.sh: typo fix
  • scripts/Windows/build-mingw-nut.sh: handle cgi-bin dir too
  • appveyor.yml: typo fix
  • Makefile.am: install freshly built libups*.dll libnut*.dll into non-binary dirs from the bin [#1492]
  • m4/nut_check_python.m4: inform if python version was not suitable [#1583]
  • m4/nut_check_python.m4: take "no" for an answer [#1583]
  • m4/nut_check_python.m4: simplify PYTHON*_VERSION_REPORT to avoid brackets from m4 code [#1583]
  • m4/nut_check_python.m4: try to fix Windows MSYS2 "buggy" path for python{,2,3} site-packages [#1584]
  • m4/nut_check_python.m4: comment about Windows MSYS2 "buggy" path for python{,2,3} site-packages [#1584]
  • m4/nut_check_python.m4: constrain python{,2,3} versions - check that what is found is in range [#1583]
  • Makefile.am: install-win-bundle-thirdparty: fix again detection of presence of cgiexecdir [#1492]
  • appveyor.yml: archive installed artifacts with 7z (zip format does not do sym/hard-links)
  • INSTALL.nut: update notes of NUT for Windows building/installing - that CI would publish at least archives
  • appveyor.yml: reword install step so cmd⇒bash likes it

2.643. 2022-08-18 Arnaud Quette <ArnaudQuette@eaton.com>

  • drivers/snmp-ups.c: snmp-ups: fix alarm processing only walk the number of present alarms, instead of INT_MAX, to avoid potential blocking

2.644. 2022-08-18 Jim Klimov <jimklimov+nut@gmail.com>

  • INSTALL.nut: update notes of NUT for Windows building/installing - current state of the art
  • ci_build.sh, scripts/Windows/build-mingw-nut.sh: ci_build.sh \+ scripts/Windows/build-mingw-nut.sh: suggest use of INSTALL_WIN_BUNDLE to call "make install-win-bundle"
  • ci_build.sh: suggest use of "make install-win-bundle" in default BUILD_TYPE="" case
  • ci_build.sh: restructure error-catching in default BUILD_TYPE="" case
  • appveyor.yml: build meaningful base dirname into downloadable zip bundle

2.645. 2022-08-18 Jim Klimov <jimklimov@gmail.com>

  • appveyor.yml: Update appveyor.yml Hush back down the bundle-install
  • Makefile.am: Update Makefile.am Fix detection of cgiexecdir; comments on dirs involved here.
  • appveyor.yml: Update appveyor.yml
  • appveyor.yml: Update appveyor.yml archive config.log pass filename version differently

2.646. 2022-08-17 Jim Klimov <jimklimov+nut@gmail.com>

  • Makefile.am: install-win-bundle-thirdparty: cgiexecdir may be not installed (others too technically… but unlikely a valid situation) [#1492]
  • scripts/Windows/dllldd.sh: drop diff markup chars
  • Makefile.am: install-win-bundle-thirdparty: mute the big logic block [#1492]
  • Makefile.am: install-win-bundle-thirdparty: handle cgiexecdir if present [#1492]
  • Makefile.am: force-hardlink installed DLLs into secondary dirs (overwrite if older link/copy exists)
  • scripts/Windows/dllldd.sh: cripts/Windows/dllldd.sh: optimize by filtering away more well-known Windows-provided DLLs
  • scripts/Windows/dllldd.sh: refactor dllldddir() to only look at any DLL once (MSYS2 has a huge inter-dependency tree)
  • scripts/Windows/dllldd.sh: optimize to check if base dir for planned listing exists
  • scripts/Windows/dllldd.sh: not all shells seen auto-expand "{bin,lib}" notation
  • scripts/Windows/dllldd.sh: prefer objdump over ldd as more reliable (especially when many files are queried and one hit suffices for script logic)
  • scripts/Windows/dllldd.sh: optimize by feeding many PE files to same ldd/objdump command (where supported)
  • scripts/Windows/dllldd.sh: optimize by filtering away well-known Windows-provided DLLs
  • scripts/Windows/dllldd.sh: subshell dllldd() with C locale [#1492]
  • scripts/Windows/dllldd.sh: refactor dllldddir() [#1492]
  • appveyor.yml: make check and install quieter
  • appveyor.yml: "make install-win-bundle" and save artifacts with Bundle of binary files and FOSS dependencies of NUT for Windows [#1492, #1552]
  • scripts/Windows/build-mingw-nut.sh: refactor to "make install-win-bundle" target recipe [#1492]
  • Makefile.am: define "make install-win-bundle" target recipe [#1492]
  • scripts/Windows/build-mingw-nut.sh, scripts/Windows/dllldd.sh: scripts/Windows/dllldd.sh: transplant dllldddir() from build-mingw-nut.sh [#1492]
  • scripts/Windows/dllldd.sh: fallback support for MSYS2 path search [#1492]
  • scripts/Windows/build-mingw-nut.sh, scripts/Windows/dllldd.sh: Split scripts/Windows/dllldd.sh as a separately usable shell tool or lib [#1492]
  • appveyor.yml: introduce CI_SKIP_CHECK support to help split CI jobs into stages
  • ci_build.sh: introduce CI_SKIP_CHECK support to help split CI jobs into stages
  • ci_build.sh: comment away DMF-specific check_gitignore() calls for now - they refer to BUILD_TGT not (yet) defined in this codepath
  • appveyor.yml: try harder to save ccache for next builds
  • appveyor.yml: add after_build stage to report ccache stats
  • NEWS, docs/nut.dict: NEWS: Proclaim AppVeyor CI tests of NUT for Windows [#1552]
  • ci_build.sh: clarify report of "Using ccache via PATH…"
  • appveyor.yml: Assorted stats: "du" just the MSYS tree, without looking in other filesystems like /proc
  • appveyor.yml: dispose of "ps" in favor of "cmd" to invoke MSYS2 shell scripts (too much hassle with wording on stderr)

2.647. 2022-08-17 Jim Klimov <jimklimov@gmail.com>

  • appveyor.yml: no time! No time: it outputs /\^sys/ - fatal for powershell (or appveyor?) console scanner
  • appveyor.yml: try harder to avoid AppVeyor/Powershell induced faults
  • appveyor.yml: try to avoid AppVeyor/PowerShell complaints about presence of stderr output

2.648. 2022-08-17 Jim Klimov <jimklimov+nut@gmail.com>

  • appveyor.yml: pre-create /var/cache/pacman/pkg on newly made workers [#1552]
  • appveyor.yml: Only cache packages with appveyor.yml [#1552]
  • appveyor.yml: Introduce appveyor.yml to automate NUT for Windows builds [#1552]

2.649. 2022-08-16 Jim Klimov <jimklimov+nut@gmail.com>

  • NEWS: fall back to /usr/local/… if libltdl was not found by default [#1577]
  • m4/nut_check_libltdl.m4: fall back to /usr/local/… if no custom CFLAGS were specified and libltdl was not found by default [#1577]

2.650. 2022-08-14 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: consider --with-nut-scanner option [#1560]
  • docs/packager-guide.txt: add suggestions for nut-scanner [#1560]

2.651. 2022-08-16 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/README: typo fix
  • scripts/python/module/README: document GetUPSNames() [#746, #549]
  • scripts/python/module/README: clarify about "str" vs "byte" strings (hassle of Python 3) [#746]

2.652. 2022-08-15 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/python/module/PyNUT.py.in: refactor with GetUPSNames() for py2/py3 compatibility [#549, #746]
  • scripts/python/module/PyNUT.py.in: fix exception in SetRWVar(): strip EOL
  • tests/NIT/nit.sh: rearrange handling (and messaging) for DEBUG_SLEEP

2.653. 2022-08-13 Jim Klimov <jim@jimklimov.com>

  • NEWS, docs/nut.dict: NEWS: client/nutclient{,mem}.{cpp,h}: add listDeviceClients() and deviceGetClients(dev)
  • tests/cpputest-client.cpp: cover device login and getting list of clients
  • clients/nutclient.cpp, clients/nutclient.h, clients/nutclientmem.cpp, clients/nutclientmem.h: client/nutclient{,mem}.{cpp,h}: add listDeviceClients() and deviceGetClients(dev)

2.654. 2022-08-12 Jim Klimov <jim@jimklimov.com>

  • docs/net-protocol.txt: typo fix "LIST CLIENTS" ⇒ "LIST CLIENT" [#549]
  • NEWS, docs/nut.dict: NEWS: report fixed PyNUT::ListClients() [#549] and added DeviceLogin()
  • scripts/python/module/test_nutclient.py.in: report end of script aka PyNUT instance teardown
  • tests/NIT/nit.sh: test python DeviceLogin() and ListClients() methods with upsmon-role credentials
  • scripts/python/module/PyNUT.py.in: extend PASSWORD handling for values with spaces
  • scripts/python/module/test_nutclient.py.in: add DeviceLogin() method
  • scripts/python/module/README: add DeviceLogin() method
  • scripts/python/module/PyNUT.py.in: add DeviceLogin() method
  • scripts/python/module/PyNUT.py.in: bump version for fixed ListClients()
  • scripts/python/module/test_nutclient.py.in: confirm that ListClients() fails for unknown device
  • scripts/python/module/test_nutclient.py.in: report more visibly if we have a real result or an exception
  • scripts/python/module/test_nutclient.py.in: test ListClients() [#549]
  • scripts/python/module/PyNUT.py.in: fix ListClients() * to call the right protocol command Closes: #549 * handle the begin/end messages correctly to work at all * make ListClients() usable with "ups==None" * parse "CLIENT ups host" in correct order

2.655. 2022-08-14 Jim Klimov <jim@jimklimov.com>

  • scripts/python/app/NUT-Monitor-py3qt5.in: fix __find_icon_file()… …to look also for package-installed icons (in OS location) Thanks to @Perlovka for noticing and proposing a fix, and to @lukejr for confirming it as correct. Closes: #1567
  • scripts/Solaris/nut-driver.xml.in, scripts/Solaris/nut-server.xml.in, scripts/Solaris/svc-nut-server.in: scripts/Solaris/nut-server*, nut-driver.xml: create NUT_RUN_DIR before starting the driver (e.g. at boot) [#1564]
  • configure.ac, scripts/Solaris/Makefile.am: introduce WITH_SOLARIS_INIT and depend WITH_SOLARIS_SMF on whether we want packaging for Solaris/illumos [#1554]
  • NEWS: update for Solaris/illumos packaging and SMF service support [#1554, #1564]

2.656. 2022-08-14 Jim Klimov <jimklimov+nut@gmail.com>

  • UPGRADING: recommend packagers to "configure --with-all" by default
  • NEWS, UPGRADING: announce "configure --with-nut-scanner" [#1560]
  • configure.ac, tools/nut-scanner/Makefile.am: configure.ac: add --with-nut-scanner (also as part of --with-all) Closes: #1560
  • m4/nut_arg_with.m4: escape dashes into underscores for valid shell var names
  • configure.ac: clarify --with-all help message

2.657. 2022-08-14 Jim Klimov <jimklimov@gmail.com>

  • NEWS: snmp-ups updated for invalid negative values [#1558]

2.658. 2022-08-14 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/config-prereqs.txt: mention that "MinGW UCRT x64" environment seems to also work for NUT builds
  • docs/man/usbhid-ups.txt: update with known illumos support
  • docs/man/usbhid-ups.txt: add a toggle to disable_fix_report_desc [#1566]
  • drivers/apc-hid.c, drivers/cps-hid.c, drivers/usbhid-ups.c, drivers/usbhid-ups.h: usbhid-ups, cps-hid, apc-hid: add a toggle to disable_fix_report_desc [#1566]
  • NEWS: openssl-3.0.x supported with openssl-1.1.0 support code from NUT v2.8.0 [#1547]
  • include/common.h: update comments to document TYPE_FD* macros [#1556]
  • drivers/dstate.c: whitespace and typo fixes (cosmetic) [#1556]
  • UPGRADING: document changes for TYPE_FD* in headers (Windows branch) [#1556]
  • clients/upssched.c: start_daemon(): firther refactor to simplify code [#1556]
  • INSTALL.nut: refer to GitHub project regarding NUT for Windows [#5]

2.659. 2022-08-12 Jim Klimov <jimklimov+nut@gmail.com>

  • include/common.h, server/nut_ctype.h, server/stype.h, server/upsd.c: Introduce also TYPE_FD_SOCK for sockets [#1556]
  • clients/upssched.c, clients/upssched.h, common/common.c, drivers/apcsmart.c, drivers/belkinunv.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dstate.c, drivers/dstate.h, drivers/dummy-ups.c, drivers/libshut.c, drivers/main.c, drivers/main.h, drivers/serial.c, include/common.h, server/sstate.c, server/sstate.h, server/stype.h, server/upsd.c, server/upstype.h, tools/nut-scanner/scan_eaton_serial.c: Refactor TYPE_FD [#1556]

2.660. 2022-08-12 Arnaud Quette <ArnaudQuette@eaton.com>

  • drivers/ietf-mib.c: snmp-ups: flag invalid negative values for IETF MIB

2.661. 2022-08-12 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/serial.c: refactor ser_set_*() and ser_get_*() to define once, implement per target (WIN32 or not)
  • include/common.h: separate definitions of TYPE_FD, ERROR_FD, VALID_FD() macros for usual file descriptors vs. types for serial port work [#1556]
  • common/common.c, drivers/belkinunv.c, drivers/libhid.h, drivers/libshut.h, drivers/serial.c, drivers/serial.h, include/common.h, server/upsd.c, tools/nut-scanner/scan_eaton_serial.c: Rename platform-abstracted serial/SHUT file descriptor macro TYPE_FD ⇒ TYPE_FD_SER [#1556]
  • server/upsd.c: ups_available(): fix reporting "Data stale" for an UPS that never connected (WIN32 only) [#1477]
  • server/upsd.c: mainloop(): report that we retry connecting to driver socket and what the outcome was (at all - WIN32)
  • server/upsd.c: mainloop(): report that we retry connecting to driver socket and what the outcome was more clearly
  • drivers/serial.c: convert from ERROR_FD equality to !VALID_FD()
  • tools/nut-scanner/scan_xml_http.c: fix whitespace
  • tools/nut-scanner/scan_usb.c: tools/nut-scanner/scan_snmp.c: ifdef-scope nut_usb_get_busses() vs nut_usb_busses for WIN32 or not
  • tools/nut-scanner/scan_eaton_serial.c: convert from ERROR_FD equality to VALID_FD()

2.662. 2022-08-11 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/nutscan-ip.h: fix type of include file/markup
  • server/upsd.c: fix whitespace
  • server/sstate.c: fix whitespace
  • drivers/belkinunv.c: convert from ERROR_FD equality to !VALID_FD()
  • drivers/apcsmart.c: convert from ERROR_FD equality to !VALID_FD()
  • INSTALL.nut: clarify that currently Win32 packages are not made regularly
  • common/snprintf.c: whitespace fix

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

  • .gitignore: GitIgnore configure-script test sources
  • .gitignore: GitIgnore coredumps

2.664. 2022-08-11 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: fix whitespace
  • configure.ac: initially set LIBREGEX_LIBS="" so it is defined
  • scripts/Windows/README: document current (unfinished) prerequisite cross-build for avahi
  • common/common.c: allow to find libraries via PATH (WIN32 only) [#1482]

2.665. 2022-08-10 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/README: uncomment iconv as useful for libgd directly
  • scripts/Windows/README: document hiccup with libgd in 32-bit mode
  • scripts/Windows/build-mingw-nut.sh: export valid CXX for good measure
  • scripts/Windows/README: move net-snmp instruction to be after openssl, to take advantage of its presence
  • scripts/Windows/README: clarify that xmlto (asciidoc) is needed for full libneon build, or how to skip installing docs
  • scripts/Windows/README: un-hide xz and libxml2 (needed for libneon) instructions
  • scripts/Windows/build-mingw-nut.sh: install WIN32 libs near relevant executable after all [#1482]

2.666. 2022-08-09 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Solaris/Makefile.am: do not install Solaris init files uninvited [#1488]

2.667. 2022-08-10 Jim Klimov <jimklimov+nut@gmail.com>

  • docs/nut.dict: Update docs/nut.dict
  • NEWS: changed get_libname() behavior and extended use-case in nut-scanner for NUT v2.8.1
  • docs/nut.dict: Update docs/nut.dict
  • tools/nut-scanner/nutscan-init.c: fallback to plain "libusb" in either case (0.1 or 1.0 not found)
  • tools/nut-scanner/nutscan-init.c: fall back to nutscan_load_*() unresolved paths to library names, native implem of lt_dlopen() may do a better job [#805]

2.668. 2022-06-09 Jim Klimov <jimklimov@gmail.com>

  • tools/nut-scanner/nutscan-init.c: define SOEXT (shared object file extension) as a macro

2.669. 2022-08-10 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: get_libname(): prefer LD_LIBRARY_PATH_(32\|64) firstmost [#805]
  • common/common.c: get_libname(): prefer LD_LIBRARY_PATH first [#805]
  • common/common.c: fix whitespace
  • NEWS: changed get_libname() behavior and extended use-case in nut-scanner for NUT v2.8.1
  • tools/nut-scanner/nutscan-init.c: fall back to nutscan_load_*() unresolved paths to library names, native implem of lt_dlopen() may do a better job [#805] - for WIN32
  • tools/nut-scanner/nutscan-init.c: fall back to nutscan_load_*() unresolved paths to library names, native implem of lt_dlopen() may do a better job [#805]
  • tools/nut-scanner/nutscan-init.c: fallback to plain "libusb" in either case (0.1 or 1.0 not found)
  • scripts/Windows/build-mingw-nut.sh: we now allow to find libraries near the current NUT executable (../lib) on WIN32, so install all third-party deps there once [#1482]
  • common/common.c, include/common.h: common/common.c: allow to find libraries near the current NUT executable (../lib) on WIN32 with PATH_LIB [#1482]
  • common/common.c: allow to find libraries near the current NUT executable (../lib) on WIN32 [#1482]
  • common/common.c: get_libname(): prefer LD_LIBRARY_PATH_(32\|64) firstmost [#805]
  • common/common.c: get_libname(): prefer LD_LIBRARY_PATH first [#805]

    • for WIN32 (with ";" separator)
  • common/common.c: get_libname(): prefer LD_LIBRARY_PATH first [#805]
  • common/common.c: fix whitespace

2.670. 2022-08-09 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/build-mingw-nut.sh: typo fix
  • Jenkinsfile-dynamatrix: allow 32-bit builds for cross-windows-mingw-32
  • scripts/Solaris/Makefile.am: fix automake conditional syntax
  • clients/upssched.c: avoid type comparison warnings on 32-bit WIN32 builds [#1478]
  • common/strptime.c: avoid type range limit warnings on 31-bit builds
  • scripts/Windows/build-mingw-nut.sh: implement recursive find-and-copy of DLLs needed by NUT binaries into the nut_install tree [#1492]
  • scripts/Solaris/Makefile.am: do not install Solaris init files uninvited [#1488]
  • scripts/Windows/README: rearrange chapter on building NUT itself; mention ci_build.sh integration
  • scripts/Windows/README: document cross-building openssl for NUT and for libneon
  • scripts/Windows/README: clarify build vs install of zlib(-devel)
  • scripts/Windows/README: keep two blank lines between component-recipe chapters

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

  • docs/nut.dict: fix word order
  • clients/upsmon.c: comment "use_pipe"
  • clients/upssched.c: sendcmd(): fix "pipefd" definition formatting Minimize diffs vs. Windows branch
  • common/common.c: update formatting and comments Minimize diffs vs. Windows branch
  • common/snprintf.c: comment #endif HAVE_* reasons
  • docs/man/ups.conf.txt: formatting fix (line per sentence)

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

  • tools/nut-scanner/scan_xml_http.c: fix some comments and whitespace
  • tools/nut-scanner/scan_usb.c: fix some comments and whitespace
  • tools/nut-scanner/scan_snmp.c: fix some comments
  • tools/nut-scanner/scan_nut.c: fix some whitespace
  • tools/nut-scanner/scan_ipmi.c: fix some whitespace
  • tools/nut-scanner/scan_avahi.c: fix some whitespace
  • tools/nut-scanner/nutscan-serial.c: fix some whitespace
  • server/upsd.c: fix some whitespace
  • include/str.h: fix some whitespace

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

  • drivers/usbhid-ups.c: fix some whitespace
  • drivers/snmp-ups.c: fix some whitespace
  • drivers/libshut.c: fix whitespace
  • drivers/libhid.h: fix whitespace
  • drivers/isbmex.c: fix whitespace
  • drivers/genericups.c: drop blank line
  • drivers/clone-outlet.c: fix some whitespace
  • drivers/blazer_usb.c: adjust whitespace

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

  • clients/upsmon.c: main(): fix "cmd" definition formatting Minimize differences vs. Windows branch
  • clients/upsmon.c: fix some whitespace
  • clients/upsclient.c: fix some whitespace

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

  • tests/NIT/nit.sh: testcase_upsd_allow_no_device(): noisy listing should not be default At least, it is likely the root cause of faults was the busy NUT_PORT and not some missing content in the config file, after all.

2.676. 2022-08-01 Arnaud Quette <ArnaudQuette@eaton.com>

  • drivers/mge-mib.c: Fix case for EATON manufacturer This must be upper case to avoid duplicate discoveries Closes: IPMPROG-4489 (cherry picked from commit a10f5967154e6c6d2dfa53975de6f874b9966804)

2.677. 2022-07-30 Jim Klimov <jimklimov@gmail.com>

  • tests/NIT/nit.sh: isBusy_NUT_PORT() should not block tests when /proc/net/tcp{,6} is usable and says port is free
  • tests/NIT/nit.sh: isBusy_NUT_PORT() should not block tests when tools to check occupied ports are not available
  • tests/NIT/nit.sh: consult isBusy_NUT_PORT() to pick an available port
  • tests/NIT/nit.sh: add isBusy_NUT_PORT()
  • tests/NIT/nit.sh: typo fix in report_NUT_PORT()
  • tests/NIT/nit.sh: troubleshoot testcase_upsd_allow_no_device() - tell exit-code of upsd
  • tests/NIT/nit.sh: troubleshoot testcase_upsd_allow_no_device()
  • server/upsd.c: report "Found %d UPS defined in ups.conf" upon start

2.678. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsmon.c, clients/upssched.c, common/common.c, common/parseconf.c, include/common.h: Refactor fcntl(…, FD_CLOEXEC) as set_close_on_exec() where possible

2.679. 2022-06-16 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/blazer_usb.c, drivers/libshut.h, drivers/nut_libusb.h, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usbhid-ups.c: drivers/libusb.h, libshut.h, nutdrv_qx et al: rename *_communication_subdriver_s fields for function pointers "open" and "close" to "*_dev" - to avoid conflict with serial.h macros for WIN32 builds

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

  • drivers/generic_modbus.c: switch from non-standard "uint" to "uint16_t" (per context) which we do define
  • drivers/adelsystem_cbi.c: switch from non-standard "uint" to "uint16_t" (per context) which we do define

2.681. 2014-03-04 Emilien Kia <EmilienKia@Eaton.com>

  • clients/upsmon.h: Define a NOTIFY_DEFAULT flag, use it to initialize upsmon. (Part of change for Windows branch, to minimize differences with master) Also fixes NOTIFY_CAL to have same settings as everyone else.

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

  • drivers/adelsystem_cbi.c, drivers/adelsystem_cbi.h: drivers/adelsystem_cbi.{c,h}: avoid macro clash with WIN32 DEVICE_TYPE

2.683. 2022-06-16 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/tripplitesu.c: rename SHUTDOWN_* to TSU_SHUTDOWN_* to avoid WIN32 macro conflicts

2.684. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/mge-xml.c, drivers/netxml-ups.c, drivers/netxml-ups.h, drivers/nutdrv_qx.c, drivers/nutdrv_qx.h, drivers/nutdrv_qx_bestups.c, drivers/usbhid-ups.c, drivers/usbhid-ups.h: drivers/*.{h,c}: rename "CAL" in enums to "CALIB" to avoid name clash in WIN32 builds

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

  • common/common.c: refactor get_libname() so new get_libname_in_dir() may be used not only to loop search_paths[]

2.686. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: check for existence of realpath()

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

  • drivers/al175.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/gamatronic.c, drivers/optiups.c, drivers/powercom.c, drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/snmp-ups.c, drivers/tripplite_usb.c, drivers/upsdrvctl.c, server/netssl.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Fix "%j*" and "%z*" printing to PRI[xidu](SIZE\|MAX): avoid dangling "" concatenation in format strings

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

  • include/nut_stdint.h: be consistent - define PRI[di] (both) for MAX and SIZE

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

  • drivers/belkin.c, drivers/bestups.c, drivers/huawei-ups2000.c, drivers/ivtscd.c, drivers/libshut.h, drivers/masterguard.c, drivers/nutdrv_qx_masterguard.c, drivers/oneac.c, drivers/optiups.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/tripplitesu.c, drivers/usbhid-ups.c: drivers: fix headers to printf with PRIuSIZE formatting token

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

  • clients/nutclient.cpp, clients/upsclient.c, common/common.c, drivers/libhid.c, drivers/libusb1.c, drivers/main.c, drivers/nutdrv_siemens_sitop.c, drivers/upscode2.c, include/nut_stdint.h, server/upsd.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_xml_http.c: Fix "%ji", "%jd" and "%ju" printing to PRI[du]MAX

2.691. 2022-05-24 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsc.c, clients/upsclient.c, clients/upscmd.c, clients/upsmon.c, clients/upsrw.c, clients/upssched.c, clients/upsset.c, common/common.c, drivers/al175.c, drivers/apcsmart.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/belkin.c, drivers/bestfortress.c, drivers/bestups.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dstate.c, drivers/dummy-ups.c, drivers/gamatronic.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/libhid.c, drivers/libshut.c, drivers/libusb0.c, drivers/libusb1.c, drivers/liebert-esp2.c, drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c, drivers/microsol-common.c, drivers/netxml-ups.c, drivers/nutdrv_qx.c, drivers/nutdrv_qx_masterguard.c, drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c, drivers/powercom.c, drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/snmp-ups.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c, drivers/upsdrvctl.c, include/nut_stdint.h, server/netssl.c, server/sockdebug.c, server/upsd.c, tests/getvaluetest.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Fix "%zx", "%zd", "%zi" and "%zu" printing to PRI[xiu]SIZE that is named more standards-like

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

  • drivers/al175.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/gamatronic.c, drivers/optiups.c, drivers/powercom.c, drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/snmp-ups.c, drivers/tripplite_usb.c, drivers/upsdrvctl.c, server/netssl.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Fix "%j*" and "%z*" printing to PRI[xidu](SIZE\|MAX): avoid dangling "" concatenation in format strings
  • tools/nut-scanner/scan_xml_http.c: fix some comments and whitespace
  • tools/nut-scanner/scan_usb.c: move "Clear any existing error" up where it makes sense
  • tools/nut-scanner/scan_usb.c: fix some comments and whitespace
  • tools/nut-scanner/scan_snmp.c: fix some comments
  • tools/nut-scanner/scan_nut.c: fix some whitespace
  • tools/nut-scanner/scan_ipmi.c: fix some whitespace
  • tools/nut-scanner/scan_avahi.c: fix some whitespace
  • tools/nut-scanner/nutscan-serial.c: fix some whitespace
  • server/upsd.c: fix some whitespace
  • server/netssl.c: typo fixes "inialize" ⇒ "initialize", and some whitespace

2.693. 2022-05-20 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/halt.c: mark some NUT_UNUSED_VARIABLEs

2.694. 2022-06-14 Jim Klimov <jimklimov+nut@gmail.com>

  • m4/ax_c_pragmas.m4: avoid strcasestr() which is not ubiquitous

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

  • include/str.h: fix some whitespace

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

  • drivers/usbhid-ups.c: fix some whitespace

2.697. 2022-06-16 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/tripplitesu.c: rename SHUTDOWN_* to TSU_SHUTDOWN_* to avoid WIN32 macro conflicts

2.698. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/snmp-ups.h: be sure to include "nut_stdint.h"

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

  • drivers/snmp-ups.c: fix some whitespace
  • drivers/serial.h: include "common.h" for possibly fallback suseconds_t

2.700. 2022-05-20 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/serial.h: include config.h first

2.701. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/mge-xml.c, drivers/netxml-ups.c, drivers/netxml-ups.h, drivers/nutdrv_qx.c, drivers/nutdrv_qx.h, drivers/nutdrv_qx_bestups.c, drivers/usbhid-ups.c, drivers/usbhid-ups.h: drivers/*.{h,c}: rename "CAL" in enums to "CALIB" to avoid name clash in WIN32 builds

2.702. 2014-02-20 Arnaud Quette <ArnaudQuette@Eaton.com>

  • drivers/mge-hid.c: Fix "no OFF status in "ups.status" although UPS is switched off" and "OB status in "ups.status" although power supply is present" in mge-hid driver. Fix problem up from Schleicher.

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

  • drivers/libshut.c: fix whitespace
  • drivers/libhid.h: fix whitespace
  • drivers/isbmex.c: fix whitespace
  • drivers/genericups.c: drop blank line

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

  • drivers/generic_modbus.c: switch from non-standard "uint" to "uint16_t" (per context) which we do define

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

  • drivers/dummy-ups.c: update comments

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

  • drivers/dstate.c: rename (arg_)extrafd to not shadow a global var name

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

  • drivers/clone-outlet.c: fix some whitespace
  • drivers/blazer_usb.c: adjust whitespace

2.708. 2022-06-16 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/blazer_usb.c, drivers/libshut.h, drivers/nut_libusb.h, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usbhid-ups.c: drivers/libusb.h, libshut.h, nutdrv_qx et al: rename *_communication_subdriver_s fields for function pointers "open" and "close" to "*_dev" - to avoid conflict with serial.h macros for WIN32 builds

2.709. 2022-06-18 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/apcupsd-ups.c: align fcntl() error-checking with upsd.c precedent

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

  • drivers/adelsystem_cbi.c: switch from non-standard "uint" to "uint16_t" (per context) which we do define
  • drivers/adelsystem_cbi.c, drivers/adelsystem_cbi.h: drivers/adelsystem_cbi.{c,h}: avoid macro clash with WIN32 DEVICE_TYPE

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

  • docs/nut.dict: fix word order
  • docs/man/ups.conf.txt: formatting fix (line per sentence)
  • configure.ac: typo fix (cosmetic)

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

  • common/strerror.c: include stdio.h for snprintf()
  • common/strerror.c: avoid build error if EDEADLK==EDEADLOCK

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

  • common/snprintf.c: comment #endif HAVE_* reasons

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

  • include/proto.h, common/setenv.c: be sure to include "config.h"

2.715. 2022-05-24 Jim Klimov <jimklimov+nut@gmail.com>

  • common/parseconf.c: include "config.h" first

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

  • common/common.c: refactor get_libname() so new get_libname_in_dir() may be used not only to loop search_paths[]

2.717. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: check for existence of realpath()

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

  • common/common.c: refactor confpath() and dflt_statepath()
  • common/common.c: check_unix_socket_filename(): optimize use of len and max
  • common/common.c: update formatting and comments Minimize diffs vs. Windows branch

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

  • common/atexit.c: mark NUT_UNUSED_VARIABLE if we !HAVE_ON_EXIT

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

  • clients/upssched.c: sendcmd(): fix "pipefd" definition formatting Minimize diffs vs. Windows branch
  • clients/upsmon.c: main(): fix "cmd" definition formatting Minimize differences vs. Windows branch
  • clients/upsmon.c: comment "use_pipe"
  • clients/upssched.c: clients/upssched.c send_to_one(): reword message for "write failed … disconnecting"

2.721. 2014-03-04 Emilien Kia <EmilienKia@Eaton.com>

  • clients/upsmon.h: Define a NOTIFY_DEFAULT flag, use it to initialize upsmon. (Part of change for Windows branch, to minimize differences with master) Also fixes NOTIFY_CAL to have same settings as everyone else.

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

  • clients/upsmon.c: fix some whitespace

2.723. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsmon.c, clients/upssched.c, common/common.c, common/parseconf.c, include/common.h: Refactor fcntl(…, FD_CLOEXEC) as set_close_on_exec() where possible

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

  • clients/upsclient.c: fix some whitespace

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

  • include/nut_stdint.h: be consistent - define PRI[di] (both) for MAX and SIZE

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

  • drivers/belkin.c, drivers/bestups.c, drivers/huawei-ups2000.c, drivers/ivtscd.c, drivers/libshut.h, drivers/masterguard.c, drivers/nutdrv_qx_masterguard.c, drivers/oneac.c, drivers/optiups.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/tripplitesu.c, drivers/usbhid-ups.c: drivers: fix headers to printf with PRIuSIZE formatting token

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

  • clients/nutclient.cpp, clients/upsclient.c, common/common.c, drivers/libhid.c, drivers/libusb1.c, drivers/main.c, drivers/nutdrv_siemens_sitop.c, drivers/upscode2.c, include/nut_stdint.h, server/upsd.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_xml_http.c: Fix "%ji", "%jd" and "%ju" printing to PRI[du]MAX

2.728. 2022-05-24 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upsc.c, clients/upsclient.c, clients/upscmd.c, clients/upsmon.c, clients/upsrw.c, clients/upssched.c, clients/upsset.c, common/common.c, drivers/al175.c, drivers/apcsmart.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/belkin.c, drivers/bestfortress.c, drivers/bestups.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dstate.c, drivers/dummy-ups.c, drivers/gamatronic.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/libhid.c, drivers/libshut.c, drivers/libusb0.c, drivers/libusb1.c, drivers/liebert-esp2.c, drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c, drivers/microsol-common.c, drivers/netxml-ups.c, drivers/nutdrv_qx.c, drivers/nutdrv_qx_masterguard.c, drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c, drivers/powercom.c, drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/snmp-ups.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c, drivers/upsdrvctl.c, include/nut_stdint.h, server/netssl.c, server/sockdebug.c, server/upsd.c, tests/getvaluetest.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Fix "%zx", "%zd", "%zi" and "%zu" printing to PRI[xiu]SIZE that is named more standards-like

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

  • autogen.sh: suggest how to re-checkout workspace with desired EOL settings

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

  • scripts/Windows/README: try to link net-snmp shared (does not help though)
  • scripts/Windows/README: document the mess of static-only netsnmp builds
  • m4/nut_check_libnetsnmp.m4: if we fail to find init_snmp() on mingw, retry with static-linking assumption for net-snmp
  • ci_build.sh: be sure to use fresh configure script for cross-mingw builds too
  • ci_build.sh: fix indentation

2.731. 2022-07-23 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/README: document libmodbus
  • scripts/Windows/build-mingw-nut.sh: propagate correct PKG_CONFIG_PATH
  • scripts/Windows/build-mingw-nut.sh: avoid installing augeas lenses into system location autoconf fudges paths for DESTDIR if they are there
  • scripts/Windows/README: document latest state of experiment with fontconfig for libgd (fails due to ICU so far)
  • scripts/Windows/README: update libgd build with freetype prerequisites
  • scripts/Windows/README: suggest ccache
  • scripts/Windows/README: update libgd build with zlib and libpng prerequisites
  • scripts/Windows/README: update with libgd build
  • scripts/Windows/README: update some more comments

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

  • scripts/Windows/README: reference mailing list details from 2016 about more prereq builds
  • scripts/Windows/README: update setting envvars for prereq builds
  • scripts/Windows/README: update some notes

2.733. 2022-07-23 Yifeng Li <tomli@tomli.me>

  • drivers/huawei-ups2000.c: huawei-ups2000.c: rename NULL macros, close #1474. Originally, in the struct array ups2000_cmd[], a REG_NONE macro was used as a short-hand for a nonexistent register value. Unfortunately it was in conflict with a Windows NT macro of the same name (previously not found because it was only tested on Unix systems). Thus, this commit renames it to REG_NULL. To avoid visual confusions with the function pointer field (which also uses C’s NULL for its nonexistence), this commit also replaces it with a new macro FUNC_NULL, which is a simple alias to C’s NULL. It’s not exactly the best practice, a "UPS2000_" prefix should’ve been used in principle. However, using it in this case creates exceedingly long lines and makes the struct array definition more difficult to read, which defeats the very purpose of defining these macros to begin with. Considering that it’s only an one-off use, it’s unlikely to cause further problems.

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

  • tests/NIT/nit.sh: stop_daemons() before exit-handling to not cause end-of-life error code
  • tests/NIT/nit.sh: stop_daemons(): forget daemon PIDs to avoid mix-ups
  • tests/NIT/nit.sh: stop_daemons(): do not trigger an error by term/exit code from stopped daemons

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

  • tests/NIT/nit.sh: when starting UPSD, log_debug() which PID_UPSD we track (troubleshoot)
  • tests/NIT/nit.sh: in stop_daemons() wait for killed daemons to return an exit-code
  • tests/NIT/nit.sh: introduce best-effort report_NUT_PORT() to where we fail if UPSD is not running

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

  • scripts/Windows/build-mingw-nut.sh: avoid installing PyNUT into OS paths while testing

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

  • tests/NIT/nit.sh: when starting UPSD, log_debug() which PID_UPSD we track (troubleshoot)
  • tests/NIT/nit.sh: in stop_daemons() wait for killed daemons to return an exit-code
  • tests/NIT/nit.sh: introduce best-effort report_NUT_PORT() to where we fail if UPSD is not running

2.738. 2022-07-21 Jim Klimov <jimklimov@gmail.com>

  • ci_build.sh: log BITS* vars
  • ci_build.sh: cross-windows-mingw: guess bitness from *FLAGS if no BITS are exported explicitly
  • scripts/Windows/build-mingw-nut.sh: avoid concatenating *FLAGS into invalid strings
  • ci_build.sh: log BITS* vars

2.739. 2022-07-20 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: log ARCH* vars

2.740. 2022-07-19 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: testcase_sandbox_start_upsd_after_drivers(): avoid hardcoded wait time in favor of more flexibility
  • tests/NIT/nit.sh: testcase_upsd_allow_no_device(): avoid hardcoded wait time in favor of more flexibility
  • Makefile.am: make distcheck should test installability of NUT-Monitor and PyNUT (even if as a co-bundle)
  • scripts/python/.gitignore: GitIgnore scripts/python/NUT-Monitor wrapper if generated
  • configure.ac: only require --with-pynut from --with-all (if Python is detected); do not require --with-nut_monitor (GUI) here
  • ci_build.sh: do not choke on absence of desktop-related modules in Python - just install (no fatal sanity check)
  • ci_build.sh: do not choke on absence of desktop-related modules in Python
  • m4/nut_check_python.m4: use better portable quoting

2.741. 2022-07-17 Jim Klimov <jimklimov@gmail.com>

  • scripts/python/Makefile.am, scripts/python/app/README: scripts/python: distribute and reference from README the screenshots from NUT-Monitor site
  • NEWS, UPGRADING, configure.ac, scripts/python/Makefile.am: configure.ac, scripts/python/Makefile.am: handle make install for NUT-Monitor and/or PyNUT [#1462]
  • m4/nut_check_python.m4: avoid square brackets, m4 interpreter makes them difficult
  • m4/nut_check_python.m4: discover site-packages location for discovered interpreter(s)
  • scripts/python/Makefile.am: distribute the module/README
  • scripts/python/module/README: Update scripts/python/module/README as of NUT v2.8.0 release
  • scripts/python/module/README: Add scripts/python/module/README This is a rough translation of https://www.lestat.st/informatique/projets/pynut Pardon my French ;)
  • scripts/python/app/screenshots/nut-monitor-1.png, scripts/python/app/screenshots/nut-monitor-2.png, scripts/python/app/screenshots/nut-monitor-3.png: Add scripts/python/app/screenshots from original project wiki
  • scripts/python/app/nut-monitor.appdata.xml: update localization info
  • scripts/python/Makefile.am: Revert "scripts/python/Makefile.am: EXTRA_DIST the app/ui/gui-1.3.glade.h sources" This reverts commit d2ede1a4d5d0e89eae31d931818570772895b325. Not sure ATM what the file is actually for, who uses or generates it.
  • scripts/python/Makefile.am: EXTRA_DIST the app/ui/gui-1.3.glade.h sources
  • scripts/python/Makefile.am: EXTRA_DIST the translation sources
  • scripts/python/Makefile.am: EXTRA_DIST the Russian translation (follow-up for #806)
  • scripts/python/Makefile.am: refactor file-set variable naming to facilitate both EXTRA_DIST and make install
  • Makefile.am: EXTRA_DIST autogen.sh since we have other bits to regenerate the configure script anyway
  • scripts/python/Makefile.am: EXTRA_DIST the "dispatcher" script and applet manifest Regression in #1354 for NUT v2.8.0 release Closes: #1462

2.742. 2022-07-19 Jim Klimov <jimklimov+nut@gmail.com>

  • tests/NIT/nit.sh: fix back the CMDERR handling

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

  • tests/NIT/nit.sh: convert many tests that did OUT="upsc ..." to runcmd()
  • tests/NIT/nit.sh: testcase_sandbox_start_drivers_after_upsd(): report what was received from upsc query as device data
  • tests/NIT/nit.sh: runcmd(): set defaults for RUNCMD_QUIET_ERR and RUNCMD_QUIET_OUT, and avoid printing a blank line when there is nothing captured in the string
  • tests/NIT/nit.sh: testcase_upsd_allow_no_device(): use runcmd() to retry connection hiccups
  • tests/NIT/nit.sh: introduce runcmd()

2.744. 2022-07-18 Jim Klimov <jimklimov@gmail.com>

  • tests/NIT/nit.sh: testcase_sandbox_start_drivers_after_upsd(): log_warn() if we had to wait for a driver to become usable

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

  • tests/NIT/nit.sh: report which NUT_PORT was used in "upsc" failed queries (help catch conflicting test runs)
  • tests/NIT/nit.sh: account FAILED_FUNCS to help troubleshoot the test script (or tested code)
  • tests/NIT/nit.sh: testcase_sandbox_start_drivers_after_upsd(): wait longer for driver start (and valid upsc response)
  • tests/NIT/nit.sh: log the exit-code of "upsc" failed queries
  • tests/NIT/nit.sh: report which NUT_PORT we started with

2.746. 2022-07-18 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: Update docs/nut.dict
  • docs/nut.dict: Update docs/nut.dict
  • NEWS: fixed man-page building for single-driver builds fixes a regression of NUT 2.8.0

2.747. 2022-07-17 Jim Klimov <jimklimov@gmail.com>

  • NEWS, configure.ac, docs/man/Makefile.am: configure.ac, docs/man/Makefile.am: fix man-page building when just a few drivers are built by name Regression for custom-builders in NUT 2.8.0 release Closes: #1467
  • NEWS: prioritize NUT v2.8.1 release as a regression-fixer for 2.8.0 (move not-urgent "expected" work to 2.8.2 tentatively)
  • NEWS: fix usbhid-ups reaction to libusb ENOMEM in NUT v2.8.0 [#1422]
  • NEWS: fix regression in dummy-ups for some platforms in NUT v2.8.0 [#1420]
  • NEWS: stop/restart drivers more aggressively in NUT v2.8.1 [#1424]
  • docs/config-prereqs.txt: update libusb availability note for OmniOS
  • NEWS: device support for huawei-ups2000 improved in NUT v2.8.1 [#1448]
  • NEWS: fix regression in cyberpower-mib tables in NUT v2.8.0 [#1432]
  • NEWS: report-desc fix for cps-hid 0x0601 [#1497]
  • NEWS: regression fix for upscode in 2.8.0 release [#1495, #1455]

2.748. 2022-07-14 Austin Sabel <austin.sabel@gmail.com>

  • drivers/cps-hid.c: apply report fix to model CP1500PFCLCDa

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

  • clients/upssched.c: wrap call to signal(SIGALRM, SIG_IGN) with pragmas to ignore "-Wstrict-prototypes" (some platform headers do not declare SIG_IGN as a function prototype)

2.750. 2022-07-14 Jim Klimov <jimklimov@gmail.com>

  • common/common.c: allow to use NUT_ALTPIDPATH envvars also on Windows (with similar logic for NUT_STATEPATH fallback)

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

  • clients/Makefile.am: revise use of libupsclient_la_SOURCES in favor of pre-built libcommonclient.la

2.752. 2022-07-14 Jim Klimov <jimklimov@gmail.com>

  • drivers/riello.c, drivers/riello.h, drivers/riello_ser.c, drivers/riello_usb.c: drivers/riello*.{c,h}: update links to PDF protocol documentation Closes: #1481
  • server/upsd.c: avoid meaningful work in upsdebug*() macro call [#1455]
  • drivers/upscode2.c: avoid meaningful work in upsdebug*() macro call [#1455]

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

  • .gitattributes: constrain EOL for binary files

2.754. 2022-07-13 Jim Klimov <jimklimov+nut@gmail.com>

  • .gitattributes: use a different syntax for "* text eol=auto"
  • scripts/Windows/Installer/NUT-Installer.xml: fix end-of-line chars
  • common/common.c: allow to use NUT_CONFPATH and NUT_STATEPATH envvars also on Windows
  • Jenkinsfile-dynamatrix: introduce dynacfgPipeline.axisCombos_(NOT_)WINDOWS_CROSS and a recipe to build on cross-mingw workers
  • scripts/Windows/README: refer to docs/config-prereqs.txt for native WIN32 builds
  • ci_build.sh, scripts/Windows/README: introduce BUILD_TYPE=cross-windows-mingw(-64|-32\|)

2.755. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/blazer_usb.c, drivers/libshut.h, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usb-common.h, drivers/usbhid-ups.c: usb, shut headers and drivers: update from ERROR_* macros to LIBUSB_ERROR_* macros (avoid conflict on WIN32) Also define LIBUSB_ERROR_INTERRUPTED, LIBUSB_ERROR_NOT_SUPPORTED and LIBUSB_ERROR_OTHER tokens for libusb-0.1 and SHUT builds for completeness

2.756. 2022-07-13 Jim Klimov <jimklimov+nut@gmail.com>

  • tools/nut-scanner/Makefile.am: separate libnutscan_la_LDFLAGS version-info from other options, and highlight that SERLIBS may belong elsewhere
  • clients/Makefile.am: separate libupsclient_la_LDFLAGS version-info from other options
  • clients/Makefile.am: fix relative path that should point to top_srcdir
  • configure.ac, server/upsd.c: forfeit use of DATADIR in favor of NUT_DATADIR to avoid confusion

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

  • ci_build.sh: --disable-force-nut-version-header for builds without a BUILD_TYPE, to help iterate faster
  • configure.ac, include/Makefile.am: introduce @FORCE_NUT_VERSION@
  • ci_build.sh: allow to pass CI_CCACHE_SYMLINKDIR="-" to avoid guessing one
  • ci_build.sh: better detect ccache symlink directory

2.758. 2022-05-20 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: allow use of ccache in default builds without BUILD_TYPE
  • ci_build.sh: detect relevant CI_CCACHE_SYMLINKDIR variants

2.759. 2022-07-13 Jim Klimov <jimklimov@gmail.com>

  • docs/config-prereqs.txt: fix markup to pass xmllint
  • tools/nut-scanner/Makefile.am: fix build on non-Windows platforms

2.760. 2022-03-23 Yifeng Li <tomli@tomli.me>

  • drivers/huawei-ups2000.c: huawei-ups2000.c: ups2000_read_serial(): documenting the useless range-check.
  • drivers/huawei-ups2000.c: huawei-ups2000.c: remove useless CRC range check After crc16() has been modified to accept a size_t length, it’s unnecessary to check whether the input length is greater than UINT16_MAX. Also, the check on whether ident_response_len is at least as long as the IDENT_RESPONSE_CRC_LEN is useless, since this condition is already implied by the previous check in step 2, it’s thus removed.
  • drivers/huawei-ups2000.c: huawei-ups2000.c: crc16(): use size_t instead of uint16_t. This removes the unnecessary casts in between. Also, size_t is semantically more correct than uint16_t.
  • drivers/huawei-ups2000.c: huawei-ups2000.c: ups2000_device_identification(): remove superfluous casts in crc16 calculations The initial code didn’t cast to uint16_t and was certainly a bug, but to fix that, only a single cast is needed, not three casts.
  • drivers/huawei-ups2000.c: huawei-ups2000.c: crc16(): remove superfluous casts to uint16_t when bit-shifting The initial code didn’t cast to uint16_t and was certainly a bug, but to fix that, only a single cast is needed, not three casts.

2.761. 2022-07-11 Yifeng Li <tomli@tomli.me>

  • docs/man/huawei-ups2000.txt: huawei-ups2000.txt: document UPS2000-G-1KRTS. This commit adds UPS2000-G-1KRTS to the list of tested UPS models. Thanks @sumsethan for reporting it [1]. [1] https://github.com/networkupstools/nut/issues/1066#issuecomment-1180005297
  • docs/nut.dict: nut.dict: add developer name "Hirschler" to the dict. Fix spellcheck regression in 7bfc617c1f6de1d57fe2c06d1a94a9cd97838497.

2.762. 2022-06-16 Michael Hirschler <michael.vhirsch@gmail.com>

  • docs/documentation.txt: adds link describing NUT on Fedora 36

2.763. 2022-06-18 Yifeng Li <tomli@tomli.me>

  • docs/nut.dict: nut.dict: add CH341/UART related terms to dict.
  • docs/man/huawei-ups2000.txt: huawei-ups2000.txt: document UPS2000G/CH341 variant.

2.764. 2022-06-20 Yifeng Li <tomli@tomli.me>

  • drivers/huawei-ups2000.c: huawei-ups2000.c: update comment header with info about docs.

2.765. 2022-06-18 Yifeng Li <tomli@tomli.me>

  • drivers/huawei-ups2000.c: huawei-ups2000.c: support newer UPS2000G/CH341 variants. We received a report of the existence of a new hardware variant from the bug tracker [1]. This UPS unit has the model number UPS2000-G-3KRTS just like a model we’ve previously tested, and it has the same V2R1C1SPC50 firmware, which was tested by us as well (although not on UPS2000-G-3KRTS but on UPS2000-A-2KTTS). However, there are two obvious hardware differences. First, this unit reports itself as "UPS2000G" via the protocol instead, which is a new value not found in the datasheet or previously encountered by us. Previously, even a "UPS2000G" model reports itself as the "UPS2000A". Another difference is the use of WCH CH341 serial-to-USB converter chip instead of the MaxLinear/Exar RX21V1410 chip. Bus 002 Device 005: ID 1a86:5523 QinHeng Electronics CH341 in serial mode, usb to serial port converter The production label on the UPS says 2021-12-04. So it’s likely a newer hardware revision or variant. Was it redesigned to improve USB serial compatibility? Or my personal guess, due to chip shortage? Who knows. Nevertheless, once the "UPS2000G" model string is added to the supported list, it was reported that the driver correctly functions without doing anything else. Thus, from a software perspective there’s no difference. Thanks GitHub user @Qinka for reporting it. [1] https://github.com/networkupstools/nut/issues/1066#issuecomment-1158417669

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

  • docs/nut.dict: Update nut.dict
  • docs/config-prereqs.txt: fix typos
  • docs/config-prereqs.txt: install aspell-en for MSYS2
  • docs/config-prereqs.txt: suggest a way to install DLLs into proto area after an MSYS2 build
  • drivers/adelsystem_cbi.c, drivers/adelsystem_cbi.h: drivers/adelsystem_cbi.{c,h}: avoid macro clash with WIN32 DEVICE_TYPE
  • drivers/adelsystem_cbi.c: switch from non-standard "uint" to "uint16_t" (per context) which we do define
  • drivers/generic_modbus.c: switch from non-standard "uint" to "uint16_t" (per context) which we do define
  • configure.ac, drivers/huawei-ups2000.c, include/timehead.h: include/timehead.h: fallback gmtime_r() variants
  • include/timehead.h: implement a (non thread-safe currently) fallback from missing localtime_r() via localtime()
  • configure.ac, drivers/mge-hid.c, include/timehead.h: Fallback from missing localtime_r() to present localtime_s() where available
  • docs/config-prereqs.txt: warn about antivirus interaction with native Windows builds
  • common/strerror.c: include stdio.h for snprintf()
  • common/strerror.c: avoid build error if EDEADLK==EDEADLOCK
  • common/atexit.c: mark NUT_UNUSED_VARIABLE if we !HAVE_ON_EXIT
  • scripts/Windows/README: stash some URLs to dependencies not detailed further yet
  • .gitattributes: Introduce .gitattributes
  • autogen.sh: suggest how to re-checkout workspace with desired EOL settings
  • docs/config-prereqs.txt: MSYS2 baseline request includes implementations of autotools
  • docs/config-prereqs.txt: update suggestions for "pure" mingw installation on Windows

2.767. 2022-06-23 Marshall Whittaker <marshallwhittaker@gmail.com>

  • docs/nut.dict: Updated dictionary.
  • data/driver.list.in: Added SKE SK600 to supported device list.

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

  • common/common.c: getfullpath(): change buf size to MAX_PATH and limit strncat() safely
  • drivers/dstate.c: rename (arg_)extrafd to not shadow a global var name
  • clients/nutclient.cpp, clients/upsclient.c, common/common.c, drivers/libhid.c, drivers/libusb1.c, drivers/main.c, drivers/nutdrv_siemens_sitop.c, drivers/upscode2.c, include/nut_stdint.h, server/upsd.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_xml_http.c: Replace %jd and %ju with PRI[du]MAX
  • drivers/libusb0.c: common/common.c: fallback strcasestr(): avoid double-free on some platforms
  • tools/nut-scanner/nutscan-init.c: look for (WIN32) libupsclient-6 according to version-info
  • common/common.c: update search_paths[] to include "." on WIN32 for now
  • common/common.c: refactor get_libname() so new get_libname_in_dir() may be used not only to loop search_paths[]

2.769. 2022-06-21 Jim Klimov <jimklimov+nut@gmail.com>

  • common/common.c: get_libname(): debug trace when skipping an absent dirname
  • include/wincompat.h: ensure that we have a PATH_MAX defined
  • tools/nut-scanner/nutscan-init.c: if we build WITH_SNMP_STATIC then assume nutscan_avail_snmp==1
  • configure.ac: whitespace fix
  • clients/upsset.c: rectify includes for WIN32 builds
  • ci_build.sh: set default defines in C(XX)FLAGS for WIN32 builds

2.770. 2022-06-19 Marshall Whittaker <marshallwhittaker@gmail.com>

  • docs/man/nutdrv_qx.txt: Noted that SKE devices work with the nutdrv_qx driver.

2.771. 2022-06-18 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/riello_ser.c: make it build for WIN32
  • drivers/blazer_ser.c: warn in WIN32 build start-up messages that actual serial port setup may be not happening yet
  • drivers/apcupsd-ups.c: port bits of networking code from upsd.c for WIN32 build
  • drivers/apcupsd-ups.c: getdata() for WIN32: only CloseHandle() when we close() the p.fd, to err on the safe side and be similar to other codebase
  • drivers/apcupsd-ups.c: align fcntl() error-checking with upsd.c precedent

2.772. 2022-06-16 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/Makefile.am: move apcupsd-ups and skel to NUTSW_DRIVERLIST [#1446]
  • drivers/Makefile.am: move apcupsd-ups and skel to NUTSW_DRIVERLIST [#1446]
  • drivers/apcupsd-ups.c: use INVALID_SOCKET for catching socket() problems
  • drivers/apcupsd-ups.c: getdata(): fix fcntl() vs CreateEvent() in WIN32 model
  • NEWS, UPGRADING, configure.ac, drivers/Makefile.am: Separate NUT software-only drivers from serial ones Closes: #1446
  • NEWS, UPGRADING, configure.ac, drivers/Makefile.am: Separate NUT software-only drivers from serial ones [#1446]
  • drivers/apcupsd-ups.c: rectify includes for WIN32 build
  • drivers/blazer_usb.c, drivers/libshut.h, drivers/nut_libusb.h, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usbhid-ups.c: drivers/libusb.h, libshut.h, nutdrv_qx et al: rename *_communication_subdriver_s fields for function pointers "open" and "close" to "*_dev" - to avoid conflict with serial.h macros for WIN32 builds
  • drivers/apcsmart.c: only define ECANCELED if not avoidable
  • drivers/clone-outlet.c: only declare last_connfail in non-WIN32 builds
  • drivers/apcsmart.c: use VALID_FD()
  • drivers/clone-outlet.c: use VALID_FD()
  • drivers/clone.c: use VALID_FD()
  • drivers/blazer_ser.c: currently neuter big part of upsdrv_initups() on WIN32 to avoid build errors
  • scripts/Windows/build-mingw-nut.sh: quote path variable expansions
  • include/wincompat.h: define TIOCM_RI the best we can (someone should check it works for real HW)
  • drivers/tripplitesu.c: rename SHUTDOWN_* to TSU_SHUTDOWN_* to avoid WIN32 macro conflicts
  • drivers/dummy-ups.c: do not rely on fstat(int,…) in WIN32

2.773. 2022-06-15 Jim Klimov <jimklimov+nut@gmail.com>

  • configure.ac: unblock serial (and other?) driver building with WIN32 target

2.774. 2022-06-15 Jim Klimov <jimklimov@gmail.com>

  • docs/nut.dict: nut.dict: update for WIN32 changes
  • NEWS: Note revival of Windows build effort with NUT v2.8.x era codebase
  • INSTALL.nut, docs/nut.dict: nut.dict: update for WIN32 docs updates

2.775. 2022-06-14 Jim Klimov <jimklimov@gmail.com>

  • common/wincompat.c, drivers/huawei-ups2000.c, scripts/Windows/wininit.c: scripts/Windows/wininit.c common/wincompat.c: change the fix for empty translation unit to one that does not emit other warnings :)
  • drivers/blazer_usb.c, drivers/nutdrv_qx.c, drivers/tripplite_usb.c: drivers/usb.c: address fallout for LIBUSB_ERROR_ renaming
  • configure.ac: fix strdup() check (include stdlib.h to have free())
  • configure.ac: fix str*() check program codes

2.776. 2022-06-14 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/build-mingw-nut.sh: require clean builds without warnings
  • tools/nut-scanner/scan_snmp.c: do not cast snmp_errno as a function ptr when we build WITH_SNMP_STATIC
  • tools/nut-scanner/scan_snmp.c: hush compiler warnings about unused DL vars when we build WITH_SNMP_STATIC
  • tools/nut-scanner/scan_snmp.c: hush compiler warnings about function pointer vs. void* Per https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83584 the standards do not actually forbid this (and dlsym internally relies on it), just this is not a defined behavior and might not work on all platforms.
  • tools/nut-scanner/scan_snmp.c: avoid unused label for WITH_SNMP_STATIC builds
  • drivers/serial.c: mark NUT_UNUSED_VARIABLE(port) when "no locking method is available"
  • tools/nut-scanner/nutscan-init.c: fix WIN32 stub of do_upsconf_args()
  • tools/nut-scanner/scan_nut.c: fix WIN32 builds (unused variable in its scope)
  • drivers/upsdrvctl.c: fix handling of signals vs commands to stop a driver
  • include/common.h, drivers/serial.c: drop PRINT_FD() as invalid
  • common/strptime.c: comment away fallback strncasecmp()
  • common/Makefile.am, common/strptime.c, configure.ac, include/timehead.h: configure.ac: detect if we HAVE_STRPTIME and optionally fall back to NetBSD implementation (from MSYS2)
  • configure.ac, drivers/serial.h: consider if we HAVE_SYS_SELECT_H at all
  • clients/message.c: avoid NPE, make use of argc
  • tools/nut-scanner/nutscan-ip.c: revise includes etc.
  • m4/nut_func_getnameinfo_argtypes.m4: adapt to WIN32 (mingw) arg4\+6
  • drivers/dstate.c, drivers/dstate.h, drivers/main.c, drivers/main.h: drivers/dstate.c, main.{c,h}: make set_exit_flag() reusable
  • clients/upssched.c: fix non-WIN32 (only) use of some variables in sendcmd()
  • clients/upssched.c: fix WIN32 "fd" reporting and use (int vs HANDLE)
  • clients/upssched.c: fix use of close() for WIN32 builds

2.777. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • clients/upssched.c: reconcile size_t buflen/ssize_t ret in WIN32 build

2.778. 2022-06-14 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/dstate.h: include "wincompat.h" in WIN32 builds to have HANDLE defined
  • drivers/dstate.c: mark NUT_UNUSED_VARIABLE(extrafd) in WIN32 variant of dstate_poll_fds()
  • drivers/dstate.c: fix WIN32 reporting of pipename vs sockfn
  • drivers/dstate.c: fix WIN32 "fd" reporting and use (int vs HANDLE)
  • drivers/dstate.c: whitespace fix
  • drivers/dstate.c: avoid duplicate import with WIN32 builds
  • scripts/Windows/wininit.c: SvcMain(): mark NUT_UNUSED_VARIABLE argc/argv
  • configure.ac, drivers/libusb0.c, include/str.h: configure.ac, drivers/libusb0.c: implement a fallback strcasestr() if needed and possible
  • m4/ax_c_pragmas.m4: avoid strcasestr() which is not ubiquitous
  • drivers/libusb0.c: avoid unused "busses" variable
  • server/upsd.c: ups_available(): call VALID_FD() for portability

2.779. 2022-06-13 Jim Klimov <jimklimov+nut@gmail.com>

  • server/upsd.c: main(): no oldpid in WIN32 builds
  • server/upsd.c: check_perms(): NUT_UNUSED_VARIABLE(fn) on WIN32
  • server/upsd.c: mainloop(): fix visibility of nfds for all platforms
  • server/netssl.c: fix includes for WIN32 builds
  • common/common.c: optimize check_unix_socket_filename() and make it more portable
  • clients/upsmon.c: oldpid is not used in WIN32 builds
  • clients/upslog.c: set_print_now_flag() is not used in WIN32 builds
  • drivers/nutdrv_atcl_usb.c: do not check return value of sleep() on WIN32 (is void)
  • common/wincompat.c, configure.ac, scripts/Windows/build-mingw-nut.sh: configure.ac, build-mingw-nut.sh: fix inet_ntop() detection for WIN32 builds
  • drivers/main.c: fix WIN32 builds regarding user/group tweaks and signal handling
  • tools/nut-scanner/nutscan-ip.c: be sure to include "nut_stdint.h"
  • drivers/snmp-ups.h: be sure to include "nut_stdint.h"
  • drivers/blazer_usb.c, drivers/libshut.h, drivers/nutdrv_qx.c, drivers/riello_usb.c, drivers/tripplite_usb.c, drivers/usb-common.h, drivers/usbhid-ups.c: usb, shut headers and drivers: update from ERROR_* macros to LIBUSB_ERROR_* macros (avoid conflict on WIN32) Also define LIBUSB_ERROR_INTERRUPTED, LIBUSB_ERROR_NOT_SUPPORTED and LIBUSB_ERROR_OTHER tokens for libusb-0.1 and SHUT builds for completeness
  • common/common.c: avoid realpath() on platforms that lack it
  • configure.ac: check for existence of realpath()
  • common/common.c: fix up some NUT_UNUSED_VARIABLE()s
  • common/common.c, include/common.h: common/common.{c,h}: fix up select_read()/select_write() with WIN32 builds
  • common/common.c: include dirent.h in WIN32 builds also
  • drivers/mge-xml.c, drivers/netxml-ups.c, drivers/netxml-ups.h, drivers/nutdrv_qx.c, drivers/nutdrv_qx.h, drivers/nutdrv_qx_bestups.c, drivers/usbhid-ups.c, drivers/usbhid-ups.h: drivers/*.{h,c}: rename "CAL" in enums to "CALIB" to avoid name clash in WIN32 builds
  • clients/upsmon.c, clients/upssched.c, common/common.c, common/parseconf.c, include/common.h: Refactor fcntl(…, FD_CLOEXEC) as set_close_on_exec() where possible
  • configure.ac: disable format warnings for mingw builds

2.780. 2022-06-14 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/.gitignore: GitIgnore Windows build area (per script for mingw)

2.781. 2022-06-09 Jim Klimov <jimklimov+nut@gmail.com>

  • scripts/Windows/README, scripts/Windows/build-mingw-nut.sh: scripts/Windows/README: document use of a SOURCEMODE and some other settings

2.782. 2022-06-09 Jim Klimov <jimklimov@gmail.com>

  • tools/nut-scanner/Makefile.am, tools/nut-scanner/nutscan-init.c, tools/nut-scanner/scan_snmp.c: tools/nut-scanner: adjust ltdl names or contents to WIN32 builds
  • tools/nut-scanner/Makefile.am: link net-snmp statically on (MinGW) WIN32 builds
  • scripts/Windows/README, scripts/Windows/build-mingw-nut.sh: scripts/Windows/build-mingw-nut.sh \+ README: add libtool (libltdl) for nut-scanner
  • scripts/Windows/build-mingw-nut.sh: install client dlls in sbin (for upsmon)
  • scripts/Windows/README, scripts/Windows/build-mingw-nut.sh: scripts/Windows/build-mingw-nut.sh: install dependency DLLs near drivers
  • scripts/Windows/build-mingw-nut.sh: avoid installing systemd files in Windows :)
  • scripts/Windows/README: note the verified build environment
  • scripts/Windows/README: suggest a build command from scratch
  • scripts/Windows/README: flesh out dependency installation for libusb(-compat-0.1) and libsnmp
  • scripts/Windows/README: suggest to "sudo" make install the dependencies built as mere user
  • scripts/Windows/README: fix example build commands considering $ARCH etc defined above
  • scripts/Windows/README: suggest to "export" HOST_FLAG and beyond, to define ARCH once and inherit from it in another single copy-pasted command

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

  • scripts/Windows/build-mingw-nut.sh: show all build errors, and do not require any features (do best-effort)
  • scripts/Windows/README: note that ./build-mingw-nut.sh takes care of envvars
  • configure.ac, drivers/apcupsd-ups.c, server/upsd.h: server/upsd.h: fix absent poll.h
  • common/common.c: fix undefined LOG_ERROR
  • scripts/Windows/build-mingw-nut.sh: adapt to NUT v2.8.0(.1) dist tarballs, etc.

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

  • drivers/genericups.c: include "wincompat.h" where needed, to have respective macros defined
  • include/proto.h, common/setenv.c: be sure to include "config.h"
  • drivers/belkin.c, drivers/bestups.c, drivers/ivtscd.c, drivers/libshut.h, drivers/masterguard.c, drivers/nutdrv_qx_masterguard.c, drivers/oneac.c, drivers/optiups.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/tripplitesu.c, drivers/usbhid-ups.c: drivers: fix headers to printf with PRIuSIZE formatting token
  • include/common.h: be sure to see fcntl() definitions on WIN32 MSYS2

2.785. 2022-05-24 Jim Klimov <jimklimov+nut@gmail.com>

  • common/parseconf.c: include "config.h" first
  • common/wincompat.c, configure.ac, include/wincompat.h: wincompat.{c,h}, configure.ac: introduce HAVE_INET_NTOP
  • common/wincompat.c, scripts/Windows/wininit.c: common/wincompat.c, wininit.c: avoid defining errno as "extern int" for little reason
  • common/wincompat.c: mark with NUT_UNUSED_VARIABLE()
  • clients/upsc.c, clients/upsclient.c, clients/upscmd.c, clients/upsmon.c, clients/upsrw.c, clients/upssched.c, clients/upsset.c, common/common.c, common/wincompat.c, drivers/al175.c, drivers/apcsmart.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/belkin.c, drivers/bestfortress.c, drivers/bestups.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dstate.c, drivers/dummy-ups.c, drivers/gamatronic.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/libhid.c, drivers/libshut.c, drivers/libusb0.c, drivers/libusb1.c, drivers/liebert-esp2.c, drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c, drivers/microsol-common.c, drivers/netxml-ups.c, drivers/nutdrv_qx.c, drivers/nutdrv_qx_masterguard.c, drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c, drivers/powercom.c, drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/snmp-ups.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c, drivers/upsdrvctl.c, include/nut_stdint.h, server/netssl.c, server/sockdebug.c, server/upsd.c, tests/getvaluetest.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Fix "%zx", "%zd", "%zi" and "%zu" printing to PRI[xiu]SIZE that is named more standards-like
  • clients/upsc.c, clients/upsclient.c, clients/upscmd.c, clients/upsmon.c, clients/upsrw.c, clients/upssched.c, clients/upsset.c, common/common.c, drivers/al175.c, drivers/apcsmart.c, drivers/bcmxcp.c, drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/belkin.c, drivers/bestfortress.c, drivers/bestups.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dstate.c, drivers/dummy-ups.c, drivers/gamatronic.c, drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c, drivers/libhid.c, drivers/libshut.c, drivers/libusb0.c, drivers/libusb1.c, drivers/liebert-esp2.c, drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c, drivers/microsol-common.c, drivers/netxml-ups.c, drivers/nutdrv_qx.c, drivers/nutdrv_qx_masterguard.c, drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c, drivers/powercom.c, drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/rhino.c, drivers/snmp-ups.c, drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c, drivers/upsdrvctl.c, server/netssl.c, server/sockdebug.c, server/upsd.c, tests/getvaluetest.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_eaton_serial.c, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Fix "%zd", "%zi" and "%zu" printing to PRI(s)size
  • include/wincompat.h: only define EAFNOSUPPORT if absent
  • include/wincompat.h: only define ETIMEDOUT if absent
  • include/wincompat.h: use value for include-guard as elsewhere
  • common/wincompat.c: include "config.h" first
  • common/wincompat.c, include/nut_stdint.h: common/wincompat.ci, nut_stdint.h: wrap some long lines, fix formatting chars Fix PRI(s)size for WIN32 builds
  • common/wincompat.c: avoid GNU extension syntax
  • configure.ac, include/common.h: ensure we have a "suseconds_t" always

2.786. 2022-05-24 Jim Klimov <jim@jimklimov.com>

  • drivers/cyberpower-mib.c: Update cyberpower-mib.c Closes: #1427

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

  • ci_build.sh: allow to pass CI_CCACHE_SYMLINKDIR="-" to avoid guessing one
  • ci_build.sh: --disable-force-nut-version-header for builds without a BUILD_TYPE, to help iterate faster
  • configure.ac, include/Makefile.am: introduce @FORCE_NUT_VERSION@
  • m4/nut_check_headers_windows.m4: Revert "m4/nut_check_headers_windows.m4: try to allow builds with MINGW32 (despite CYGWIN or CEGCC) as native-Windows" This reverts commit 76bf1ee94f39b619d1c7325b16d36072c427390e.
  • ci_build.sh: better detect ccache symlink directory
  • docs/config-prereqs.txt: update Windows MSYS2 with notes on ccache
  • docs/config-prereqs.txt: update Windows MSYS2 with more libneon packaging
  • docs/config-prereqs.txt: update Windows MSYS2 with recommended PATH settings

2.788. 2022-05-20 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: allow use of ccache in default builds without BUILD_TYPE
  • m4/nut_check_headers_windows.m4: NUT_CHECK_HEADER_WINDOWS(): try CFLAGS="-I/usr/include/w32api …"
  • m4/nut_check_headers_windows.m4: try to allow builds with MINGW32 (despite CYGWIN or CEGCC) as native-Windows
  • drivers/upsdrvctl.c: avoid duplicate variable declaration
  • scripts/Windows/halt.c: mark some NUT_UNUSED_VARIABLEs
  • scripts/Windows/wininit.c: include config.h first and avoid "empty translation unit" on non-WIN32 builds
  • drivers/serial.h: include config.h first
  • drivers/serial.h: hack TIOCM_ST value that may be missing from termios.h on Windows MSYS2
  • docs/config-prereqs.txt: add more suggested Windows MSYS2 dependencies
  • docs/config-prereqs.txt: add a NOTE about suggested pick of Windows MSYS2 dependencies
  • docs/config-prereqs.txt: update links in Windows chapter
  • ci_build.sh: detect relevant CI_CCACHE_SYMLINKDIR variants
  • INSTALL.nut: add a chapter on Windows build enviromnent variants, and separate further config notes with a heading
  • docs/config-prereqs.txt: add a chapter on Windows build enviromnent variants (MSYS2 etc)

2.789. 2022-05-19 Federico Mena Quintero <federico@gnome.org>

  • docs/config-notes.txt: Fix link to the blazer_usb manual page There’s no man page for blazer[8]; I think blazer_usb is the intended one, since all the links in that set are to the USB drivers.

2.790. 2022-05-19 Thierry Duvernoy <tduvernoy@free.fr>

  • drivers/usbhid-ups.c: Indentation correction and improvement of reconnection debug messages

2.791. 2022-05-19 Jim Klimov <jimklimov+nut@gmail.com>

  • ci_build.sh: recognize CI_OS_NAMEs for Windows MSYS2 and mingw variants

2.792. 2022-05-19 Jim Klimov <jimklimov@gmail.com>

  • docs/man/usbhid-ups.txt: Update usbhid-ups.txt Rephrase English wording for waitbeforereconnect keyword

2.793. 2022-05-18 Thierry Duvernoy <tduvernoy@free.fr>

  • docs/man/usbhid-ups.txt: usbhid-ups documentation correction
  • docs/man/usbhid-ups.txt: Documentation spell checking correction
  • docs/nut.dict: Adding waitbeforereconnect to nut.dict for spell check
  • docs/man/usbhid-ups.txt, drivers/usbhid-ups.c: Adding waitbeforereconnect parameter to usbhid-ups (default 0 second)

2.794. 2022-05-17 Jim Klimov <jimklimov+nut@gmail.com>

  • drivers/libshut.h, drivers/usb-common.h: drivers/libshut.h \+ usb-common.h: fix "alll" typos
  • server/upsd.c: set_exit_flag(): sig is not UNUSED
  • server/pipedebug.c: fix CRLF after merge
  • include/Makefile.am: fix whitespace after merge
  • drivers/clone.c: fix whitespace and comments after merge
  • drivers/clone-outlet.c: fix whitespace and comments after merge
  • drivers/apcsmart.c: refactor TYPE_FD use
  • docs/man/upsmon.conf.txt: fix whitespace
  • common/common.c: merge mess fix (report startup success on all platforms)
  • drivers/main.c: set_exit_flag() should be static
  • clients/upsmon.c: merge mess fix (lost in translation)
  • common/wincompat.c: try to avoid empty translation unit
  • scripts/Windows/Makefile.am: add MAINTAINERCLEANFILES
  • server/netssl.c: merge mess fix
  • server/upsd.c: merge mess fix
  • tools/nut-scanner/scan_nut.c: merge mess fix
  • drivers/richcomm_usb.c: merge mess fix
  • drivers/usbhid-ups.h: must not include libshut.h directly
  • drivers/libusb1.c: merge mess fix
  • drivers/libshut.h: drivers/libshut.h \+ usb-common.h: fix "alll" typos
  • drivers/main.c: merge mess fix
  • drivers/serial.c: merge fix for "First implementation of termios functions"
  • clients/upssched.c: fix merge inversion
  • drivers/libshut.h, include/nut_stdint.h: include/nut_stdint.h: fix merge markers
  • configure.ac: typo fix
  • clients/Makefile.am: avoid endif reminder-comments
  • drivers/libshut.h, drivers/usb-common.h: drivers/libshut.h \+ usb-common.h: fix "alll" typos

2.795. 2015-12-29 Arnaud Quette <arnaud.quette@free.fr>

  • docs/config-notes.txt: Add a complementary note on Windows and serial ports
  • conf/ups.conf.sample, docs/man/ups.conf.txt: Document serial port naming on Windows Addressing serial port on Windows system requires to express the port in ups.conf in a special way Reference: https://github.com/networkupstools/nut/issues/198

2.796. 2014-03-05 Emilien Kia <EmilienKia@Eaton.com>

  • scripts/Windows/Installer/NUT-Installer.xml: Modify version in Windows installer description file.

2.797. 2014-03-04 Emilien Kia <EmilienKia@Eaton.com>

  • scripts/Windows/Installer/NUT-Installer.xml: Add Windows registry entry for NUT installation path.
  • docs/man/upsmon.conf.txt, docs/man/upsmon.txt: Add upsmon default flag for Windows notice in documentation.
  • conf/upsmon.conf.sample.in: Update upsmon config to note that Windows only writes to syslog on Windows by default.
  • clients/upsmon.h: Use only NOTIFY_SYSLOG as default notify flag in upsmon for Windows. Define a NOTIFY_DEFAULT flag. Set it accordingly to platform. Use it to initialize upsmon.

2.798. 2014-02-28 Emilien Kia <EmilienKia@Eaton.com>

  • scripts/Windows/Installer/NUT-Installer.xml: Fix Windows Installer file list. Use splitted Blazer driver html man pages (ser & usb).

2.799. 2014-02-20 Arnaud Quette <ArnaudQuette@Eaton.com>

  • drivers/mge-hid.c: Fix "no OFF status in "ups.status" although UPS is switched off" and "OB status in "ups.status" although power supply is present" in mge-hid driver. Fix problem up from Schleicher.

2.800. 2014-01-13 Emilien Kia <EmilienKia@Eaton.com>

  • drivers/upsdrvctl.c: Fix Windows driver starting model and add comments.
  • drivers/upsdrvctl.c: Add basic Windows wait for launch process. Wait for process return or timeout Look at returned code.

2.801. 2013-11-13 Charles Lepple <clepple+nut@gmail.com>

  • drivers/blazer_ser.c: windows_port: remove conflict markers from blazer_ser.c

2.802. 2013-10-04 Frédéric BOHE <fredericbohe@eaton.com>

  • clients/upssched.c: Fix Linux compilation

2.803. 2013-10-04 Frederic BOHE <fredericbohe@eaton.com>

  • include/common.h, server/sstate.c, server/upsd.c: Fix weird difftime behavior

2.804. 2013-10-03 Frederic BOHE <fredericbohe@eaton.com>

  • INSTALL.nut, clients/Makefile.am, clients/message.c, clients/nutclient.cpp, clients/upsclient.c, clients/upslog.c, clients/upsmon.c, clients/upssched.c, common/snprintf.c, drivers/clone.c, drivers/libhid.h, drivers/libshut.h, drivers/serial.c, drivers/serial.h, drivers/snmp-ups.h, drivers/usbhid-ups.c, drivers/usbhid-ups.h, include/common.h, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Try to get rid of warnings
  • .gitignore, scripts/Windows/.gitignore, scripts/Windows/Installer/.gitignore, scripts/Windows/Installer/ImageFiles/Others/.gitignore: Update gitignore for Windows
  • drivers/Makefile.am: Remove useless link to intl which break compilation on Linux
  • clients/Makefile.am, common/Makefile.am, common/wincompat.c, drivers/Makefile.am, drivers/apcsmart.c, drivers/dstate.c, drivers/netxml-ups.c, drivers/riello_usb.c, drivers/serial.c, drivers/serial.h, drivers/upsdrvctl.c, scripts/Windows/Installer/NUT-Installer.xml, scripts/Windows/wininit.c, server/sstate.c, server/upsd.c, tools/nut-scanner/Makefile.am, tools/nut-scanner/nutscan-serial.c, tools/nut-scanner/scan_eaton_serial.c: Fix compilation on Windows

2.805. 2013-09-27 unknown <C9983617@GREFRWHP6009826.euro.ad.etn.com>

  • clients/Makefile.am: Fix upsclient link after rebase

2.806. 2013-09-26 Frédéric BOHE <fredericbohe@eaton.com>

  • Makefile.am, clients/upsclient.c, clients/upsmon.c, clients/upsmon.h, clients/upssched.c, common/Makefile.am, common/common.c, common/wincompat.c, docs/Makefile.am, docs/configure.txt, drivers/apc-mib.c, drivers/apcsmart.c, drivers/bcmxcp_usb.c, drivers/belkinunv.c, drivers/bestuferrups.c, drivers/clone-outlet.c, drivers/clone.c, drivers/dstate.c, drivers/genericups.c, drivers/isbmex.c, drivers/main.c, drivers/nut-libfreeipmi.c, drivers/serial.c, drivers/serial.h, drivers/upsdrvctl.c, include/common.h, include/wincompat.h, scripts/Windows/README, scripts/Windows/wininit.c, server/conf.c, server/netssl.c, server/sstate.c, server/upsd.c, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-init.c, tools/nut-scanner/scan_avahi.c, tools/nut-scanner/scan_ipmi.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: More changes after rebase
  • scripts/Windows/DriverInstaller/nutscan-usb.h: Some fixes after rebase

2.807. 2012-12-09 Arnaud Quette <arnaud.quette@free.fr>

  • scripts/Windows/Makefile.am: Forgotten build and distribution rules
  • include/common.h, include/wincompat.h: Fix MingGW-w64 compilation
  • scripts/Windows/README, scripts/Windows/build-mingw-nut.sh: Automated Windows cross compilation Preliminary support for automated Windows cross compilation, using MingGW-w64. A script is provided, with 32 and 64 bits compilation options, along with a documentation file

2.808. 2012-10-15 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c: Fix invalid memory allocation (fix a crash at exit time in upsmon)

2.809. 2012-09-18 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/wininit.c: update error logs
  • scripts/Windows/Installer/NUT-Installer.xml: Typo in installer dialog box
  • common/wincompat.c: Fix communication with named pipe

2.810. 2012-09-17 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upssched.c: Fix upssched regression due to CVE-2012-2944
  • common/common.c, common/wincompat.c: Fix Event Viewer regression Also, more consistent named pipe management

2.811. 2012-08-09 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • INSTALL.nut, docs/images/eaton-logo.png, scripts/Windows/Installer/NUT-Installer.xml: Merge from trunk [SVN:3692] to [SVN:3713] (upgrade to 2.6.5)

2.812. 2012-08-08 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsmon.c, common/common.c, common/wincompat.c, drivers/dstate.c, drivers/main.c, drivers/upsdrvctl.c, include/common.h, scripts/Windows/Installer/NUT-Installer.xml, scripts/Windows/wininit.c, server/upsd.c: Get rid of console event and PID management Processes can now be stopped via named pipe. Processes can now check previous instances via named mutex.

2.813. 2012-08-06 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/wininit.c: typo in comments
  • clients/upsmon.c, common/common.c, scripts/Windows/wininit.c: Fix UPS shutdown Now upsmon stop NUT service before shuting down the OS. When the service stops (with PD flag), it calls "upsdrvctl shutdown".

2.814. 2012-08-02 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c: Disconnect named pipe correctly

2.815. 2012-07-27 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c, drivers/genericups.c, include/wincompat.h: Fix w32_setcomm and w32_getcomm for genericups
  • clients/upsclient.c, include/common.h, server/upsd.c, tools/nut-scanner/nutscan-ip.c: Adding Windows 2000 and older support

2.816. 2012-07-25 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: Update installer script with oldmge-shut instead of newmge-shut

2.817. 2012-07-23 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/apc-mib.c, drivers/apcsmart.c, drivers/netxml-ups.c, drivers/nut-ipmipsu.c, drivers/nut-libfreeipmi.c, server/Makefile.am, server/ssl.c: Merge from trunk [SVN:3645] to [SVN:3690]
  • common/wincompat.c, drivers/genericups.c, drivers/genericups.h, drivers/serial.c, include/wincompat.h: Porting genericups driver Not tested on real hardware

2.818. 2012-06-04 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c, docs/man/upsd.users.txt, drivers/apc-mib.c, drivers/apcsmart.c, drivers/dummy-ups.h, drivers/netvision-mib.c, include/wincompat.h: Merge from trunk [SVN:3541] to [SVN:3644] (upgrade to 2.6.4)

2.819. 2012-05-14 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • server/Makefile.am: Keep same sockdebug’s binary name for all OS.
  • configure.ac: Add general Windows conditional (by Arnaud Quette)

2.820. 2012-05-11 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • server/Makefile.am, server/pipedebug.c: Add pipedebug program pipedebug has the same goal as socketdebug for the WIN32 side.

2.821. 2012-05-09 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/Makefile.am, clients/message.c, clients/upsmon.c, scripts/Windows/Installer/NUT-Installer.xml: Add an external wall-like application. In order to avoid weird behavior of MessageBox with MB_SERVICE_NOTIFICATION flag at exit time; I added an external application in charge of displaying the message boxes (much like the wall command).

2.822. 2012-05-03 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c: Fix journal event truncation.

2.823. 2012-05-02 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: Add more DLLs in bin directory These are used by netxml-ups driver and nut-scanner tool.
  • scripts/Windows/Installer/BuildInstaller.bat: Make sure upssched.conf is DOS compatible
  • conf/upsd.conf.sample: Update comments for IPv6 on Windows platforms
  • scripts/Windows/Installer/NUT-Installer.xml: Add libneon-27.dll and libnetsnmp-30.dll in bin directory These are used respectively by netxml and snmp-ups drivers.

2.824. 2012-04-26 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: libupsclient-1.dll is needed in "bin" too
  • scripts/Windows/Installer/NUT-Installer.xml: Add nut-scanner files and libupsclient-1.dll to the MSI installer
  • scripts/Windows/Installer/BuildInstaller.bat: echo a comment

2.825. 2012-04-24 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • tools/nut-scanner/scan_nut.c: Merge from trunk [SVN:3511] to [SVN:3539]

2.826. 2012-04-23 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/serial.h: Completely skip termios.h with WIN32 The latest MinGW raise errors on termios.h, so we skip it for now.

2.827. 2012-04-17 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsmon.c: Make the message box of notify non-blocking

2.828. 2012-04-06 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/Makefile.am, m4/nut_check_socketlib.m4: Fix conditional Makefile for WIN32
  • clients/Makefile.am: Conditional Makefile for WIN32

2.829. 2012-04-03 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • configure.ac: This doesn’t make it through past merges.

2.830. 2012-03-30 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • tools/nut-scanner/nutscan-init.c: This is needed for non WIN32 too.
  • common/common.c: Special case when sending signal 0

2.831. 2012-03-26 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c: Small correction to error messages.

2.832. 2012-03-16 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • tools/nut-scanner/scan_nut.c: Fix indentation
  • tools/nut-scanner/nutscan-init.c: Add #ifdef WIN32 for do_upsconf_args definition

2.833. 2012-03-08 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsclient.c, common/common.c, drivers/safenet.c, include/wincompat.h, server/conf.c: Clean up
  • drivers/blazer_usb.c, drivers/libusb0.c, drivers/usbhid-ups.c: Add comments about EPROTO and EOVERFLOW
  • server/upsd.c: typo in comments
  • drivers/blazer_usb.c, drivers/libusb0.c, drivers/usbhid-ups.c, include/wincompat.h: Better handling of ETIMEDOUT

2.834. 2012-02-16 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • configure.ac: Cleaner regex addtion por apcsmart driver (by Arnaud Quette)

2.835. 2012-02-09 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/blazer_usb.c, drivers/mge-mib.c, drivers/richcomm_usb.c, drivers/usb-common.h, tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_avahi.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: Merge from trunk: [SVN:3320] to [SVN:3435]

2.836. 2012-01-20 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upscmd.c, clients/upsrw.c, common/wincompat.c, drivers/dstate.c, include/wincompat.h: Add getpwuid and getpass functions.

2.837. 2012-01-19 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upslog.c, clients/upsmon.c, clients/upssched.c, common/wincompat.c, include/wincompat.h: Add filter_path function This allows blank characters both in data files name and command path
  • scripts/Windows/wininit.c: Cleaner initialization of variables

2.838. 2012-01-16 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c, include/wincompat.h: Fix commands with blank in their path
  • clients/upssched.c, clients/upssched.h: Fix porting of upssched
  • drivers/dstate.c: Remove useless code

2.839. 2012-01-05 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • include/Makefile.am: Fix "make distcheck-light" (by Arnaud Quette)

2.840. 2011-11-29 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/wincompat.c: Fix blazer_ser driver (from Paul Fertser)
  • common/wincompat.c: Don’t leave one liner alone after if.

2.841. 2011-11-15 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/Makefile.am, clients/upsclient.c, common/Makefile.am, common/wincompat.c, conf/upsmon.conf.sample.in, docs/Makefile.am, drivers/apc-mib.c, drivers/apcsmart-old.h, drivers/apcsmart.c, drivers/mge-mib.c, drivers/netvision-mib.c, drivers/nut-ipmipsu.c, drivers/snmp-ups.c, server/Makefile.am, server/ssl.c, server/upsd.c, tools/nut-scanner/nutscan-ip.c, tools/nut-scanner/nutscan-ip.h, tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c: Merge from trunk [SVN:3060] to [SVN:3318]

2.842. 2011-08-11 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsmon.c: Correct handling of timeout

2.843. 2011-08-08 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/DriverInstaller/wdi-simple.c: Print an error message when driver’s installation has failed.
  • scripts/Windows/DriverInstaller/README.txt: Add some more hints on how to compile wdi-simple.exe
  • drivers/serial.c: This seems to be the correct way to set and reset DTR and RTS with Win32 API
  • scripts/Windows/Installer/NUT-Installer.xml: The stock msys-regex-1.dll is crashing. So now we bundle libregex-1.dll which is a binary compiled from sources

2.844. 2011-07-04 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/BuildInstaller.bat, scripts/Windows/Installer/NUT-Installer.xml: Change from libgnurx-0.dll to msys-regex-1.dll for the sake of coherency (use only msys DLLs)
  • scripts/Windows/DriverInstaller/wdi-simple.c: Add a notification to unplug and re-plug the device… …so that Windows uses the newly installed driver.

2.845. 2011-06-30 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • common/common.c: Add the error message associated with GetLastError to the error string. This may be helpful for support.
  • common/wincompat.c: Make sure serial functions set errno to an actual error code (which might not be the most relevant one, but it’s better than nothing)
  • drivers/libusb0.c: Make sure errno is set to an actual error code (thanks to David Bolen)
  • drivers/usbhid-ups.c: Revert [SVN:3108]. Correct errno management should be enough
  • clients/upsmon.c: Change timeout from seconds to milliseconds (from David Bolen)

2.846. 2011-06-29 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/usb-common.h, drivers/usbhid-ups.c: Add WIN32 specific error case for detecting disconnection
  • drivers/dstate.c: Fix timeout being in seconds instead of milliseconds

2.847. 2011-06-24 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/main.c: Merge from trunk [SVN:3002] to [SVN:3057]
  • drivers/bcmxcp_usb.c: Correct configuration value for usb_set_configuration

2.848. 2011-05-25 Arnaud Quette <arnaud.quette@free.fr>

  • m4/nut_type_socklen_t.m4: Fix Winsock2 testing and result publication

2.849. 2011-05-25 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/DriverInstaller/README.txt, scripts/Windows/DriverInstaller/nutscan-usb.h, scripts/Windows/DriverInstaller/wdi-simple.c, scripts/Windows/Installer/BuildInstaller.bat, scripts/Windows/Installer/NUT-Installer.xml, scripts/Windows/Makefile.am, scripts/Windows/wininit.c: Converting some files to Unix-style line endings
  • drivers/blazer_usb.c, drivers/usb-common.h: merge from trunk [SVN:2990] to [SVN:2997]

2.850. 2011-05-24 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • m4/nut_check_socketlib.m4: convert end of line to unix style
  • scripts/Windows/Installer/NUT-Installer.xml: Add files in the project’s root (README, INSTALL…)
  • m4/nut_check_socketlib.m4: nut_check_socketlib.m4 has been removed from trunk, …but Win32 still needs it for winsock

2.851. 2011-05-23 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: Remove useless empty directories

2.852. 2011-05-20 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/Makefile.am, m4/nut_check_libusb.m4: This doesn’t make it through the previous merge from trunk

2.853. 2011-05-17 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/DriverInstaller/README.txt, scripts/Windows/DriverInstaller/nutscan-usb.h, scripts/Windows/DriverInstaller/wdi-simple.c: Add source files and a note on how to compile the automatic driver installer.
  • scripts/Windows/Installer/NUT-Installer.xml: Add a check box for launching the automatic libUSB drivers installation
  • conf/upsmon.conf.sample.in: Add hints to configure SHUTDOWNCMD and POWERDOWNFLAG

2.854. 2011-05-16 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: [Installer] Include documentation in HTML format

2.855. 2011-05-11 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsmon.c: forgot to change wait duration.
  • clients/upsmon.c, clients/upsmon.h, common/wincompat.c, include/common.h, include/wincompat.h, scripts/Windows/wininit.c, server/upsd.c, server/upsd.h: Using named pipe for a better port of signals.

2.856. 2011-05-03 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/wininit.c: Add a call to "upsdrvctl shutdown" if POWERDOWNFLAG is set when service exits.

2.857. 2011-05-02 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsmon.c: Makes the call to "wall" function non blocking,

    1. …or else the automatic power-fail shutdown is blocked waiting for the MessageBox to be clicked.

2.858. 2011-04-07 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: Update NUT version (by Praveen Kumar)
  • scripts/Windows/wininit.c: More generic wrong MODE handling \+ log same message as Linux version.

2.859. 2011-04-06 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/upsdrvctl.c: fix "upsdrvctl shutdown" command
  • scripts/Windows/wininit.c: NUT is automatically started during system startup

2.860. 2011-03-28 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/apcsmart.c, drivers/dstate.c, include/nut_stdint.h: Merge with trunk

2.861. 2011-03-23 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • INSTALL.nut: Add information on installation

2.862. 2011-03-22 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: commit again a small typo
  • …/ImageFiles/Images/NUT_wix_horizontal.bmp, …/ImageFiles/Images/NUT_wix_vertical.bmp: Correctly sized banner for Windows installer

2.863. 2011-03-22 Praveen Kumar <praveenkumar-guest@alioth.debian.org>

  • …/Installer/ImageFiles/Binary/bannrbmp.ibd, …/Windows/Installer/ImageFiles/Binary/dlgbmp.ibd, …/ImageFiles/Images/NUT_wix_horizontal.bmp, …/ImageFiles/Images/NUT_wix_vertical.bmp, …/Installer/ImageFiles/Others/DeRegister.bat, …/ImageFiles/{Binary/New.ibd ⇒ icons/New.ico}, …/ImageFiles/{Binary/Up.ibd ⇒ icons/Up.ico}, …/{Binary/completi.ibd ⇒ icons/completi.ico}, …/{Binary/custicon.ibd ⇒ icons/custicon.ico}, …/{Binary/exclamic.ibd ⇒ icons/exclamic.ico}, …/ImageFiles/{Binary/info.ibd ⇒ icons/info.ico}, …/{Binary/insticon.ibd ⇒ icons/insticon.ico}, …/{Binary/removico.ibd ⇒ icons/removico.ico}, …/{Binary/repairic.ibd ⇒ icons/repairic.ico}, …/Installer/ImageFiles/libusb/libusb_win32.exe, scripts/Windows/Installer/NUT-Installer.xml: Removed binary files (DLL & ibd) and Updated with icons and .bmp images… …for NUT windows Installer.

2.864. 2011-03-18 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/NUT-Installer.xml: Remove regex2.dll dependency.
  • scripts/Windows/Installer/BuildInstaller.bat: MinGW bin directory and MSYS bin directory are now configurable
  • scripts/Windows/Installer/BuildInstaller.bat, …/Installer/ImageFiles/Others/libgnurx-0.dll, …/Windows/Installer/ImageFiles/Others/msys-1.0.dll, …/Installer/ImageFiles/Others/msys-crypto-1.0.0.dll, …/Installer/ImageFiles/Others/msys-ssl-1.0.0.dll, …/Windows/Installer/ImageFiles/Others/regex2.dll: Remove DLL from the SVN repository. They are now gathered from the build system when creating the installer .
  • scripts/Windows/Installer/NUT-Installer.xml: small typo

2.865. 2011-03-16 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/Installer/BuildInstaller.bat, …/Windows/Installer/ImageFiles/Binary/New.ibd, scripts/Windows/Installer/ImageFiles/Binary/Up.ibd, …/Installer/ImageFiles/Binary/bannrbmp.ibd, …/Installer/ImageFiles/Binary/completi.ibd, …/Installer/ImageFiles/Binary/custicon.ibd, …/Windows/Installer/ImageFiles/Binary/dlgbmp.ibd, …/Installer/ImageFiles/Binary/exclamic.ibd, …/Windows/Installer/ImageFiles/Binary/info.ibd, …/Installer/ImageFiles/Binary/insticon.ibd, …/Installer/ImageFiles/Binary/removico.ibd, …/Installer/ImageFiles/Binary/repairic.ibd, …/Installer/ImageFiles/Others/DeRegister.bat, …/Installer/ImageFiles/Others/StartService.bat, …/Installer/ImageFiles/Others/StopService.bat, …/Installer/ImageFiles/Others/libgnurx-0.dll, …/Installer/ImageFiles/Others/msys-1.0.dll, …/ImageFiles/Others/msys-crypto-1.0.0.dll, …/Installer/ImageFiles/Others/msys-ssl-1.0.0.dll, …/Windows/Installer/ImageFiles/Others/regex2.dll, …/Installer/ImageFiles/emptyDir/cgi-bin/temp.txt, …/Installer/ImageFiles/emptyDir/html/temp.txt, …/Installer/ImageFiles/emptyDir/include/temp.txt, …/Installer/ImageFiles/emptyDir/man1/temp.txt, …/Installer/ImageFiles/emptyDir/man3/temp.txt, …/ImageFiles/emptyDir/pkgconfig/temp.txt, …/Installer/ImageFiles/emptyDir/run/temp.txt, …/Installer/ImageFiles/icons/powernut_Stop.ico, …/Installer/ImageFiles/icons/powernut_logo.ico, …/Installer/ImageFiles/libusb/libusb_win32.exe, scripts/Windows/Installer/NUT-Installer.xml: Windows scripts and support files for NUT Windows installer using WIX (from Praveen Kumar)
  • scripts/Windows/wininit.c: Handle properly the "none" MODE in nut.conf
  • scripts/Windows/wininit.c: Fix a crash if configuration files are wrong in non-service mode
  • scripts/Windows/wininit.c: Add some console output when running in non-service mode

2.866. 2011-02-24 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • drivers/libusb0.c, drivers/libusb1.c: Correctly manage time-out in libusb

2.867. 2011-02-22 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/wininit.c: Add a Sleep before running upsmon… …or else we are spamed with communication errors. Try to properly close all handles.

2.868. 2011-02-15 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • include/common.h, scripts/Windows/wininit.c: Let nut.exe calls its children through their relatives paths

2.869. 2011-02-14 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • scripts/Windows/wininit.c: Extent print_event capabilities

2.870. 2011-02-09 Frederic Bohe <fbohe-guest@alioth.debian.org>

  • clients/upsmon.c: Add date to notification