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).
Note
This change log section represents git commits in range v2.8.3..HEAD (commits e578d506e..329927743).
-
common/common.c: minimize_formatting_string(): debug-log about
"cosmetic" chars at level 7 [#2956]
-
drivers/mge-hid.c: input.bypass.switch.on/off set flag quick update
instead semi static
-
drivers/mge-hid.c: eaton_input_bypass_check_range(): fix typo
checking for "value==1" [#2956]
-
drivers/usbhid-ups.c: ups_alarm_set(): ignore ECOMODE, we handle it
in ups_status_set() [#2956] Avoid extra work and occasional log
messages that: str_add_unique_token: skip token
vendor:default:ECO: was already set
-
drivers/mge-hid.c: eaton_input_eco_mode_check_range(): refine log
output if we remain in ECO/non-ECO mode [#2956]
-
drivers/mge-hid.c: eaton_input_eco_mode_check_range(): sanity-check
that value==1 [#2956]
-
drivers/mge-hid.c: make "input.eco.switchable" a HU_FLAG_QUICK_POLL
value [#2956] We want it evaluated on every quick-update loop, so
that the correct buzzwords are always set (if device serves the
feature). Also quick-update the bypass voltage and frequency, so we
know relevant clues (keep semi-static settings as they were
though).
-
NEWS.adoc: NEWS.adoc, docs/nut.dict: summary mention for recent
small PRs [#3019, #3021, #3022, #3023]
-
drivers/mge-hid.c: convert "input.eco.switchable" definition from
HU_FLAG_SEMI_STATIC to regular [#2956]
-
drivers/mge-hid.c: move "input.eco.switchable" definition to end of
mge_hid2nut[] table [#2956]
-
Makefile.am: install-as-root: do not overly trust in systemctl
preset-all It fails on systemd 252 (known issue): Failed to preset
all units: Unit /run/systemd/transient/session-156053.scope is
transient or generated.
-
server/upsd.c: check_command(): try to print all command arguments
(if debugging) [#3023]
-
common/common.c: compareprocname(): Linux /proc/X/exe can end with
" (deleted)" if the program was removed or replaced
-
drivers/snmp-ups.c: su_setOID(): cast returned enum constants to
int [#3017] Avoid error claimed by clang-20 et al: conditional
expression between different enumeration types (enum (unnamed at
./upshandler.h:25:1) and enum (unnamed at ./upshandler.h:34:1))
[-Werror,-Wanon-enum-enum-conversion]
-
docs/Makefile.am: ChangeLog ⇒ ChangeLog.adoc: avoid "$<" as this
is not a suffix rule
-
docs/Makefile.am: ChangeLog ⇒ ChangeLog.adoc: typo fix in fallback
INPUT
-
configure.ac, Makefile.am, docs/configure.txt, NEWS.adoc: introduce
confgure option to customize git log ending point [#3019]
-
tools/gitlog2changelog.py.in: allow specifying end of commit range,
report it in text Technically a step to multi-section changelogs,
covering each release separately as a range between git tags,
regardless of timestamp overlap (with much older prepared commits
going into much newer release later on).
-
tools/gitlog2changelog.py.in: typo in comment
-
docs/Makefile.am: ChangeLog ⇒ ChangeLog.adoc: revise definition of
INPUT Actually saw it with two tokens recently, for the text and
.prep-src-docs touch-file
-
docs/Makefile.am: when writing temporary outputs, make sure they
are not empty before moving to final name (else delete and bail
out)
-
docs/Makefile.am: .adoc ⇒ .adoc-parsed: double-check that input
file exists If a recipe iteration is written incorrectly, make can
skip work on some rules (evaluating them as true without writing
outputs we need)
-
configure.ac, docs/.gitignore, docs/Makefile.am,
docs/configure.txt, docs/{docinfo.xml.sh ⇒ docinfo.xml.sh.in}:
docs/docinfo.xml.sh.in: make it a template for configure script to
generate and embed a @GITLOG_START_POINT@ value to consider
-
configure.ac, Makefile.am, docs/configure.txt, NEWS.adoc: introduce
confgure option to customize git log starting point
-
ci_build.sh: configure --disable-docs-changelog in developer
iterations
-
configure.ac, docs/Makefile.am, docs/configure.txt, NEWS.adoc,
docs/nut.dict: introduce option to "configure
--enable-docs-changelog" (or not)
-
docs/ci-farm-lxc-setup.txt: update link to
conflict-aware-ondemand-strategy-plugin
-
drivers/mge-hid.c: fix back eaton_input_bypass_mode_on_info[];
update comments; make use of errno=0/EINVAL
-
docs/nut.dict: add "nuf" to dict [#3017, #2956]
-
drivers/usbhid-ups.c, NEWS.adoc: hid_ups_walk(HU_WALKMODE_INIT):
report if exactly one of fun/nuf is defined in a one-line table,
and it would preclude reads/writes [#2956]
-
docs/nut.dict: add "nuf" to dict [#3017, #2956]
-
drivers/mge-hid.c: introduce eaton_input_buzzwordmode_setvar_nuf()
[#2956]
-
drivers/usbhid-ups.c, NEWS.adoc: add a way for fun/nuf methods to
report EINVAL for unsupported arguments, and bail out [#3017] Made
for progresing on PR #2956
-
drivers/nutdrv_qx.c, NEWS.adoc: add a way for item→preprocess()
and qx_process() methods to report EINVAL for unsupported
arguments, and bail out [#3017]
-
drivers/snmp-ups.c: su_setOID(): refactor many elvises into one
val_practical [#3017]
-
drivers/usbhid-ups.c, NEWS.adoc: add a way for fun/nuf methods to
report EINVAL for unsupported arguments, and bail out [#3017] Made
for progresing on PR #2956
-
drivers/snmp-ups.c, NEWS.adoc: add a way for fun/nuf methods to
report EINVAL for unsupported arguments, and bail out [#3017]
-
drivers/snmp-ups.c: su_setOID(): return *CONVERSION_FAILED where
applicable; use upslog*_RESULT() in callers
su_setvar()/su_instcmd() for maintainability
-
drivers/snmp-ups.c: su_setOID(): rectify returns of STAT_SET_* vs.
STAT_INSTCMD_* Be pedantically correct about these, even if they
map to same numbers for logical names at the moment.
-
drivers/upshandler.h: define loggers for CONVERSION_FAILED, and
generally for common RESULT [#2957]
-
drivers/mge-hid.c: fix indentations (TAB vs space) to be consistent
[#2956]
-
NEWS.adoc, common/common.c: common/common.c:
minimize_formatting_string(): do not loudly log complaints about
known cosmetic formatting chars [#2450]
-
common/common.c: minimize_formatting_string(): update comments
[#2450]
-
docs/man/apc_modbus.txt: apc_modbus: Add another tested device
model to the man page
-
NEWS.adoc, drivers/apc_modbus.c: apc_modbus: Fix missing variables
due to mismatching format string Calls to
dstate_setinfo_dynamic
were using a different format string in fmt_dynamic
than spcified
in fmt_reference
. This causes the following variables to be
missing: ``` battery.runtime experimental.output.energy
ups.timer.shutdown ups.timer.start ups.timer.reboot
input.transfer.high input.transfer.low ups.delay.shutdown
ups.delay.start ups.delay.reboot outlet.group.0.delay.shutdown
outlet.group.0.delay.start outlet.group.0.delay.reboot
outlet.group.1.delay.shutdown outlet.group.1.delay.start
outlet.group.1.delay.reboot outlet.group.2.delay.shutdown
outlet.group.2.delay.start outlet.group.2.delay.reboot
outlet.group.3.delay.shutdown outlet.group.3.delay.start
outlet.group.3.delay.reboot ``` Since #2450 this caused this or
similar error messages on our integer values: ``` [D1]
validate_formatting_string: dynamic formatting string %u is not
equivalent to expected %lu ``` This in turn caused the variable
to not exist and later calls to dstate_setflags
to output: ```
apc_modbus: dstate_setflags: base variable (battery.runtime) does
not exist ``` We fix this by using the correct format string.
-
drivers/snmp-ups.c, NEWS.adoc: fix debug-logging of skipping
SU_FLAG_STATIC entries [#3011]
-
drivers/apc-mib.c, NEWS.adoc: fix "ups.test.date" from
SU_FLAG_STATIC to SU_FLAG_SEMI_STATIC [#3011]
-
NEWS.adoc: mention both APC BVKxxxM2 and BKxxxM2-CH in same fix for
usbhid-ups
-
scripts/systemd/nutshutdown.in, NEWS.adoc: bail out if MODE=none
explicitly [#2935]
-
drivers/mge-hid.c: refactor old (pegasus) and new (ECO/ESS) mapping
tables with fun/nuf methods [#2956]
-
drivers/mge-hid.c: comment which info_lkp_t[] tables are in fact
wrong examples of mapping function usage [#2956]
-
NEWS.adoc: document recent changes to start-up messages and loop
flushing in upsmon [#3003]
-
clients/upsmon.c: report in debug-log which SHUTDOWNCMD/NOTIFYCMD
would be used (and if no NOTIFYCMD was set) [#3003]
-
clients/upsmon.c: fflush() at end of each main loop cycle, just in
case
-
clients/upsmon.c: make "Warning: no shutdown command defined"
visible when the daemon starts Being a printf() to stdout, it got
buffered and often only appeared on buffer flush when the daemon
exited.
-
NEWS.adoc, data/driver.list.in, docs/man/usbhid-ups.txt,
docs/nut.dict, drivers/usbhid-ups.c: drivers/usbhid-ups.c: handle
also APC BKnnnM2[_-]CH tweaks for
lbrb_log_delay_without_calibrating/onlinedischarge_calibration
[#3006, #2347] Update docs, data/driver.list.in suggestions;
refactor the if-clause to detect if the tweak applies to the device
being handled.
-
NEWS.adoc: note further ECO mode updates in mge-hid [#2956]
-
NEWS.adoc: clarify message for bcmxcp fix [#3002]
-
NEWS.adoc: re-order ddriver updates alphabetically
-
NEWS.adoc: add bcmxcp fixes [#3002]
-
drivers/bcmxcp.c: fix latched on to RB alarm
-
docs/packager-guide.txt: suggest a nut-common package for shared
stuff
-
drivers/powervar_cx.c: remove space before parenthesis after
status_set() to simplify review for issue [#2708]
-
drivers/pijuice.c, NEWS.adoc: revise use of status_set() [#2708]
-
drivers/powervar_cx.c, drivers/powervar_cx_ser.c,
drivers/powervar_cx_usb.c: drivers/powervar_cx*: fix more
formatting string vs. int type mismatches [#2988]
-
drivers/mge-hid.c: try return int instead double to check compiler
issue
-
drivers/mge-hid.c: add some more debug
-
drivers/powervar_cx.c: instcmd(): fix int type of ShowTime [#2988]
-
drivers/powervar_cx.c, drivers/powervar_cx.h: drivers/powervar_cx*:
fix int type of GetSubstringPosition() [#2988]
-
drivers/powervar_cx.c, drivers/powervar_cx.h,
drivers/powervar_cx_usb.c: drivers/powervar_cx*: fix visibility of
some declarations [#2988]
-
drivers/powervar_cx.c: prefer snprintf() over strncpy() [#2988]
-
drivers/powervar_cx.c, drivers/powervar_cx_ser.c,
drivers/powervar_cx_usb.c: drivers/powervar_cx*.c: use same style
for space after comma [#2988]
-
drivers/powervar_cx.c, drivers/powervar_cx_usb.c:
drivers/powervar_cx*.c: use same style for space after "if" [#2988]
-
drivers/powervar_cx.c: avoid unbound strcpy() and strcat() [#2988]
-
drivers/Makefile.am, drivers/powervar_cx.c, drivers/powervar_cx.h,
drivers/powervar_cx_ser.c, drivers/powervar_cx_usb.c:
powervar_cx_{ser,usb}: split helper code powervar_cx.{c,h} into a
true C header and compiled C source (do not "include" the latter)
[#2988]
-
NEWS.adoc, docs/man/Makefile.am, docs/man/powervar_cx_ser.txt,
docs/man/{powervar-cx.txt ⇒ powervar_cx_usb.txt},
drivers/Makefile.am, drivers/{powervar-cx.h ⇒ powervar_cx.h},
drivers/{powervar-cs.c ⇒ powervar_cx_ser.c},
drivers/{powervar-cu.c ⇒ powervar_cx_usb.c}:
powervar_cx_{ser,usb}: rename sources, separate man pages [#2988]
-
drivers/powervar-cu.c, drivers/powervar-cx.h: drivers/powervar-c*:
avoid sub-standard "uint" type [#2988]
-
drivers/powervar-cu.c: SendRequest(): revise nulling of outbuff[],
add sanity-checks and comment about them [#2988]
-
drivers/powervar-cu.c: fix upsdebugx(verbosity) vs
upslogx(facility) [#2988]
-
drivers/powervar-cu.c: SendRequest(), PowervarGetResponse(): align
int vars with print format and return types [#2988]
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: rename
enable/diasble to start/stop
-
drivers/powervar_cx.c, drivers/powervar_cx.h,
drivers/powervar_cx_usb.c: Add comment(s) in source about compiling
common driver file. Add FIXME note.
-
docs/man/powervar-cx.txt: fix NAME section to generate the alias
man pages [#2988] NOTE: man aliases are special reference files,
so the target powervar-cx.8 file must be delivered wherever *-cs
and/or *-cu are the one(s) really needed.
-
drivers/powervar-cu.c: use NUT standard population of regex_array
for USB config parameters [#2988]
-
drivers/powervar-cu.c: fix int size mismatch [#2988] Code scanning
/ CodeQL: Comparison of narrow type with wide type in loop
condition: Comparison between [i](1) of type uint8_t and
[ReqLen](2) of wider type size_t.
-
drivers/powervar-cu.c, drivers/powervar-cx.h: drivers/powervar-c*:
fix clang complaints about method visibility/declaration [#2988]
-
docs/man/Makefile.am: neuter powervar-c{s,u}.html (similar to other
fictional HTML aliases) for now [#2988]
-
drivers/powervar-cu.c, drivers/powervar-cx.h: drivers/powervar-c*:
slightly revise C markup (indentations, declarations on top)
[#2988]
-
UPGRADING.adoc: note packaging of powervar-cX man pages [#2988]
-
docs/man/Makefile.am: fix recipes to nominally deliver the
powervar-c[us] pages, aliased from one powervar-cx [#2988]
-
docs/man/powervar-cx.txt: fix asciidoc markup; clarify that there
are two powervar* drivers (USB/Serial) at this time [#2988]
-
NEWS.adoc: introduced powervar-cs and powervar-cu drivers [#2988]
-
data/driver.list.in: update top comment with formatting
requirements for markup of this file [#2988]
-
data/driver.list.in: parsing scripts expect single-TAB separation
of fields [#2988]
-
docs/Makefile.am: specify VPATH for sub-makes doing spellcheck
-
docs/Makefile.am, docs/man/Makefile.am, NEWS.adoc: only SED text
source files for *-prepped (man page section, nut-website, etc.)
rewrites [#2989]
-
clients/upsmon.c: when warning about no SHUTDOWNCMD, check about no
MINSUPPLIES too (maybe not a problem)
-
scripts/systemd/nutshutdown.in: update notes on purpose, location
and likely variations
-
conf/upsmon.conf.sample.in: update notes on Windows SHUTDOWNCMD
-
conf/upsmon.conf.sample.in: update notes on semi-required settings
-
drivers/mge-hid.c: try again in one func
eaton_input_eco_mode_auto_on_off_info()
-
drivers/mge-hid.c: Fix value ("1") in nuf
-
drivers/mge-hid.c: for test value after compile
-
drivers/mge-hid.c: separate on / off as only fisrt command is used
in this case
-
docs/man/nut.txt, docs/man/index.txt: introduce
"ifndef::included-skip-title[]" toggle
[nut-website#61]
-
drivers/mge-hid.c: return on/off
-
drivers/mge-hid.c: another typo
-
drivers/mge-hid.c: double, small fixes
-
drivers/mge-hid.c: convert from two functions to one
eaton_input_eco_mode_auto_on_off_fun/[nuf]()
-
drivers/mge-hid.c: return double (0.0 and 0.1) instead of named
double
-
drivers/apc_modbus.c, NEWS.adoc: bump version, add summary [#2982]
-
docs/man/pijuice.txt, docs/nut.dict: some more nuances [#2985]
-
lib/libupsclient-config.in: single-quote ConfigFlags value
-
lib/libupsclient-config.in: define commonly customized dirs so
ConfigFlags do not emit warnings when configure script parses the
template
-
configure.ac: nut-common-tmpfiles.conf: own PIDPATH as root if not
overlapping with unprivileged patgs
-
docs/man/pijuice.txt, docs/nut.dict: update with nuances of PiJuice
HAT UPS setup from practice
-
Makefile.am: install-as-root: fix for new installs with systemd
-
drivers/mge-hid.c: double fix
-
drivers/mge-hid.c: small fixes
-
drivers/mge-hid.c: added dummy and Conversion back of
eaton_input_eco_mode_auto_off[on]_fun()
-
drivers/apc_modbus.c: Fix interframe delay The delay is supposed
to be from end of a frame to start of the next. Also fix the
type used for timestamp calculations (useconds_t is not big enough
and overflows). Fixes: #2609
-
drivers/nutdrv_qx_megatec.c: specify that we accept 38\+ bytes as
answer for "I" query, and any length after byte 28 till end of
reply is ups.firmware [#2980] Also finally bump the subdriver
version for this PR
-
NEWS.adoc, UPGRADING.adoc: note the 38 vs 39 byte expected response
to "I" in nutdrv_qx::megatec subdriver [#2980]
-
docs/acknowledgements.txt, docs/man/powervar-cx.txt, docs/nut.dict:
Text and NUT.dict tweaks to pass distcheck-light
-
docs/man/Makefile.am, docs/man/powervar-cx.txt: Man page fixes.
Crossing T’s and dotting I’s.
-
docs/acknowledgements.txt: Fix web link in, and add support note
to, acknowledgements.txt
-
drivers/powervar-cs.c, drivers/powervar-cu.c: Change versions from
0.80 to 1.00 to prepare for release.
-
drivers/nutdrv_qx_megatec.c: Update nutdrv_qx_megatec.c Added a
parameter battery.runtime
-
configure.ac, docs/configure.txt: suggest a --with-drvpath that is
not bindir but rather libexecdir
-
NEWS.adoc: Updated
megatec
protocol for more detailed responses
to I
query [#2980]
-
drivers/nutdrv_qx_megatec.c: revise comments for "I" query updates
-
docs/man/nut.txt: reword coupling of upsmon with upssched
-
docs/man/huawei-ups2000.txt: fix title
-
docs/man/clone-outlet.txt, docs/man/clone.txt,
docs/man/dummy-ups.txt, docs/man/failover.txt, docs/man/nut.txt,
docs/man/tripplite_usb.txt: docs/man/*: fix man page section
references for upsc/upscmd/upsrw/NUT-Monitor/upsmon/upssched (1 ⇒
8)
-
NEWS.adoc, UPGRADING.adoc: report recent documentation/recipe
improvements [#2976, #2946]
-
docs/nut-versioning.adoc: version-related code moved from common.c
to common-nut_version.c [#2913, #2097] …to reduce the
rebuild/relink scope.
-
docs/man/.gitignore, docs/man/Makefile.am, docs/man/index.txt,
docs/nut.dict: docs/man/index.txt, docs/man/Makefile.am,
docs/man/.gitignore: report the effect of
DOC_INSTALL_SELECTED_MANS_PROGS_BUILT on delivered docs and indexed
man pages
-
docs/man/Makefile.am: linkman-*.txt: depend on Makefile after all
(adapt to varying configure choices)
-
docs/man/Makefile.am: trace GENERATE-LINKMAN events during build
-
docs/man/Makefile.am: actually honour
DOC_INSTALL_SELECTED_MANS_BUILTPROGS toggle for linkman*.txt
generation [nut-website#60] Probably a lot more
can be enhanced later, to also consider this in delivery of HTML
MAN page renders, or finer-grained selections for even more
optional drivers (nhs_ser on linux), clients (Python UI),
development-only tools (like sockdebug), or platform-specific progs
(nut.exe), etc.
-
Makefile.am, docs/configure.txt, docs/maintainer-guide.txt: suggest
or ensure
configure --enable-docs-man-for-progs-built-only=no
for
dist/distcheck builds [nut-website#60]
-
ci_build.sh: if we end up building and/or installing documentation,
do parse all files (even if we do not build some programs here)
[nut-website#60]
-
configure.ac, docs/configure.txt, docs/nut.dict: configure.ac,
docs/configure.txt: convert to use of separate option
--enable-docs-man-for-progs-built-only=<yes\|no>
[nut-website#60]
-
configure.ac, docs/configure.txt: introduce
--with-docs=(all=)mans-builtprogs vs. mans-all
[nut-website#60]
-
docs/man/Makefile.am, docs/man/.gitignore: refactor generation of
linkman-*.txt to pick up new driver lists in persistent NUT
building workspaces [nut-website#60]
-
docs/man/Makefile.am: linkman-*-names.txt: re-generate if the
Makefile.am changes [nut-website#60]
-
ci_build.sh: default-all-errors: report count of SUCCEEDED and
FAILED builds
-
Makefile.am, NEWS.adoc: check-files-quick: only spellcheck-quick by
default if we
configure --enable-spellcheck
-
configure.ac: NUT_REPORT_FEATURE(WITH_SPELLCHECK), not just
AM_CONDITIONAL() it quietly
-
conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt,
docs/man/usbhid-ups.txt: mention that there are different
"POLLFREQ" settings between upsmon and some drivers [#2974]
-
drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
make UPS priorities more readable in code
-
drivers/failover.c: improve guarding of ups→status against NULL
dereference Adds checks to ensure ups→status is not NULL before
use, preventing a possible NULL pointer dereference.
-
drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
store runtimes in UPS struct These changes avoid constant lookups
in the variable table for better performance.
-
drivers/failover.c: minor improvements to order and debug levels
-
docs/man/failover.txt, docs/nut.dict: introduce checkruntime
argument
-
drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
introduce checkruntime argument
-
tests/nut-driver-enumerator-test.sh: reflect recent enumerator
changes in test expectations [#2962]
-
docs/man/failover.txt, drivers/failover.c, drivers/failover.h:
drivers/failover.{c,h}, docs/man/failover.txt: use _sockfn() for
one-shot connections This change removes the dependency on
splitting socket names into UPS and driver names. We now rely on
the user to provide valid sockets: if it connects, it connects.
This enables the use of full paths in the port argument also,
improving flexibility and enhancing scriptability.
-
ci_build.sh, NEWS.adoc: default-all-errors: refactor to use of a
common BUILDSTODO_LIST with one processing loop
-
ci_build.sh: default-all-errors: report why we list e.g. 8
scenarios and plan 7 runs (due to unmapped)
-
ci_build.sh: default-all-errors: refactor
BUILDSTODO_(SSL|USB\|UNMAPPED) determination as size of bash array,
not via expr maths
-
ci_build.sh: default-all-errors: first pass conversion of
NUT_(USB|SSL\|UNMAPPED)_VARIANTS from strings to bash arrays
-
ci_build.sh: default-all-errors: refactor FAILED/SUCCEEDED tracking
as bash arrays
-
ci_build.sh: default-all-errors: first steps to separate this
BUILD_TYPE into "quick" and "exhaustive" variants
-
docs/man/nut.txt, docs/man/index.txt: do not reference nut(7) when
including the man page index for rendering the page itself [#2945]
-
docs/man/nut.txt: rephrase NDE text
-
docs/man/nut.txt: fix "notable clients" bullet-list rendering
-
docs/man/nut-driver-enumerator.txt: update intro, mention
driver-on-drver dependencies [#2962]
-
NEWS.adoc: mention NDE change to track inter-driver dependency
[#2962]
-
NEWS.adoc: revise a few recent fixes
-
drivers/dummy-ups.c: make upsdrv_cleanup() conditional on actual
allocs, not mode
-
drivers/dummy-ups.c: free ctx in upsdrv_cleanup() whenever
allocated
-
drivers/main.c: free temporary buffer in splitxarg()
-
drivers/failover.c: use str_to_int() also in instcmd()
-
drivers/failover.c: make csv_arg_to_array() more reusable
-
drivers/failover.c: remove magic -1 from str_arg_to_int(), use
INT_MIN/MAX instead
-
drivers/failover.c: safer string to numeric conversions, improved
argument handling
-
NEWS.adoc: revise announcement of upsdrvquery API updates [#2969]
-
Link to PR, since we already have one shared by the different
highlighted achievements * Revise style to be same as in other
lists
-
scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: report if other
device uses unexpected driver [#2962]
-
m4/nut_check_libnss.m4: add Mozilla MPS headers to "-isystem" bunch
(CLANG/GCC builds)
-
Jenkinsfile-dynamatrix: use same naming style (no parenthesis
around C/C+\+ std version)
-
docs/man/netxml-ups.txt, docs/man/snmp-ups.txt: fix title casing
-
docs/man/skel.txt, docs/man/tripplite_usb.txt,
docs/man/ups.conf.txt, docs/security.txt: docs/*: fix remaining
links to man pages of external tools
-
docs/man/bestups.txt, docs/man/upsd.txt, docs/man/upsmon.txt,
docs/man/upssched.conf.txt, docs/man/upsset.cgi.txt:
docs/man/*.txt: fix linkman references to conf-file man pages
(default section 5 not 8)
-
docs/man/nut.txt, docs/man/upsmon.conf.txt, docs/man/upsmon.txt,
docs/nut.dict: Update upsmon(.conf) pages regarding SHUTDOWNCMD and
root [#2970] Closes: #2970
-
docs/documentation.txt: refer to docs/man/nut.html from rendered
docs [#2950]
-
docs/man/Makefile.am: fix publication of nut.html on nut-website
[#2950]
-
docs/man/index.txt: publish nut(7) [#2950]
-
drivers/upsdrvquery.c: drop redundant parentheses [#2963]
-
drivers/upsdrvquery.c: consistent guarding of _read_timeout() ret
cast [#2963] The value of ret never exceeds the size of conn→buf,
which is defined as LARGEBUF. However, defensive guarding against
exceeding the buffer size was already in place for upsdebug_hex(),
so make upsdebugx() call consistent with it.
-
drivers/upsdrvquery.c: cast _read_timeout() ret directly to int
[#2963] The value of ret never exceeds the size of conn→buf,
which is defined as LARGEBUF. A direct cast to int is safe in this
context and avoids tautological comparison warnings on some
platforms.
-
drivers/upsdrvquery.c: make _restore_broadcast() return values
consistent with _prepare() A caller does not know about the
underlying _write() call and should not care about the number of
bytes written. Return -1 or 1 consistently, as already done the
same in _prepare().
-
NEWS.adoc: announce upsdrvquery API updates
-
drivers/upsdrvquery.c, drivers/upsdrvquery.h:
drivers/upsdrvquery.{c,h}: add _restore_broadcast(), call after
_oneshot_conn() (best-effort) The _oneshot_conn() function does
not own the connection, so it should make a best-effort attempt to
restore the connection chatter (re-enabling broadcast) before
returning. This ensures the caller receives the connection back in
a reasonably consistent state.
-
drivers/upsdrvquery.c: revise ownership of connections in _prepare
and _request
-
docs/man/failover.txt: fix incompatible characters
-
drivers/Makefile.am: add failover.h for dists
-
drivers/upsdrvquery.c, drivers/upsdrvquery.h:
drivers/upsdrvquery.{c,h}: revise ownership and freeing of one-shot
connections
-
drivers/upsdrvquery.c, drivers/upsdrvquery.h:
drivers/upsdrvquery.{c,h}: new oneshot functions, refactor existing
without breaking API
-
NEWS.adoc, docs/nut.dict: introduce upsdrvquery changes
-
docs/man/failover.txt: add 3rd party tool use case for rationale
-
docs/man/failover.txt: add limitations
-
docs/man/failover.txt: add note to factor in network or
lock-picking delays for inittime
-
docs/man/failover.txt: make hyphens consistent
-
drivers/failover.c: remove progname from non fatal log message
-
docs/man/failover.txt: polish documentation and add rationale
-
drivers/failover.c: safeguard ups_promote_primary against NULL or
double promotion
-
drivers/failover.c: show truncation content at end of log message
-
drivers/failover.c: remove redundant _init() calls for status/alarm
-
drivers/failover.c: do not fatalx on no connectable drivers, keep
trying instead
-
drivers/failover.c, drivers/failover.h: drivers/failover.{c,h}:
introduce failover.h for defines, typedefs
-
drivers/failover.c: use enum for priorities
-
drivers/failover.c: use NUT_STRARG helper for null checks in
various places
-
docs/config-notes.txt: fix reference to Augeas chapter in
developer-guide [#2968]
-
docs/man/nut_usb_addvars.txt: clarify the optionality and dangers
of bus/busport/device settings [#2447]
-
drivers/failover.c: reword shutdown to be more clear
-
scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: add support for
"drivers=…" media type for dependencies, and failover driver
using that [#2962]
-
docs/nut.dict: add "resizing"
-
Jenkinsfile-dynamatrix: extend "GNU C89/C\+\+98 … with GCC"
(BUILD_WARNFATAL=yes BUILD_WARNOPT=auto) to also cover Strict C in
all CI runs Note: this differs from "Strict ANSI C" builds done in
fightwarn branches, those try "minimal" and "hard" BUILD_WARNOPT
types.
-
Jenkinsfile-dynamatrix: "GNU C99+/C++11+" and "GNU C89/C\+\+98 …
with GCC" should nowadays be BUILD_WARNFATAL=yes when
BUILD_WARNOPT=auto
-
Jenkinsfile-dynamatrix: "A build with all driver types…for other
C/C+\+ revisions" - disable C99/C\+\+98 checked as main revision
-
Jenkinsfile-dynamatrix: update build scenario names to reflect
warnings levels and standard versions
-
tools/nut-scanner/nut-scanner.c, drivers/mge-hid.c,
drivers/hwmon_ina219.c: fix source markup to remain compatible with
C89 syntax
-
NEWS.adoc: document fixes for adaptive varargs sizing [#2963]
-
common/common.c: fix typo in comment
-
drivers/mge-hid.c: upsdebugx in bypass and ecomode functions
updated with %s: and func for easy debug later
-
drivers/upsdrvquery.c: safer comparison for printable_len [#2963]
-
include/common.h: do not assume va_copy() to be a macro on all
systems [#2963]
-
configure.ac: more portable va_copy() checks [#2963]
-
common/common.c: fix comment [#2963]
-
drivers/upsdrvquery.c: fix comment [#2963]
-
drivers/upsdrvquery.c: revise signed/unsigned comparison, account
for ret < 0 [#2963]
-
common/common.c: condense declarations and comments for va_copy()
[#2963]
-
common/common.c, configure.ac, include/common.h: configure.ac,
common/common.{c,h}: define va_copy with __va_copy where
needed/available [#2963]
-
drivers/upsdrvquery.c: fix assumption about ret [#2963]
-
drivers/upsdrvquery.c: account for non-null-terminated buffers
[#2948]
-
common/common.c: only upsize buffer in vupslog() if va copying is
supported [#2948]
-
configure.ac: test for va_copy and __va_copy
-
drivers/failover.c: make defensive freeing consistent throughout
the file
-
drivers/failover.c: preserve which port value failed the argument
parsing process
-
drivers/failover.c: clean dstate after fsdmode 0, remove now freed
var from exit debug
-
drivers/failover.c: free parse_port_argument() tmp on premature
exit [#2962]
-
drivers/failover.c: add shutdown non-handling
-
drivers/failover.c, NEWS.adoc: fixes for compiler warnings, add PR
number to news entry [#2962]
-
NEWS.adoc: introduce failover driver
-
server/netget.c: rewrite upstream prefix for proxying drivers
-
docs/man/Makefile.am, docs/man/failover.txt, docs/nut.dict,
drivers/Makefile.am, drivers/failover.c: drivers/, docs/: introduce
failover driver
-
Makefile.am: EXTRA_DIST ci_build.sh along with ci_build.adoc
-
Makefile.am: Revert "Makefile.am: as long as we do not tarball
ci_build.sh, do not deliver its doc either" This reverts commit
7a2e5d771c57f5768ced35e5d2994ed9f214a491: the doc is part of
qa-guide. Makes more sense to also dist the script instead.
-
m4/ax_c_pragmas.m4: AX_C_PRINTF_STRING_NULL: detect also if
gcc/clang would refuse printf("%s",NULL) if warnings are enabled
(so NUT_STRARG must be enabled if auto)
-
Makefile.am: as long as we do not tarball ci_build.sh, do not
deliver its doc either
-
ci_build.sh: default-all-errors: if CI_FAILFAST is triggered in
SSL/USB loops, do not go for NUT_UNMAPPED_VARIANT either
-
drivers/dstate.c: sock_fail(): suggest more ways to "ps\|grep"
[#2959]
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: rename to
experimental.bypass.ecomode.start[stop]
from
experimental.ecomode.start[stop].auto
-
drivers/solis.c: cast NULL as "char*" when sending it to print
-
drivers/dstate.c, NEWS.adoc: sock_fail(): suggest things to try if
a (maybe non-socket) filesystem object already exists
-
drivers/dstate.c: sock_fail(): limit the impact of failed
getpwuid() when reporting the problem
-
NEWS.adoc, drivers/adelsystem_cbi.c, drivers/al175.c,
drivers/apc_modbus.c, drivers/apcsmart-old.c, drivers/apcsmart.c,
drivers/bcmxcp.c, drivers/belkin.c, drivers/belkinunv.c,
drivers/bestfcom.c, drivers/bestfortress.c, drivers/bestuferrups.c,
drivers/bestups.c, drivers/bicker_ser.c, drivers/blazer.c,
drivers/clone.c, drivers/dummy-ups.c, drivers/etapro.c,
drivers/everups.c, drivers/gamatronic.c, drivers/generic_modbus.c,
drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/liebert-esp2.c,
drivers/liebert-gxe.c, drivers/macosx-ups.c, drivers/main.c,
drivers/masterguard.c, drivers/metasys.c, drivers/mge-utalk.c,
drivers/microdowell.c, drivers/microsol-common.c,
drivers/netxml-ups.c, drivers/nut-ipmipsu.c,
drivers/nutdrv_atcl_usb.c, drivers/nutdrv_hashx.c,
drivers/nutdrv_qx.c, drivers/nutdrv_qx_voltronic.c,
drivers/nutdrv_siemens_sitop.c, drivers/oneac.c, drivers/optiups.c,
drivers/pijuice.c, drivers/powercom.c, drivers/powerman-pdu.c,
drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/rhino.c,
drivers/richcomm_usb.c, drivers/riello_ser.c, drivers/riello_usb.c,
drivers/safenet.c, drivers/skel.c, drivers/sms_ser.c,
drivers/snmp-ups.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, NEWS.adoc:
revise logging of instcmd() where upslog_INSTCMD_POWERSTATE()
macros shine
-
drivers/upshandler.h: introduce upslog_INSTCMD_POWERSTATE*() macros
and LOG_INSTCMD_POWERSTATE level
-
clients/upsclient.c: avoid using upslog*() methods with numeric log
level instead of a syslog macro
-
drivers/powerman-pdu.c, drivers/snmp-ups.c,
drivers/tripplite_usb.c, drivers/usbhid-ups.c, drivers/ve-direct.c:
drivers/: avoid using upslog() methods with numeric log level
instead of a syslog macro
-
drivers/dummy-ups.c: setvar(): update a FIXME comment
-
drivers/adelsystem_cbi.c, drivers/al175.c, drivers/apc_modbus.c,
drivers/apcsmart-old.c, drivers/apcsmart.c, drivers/bcmxcp.c,
drivers/belkin.c, drivers/belkinunv.c, drivers/bestfcom.c,
drivers/bestfortress.c, drivers/bestuferrups.c, drivers/bestups.c,
drivers/bicker_ser.c, drivers/blazer.c, drivers/blazer_ser.c,
drivers/blazer_usb.c, drivers/clone.c, drivers/dstate.c,
drivers/dummy-ups.c, drivers/etapro.c, drivers/everups.c,
drivers/gamatronic.c, drivers/generic_modbus.c,
drivers/huawei-ups2000.c, drivers/isbmex.c, drivers/ivtscd.c,
drivers/liebert-esp2.c, drivers/liebert-gxe.c,
drivers/macosx-ups.c, drivers/main.c, drivers/masterguard.c,
drivers/metasys.c, drivers/mge-utalk.c, drivers/microdowell.c,
drivers/microsol-common.c, drivers/netxml-ups.c,
drivers/nut-ipmipsu.c, drivers/nutdrv_atcl_usb.c,
drivers/nutdrv_hashx.c, drivers/nutdrv_qx.c,
drivers/nutdrv_qx_blazer-common.c, drivers/nutdrv_siemens_sitop.c,
drivers/oneac.c, drivers/optiups.c, drivers/pijuice.c,
drivers/powercom.c, drivers/powerman-pdu.c, drivers/powerp-bin.c,
drivers/powerp-txt.c, drivers/rhino.c, drivers/richcomm_usb.c,
drivers/riello_ser.c, drivers/riello_usb.c, drivers/safenet.c,
drivers/skel.c, drivers/sms_ser.c, drivers/snmp-ups.c,
drivers/solis.c, drivers/tripplite.c, drivers/tripplite_usb.c,
drivers/tripplitesu.c, drivers/upscode2.c, drivers/usbhid-ups.c,
drivers/ve-direct.c, drivers/victronups.c: drivers/*.c: revise
logging of instcmd() and setvar() or their equivalents to be
consistent across all drivers [WIP]
-
drivers/dummy-ups.c: instcmd(), setvar(): test conversion to new
logging macros Testing: :; NUT_STATEPATH=/tmp ./drivers/dummy-ups
-DDDDDD -s test -x port= & :; (echo NOBROADCAST ; echo "INSTCMD
qqq" ; sleep 3 ; echo "INSTCMD qqq arg" ; sleep 3 ; echo "SET qqq"
; sleep 3 ; echo "SET qqq 123" ; sleep 10; ) \| ./server/sockdebug
/tmp/dummy-ups-test Outputs: 8.003940 [D6] sock_arg: Driver
on /tmp/dummy-ups-test is now handling INSTCMD with 2 args 8.003974
[D2] entering main_instcmd(qqq, (null)) for [test] on socket 5
8.003982 [D2] shared main_instcmd() does not handle command
qqq, proceeding to driver-specific handler 8.004017 [D1]
Starting dummy-ups.c::instcmd(qqq, (null)) 8.004049
instcmd: unknown command [qqq] [(null)] 8.004059 [D6]
sock_arg: Driver on /tmp/dummy-ups-test is now handling INSTCMD
with 3 args 8.004068 [D2] entering main_instcmd(qqq, arg) for
[test] on socket 5 8.004075 [D2] shared main_instcmd() does not
handle command qqq, proceeding to driver-specific handler 8.004080
[D1] Starting dummy-ups.c::instcmd(qqq, arg) 8.004086
instcmd: unknown command [qqq] [arg] (apparently the two got
coalesced by delay between main.c loops) 11.504627 [D6]
sock_arg: Driver on /tmp/dummy-ups-test is now handling SET with 2
args 11.504669 Unknown command on socket: 11.504675 arg 0:
SET 11.504678 arg 1: qqq (SET must have an argument) 14.004807
[D6] sock_arg: Driver on /tmp/dummy-ups-test is now handling SET
with 3 args 14.004856 [D2] entering main_setvar(qqq, 123) for
[test] on socket 5 14.004867 [D2] shared main_setvar() does not
handle variable qqq, proceeding to driver-specific handler
14.004874 [D1] Starting dummy-ups.c::setvar(qqq, 123)
14.004930 [D2] find_info: unknown variable: qqq 14.004979
[D1] Unknown data. Committing anyway… 14.004992 [D2]
find_info: unknown variable: qqq 14.004997 [D1] Unknown data.
Committing value anyway… 14.005062 [D5] send_to_all: SETINFO
qqq "123" 14.005113 [D2] find_info: unknown variable: qqq
14.005125 [D2] setvar: unknown variable (qqq), using default
flags 14.005133 [D5] send_to_all: SETFLAGS qqq RW STRING
14.005144 [D5] send_to_all: SETAUX qqq 32
-
drivers/upshandler.h, NEWS.adoc: introduce macros for common syslog
level definitions and message wording for beginning and failing
instcmd() or setvar() consistently in different drivers
-
drivers/mge-utalk.c: setvar(): return STAT_SET_HANDLED when due
-
drivers/oneac.c: instcmd(): use consistent method argument markup
(spaces)
-
NEWS.adoc, drivers/usbhid-ups.c, drivers/usbhid-ups.h:
drivers/usbhid-ups.{c,h}, NEWS.adoc: rename
HU_FLAG_CMD_PARAM_REQUIRED ⇒ HU_FLAG_PARAM_REQUIRED and extend to
setvar() too [#2955, #2860]
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: added cmd
"experimental.ecomode.start.auto" "experimental.ecomode.stop.auto"
-
drivers/usbhid-ups.h, drivers/usbhid-ups.c, NEWS.adoc,
docs/nut.dict: introduce HU_FLAG_CMD_PARAM_REQUIRED and a
HU_TYPE_CMD_PARAM_REQUIRED shortcut for setting in the mapping
tables Complete the feature started in commit
7991e4592e042f16f5e0757083f0fd58503e8a5e which became a regression
of NUT v2.8.3 [#2860].
-
drivers/usbhid-ups.c: drop EOL from single-line upsdebugx() reports
-
drivers/usbhid-ups.h: bump ©
-
drivers/usbhid-ups.h: revise comment markup
-
data/driver.list.in: Added some descriptions of UPS equipment.
-
tools/driver-list-format.sh: refactor VALID_LINE definition [#2953]
-
tools/driver-list-format.sh, data/Makefile.am: recognize
caller-provided srcdir or builddir; use the latter for output
files; include "/data" part inside DRVLIST_PATH
-
data/driver.list.in: fix markup of older entries
-
tools/driver-list-format.sh: document the updated purpose, add
copyrights
-
tools/driver-list-format.sh: do not replace original file if it is
same (do not confuse "make" and mess up archive timestamps)
-
tools/driver-list-format.sh: fix also separators made of more than
one TAB or a mix of TABs and spaces
-
tools/driver-list-format.sh: verify that lines are either empty,
all-comments, or have six fields (and optional comment)
-
tools/driver-list-format.sh: prefix lines with script name to help
see it in "make" log; revise message in case something "needs to be
fixed"
-
tools/driver-list-format.sh: TAB-separate the optional trailing
comment from the last required field
-
tools/driver-list-format.sh: rearrange the logic as a chain for
better maintenance; use single-quotes around regex with a dollar
-
tools/driver-list-format.sh: document the SED logic
-
data/Makefile.am, data/.gitignore: take care of
driver.list{,.in}.tabbed files if they are left over
-
Makefile.am, data/Makefile.am, tools/driver-list-format.sh,
tools/Makefile.am: add a check (not change) mode for driver.list
markup [#2952]
-
docs/man/Makefile.am, docs/man/apc_modbus.txt,
docs/man/generic_modbus.txt, docs/man/networked_hostnames.txt,
docs/man/netxml-ups.txt, docs/man/nut-ipmipsu.txt,
docs/man/powerman-pdu.txt, docs/man/snmp-ups.txt: Introduce
docs/man/networked_hostnames.txt caveat, include it into networked
driver man pages
-
docs/man/blazer_ser.txt, docs/man/blazer_usb.txt: inject a dummy
"linkman" for .txt-prepped rewriter to patch up the man section
[#2950]
-
docs/man/nut.txt: elaborate more on "File or directory not found"
messages, permissions, config files and nut-scanner
-
docs/man/nut.txt: point to NUT Configuration Examples book
-
drivers/dstate.c, tests/driver_methods_utest.c: check that LB can
be set and status set\+commit+set+commit (without init in the
middle) adds reported tokens [#2934]
-
docs/configure.txt: note that "datadir" for NUT must include the
"/nut" part
-
NEWS.adoc, UPGRADING.adoc, configure.ac, docs/configure.txt,
docs/man/Makefile.am: configure.ac, docs/configure.txt,
docs/man/Makefile.am: introduce "configure
--with-docs-man-dir-as-base"
-
…/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
after Qt6 bump [#2946]
-
docs/man/nut.txt, docs/nut.dict: docs/man/nut.txt: add a chapter on
NUT Run-time Nuances
-
configure.ac, docs/configure.txt, docs/man/Makefile.am:
configure.ac: auto-tune man page sections by platform
(Solaris/illumos, and everyone else)
-
configure.ac: line-break test for strdup()
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: remove
experimental.ecomode.[start/stop].auto var/cmd funtions for working
in another pr and clean this pr
-
NEWS.adoc, drivers/dstate.c, tests/driver_methods_utest.c: Update
asciidoc and C markup, and © headings [#2934]
-
drivers/mge-hid.c: removed unused vars
-
drivers/mge-hid.c: experimental.ecomode.stop/start.auto added as
commands for test after compiled
-
drivers/mge-hid.c: input.bypass.switch.on", "disabled (useless,
onlly on,off can be runned) to "input.bypass.switch.off", "off"
,aded function of eaton_input_bypass_check_range(value); ,
eaton_input_eco_mode_check_range(value);
-
docs/man/usbhid-ups.txt, NEWS.adoc, UPGRADING.adoc: revise
whitespace/markup [#2944]
-
drivers/mge-hid.c: change place of 0-1 in
eaton_input_eco_mode_auto_on_off_info()
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c:
experimental.ecomode.[start/stop] to experimental.ecomode.auto
-
NEWS.adoc: introduce NUT-Monitor-py3qt6
-
docs/man/Makefile.am: introduce NUT-Monitor-py3qt6
-
configure.ac: handle both py3qt5 and py3qt6 or either
-
docs/configure.txt, docs/man/NUT-Monitor.txt, docs/new-clients.txt,
docs/nut.dict: docs/*: introduce NUT-Monitor-py3qt6
-
scripts/python/Makefile.am, scripts/python/app/NUT-Monitor: handle
PyQt5 and PyQt6
-
scripts/python/README.adoc,
scripts/python/app/NUT-Monitor-py3qt6.in,
scripts/python/app/README.adoc,
scripts/python/app/nut-monitor-py3qt6.desktop:
scripts/python/app/*: introduce Py3Qt6 port for NUT Monitor
-
scripts/python/app/.gitignore,
scripts/python/app/locale/NUT-Monitor.pot,
scripts/python/app/locale/fr/fr.po,
scripts/python/app/locale/it/it.po,
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: scripts/python/app/*: bump
structure, version for Qt6
-
docs/config-prereqs.txt: update for Python3 \+ Qt6 since 2025
distros [#2946]
-
scripts/python/app/NUT-Monitor-py3qt6.in: fix exec bit and
whitespace alignment [#2946]
-
NEWS.adoc, UPGRADING.adoc: document introducing the text for a way
to "man nut" [#2945]
-
docs/man/index.txt, docs/man/nut.txt, docs/nut.dict:
docs/man/nut.txt, docs/man/index.txt: revise inclusion of index
into "man nut" and restore the "Platform Management" sub-sectioning
-
docs/man/index.txt: drop colons from section names
-
docs/man/index.txt: add placeholder sections for more Platform
Management types (to be documented)
-
docs/man/index.txt: avoid deep section title layers
-
docs/maintainer-guide.txt: no need to edit any files to publish a
NUT for Windows build artifact
-
docs/download.txt: add a link for NUT for Windows artifact
-
docs/maintainer-guide.txt: update with AppVeyor CI artifact
publication (NUT for Windows)
-
drivers/mge-hid.c: experimental.ecomode.[start/stop].auto move to
uprw \+ set NULL to last argument for bypass and ecomode cmds
-
docs/nut.dict: Updated nut.dict after spellcheck
-
NEWS.adoc, UPGRADING.adoc, data/driver.list.in,
docs/man/usbhid-ups.txt, drivers/usbhid-ups.c: Update adds APC
BVKnnnnM2 to list of devices being affected by spurious LB/RB
issues and allows users to apply corresponding tweaks
-
docs/man/Makefile.am, docs/man/nut.txt, docs/nut.dict: introduce a
way to "man nut"
-
NEWS.adoc, UPGRADING.adoc, configure.ac, docs/Makefile.am,
docs/configure.txt, docs/man/Makefile.am: configure.ac,
docs/Makefile.am, docs/man/Makefile.am etc.: introduce support for
MAN_SECTION_MISC
-
docs/Makefile.am: ChangeLog.html-contentchecked: entry_filter():
refactor the regex for special-char escaping for pure(r)-POSIX
portability [#2940]
-
NEWS.adoc: rephrase innovart31 protocol support in nutdrv_qx
[#2938]
-
NEWS.adoc: announce nutdrv_hashx driver [#2940]
-
docs/Makefile.am: ChangeLog.html-contentchecked: entry_filter():
escape some content characters that are special for regex later
[#2940]
-
docs/Makefile.am: ChangeLog.html-contentchecked: refactor with a
common entry_filter()
-
drivers/nutdrv_hashx.c: fix status_bytes_size printing [#2940]
-
data/driver.list.in: fix markup: TAB before optional comment
-
NEWS.adoc: announce new innovart33 protocol support in nutdrv_qx
[#2938]
-
docs/nut-names.txt, drivers/nutdrv_hashx.c: drivers/nutdrv_hashx:
Add Implement start / stop beeper test
-
data/cmdvartab, docs/nut-names.txt: data/nut-names: Add
experimental commands to test the UPS beeper/buzzer Various UPS
have this command to test the hardware beep, but NUT is not
providing the command. I feel this could be not experimental, but
let’s make it as such for now since we only need for one driver
AFAIK
-
data/driver.list.in: data/drivers.list: Mention other UPS that
nutdrv_hashx should support Update the drivers list based on what
the official websites of the producers say, as these all are
expected to work with PowerManager\+, and so they should also work
with nitdrv_hashx
-
drivers/nutdrv_hashx.c: drivers/nutdrv_hashx: Add support for
running instant actions Support running commands for instant
actions so that it’s possible to interactively run them from NUT
too
-
drivers/skel.c: drivers/skel: Fix reference to nut-names doc file
-
drivers/clone.c: refactor core driver logic, minor fixes around
previous work [#2936]
-
docs/man/nutdrv_qx.txt, docs/nutdrv_qx-subdrivers.txt,
drivers/Makefile.am, drivers/nutdrv_qx.c,
drivers/nutdrv_qx_blazer-common.c,
drivers/nutdrv_qx_blazer-common.h, drivers/nutdrv_qx_innovart33.c,
drivers/nutdrv_qx_innovart33.h: Add support (experimental) for
Ippon Innova RT 3/3
-
AUTHORS, data/driver.list.in, docs/man/Makefile.am,
docs/man/nutdrv_hashx.txt, docs/nut.dict, drivers/Makefile.am,
drivers/nutdrv_hashx.c: drivers/nutdrv_hashx: Add new driver for
PowerManager\+ supported devices Add an initial driver for the "*"
protocol support that is used by many UPS out there that rely on
the proprietary software suites PowerMaster\+, PowerMaster,
PowerGuide and so on… The naming of the driver has been chosen
since all the UPS replies start with an "", while there’s not a
definitive common pattern for the queries or commands. Apparently
the same protocol is used by various UPS devices, both online and
line-interactive (given that many producers advertise to use the
said programs), and only in serial mode (AFAIK). Although this
driver has solely been tested with the Atlantis Land S1200
line-interactive UPS. So there may be missing features (such as
the bypass mode) or lack of information. However most of the
decoding has been done and the driver is enough to update the UPS
status for monitoring and shutdown purposes. As for now, only the
status updates features have been implemented. Closes: #2769
-
drivers/clone.c: reduce redundant argument parsing, debug messages
[#2936]
-
drivers/clone.c: further improve outlet status detection, debug
messages [#2936]
-
drivers/clone.c: revise outlet status logic, raise OFF for
turned-off outlets No longer evaluate outlet status in instant
command handling, but rather in the main update cycle. Raising OFF
for a turned-off outlet aligns with the behavior of the
clone-outlet driver.
-
drivers/clone-outlet.c: fix whitespace [#2936]
-
NEWS.adoc, drivers/clone-outlet.c, drivers/clone.c:
drivers/clone{,-outlet}.c, NEWS.adoc: modernize status handling
-
NEWS.adoc: fill in pull request numbers for recent changes
-
NEWS.adoc: add nhs_ser, nutdrv_qx_ablerex modern alarm and status
handling changes
-
drivers/nutdrv_qx_ablerex.c: modernize alarm handling
-
drivers/dummy-ups.c, docs/man/dummy-ups.txt, NEWS.adoc: introduce
ALARM instruction for dummy modes
-
drivers/nhs_ser.c: modernize status and alarm handling
-
AUTHORS, docs/nut.dict: add desertwitch
-
tests/driver_methods_utest.c, NEWS.adoc: bump subdriver version,
announce dstate changes
-
docs/developers.txt: fix typo [#2932]
-
drivers/dstate.c: do not add whitespace on lone alarm [#2931]
-
tests/driver_methods_utest.c: adapt for legacy and modern alarms
[#2931]
-
clients/upsmon.c: clarifications and beautifications for legacy
alarms [#2931]
-
drivers/dstate.c: keep legacy alarms unchanged, do not decouple
from status [#2931]
-
docs/new-drivers.txt: clarify alarm state handling
-
docs/config-prereqs.txt, docs/nut.dict: generalize the title/intro
for chapter on APT-based Debian-derived Linux systems [#2923]
-
NEWS.adoc: clarify "driver updates" in section title
-
docs/man/nutdrv_qx.txt: typo fix (extra spaces)
-
ci_build.sh: add NUT_UNMAPPED_VARIANTS to
BUILD_TYPE="default-all-errors" matrix
-
ci_build.sh: revise default stance towards WITH_UNMAPPED_DATAPOINTS
values
-
docs/Makefile.am: .adoc-parsed generator: rewrite "\+" in URLs to
"%2B" [#1407] Help with ChangeLog entry for an old URL buried in
commit message years ago, from a branch getting merged just now.
-
docs/nut.dict: teach all systems that "inverters" is also a word
[#1407]
-
tests/Makefile.am: restructure and comment cppunittest_LDADD and
cppnit_LDADD [#2744] One positive result of experiments in PR
#2744 which otherwise did not lead far, yet…
-
NEWS.adoc: document the fix of failed
configure
--with-drivers=dummy-ups
scenario [#2927]
-
configure.ac: get_drivers_makefile_value(): recurse to expand make
variables in discovered values [#2927]
-
configure.ac: rename get_drvlist() ⇒ get_drivers_makefile_value()
[#2927]
-
configure.ac: get_drvlist(): do not forget dollar chars; do drop
$(EXEEXT) though [#2927]
-
configure.ac: get_drvlist(): trim multiple repetitive SPACES per
combined line into one space each [#2927]
-
configure.ac: get_drvlist(): quick-return from the loop after we
finish reading the assignment (may be multi-line) [#2927]
-
docs/nut.dict: teach all systems that "photovoltaic" is a word
[#1407]
-
drivers/nutdrv_qx_ablerex.c, drivers/nutdrv_qx_ablerex.h,
drivers/powervar-hid.h: drivers/nutdrv_qx_ablerex.{c,h},
drivers/powervar-hid.h: fix POSIX attrs in git
-
docs/nutdrv_qx-subdrivers.txt: clarify how the "protocol" names are
determined
-
configure.ac, scripts/Windows/dllldd.sh: use question mark in grep
regex, that seems to work everywhere and suits the purpose better
[#2920]
-
docs/man/victronups.txt: fix a few typos
-
docs/man/ve-direct.txt: fix man page markup to NUT v2.8.3 patterns,
fix a few typos [#440]
-
docs/daisychain.txt: docs/daisychain.txt" fix typo (duplicate "the
the")
-
configure.ac: quieter grep for unbuildable doc formats
-
configure.ac: clarify why unbuildable doc formats are just warnings
initially
-
configure.ac, NEWS.adoc: fix regression of
configure
--with-docs=all
released with NUT v2.8.3 Fallout of #2842, used
wrong variable name for checking the requested list of doc types
-
configure.ac: fix indentation
-
configure.ac: make use of NUT_REPORT_FEATURE() arg #6 to produce
saner message wording
-
m4/nut_report_feature.m4: NUT_REPORT_FEATURE: allow other prefixes
than "whether to"
-
configure.ac: NUT_REPORT_FEATURE("requested to build and install
documentation") to also report the decided nut_doc_build_list of
specific required formats
-
configure.ac: use better portable regex syntax
-
scripts/Windows/dllldd.sh: use better portable regex syntax
-
tools/gitlog2version.sh: use better portable regex syntax
-
drivers/cps-hid.c: bump subdriver version, rename nominal power
constant [#2919]
-
NEWS.adoc: cps-hid nominal power reporting fixes
-
drivers/cps-hid.c: consider also non-broken ConfigActivePower
descriptors [#2919]
-
drivers/cps-hid.c: add report descriptor fix for ConfigActivePower
-
NEWS.adoc: added a ve-direct driver for Victron Energy UPS/solar
panels monitoring [#440]
-
drivers/ve-direct.c: cast the int type for hex scanf() [#440]
-
drivers/ve-direct.c: fix code style (markup, declarations before
code) [#440]
-
ci_build.sh: introduce (or guess) WITH_UNMAPPED_DATAPOINTS optional
toggle
-
ci_build.sh: add --with-unmapped-data-points for non-production
builds
-
docs/developers.txt, docs/nut.dict: document avoiding VLA
-
drivers/ve-direct.c: fix declaration after code [#440]
-
drivers/ve-direct.c: trivialize upsdrv_help() [#440] Suggestion to
RTFM is now centralized in NUT code base
-
Jenkinsfile-dynamatrix: constrain shellcheck to "nut-builder"
agents normally Avoid firing up QEMU builders on the NUT CI farm,
unless we want QEMU tests
-
clients/upsclient.c, common/common.c, include/common.h,
server/upsd.c: Constrain pre-processor visibility and impact of
inet_ntopXX() methods with NUT_WANT_INET_NTOP_XX macro [#2916]
-
include/common.h: fix includes for inet_ntopXX [#2916]
-
Jenkinsfile-dynamatrix: constrain shellcheck to "nut-builder"
agents normally Avoid firing up QEMU builders on the NUT CI farm,
unless we want QEMU tests
-
NEWS.adoc, clients/upsclient.c, common/common.c, docs/nut.dict,
include/common.h, server/upsd.c: Refactor inet_ntopSS() and
inet_ntopAI() into common code, simplify upsclient and upsd
-
server/upsd.c: add a sanity check into inet_ntopW() [#2915]
-
server/upsd.c: introduce inet_ntopAI() specifically for struct
addrinfo conversion [#2915]
-
NEWS.adoc: fixed upsd printing of "further addresses ignored"
[#2915]
-
Makefile.am: group check-files-quick (spellcheck-quick check-man)
before check-recursive which is the Autotools implementation behind
"make check"
-
common/common-nut_version.c: nut_report_config_flags(): report not
only bitness but also target CPU if available [#2097]
-
clients/Makefile.am: libupsclient.la and libnutclient.la do not
actually include libcommonversion.la [#2097]
-
Makefile.am: add a goal for libupsclient-version.h shortcut, just
to be on par with an existing nut_version.h goal [#2097]
-
Makefile.am, tools/nut-scanner/Makefile.am: current nut-scanner
does not actually depend on nut_version.h (or not directly, just
via libcommonversion.la) [#2097]
-
Makefile.am, clients/Makefile.am, common/Makefile.am,
drivers/Makefile.am, scripts/Windows/Makefile.am,
server/Makefile.am, tools/nut-scanner/Makefile.am,
tools/nutconf/Makefile.am: /Makefile.am: refactor with a separate
libcommonversion.la [#2097] Avoid multiple rebuilds and relinks of
libcommon.la and their dependants when nut_version.h changes. Now
there is just one library impacted by this, included to LDFLAGS
across the board for Makefiles of directories with consumers of
methods exported from common-nut_version.c (declared by common.h
still).
-
common/common-nut_version.c: nut_report_config_flags(): try to also
report build bitness, if known [#2097]
-
NEWS.adoc, common/Makefile.am, common/common-nut_version.c,
common/common.c: common/common-nut_version.c, common/common.c:
evict UPS_VERSION and its consumers into a separate compilation
unit [#2097]
-
drivers/dstate.c: Implement dstate_addenum_dynamic() [#2450]
-
common/common.c, drivers/dstate.c, drivers/mge-utalk.c: Update
comments about remaining FORMAT_NONLITERAL and/or FORMAT_SECURITY
pragmas to quiesce compiler warnings [#2450]
-
common/common.c: minimize_formatting_string(): address error:
switch missing default label [#2450, #2460]
-
server/upsd.c: Fix issue #2914: upsd misprint/buffer overflow.
-
NEWS.adoc: fix entry for RPATH to NUT libs (was first planned for
2.8.4 but got into 2.8.3 ultimately) [#2782, #2865]
-
tools/gitlog2version.sh: Reapply "tools/gitlog2version.sh: bump
NUT_VERSION_DEFAULT=2.8.3.1 for next development cycle" This
reverts commit 70faea2af378aec996e5f7284413df23d1e73410: finally
released NUT v2.8.3, preparing for v2.8.4 cycle now.
-
NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "Revert
"Revert "NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize
text before NUT v2.8.3 release""" This reverts commit
051b49d9f0e693613d958837baf3e9bd1c0fa624: finally released NUT
v2.8.3, preparing for v2.8.4 cycle now.
-
docs/maintainer-guide.txt: a few more suggestions
-
drivers/generic_gpio_libgpiod.c: align another print format with
int type [#2911]
-
configure.ac, common/common.c, include/Makefile.am,
docs/nut-versioning.adoc: integrate NUT_VERSION_QUERY=IS_PRERELEASE
support
-
tools/gitlog2version.sh, docs/nut-versioning.adoc: extend NUT
SEMVER with support for (rc|alpha\|beta) tags or VERSION_FORCED file
contents; queries and variables for PRERELEASE info
-
docs/maintainer-guide.txt, docs/nut-versioning.adoc,
tools/gitlog2version.sh: tools/gitlog2version.sh,
docs/maintainer-guide.txt: introduce support for
NUT_VERSION_QUERY="UPDATE_FILE_GIT_RELEASE"
-
docs/nut.dict: fix order and count
-
docs/maintainer-guide.txt: suggest RC naming in VERSION_FORCED, and
a way to protect these files from accidental deletion
-
configure.ac: always detect if we have_disted_doc_man
-
configure.ac: report something reasonable if we skipped checking
for have_disted_doc_man
-
common/nutwriter.cpp, tests/nutconf_ut.cpp: streamline
ALARMCRITICAL writer/expectations with documentation [#2909]
-
scripts/augeas/nutupsmonconf.aug.in: introduce ALARMCRITICAL
setting
-
common/nutwriter.cpp: introduce upsmon ALARMCRITICAL setting
-
common/nutconf.cpp, include/nutconf.hpp, tests/nutconf_ut.cpp:
introduce upsmon ALARMCRITICAL setting
-
scripts/augeas/nutupsmonconf.aug.in: introduce OVERDURATION setting
-
common/nutwriter.cpp: introduce upsmon OVERDURATION setting
-
common/nutconf.cpp, include/nutconf.hpp, tests/nutconf_ut.cpp:
introduce upsmon OVERDURATION setting
-
NEWS.adoc, docs/nut.dict: introduce OVERDURATION setting
-
conf/upsmon.conf.sample.in, docs/man/upsmon.conf.txt: introduce
OVERDURATION setting
-
clients/upsmon.c, clients/upsmon.h: introduce OVERDURATION setting
-
tests/nutconf_ut.cpp: fix expectations for ALARMCRITICAL [#2909]
-
tools/nut-usbinfo.pl: comment a TODO
-
Makefile.am, tools/Makefile.am: fix parallel rebuilds of
nut-scanner (generate sources via nut-scanner-deps/tools only once)
[#2825]
-
drivers/hwmon_ina219.c: rephrase message about invalid "port" value
-
drivers/nutdrv_qx.c: warn user if setting both port!="auto" and
settings for USB mode [#2906]
-
drivers/nutdrv_qx.c: avoid extra lookup for
dstate_getinfo("driver.parameter.port")
-
Makefile.am, docs/Makefile.am, scripts/Solaris/Makefile.am,
tests/Makefile.am: */Makefile.am: report work skipped by design as
" SKIP description" (separated by TAB chars)
-
Makefile.am, common/Makefile.am, docs/Makefile.am,
docs/man/Makefile.am, scripts/Solaris/Makefile.am,
scripts/python/module/Makefile.am: */Makefile.am: where we echo "
TOKEN description", separate them by TAB chars
-
Jenkinsfile-dynamatrix: skip macos for Default Autotools builds
(fightwarn/qemu scenarios) At least now that the worker available
to NUT CI farm requires hacks for HomeBrew with
-Wno-poison-system-directories …
-
UPGRADING.adoc: revise notes for NUT v2.8.3 release to upper-case
starts of sentences
-
NEWS.adoc: revise notes for NUT v2.8.3 release to group some themes
and to upper-case starts of sentences
-
NEWS.adoc: modbus drivers now report NUT_MODBUS_LINKTYPE_STR
[#2897]
-
drivers/phoenixcontact_modbus.c, drivers/generic_modbus.c,
drivers/huawei-ups2000.c, drivers/socomec_jbus.c,
drivers/adelsystem_cbi.c: report NUT_MODBUS_LINKTYPE_STR
-
drivers/apc_modbus.c: report NUT_MODBUS_LINKTYPE_STR
-
m4/nut_check_libmodbus.m4: detect NUT_MODBUS_LINKTYPE_STR
-
m4/nut_check_libmodbus.m4: only define NUT_MODBUS_HAS_USB if
nut_have_libmodbus also
-
configure.ac: detect LDD early, so everyone can use it if available
-
common/common.c, NEWS.adoc: upsnotify(): default to not spam if our
first message to be suppressed is already about stopping the
program [#1590]
-
docs/maintainer-guide.txt: more notes to check code/recipe quality
before release
-
docs/config-prereqs.txt, docs/nut.dict: wrap most long lines,
reword a few
-
docs/man/upscmd.txt, docs/man/upsrw.txt: clarify "OK" vs. waiting
for result [#2900]
-
docs/Makefile.am: ensure qa-guide-docinfo.xml made for
qa-guide.adoc-prepped generally
-
Jenkinsfile-dynamatrix: use ci_build.sh extended to support
BUILD_TYPE="default-spellcheck-quick"
-
ci_build.sh: extend to support
BUILD_TYPE="default-spellcheck-quick" as well as CLI shortcuts for
quick interactive and normal spellchecks
-
ci_build.sh: help troubleshoot invalid CPP setting
-
ci_build.sh: build_to_only_catch_errors_check(): call from default
build routine too instead of "make check"
-
ci_build.sh: build_to_only_catch_errors_check(): handle
spellcheck-quick before other checks
-
configure.ac, NEWS.adoc: extend enable_inplace_runtime mode to
consider also cgipath, drvpath, datadir, libdir [#2895]
-
docs/maintainer-guide.txt: note to check for library changes
(exposed API) [#2895]
-
docs/maintainer-guide.txt: note to not rush, and do use RC tags
-
clients/Makefile.am, tools/nut-scanner/Makefile.am, UPGRADING.adoc:
flip library version-info to new "current" numbers (more symbols
exported now) [#2895]
-
docs/configure.txt, docs/nut.dict: docs/configure.txt: tell more
about the --datadir option vs. --datarootdir
-
configure.ac: typo fix in comment
-
configure.ac: suggest comparing the "in-place" FS layout before
installing it live [#2895]
-
INSTALL.nut.adoc: in-place upgrades: document how to compare new
build FS layout to existing deployment to be overwritten
-
INSTALL.nut.adoc: fix dashes in "Building NUT for in-place upgrades
or non-disruptive tests" chapter title and references
(Unicode⇒ASCII)
-
scripts/external_apis/enphase/enphase-monitor.in:
scripts/external_apis/enphase: correct neg number conversion, retry
api Negative floats, and floats 0.08/0.09 were resulting in
invalid octal numbers. The envoy API occasionally stalls; extended
timeout to 10s and added a single retry to avoid spurious "nocomms"
state.
-
common/unsetenv.c, configure.ac, include/proto.h: Introduce
fallback unsetenv() e.g. for WIN32 [#2890]
-
NEWS.adoc: note the changes for upssched and NIT [#2890]
-
clients/upssched.c: also writepid() and unsetenv() in WIN32 builds
[#2890]
-
clients/upssched.c: unsetenv("NOTIFYTYPE") and unsetenv("UPSNAME")
when starting the timer loop [#2890]
-
clients/upssched-cmd: use UTC date in sample reports [#2890]
-
scripts/misc/notifyme-debug: also print envvar and other details to
stderr if calling upssched and NUT_DEBUG_LEVEL>0 [#2890]
-
tests/NIT/nit.sh: track down PID_UPSSCHED in more cases, try to
report via env file for sandbox [#2890]
-
tests/NIT/nit.sh: make sure we have upslog and upssched to test
[#2890]
-
tests/NIT/nit.sh: support per-tool NUT_DEBUG_LEVEL_* settings
[#2890]
-
scripts/misc/notifyme-debug: allow a separate
NUT_DEBUG_LEVEL_UPSSCHED [#2890]
-
tests/NIT/nit.sh: stop_daemons(): pick up PID_UPSSCHED from
$NUT_PIDPATH/upssched.pid if possible [#2890]
-
clients/upssched.c: writepid() from the timer daemon child loop
[#2890]
-
scripts/misc/notifyme-debug, tests/NIT/nit.sh: call upssched for
testing as part of upsmon NOTIFYME [#2890]
-
tests/NIT/nit.sh, tests/NIT/upssched.conf.in: tests/NIT/nit.sh:
generatecfg_upsmon_trivial(): populate also upssched.conf [#2890]
-
clients/upssched-cmd: make the sample script a bit more useful
[#2890]
-
tools/nutconf/nutconf-cli.cpp: do not declare var inside for()
-
drivers/generic_gpio_libgpiod.c: do not declare var inside for()
-
tests/generic_gpio_liblocal.c: declare variables at top of scope
-
tests/generic_gpio_utest.c: fix casting for %u printing of literal
numbers (via macro)
-
drivers/hwmon_ina219.c: fix format strings for %u printing
-
drivers/asem.c: fix casting for %x printing and maths
-
drivers/generic_gpio_libgpiod.c: declare variables at top of scope
-
drivers/generic_gpio_libgpiod.c: fix casting for %x printing
-
docs/config-prereqs.txt: update for Debian 13 (python3-pyqt5,
systemd-dev, java 21)
-
Makefile.am: install-as-root: consider nut-udev-settle.service
[#2638]
-
scripts/systemd/nut-udev-settle.service: it suffices to NOT
RemainAfterExit and still be Type=oneshot to get triggered for
driver restart(s) [#2638]
-
scripts/external_apis/enphase/enphase-monitor.in,
scripts/external_apis/enphase/enphase-monitor@.service.in:
scripts/external_apis/enphase - correct number conversion, service
file Floats <1.0 were being handled as octal, corrected to use
decimal. Corrected path substitution in enphase-monitor service
file.
-
scripts/systemd/Makefile.am: actually deliver
nut-udev-settle.service [#2638]
-
scripts/python/Makefile.am: fix delivery of
install-data-hook-app-locale-symlinks [#2857]
-
scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in:
upsconf_getDriverMedia(): comment a FIXME for more media types of
recently added driver concepts
-
NEWS.adoc, UPGRADING.adoc: document nut-udev-settle.service [#2638]
-
scripts/systemd/nut-server.service.in: small typos in comments
-
scripts/systemd/nut-udev-settle.service,
scripts/systemd/nut-systemd.preset,
scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: pull in
nut-udev-settle.service when needed [#2638]
-
scripts/systemd/nut-udev-settle.service: modify Description and
optional dependencies [#2638]
-
scripts/systemd/nut-udev-settle.service: import
systemd-udev-settle.service from systemd for adaptation as part of
NUT; update only header comment so far [#2638]
-
scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: fix typo about
systemd-udevd.service [#2638]
-
clients/.gitignore, clients/Makefile.am, include/.gitignore,
include/Makefile.am: include/Makefile.am, clients/Makefile.am: fix
possible clashes of parallel re-generation of nut_version.h and/or
libupsclient-version.h [#2875]
-
docs/man/nutdrv_qx.txt: warn that detection of Qx dialect can take
a minute [#2885]
-
NEWS.adoc: document changes for upsdrvctl [#2885, #2888]
-
drivers/upsdrvctl.c, docs/man/upsdrvctl.txt, docs/man/ups.conf.txt,
conf/ups.conf.sample: bump default maxstartdelay from 45 to 75 sec
[#2885]
-
drivers/upsdrvctl.c, drivers/main.c, docs/man/ups.conf.txt,
conf/ups.conf.sample: make "maxtries" and "retrydelay" configurable
at driver level too [#2888]
-
drivers/upsdrvctl.c: do not allow invalid "maxretry" settings
[#2888]
-
drivers/main.c: tolerate driver-level maxstartdelay setting (for
upsdrvctl) [#2885, #2888]
-
drivers/upsdrvctl.c: report applicable (global/device)
maxstartdelay values when they are exceeded [#2885]
-
docs/man/upsdrvctl.txt, drivers/upsdrvctl.c: document defaults for
maxstartdelay, maxretry and retrydelay [#2885]
-
drivers/powervar-cu.c: Add setting of ups.vendorid and
ups.productid.
-
UPGRADING.adoc: mention NUT_DEFAULT_CONNECT_TIMEOUT among new
envvars
-
appveyor.yml: handle also FTY and fightwarn branches
-
.github/workflows/codeql.yml: handle also FTY and fightwarn
branches
-
Makefile.am: nut-scanner does directly depend on clients after all
-
NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "Revert
"NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: finalize text
before NUT v2.8.3 release"" This reverts commit
b12eac3bb52ce0a348bb9601ddab30e47b8b218d. Re-releasing v2.8.3 after
small but important recipe bumps.
-
tools/gitlog2version.sh: Revert "tools/gitlog2version.sh: bump
NUT_VERSION_DEFAULT=2.8.3.1 for next development cycle" This
reverts commit 52214a8fc9b8cf30375d411eb71629181115e3dd.
Re-releasing v2.8.3 after small but important recipe bumps.
-
include/Makefile.am: nut_version.h: propagate failure (if there
ever is one) writing the temporary output
-
clients/.gitignore, clients/Makefile.am: clients/Makefile.am:
libupsclient-version.h: take a transactional approach to changing
(or not) the file others depend on
-
drivers/mge-hid.c: ecomode cmd functions addon
-
tools/gitlog2version.sh: bump NUT_VERSION_DEFAULT=2.8.3.1 for next
development cycle
-
NEWS.adoc, UPGRADING.adoc, docs/docinfo.xml.in: Revert "NEWS.adoc,
UPGRADING.adoc, docs/docinfo.xml.in: finalize text before NUT
v2.8.3 release" This reverts commit
d3427d7fd3c83b8f5b61c8e369139e2bd6168203 after the NUT release
v2.8.3.
-
docs/man/Makefile.am: Additions to docs/man/Makefile.am.
-
data/driver.list.in, docs/man/powervar-cx.txt,
drivers/powervar-cx.h: Documentation updates.
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: Cleaned up for testing.
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: USB disconnect/reconnect seems to be
working.
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: After testing on GTS and UPM. Still need USB
dis/re-connect logic.
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: Text tweaks and help text sequence
change(s).
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: Generally working drivers prior to command
testing.
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: Adding commands and variables. General
cleanups.
-
docs/config-prereqs.txt: update for OmniOS r151052
-
drivers/powervar-cs.c, drivers/powervar-cu.c,
drivers/powervar-cx.h: GTS USB working well for Init and Update.
-
common/common.c, common/nutipc.cpp, NEWS.adoc, docs/nut.dict:
support writepid() calls by non-root programs [#1717]
-
common/common.c, common/nutipc.cpp, NEWS.adoc, docs/nut.dict:
support writepid() calls by non-root programs [#1717]
-
drivers/powervar-cu.c, drivers/powervar-cx.h: Move toward working
USB driver — BROKENgit diff
-
drivers/powervar-cu.c: Change comment above VENDORID so USB is
identified correctly as Powervar.
-
drivers/Makefile.am, drivers/powervar-c.h, drivers/powervar-cs.c,
drivers/powervar-cu.c, drivers/{powervar-c.c ⇒ powervar-cx.h}: USB
building and communicating. Trying common variable and function
file for serial and usb drivers.
-
drivers/Makefile.am, drivers/powervar-c.c, drivers/powervar-c.h,
drivers/powervar-cu.c: Still trying to get USB driver to build.
-
drivers/powervar-c.c, drivers/powervar-c.h: Now most update stuff
is in place.
-
drivers/Makefile.am, drivers/powervar-c.c, drivers/powervar-c.h:
Most init stuff in place. This is before working on update
function.
-
drivers/oneac.c: Coding standard fixes.
-
include/common.h, common/common.c, drivers/dstate.c,
drivers/nutdrv_qx_blazer-common.c: define macros for
minimize_formatting_string() and validate_formatting_string()
verbosity argument values [#2450] Custom builds that do not want
to require setting driver/tool debug levels can re-define their
NUT_DYNAMICFORMATTING_DEBUG_LEVEL to e.g. 0 and see any formatting
discrepancies instantly.
-
tests/nutlogtest.c: use support for plain "-Wformat" and for
"-Wformat-extra-args" in pragmas to quiesce "bogus-looking" test
cases [#2450]
-
m4/ax_c_pragmas.m4: detect support for plain "-Wformat" and for
"-Wformat-extra-args" [#2450]
-
tests/nutlogtest.c, common/common.c: validate_formatting_string():
tolerate dynamic formats that are sub-strings and beginnings of
reference (wasteful but survivable) [#2450]
-
common/common.c: minimize_formatting_string(): warn in doc that
this may produce invalid printf-style strings and not complain
(garbage in = garbage out) [#2450]
-
tools/nut-scanner/nutscan-serial.c: add /dev/cua* patterns for
different platforms
-
tools/nut-scanner/Makefile.am, tools/nut-scanner/nutscan-serial.c:
tools/nut-scanner/nutscan-serial.c: Harden NUT work with strings by
switching to snprintf_dynamic() instead of hushing potential flaws
with macros [#2450]
-
common/common.c: vsnprintf_dynamic(): NULL "dst" or its "size" are
a valid use-case for vsnprintf() [#2450]
-
common/common.c, include/common.h, drivers/dstate.c,
tests/nutlogtest.c: introduce verbosity option to
validate_formatting_string() and minimize_formatting_string()
[#2450]
-
drivers/nutdrv_qx_blazer-common.c: blazer_process_command() for
"test.battery.start" might vary by applicable formatting strings
[#2450]
-
drivers/nutdrv_qx_bestups.c: bestups_get_pins_shutdown_mode():
comment the odd conversion, and harden with snprintf_dynamic()
[#2450]
-
drivers/nutdrv_qx_bestups.c: bestups_batt_packs(): range-check and
properly cast the value, and harden with snprintf_dynamic() [#2450]
-
clients/upsclient.c, clients/upsimage.c, clients/upsmon.c,
drivers/apc_modbus.c, drivers/apcupsd-ups.c, drivers/bcmxcp.c,
drivers/bestfortress.c, drivers/blazer.c, drivers/blazer_ser.c,
drivers/blazer_usb.c, drivers/huawei-ups2000.c,
drivers/liebert-esp2.c, drivers/nutdrv_qx.c,
drivers/nutdrv_qx_bestups.c, drivers/nutdrv_qx_blazer-common.c,
drivers/nutdrv_qx_masterguard.c, drivers/nutdrv_qx_mecer.c,
drivers/nutdrv_qx_voltronic-qs-hex.c,
drivers/nutdrv_qx_voltronic-qs.c, drivers/nutdrv_qx_voltronic.c,
drivers/powerp-bin.c, drivers/powerp-txt.c, drivers/snmp-ups.c,
drivers/usbhid-ups.c: Harden NUT work with strings by switching to
snprintf_dynamic() instead of hushing potential flaws with macros
[#2450] Found by pragmas to clean up, with :; git grep -En
Wformat-(sec\|nonlit)
-
clients/upsimage.c, clients/upssched.c, clients/upsset.c,
drivers/belkinunv.c, drivers/bestfortress.c, drivers/mge-utalk.c,
drivers/nutdrv_atcl_usb.c, drivers/richcomm_usb.c,
drivers/serial.c: Harden NUT work with strings: comment which
use-cases we DID NOT switch to snprintf_dynamic() instead of
hushing potential flaws with macros [#2450]
-
drivers/nutdrv_qx_bestups.c: bestups_model(): fix bogus sprintf()
for an unknown model [#2450]
-
common/common.c, tests/nutlogtest.c: minimize_formatting_string():
collapse known different formats for same data type into same char
to ease sanity-check comparisons [#2450]
-
docs/developers.txt, docs/new-drivers.txt, docs/nut.dict: document
hardened *_dynamic() string methods [#2450]
-
drivers/dstate.c, drivers/dstate.h: drivers/dstate.{c,h}: add
vdstate_setinfo(), vdstate_addenum() and versions for hardened
dynamic format string support [#2450]
-
common/common.c, include/common.h, tests/nutlogtest.c, NEWS.adoc:
introduce snprintf_dynamic() and related methods [#2450] Mitigate
the inherent insecurity of dynamically constructed formatting
strings vs. a fixed vararg list with its amounts and types of
variables printed by this or that method and pre-compiled in the
program. * minimize_formatting_string() with caller-specified
buffer; * minimize_formatting_string_staticbuf() for one-shot
use-cases; * validate_formatting_string() to compare a dynamic and
expected formatting strings; * vsnprintf_dynamic(),
vsnprintfcat_dynamic() for practical applications (with fixed
va_list argument); * snprintf_dynamic(), snprintfcat_dynamic(),
mkstr_dynamic() for practical applications (with … variadic
arguments); * added vsnprintfcat() with fixed va_list argument, for
good measure.
-
drivers/usbhid-ups.c: hid_ups_walk(): for HU_WALKMODE_FULL_UPDATE
with "pollonly" mode, re-read HU_FLAG_SEMI_STATIC and
HU_FLAG_STATIC entries to detect "Driver stale" situations [#1624]
-
drivers/ve-direct.c: mark ve_*() methods as static
-
drivers/ve-direct.c: fix trailing white-space and C+\+-style
comments
-
docs/packager-guide.txt: update for nut-linux-i2c and
nut-macosx-ups platform-dependent package groups
-
docs/packager-guide.txt: fix title for pkg-nut-modbus
-
configure.ac: error out for unhandled --with-drivers=xxx names
-
configure.ac: improve handling of platform-dependent (linux-i2c,
macosx) drivers - do not default to require them everywhere
-
configure.ac: move --with-drivers=… handling to before
--with-all, and consult drivers/Makefile.am for list names to
require certain dependencies
-
drivers/Makefile.am: parameterize POWERMAN_DRIVERLIST and
IPMI_DRIVERLIST like others
-
configure.ac: move "--with-drivers=name[,name…]" handling to
before we check for third-party dependencies
-
scripts/subdriver/gen-usbhid-subdriver.sh: gen-usbhid-subdriver.sh:
suggest "fix_report_desc" in subdriver_t (follow-up to PR #1245)
-
docs/packager-guide.txt: mention ipmi and modbus drivers as
separate packaging goals
-
docs/nut.dict, docs/support.txt: docs/support.txt: detail abot
GitHub issues and PRs, and IRC channel
-
drivers/al175.c, drivers/apc-ats-mib.c, drivers/apc-hid.c,
drivers/apc-mib.c, drivers/apc-pdu-mib.c, drivers/apcsmart-old.c,
drivers/apcsmart.h, drivers/apcupsd-ups.c, drivers/arduino-hid.c,
drivers/asem.c, drivers/baytech-mib.c, drivers/bcmxcp.c,
drivers/bcmxcp_ser.c, drivers/bcmxcp_usb.c, drivers/belkin-hid.c,
drivers/belkin.c, drivers/belkinunv.c, drivers/bestfcom.c,
drivers/bestfortress.c, drivers/bestpower-mib.c,
drivers/bestuferrups.c, drivers/bestups.c, drivers/blazer_ser.c,
drivers/blazer_usb.c, drivers/clone-outlet.c, drivers/clone.c,
drivers/compaq-mib.c, drivers/cps-hid.c, drivers/cyberpower-mib.c,
drivers/delta_ups-hid.c, drivers/delta_ups-mib.c,
drivers/dummy-ups.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-pulizzi-mib.c,
drivers/eaton-pdu-revelation-mib.c,
drivers/emerson-avocent-pdu-mib.c, drivers/etapro.c,
drivers/everups.c, drivers/explore-hid.c, drivers/gamatronic.c,
drivers/generic_modbus.c, drivers/genericups.c,
drivers/hpe-pdu-mib.c, drivers/huawei-mib.c,
drivers/huawei-ups2000.c, drivers/idowell-hid.c,
drivers/ietf-mib.c, drivers/isbmex.c, drivers/ivtscd.c,
drivers/legrand-hid.c, drivers/libshut.c, drivers/libusb0.c,
drivers/libusb1.c, drivers/liebert-esp2.c, drivers/liebert-hid.c,
drivers/liebert.c, drivers/macosx-ups.c, drivers/masterguard.c,
drivers/metasys.c, drivers/mge-hid.c, drivers/mge-mib.c,
drivers/mge-utalk.c, drivers/microdowell.c, drivers/microsol-apc.c,
drivers/netvision-mib.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/openups-hid.c, drivers/optiups.c,
drivers/phoenixcontact_modbus.c, drivers/pijuice.c,
drivers/powercom-hid.c, drivers/powercom.c, drivers/powerman-pdu.c,
drivers/powerpanel.c, drivers/powervar-hid.c,
drivers/powerware-mib.c, drivers/raritan-pdu-mib.c,
drivers/raritan-px2-mib.c, drivers/rhino.c, drivers/richcomm_usb.c,
drivers/riello_ser.c, drivers/riello_usb.c, drivers/safenet.c,
drivers/salicru-hid.c, drivers/skel.c, drivers/snmp-ups.c,
drivers/solis.c, drivers/tripplite-hid.c, drivers/tripplite.c,
drivers/tripplite_usb.c, drivers/tripplitesu.c, drivers/upscode2.c,
drivers/usbhid-ups.c, drivers/victronups.c, drivers/xppc-mib.c:
drivers: bump versions for all drivers, they could have been
refactored during fightwarn (so might add regressions) without
regard to versioning
-
UPGRADING: NEWS: plea to package maintainers to share their
customizations into common uptream
-
docs/documentation.txt, docs/nut.dict: documentation.txt: add a
blog by James Ridgway
-
docs/documentation.txt: documentation.txt: update with a link to
video by Techno Tim
-
docs/documentation.txt: developers.txt: "trac" is AWOL, update the
link to github wiki copy
-
docs/developers.txt: developers.txt: "alioth" is AWOL, update the
text
-
docs/download.txt: download.txt: "trac" and "alioth" are AWOL,
update the links
-
drivers/ve-direct.c: Update ve-direct.c Small spelling fix
(ret_lenght ⇒ ret_length)
-
docs/man/ve-direct.txt: Update ve-direct.txt Minor whitespace
fixes
-
docs/nut.dict: added Petr and ve to spellcheck dictionary
-
drivers/ve-direct.c: fixed for C99 fpr loop
-
docs/nut.dict: added Kubanek to dict
-
drivers/ve-direct.c: commands to set/get things
-
drivers/ve-direct.c: commands to set/get things
-
drivers/ve-direct.c: HEX checksums
-
drivers/ve-direct.c: HEX checksums
-
drivers/ve-direct.c: reply to commands
-
drivers/ve-direct.c: poll_interval, better input buffer handling
-
drivers/ve-direct.c: fixed problem with reading from driver by
lines
-
drivers/ve-direct.c: reply to commands
-
drivers/ve-direct.c: poll_interval, better input buffer handling
-
drivers/ve-direct.c: fixed problem with reading from driver by
lines
-
drivers/ve-direct.c: fix process text buffer
-
docs/man/Makefile.am, docs/man/ve-direct.txt, drivers/ve-direct.c:
added ping command
-
drivers/ve-direct.c: fix process text buffer
-
docs/man/Makefile.am, docs/man/ve-direct.txt, drivers/ve-direct.c:
added ping command
-
drivers/Makefile.am, drivers/ve-direct.c: basic thinks works
-
drivers/Makefile.am, drivers/ve-direct.c: basic thinks works