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).
-
drivers/mge-hid.c: simplify debug printouts with NUT_STRARG()
[#2684, #1737]
-
tests/nutipc_ut.cpp: tests: Do not expect signals to be messages
POSIX does not require 1:1 delivery per kill() call. Adjust the
test to not require behavior that 1) POSIX does not require and 2)
is only probabalistically observed to happen, even if "most of the
time".
-
include/nutipc.hpp: core ipc: Handle select returning EINTR
-
drivers/mge-hid.c: typo space removed
-
drivers/mge-hid.c: comment regarding ChargerType
-
drivers/mge-hid.c: restore white-space (TAB indentation and between
decl type and varname)
-
drivers/mge-hid.c: restore white-space (TAB indentation and between
decl type and varname) [#2684]
-
docs/snmp-subdrivers.txt: update with snmp_info_default() macro
example [#2285]
-
docs/new-drivers.txt: quote driver names; note modbus unrelated
drivers so far [#50, #1765]
-
NEWS.adoc: moved phoenixcontact_modbus update to other drivers
[#2689]
-
drivers/phoenixcontact_modbus.c: fix use of pragmas for default
switch cases [#2689]
-
drivers/phoenixcontact_modbus.c: no break after fatalx() [#2689]
-
drivers/mge-hid.c: add debug message for bypass/eco outside limits
-
drivers/mge-hid.c: Fix for bypass/eco when no values or outside of
limits
-
drivers/nhs_ser.c: populate missed explicit method parameter
[#2692]
-
drivers/mge-hid.c: add debug log when enter to eco/bypass modes
-
drivers/mge-hid.c: fix eco vars in debug meassage
-
drivers/mge-hid.c: Fix for bypass limit In case we dont have Bypass
transfer limit variables but still have ability to enter Bypass
mode
-
drivers/phoenixcontact_modbus.c: Handled default case with error
-
drivers/phoenixcontact_modbus.c: Re-implemented default cases.
-
drivers/phoenixcontact_modbus.c: Extended comment to "default"
label example
-
NEWS.adoc, configure.ac, docs/man/Makefile.am,
docs/man/nhs_ser.txt, docs/nut.dict, drivers/Makefile.am:
configure.ac, drivers/Makefile.am, docs/man/Makefile.am,
docs/man/nhs_ser.txt, NEWS.adoc: temporarily constrain nhs_ser to
Linux-only NUT builds [#2692]
-
data/driver.list.in: add usbhid-ups supported Ippon models [#2702]
-
drivers/nhs_ser.c: hide upsdrv_updateinfo() debug log of processing
at verbosity 3-4_ [#2692]
-
drivers/nhs_ser.c: keep debug log of main milestones and errors at
verbosity 1, add func [#2692]
-
drivers/nhs_ser.c: quieter logging in print_pkt_hwinfo() and
print_pkt_data() [#2692]
-
drivers/nhs_ser.c: log method starting/ending quieter and with use
of func [#2692]
-
drivers/nhs_ser.c: upsdrv_updateinfo(): rename "nhs." datapoints
into "experimental.nhs." namespace [#2692]
-
drivers/nhs_ser.c: upsdrv_updateinfo(): FIXME commented - same
criteria used for 3 alarms [#2692]
-
drivers/nhs_ser.c: memory robustness: strcpy⇒strncpy [#2692]
-
drivers/nhs_ser.c: memory robustness: sprintf⇒snprintf [#2692]
-
drivers/nhs_ser.c: fix code markup into NUT style [#2692] * indent
with TAB characters, * separate declaration type and varname with
TAB(s), * use space after comma
-
drivers/nhs_ser.c: fix "for (int i…)" to use of pre-declared
variables [#2692]
-
drivers/nhs_ser.c: fix DEFAULLTPERC ⇒ DEFAULTPERC typo in the
macro name [#2692]
-
drivers/nhs_ser.c: fix comment markup, wrap long lines, inject TABs
in structs [#2692] Also drop comments from standalone program
legacy now that this driver is an integrated part of NUT codebase.
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
sprintf() from and to same variable [#2692] nhs_ser.c: In function
‘upsdrv_updateinfo’: nhs_ser.c:1858:37: error: ‘sprintf’ argument 3
overlaps destination object ‘alarm’ [-Werror=restrict] 1858 \|
sprintf(alarm,"%s %s",alarm,"|UPS IN BATTERY MODE|"); \|
^~~~~~~~~~~~~~~~~~~~~~~~~~\
-
drivers/nhs_ser.c: upsdrv_updateinfo(): refactor debug of bad mains
[#2692]
-
drivers/mge-hid.c: change voltage limit setting same as frequency
in eco function also
-
drivers/mge-hid.c: change voltage limit setting same as frequency
-
drivers/mge-hid.c: move NUT_UNUSED_VARIABLE(value); back down
-
drivers/mge-hid.c: change the state for debug when no eco transfer
limits avalible to use defaults
-
drivers/mge-hid.c: change vars in
eaton_input_eco_mode_check_range()
-
drivers/mge-hid.c: change vars in eaton_input_bypass_check_range()
-
data/cmdvartab, docs/nut-names.txt: much clear description for
input.transfer.bypass.forced
-
drivers/libusb1.c: fix wrong return value of
nut_libusb_get_interrupt() cf github #2401. When global var
interrupt_size is not set, a transfer size of SMALLBUF (512) is
requested when calling libusb_interrupt_transfer(). Our function
nut_libusb_get_interrupt() should return the actual transferred
size. Otherwise, the caller will attempt to parse any uninitialized
data in the buffer after the response. In libusb0.c this was done
correctly by using the return value of usb_interrupt_read(). With
libusb1, the transferred size is written to tmpbufsize, and should
therefore be used as the return val.
-
drivers/phoenixcontact_modbus.c: Added pragma statemets as per tip
to avoid compiler complains on "default" label in switch
statements.
-
drivers/nhs_ser.c: Another miscalculation in battery time duration.
-
drivers/nhs_ser.c: Change on line 1936 - Battery voltage hardcoded
in 12.0 v
-
docs/developers.txt, docs/nut.dict: docs/developers.txt: clarify
pragmas in switch/case/default vs. enum [#2689, #823]
-
NEWS.adoc, drivers/dstate.c: drivers/dstate.c: fflush(stdout) after
dstate_dump() [#2695]
-
drivers/libusb1.c: nut_libusb_open(): fix if-clause typo to report
that no devices were accessible (and none others matched) [#2699]
-
NEWS.adoc, drivers/libusb0.c, drivers/libusb1.c:
drivers/libusb{0,1}.c, NEWS.adoc: report if some devices WERE
accessible but did not match [#2699]
-
drivers/mge-hid.c: 9PX added to comments
-
drivers/mge-hid.c: add 9PX models also
-
drivers/mge-hid.c: change to small chars
-
drivers/mge-hid.c: added Eaton 9SX
-
drivers/nhs_ser.c: Error on line 1717, on function to reopen serial
in case of problem. We have default values but I set with variable
porta and baudrate the correct port and speed.
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
float overflow [#2692] CodeQL alert: * Multiplication result
converted to larger type High * Multiplication result may overflow
float before it is converted to double.
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
unused methods [#2692] Hide them away: nhs_ser.c:939:15: error:
unused function strtolow [-Werror,-Wunused-function] static char
-
strtolow(char* s) { ^ nhs_ser.c:902:12: error: unused function
write_serial [-Werror,-Wunused-function] static int
write_serial(int fd, const char * dados, int size) { \^ 2 errors
generated.
-
docs/man/nhs_ser.txt, drivers/nhs_ser.c: introduce option flags for
debug_pkt_raw, debug_pkt_data, debug_pkt_hwinfo [#2692] Also helps
avoid dead code and this warning: nhs_ser.c:467:13: error: unused
function print_pkt_data [-Werror,-Wunused-function] static void
print_pkt_data(pkt_data data) { \^
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
shadowed variables (serial_fd) [#2692]
-
drivers/nhs_ser.c: drivers/nhs-nut.c: update © heading [#2692]
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
comparing floating-points [#2692] nhs_ser.c:1873:74: error:
comparing floating point with == or != is unsafe
[-Werror,-Wfloat-equal] perc = get_vin_perc("vin_low_warn_perc") ==
get_vin_perc("vin_low_crit_perc") ? 2 : 1;
~~~~~~~~~~~~~~~~ \^
~~~~~~~~~~~~~~~~\
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
casting round() to int/long [#2692] This is an odd one, see
https://stackoverflow.com/a/43481925/4715872 nhs_ser.c:1865:74:
error: cast from function call of type double to non-matching
type int [-Werror,-Wbad-function-cast]
dstate_setinfo("ups.realpower","%d",(int)round(vpower));
^~~~~~\~ The
lrint()
family of methods should be part of
C99 and above, returning a long
approximation of a double
or
float
argument. Had to adjust dstate_setinfo() parameters from
(unsigned) int to long.
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
variable length array [#2692] nhs_ser.c:897:21: error: variable
length array used [-Werror,-Wvla] uint8_t message[size]; ^~\
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
mixing declarations and code [#2692] nhs_ser.c:904:17: error:
mixing declarations and code is incompatible with standards before
C99 [-Werror,-Wdeclaration-after-statement] ssize_t bytes_written =
write(serial_fd, message,size); \^
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
shadowed variables [#2692] nhs_ser.c:519:32: error: declaration
shadows a variable in the global scope [-Werror,-Wshadow] static
int openfd(const char * porta, int BAUDRATE) { ^ nhs_ser.c:247:13:
note: previous declaration is here static char porta[1024] =
DEFAULTPORT; ^ nhs_ser.c:1943:42: error: declaration shadows a
local variable [-Werror,-Wshadow] for (int i = 0; i < 5; i+\+) { ^
nhs_ser.c:1657:18: note: previous declaration is here unsigned int
i = 0; \^
-
drivers/nhs_ser.c: drivers/nhs-nut.c: fix compiler complaints -
static vars/methods and strict parameters [#2692] * Static
internal methods and pre-declarations on top of file:
nhs_ser.c:1549:14: error: no previous prototype for function
get_va [-Werror,-Wmissing-prototypes] unsigned int get_va(int
equipment) { ^ nhs_ser.c:1549:1: note: declare static if the
function is not intended to be used outside of this translation
unit unsigned int get_va(int equipment) { ^ static * Explicit void
args: nhs_ser.c:1571:20: error: this old-style function definition
is not preceded by a prototype [-Werror,-Wstrict-prototypes]
unsigned int get_ah() { \^
-
drivers/Makefile.am: Rename "nhs-nut" to "nhs_ser" follow-up
[#2692]
-
drivers/nhs_ser.c: update comment about use of "clang --analyze"
[#2692]
-
data/driver.list.in: update with devices supported by nhs_ser
driver [#2692] List extracted from current driver code with grep
strcpy(data.upsdesc drivers/nhs_ser.c | \ sed s/\^
strcpy(data.upsdesc,"\(.\)".*$/"NHS Sistemas Eletronicos
LTDA"\t"ups"\t"2"\t"\1"\t"Serial port"\t"nhs_ser"/ \ >>
data/driver.list.in
-
NEWS.adoc, docs/man/nhs_ser.txt, docs/nut.dict: NEWS.adoc,
docs/man/nhs_ser.txt: rephrase naming of devices covered by nhs_ser
driver [#2692]
-
NEWS.adoc, docs/man/Makefile.am, docs/man/{nhs-nut.txt ⇒
nhs_ser.txt}, drivers/Makefile.am, drivers/{nhs-nut.c ⇒
nhs_ser.c}: Rename "nhs-nut" to "nhs_ser" [#2692]
-
docs/man/Makefile.am, docs/man/nhs-nut.txt, docs/nut.dict:
docs/man/nhs-nut.txt: introduce new driver manpage [#2692]
-
drivers/nhs-nut.c: revise upsdrv_makevartable(): fix help messages
[#2692]
-
drivers/nhs-nut.c: revise upsdrv_makevartable(): use snprintf() and
fix some more markup [#2692]
-
drivers/nhs-nut.c: revise upsdrv_makevartable() content and markup
[#2692]
-
drivers/nhs-nut.c: fix DRIVER_VERSION to double-digits [#2692]
-
NEWS.adoc, docs/nut.dict: NEWS.adoc: introduce nhs-nut (sic) driver
[#2692]
-
drivers/nhs-nut.c: fix upsdrv_shutdown() [#2692]
-
drivers/nhs-nut.c: fix trailing whitespace [#2692]
-
drivers/nhs-nut.c: fix compiler complaints [#2692] nhs-nut.c: In
function ‘mount_hwinfo’: nhs-nut.c:786:5: error: missing
initializer for field ‘end_marker’ of ‘pkt_hwinfo’
[-Werror=missing-field-initializers] 786 | }; | ^
nhs-nut.c:177:18: note: ‘end_marker’ declared here 177 \|
unsigned int end_marker; | ^~~~~\~
-
drivers/nhs-nut.c: fix compiler complaints [#2692] Copy-paste
typo? nhs-nut.c: In function ‘mount_datapacket’: nhs-nut.c:693:29:
error: operation on ‘pktdata.icarregrms_real’ may be undefined
[-Werror=sequence-point] 693 \| pktdata.icarregrms_real =
pktdata.icarregrms_real = pktdata.icarregrms * 30; \|
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~\
-
drivers/nhs-nut.c: fix compiler complaints [#2692] nhs-nut.c: In
function ‘get_bit_in_position’: nhs-nut.c:357:22: error: comparison
of integer expressions of different signedness: ‘int’ and ‘size_t’
{aka ‘long unsigned int’} [-Werror=sign-compare] 357 \| if
(bit_position >= size * 8) { | ^\~
-
drivers/nhs-nut.c: fix compiler complaints [#2692] nhs-nut.c: In
function ‘upsdrv_makevartable’: nhs-nut.c:2090:88: error: format
‘%f’ expects argument of type ‘double’, but argument 3 has type
‘int’ [-Werror=format=] 2090 \| sprintf(help,"Voltage In
Percentage to calculate warning low level. Default is
%0.2f",DEFAULLTPERC); \|
~~^ \|
| \|
double \|
%0.2d etc. for other default macros
-
drivers/nhs-nut.c: fix compiler complaints [#2692] nhs-nut.c: In
function ‘upsdrv_updateinfo’: nhs-nut.c:1733:53: error: format not
a string literal and no format arguments [-Werror=format-security]
1733 \| upsdebugx(1,alarm);
| ^~\~
-
drivers/nhs-nut.c: fix compiler complaints [#2692]
nhs-nut.c:797:29: error: iteration 6 invokes undefined behavior
[-Werror=aggressive-loop-optimizations] 797 \|
pkthwinfo.status[i] =
get_bit_in_position(&datapacket[14],sizeof(datapacket[14]),i,0); \|
~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\~
-
drivers/nhs-nut.c: fix compiler complaints [#2692]
nhs-nut.c:713:43: error: suggest braces around empty body in an
‘if’ statement [-Werror=empty-body] 713 \| if
(pktdata.perc_output > 100); \|
^ nhs-nut.c:713:13: error: this ‘if’ clause does not guard…
[-Werror=misleading-indentation] 713 \| if
(pktdata.perc_output > 100); | ~ nhs-nut.c:714:17:
note: …this statement, but the latter is misleadingly indented as
if it were guarded by the ‘if’ 714 \|
pktdata.perc_output = 100; | ~~\
-
drivers/nhs-nut.c: fix compiler complaints [#2692]
nhs-nut.c:604:59: error: unused parameter ‘size’
[-Werror=unused-parameter] 604 \| pkt_data mount_datapacket(unsigned
char * datapacket, int size, double tempodecorrido,pkt_hwinfo
pkt_upsinfo) { \|
~~~\ nhs-nut.c:604:72: error: unused parameter ‘tempodecorrido’
[-Werror=unused-parameter] 604 \| pkt_data mount_datapacket(unsigned
char * datapacket, int size, double tempodecorrido,pkt_hwinfo
pkt_upsinfo) { \|
~~~~~~~~~\~
-
drivers/nhs-nut.c: fix compiler complaints [#2692] nhs-nut.c: In
function ‘print_pkt_data’: nhs-nut.c:464:17: error: zero-length
gnu_printf format string [-Werror=format-zero-length] 464 \|
upsdebugx(1,""); | ^\~
-
drivers/Makefile.am: add nhs-nut to SERIAL_DRIVERLIST [#2692]
-
data/cmdvartab, docs/nut-names.txt: more clear description for
input.transfer.bypass.forced
-
data/cmdvartab: change enable/disable to (enabled or disabled) in
cmdvartab
-
drivers/phoenixcontact_modbus.c: Removed default case label since
clang complains.
-
drivers/nhs-nut.c: Some fixes in 1) Miscalculations of battery
voltage and amps 2) Miscalculations in battery capacity 3)
Miscalculations in time remaining
-
drivers/nhs-nut.c: Function have some errors and again need to
re-commit code.
-
drivers/nhs-nut.c: Some small fixes in get_bit_in_position()
-
drivers/nhs-nut.c: Some minor alterations
-
drivers/phoenixcontact_modbus.c: Corrected enum definition.
-
NEWS.adoc: Updated NEWS.adoc
-
drivers/phoenixcontact_modbus.c: Used enum for model type instead
of defines
-
drivers/phoenixcontact_modbus.c: Alligned device.model variable
-
drivers/phoenixcontact_modbus.c: Review of variable declaration due
to clang build failure
-
drivers/nhs-nut.c: First commit of NHS drivers/nhs-nut.c
-
drivers/phoenixcontact_modbus.c: Avoid to use uint32_t* reading
more than one modbus address and corrected alarm trigger (wrong bit
used)
-
drivers/phoenixcontact_modbus.c: Added management for newer models
which have different modbus addresses. Choice is made basing on
firmware version.
-
drivers/mge-hid.c, drivers/usbhid-ups.h: comments changes
-
drivers/mge-hid.c: more small comments changes
-
docs/nut-names.txt: fix again
-
docs/nut-names.txt: fix nut-names.txt
-
scripts/python/app/NUT-Monitor: improve portability (especially in
testing) by not relying on only shebang
-
scripts/python/app/NUT-Monitor-py2gtk2.in,
scripts/python/app/NUT-Monitor-py3qt5.in:
scripts/python/app/NUT-Monitor-py3qt5.in and
NUT-Monitor-py2gtk2.in: if SCRIPTDIR/../module/PyNUT.py exists,
import it preferentially
-
drivers/mge-hid.c: small comments added
-
drivers/mge-hid.c: small comments change
-
drivers/usbhid-ups.h: small comment added
-
drivers/usbhid-ups.c, drivers/usbhid-ups.h: add ess mode
-
drivers/mge-hid.c: small comments change
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: rename
input.transfer.forced to input.transfer.bypass.forced
-
drivers/mge-hid.c: reset ABM path when ABM not enabled
-
data/cmdvartab, docs/nut-names.txt: change rest bypass to Bypass
-
docs/nut-names.txt: bypass to Bypass in nut-names.txt
-
data/cmdvartab, docs/nut-names.txt: added to cmdvartab and
nut-names.txt
-
drivers/mge-hid.c: added input.transfer.bypass.overload and
input.transfer.bypass.outlimits
-
drivers/mge-hid.c: added input.bypass.switchable
-
drivers/mge-hid.c: change double to %.1f of voltage and frequency
-
drivers/mge-hid.c: add debug log in case out of limits for
bypass/eco
-
drivers/mge-hid.c: comment added
-
drivers/mge-hid.c: rename eco function
-
drivers/usbhid-ups.c: report unhandled negative HIDGetEvents()
return values [#2681]
-
NEWS.adoc, docs/man/usbhid-ups.txt, drivers/usbhid-ups.c,
include/nutconf.hpp: drivers/usbhid-ups.c: fix fallout of #2671 and
complete the feature with optional
interrupt_pipe_no_events_tolerance
setting [#2681]
-
NEWS.adoc: fix for upsnotify references
-
drivers/mge-hid.c: fix commands func
-
drivers/mge-hid.c: add check range for eco/bypass commands
-
drivers/mge-hid.c: bump subdriver version for added ECO code
[#2637]
-
drivers/mge-hid.c: drop ECO/ABM-related changes from PR #2637
(revised in later PR)
-
clients/status.h: lower severity of ECO state [#2637]
-
drivers/mge-hid.c: reshuffle whitespace/markup of ECO code to same
standard as around [#2637]
-
configure.ac: new distros' clang-medium warnings want
-Wno-nullable-to-nonnull-conversion flag
-
drivers/apc_modbus.c: actually, report USB support (also) in
DRIVER_NAME [#2666]
-
configure.ac, NEWS.adoc, UPGRADING.adoc: reshuffle defaulting of
--with-modbus\+usb=yes and fix a typo checking --with-drivers there
[#2666]
-
NEWS.adoc, UPGRADING.adoc: NEWS.adoc: document fixes for
libmodbus\+libusb support [#2666]
-
drivers/apc_modbus.c: report (in debug traces) whether USB-capable
libmodbus was used to build this driver [#2666]
-
configure.ac, docs/configure.txt: configure.ac: introduce
--with-modbus\+usb option to require USB-capable libmodbus [#2666]
-
configure.ac: report "Modbus drivers" as plural [#2676]
-
configure.ac: report if building modbus\+usb [#2666]
-
m4/nut_check_libmodbus.m4: try re-detecting libmodbus support for
libusb adding its CFLAGS and LIBS into the loop [#2666]
-
docs/config-prereqs.txt: update Debian/Ubuntu/TermUX with explicit
binutils (for ldd) [#2673]
-
NEWS.adoc, configure.ac, m4/nut_report_feature.m4: configure.ac,
m4/nut_report_feature.m4: group lines of first section better with
NUT_REPORT_FEATURE, NUT_REPORT_DRIVER, NUT_REPORT_PROGRAM [#2676]
-
drivers/mge-hid.c: add ChargerType to ABM Table
-
clients/Makefile.am: consider LIBSSL_LDFLAGS_RPATH [#2674]
-
m4/nut_check_libnss.m4: experiment more with LIBSSL_LDFLAGS_RPATH
on Solarish platforms [#2674]
-
drivers/Makefile.am, server/Makefile.am,
tools/nut-scanner/Makefile.am: server/Makefile.am,
drivers/Makefile.am: consider LIBSSL_LDFLAGS_RPATH also [#2674]
-
ci_build.sh: OpenIndiana and 32-bit libgd, do not only check about
that situation with GCC [#2673]
-
m4/nut_check_libnetsnmp.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libneon.m4: convert to use depCFLAGS etc. and mix them
with build-common CFLAGS etc. for target-platform-relevant checks
[#2673]
-
m4/nut_check_libmodbus.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libgpiod.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libavahi.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libwrap.m4: convert to use depCFLAGS etc. and mix them
with build-common CFLAGS etc. for target-platform-relevant checks
[#2673]
-
m4/nut_check_libusb.m4: convert to use depCFLAGS etc. and mix them
with build-common CFLAGS etc. for target-platform-relevant checks
[#2673]
-
m4/nut_check_libsystemd.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libregex.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libpowerman.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libopenssl.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libnss.m4: convert to use depCFLAGS etc. and mix them
with build-common CFLAGS etc. for target-platform-relevant checks
[#2673]
-
m4/nut_check_libltdl.m4: convert to use depCFLAGS etc. and mix them
with build-common CFLAGS etc. for target-platform-relevant checks
[#2673]
-
m4/nut_check_libfreeipmi.m4: convert to use depCFLAGS etc. and mix
them with build-common CFLAGS etc. for target-platform-relevant
checks [#2673]
-
m4/nut_check_libgd.m4: convert to use depCFLAGS etc. and mix them
with build-common CFLAGS etc. for target-platform-relevant checks
[#2673]
-
m4/nut_check_libgd.m4: in test program, check also the
gdImageString() [#2673]
-
NEWS.adoc, docs/config-prereqs.txt, docs/nut.dict: NEWS.adoc,
docs/config-prereqs.txt: document solutions for #2673 and #2674
-
configure.ac, m4/nut_check_libnss.m4, m4/nut_check_libopenssl.m4,
tools/nut-scanner/Makefile.am: m4/nut_check_libnss.m4,
tools/nut-scanner/Makefile.am, etc: track LIBSSL_LDFLAGS_RPATH
(custom on Solaris/illumos) [#2674]
-
docs/config-prereqs.txt: update Mozilla NSS notes for OpenIndiana
and OmniOS
-
ci_build.sh: more CI clues to recognize target bitness
-
docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
update for OpenIndiana packaging of Mozilla NSPR
-
docs/config-prereqs.txt: extra header-nss package in OpenIndiana
2024.x
-
ci_build.sh: revise build of CGI on OI (troublesome with 32-bit
variant nowadays)
-
drivers/usbhid-ups.c: handle zero HID events with reconnection
-
docs/ci-farm-lxc-setup.txt, docs/config-prereqs.txt,
docs/images/ci/jenkins-nut.txt, docs/nut.dict:
docs/config-prereqs.txt, docs/ci-farm-lxc-setup.txt et al: update
for NUT CI farm baseline JDK17 (per Jenkins core requirements since
autumn 2024)
-
drivers/ydn23.h: fix bad lchksum Fix a bad checksum in length
field. However, ‘liebert-gxe’ was not affected because the frame
never exceeds 2\^4-1.
-
drivers/mge-hid.c: improve path decisions and comments
-
drivers/mge-hid.c: remove unused eaton_abm_charger_type_fun()
-
drivers/mge-hid.c: add UPS.BatterySystem.Charger.ChargerType to abm
table
-
drivers/mge-hid.c: improve debug and enabled-ness
-
drivers/mge-hid.c: remove ABM_ENABLED_TYPE
-
drivers/mge-hid.c: explicit cast doubles to integers
-
drivers/mge-hid.c: refactor, treat ABM unknown as disabled
-
drivers/mge-hid.c: added comment
-
drivers/mge-hid.c: remove comment
-
drivers/mge-hid.c: more clear comments for charger modes
-
drivers/mge-hid.c: typo in comment
-
drivers/mge-hid.c: make abm charger tables better look
-
drivers/mge-hid.c: add info for Note ABM
-
drivers/mge-hid.c: typo in commment
-
drivers/mge-hid.c: update and clean code for statuses for easy to
read and work
-
drivers/mge-hid.c: make code looks better
-
docs/acknowledgements.txt: PCM/Powercom has a link back to NUT,
nice!
-
docs/asciidoc.conf: support anchors in PDF
-
docs/acknowledgements.txt: use 4th arg to linkdoc specifically for
HTML-Chunked section file names
-
docs/asciidoc.conf: introduce 4th arg to linkdoc specifically for
HTML-Chunked section file names
-
docs/acknowledgements.txt: adapt reference to anchor in README to
different renderers
-
docs/acknowledgements.txt: use "linkdoc" instead of "linksingledoc"
(nut-website does not deliver single-HTML versions)
-
drivers/mge-hid.c: remove dischrg in ups.status when on battery for
9E Model
-
drivers/mge-hid.c: fix again
-
drivers/mge-hid.c: fix if
-
drivers/mge-hid.c: Fix again
-
drivers/mge-hid.c: Fix Typo
-
drivers/mge-hid.c: add possibly fix for 9E not chaging status when
battery.charge < 100% , also avoid using same paths
-
drivers/mge-hid.c: bump version for beeper changes
-
docs/nut.dict: update for recent edits
-
drivers/mge-hid.c: change back to ABM_UNKNOWN and use only BOOL
chrg/dschrg (eaton_charging_info(),eaton_discharging_info()) func
to make same as was in original code for Constant Charge
-
docs/nut.dict: add linksrcdoc and suggestsrcdoc macros
-
NEWS.adoc: beeper support with MGE HID [#2662]
-
UPGRADING.adoc: document ALARMCRITICAL setting [#2658]
-
INSTALL.nut.adoc: fix markup for linksrcdoc to GH-compatible macro
call …and use proper new extensions
-
docs/ci-farm-lxc-setup.txt: fix text around linksrcdoc
-
docs/asciidoc.conf: fix anchored linkdoc for chunked-HTML (with
anchors becoming filenames)
-
docs/asciidoc.conf: refactor repetitive text with suggestsrcdoc
-
docs/asciidoc.conf: define linksrcdoc after its consumers and do
not refer to "link" macro anymore
-
Makefile.am: maintainer-asciidocs: port POSIX-shell replace_all()
to help with backslashes
-
INSTALL.nut.adoc, README.adoc: Update NUT documentation sources
with current docs/asciidoc-vars.conf: 4baaac1d4 (2024-10-20)
-
docs/acknowledgements.txt: experiment with 3-argument linksingledoc
rendering
-
INSTALL.nut.adoc, docs/ci-farm-lxc-setup.txt: experiment with
linksrcdoc and 3-argument linkdoc rendering
-
docs/asciidoc-vars.conf: define linksrcdoc with top_srcdir in th
eloop
-
docs/asciidoc-vars.conf: try defining linksrcdoc macro
-
docs/asciidoc.conf: add linksrcdoc macro; extend definition of
linkdoc and linksingledoc macros with optional reference to NUT
source text document
-
docs/asciidoc.conf: update comments about macro definition per se
-
drivers/mge-hid.c: add comment
-
drivers/mge-hid.c: change back to
ABM_DISABLED
-
drivers/mge-hid.c: set
ABM_UNKNOWN
for test ups.status
-
drivers/mge-hid.c: add
advanced_battery_mode
flag for not
overwrite advanced_battery_monitoring
if eaton_abm_enabled_fun()
was runned
-
drivers/mge-hid.c: add comment
-
drivers/mge-hid.c: set
advanced_battery_monitoring to disable
in
case of advanced_battery_monitoring != ABM
-
drivers/mge-hid.c: change debug message
-
drivers/mge-hid.c: comment change
-
drivers/mge-hid.c: add debug for set advanced_battery_type
-
drivers/mge-hid.c: fix again
-
drivers/mge-hid.c: typo fix
-
drivers/mge-hid.c: fixes
-
drivers/mge-hid.c: add eaton_abm_enabled_type_info()
-
drivers/mge-hid.c: typo fix
-
drivers/mge-hid.c: add eaton_abm_charger_type_fun()
-
drivers/mge-hid.c: add eaton_abm_charger_type_fun()
-
drivers/mge-hid.c: change if also in eaton_abm_enabled_fun()
-
clients/status.h: change severity to 1 instead 2
-
drivers/mge-hid.c: change back to
if
(dstate_getinfo("battery.charger.type"))
-
drivers/mge-hid.c: change all status same as original was \+ add
ABM_ENABLED_TYPE
-
drivers/mge-hid.c: Update mge-hid.c
-
drivers/mge-hid.c: Update mge-hid.c
-
clients/upsmon.c: additional debug messages for alarm states
-
docs/ci-farm-lxc-setup.txt: fix asciidoc markup for nested
paragraphs in indented lists
-
drivers/mge-hid.c: add back missing
advanced_battery_monitoring=value;
-
drivers/mge-hid.c: try simple eaton_abm_enabled_fun()
-
drivers/mge-hid.c: int to double
-
drivers/mge-hid.c: fix declaration
-
drivers/mge-hid.c: fix eaton_abm_enabled_fun()
-
NEWS.adoc: fix typo regarding alarm handling
-
NEWS.adoc: adapt for broader scope of alarm handling
-
tools/nutconf/nutconf-cli.cpp: add alarm notifiers
-
scripts/python/app/NUT-Monitor-py2gtk2.in: add alarm status
-
scripts/python/app/NUT-Monitor-py3qt5.in: add alarm status
-
scripts/augeas/nutupsmonconf.aug.in: add alarm notifiers
-
include/nutconf.hpp: add alarm notifiers
-
docs/man/nutconf.txt: add alarm notifiers
-
common/nutconf.cpp, common/nutwriter.cpp: add alarm notifiers
-
clients/status.h: add alarm status
-
drivers/mge-hid.c: battery.charger.type.status added
-
drivers/mge-hid.c: same for eaton_abm_chrg_dischrg_info()
-
drivers/mge-hid.c: put battery.charger.status \+
battery.charger.mode and battery.charger.status for bath in one
functions
-
drivers/mge-hid.c: add eaton_abm_chrg_dischrg_status_fun()
-
drivers/mge-hid.c: added battery.charger.abm.status for
UPS.BatterySystem.Charger.Status
-
drivers/mge-hid.c: add eaton_abm_status_fun()
-
drivers/mge-hid.c: fix ABM Table
-
drivers/mge-hid.c: some try for add battery.charger.status \+
battery.charger.mode
-
drivers/mge-hid.c: add
battery.charger.type
-
docs/man/upsmon.txt: make alarm notifiers consistent
-
docs/man/upsmon.conf.txt: add alarm settings
-
docs/man/upsmon.txt: add alarm settings
-
docs/nut.dict: add alarm-related words
-
conf/upsmon.conf.sample.in: add alarm settings
-
NEWS.adoc: add upsmon alarm handling
-
clients/upsmon.c, clients/upsmon.h: add alarm handling
-
docs/nut-names.txt: change to
on
in nut-names.txt also
-
drivers/mge-hid.c: change some values for bypass/eco
-
data/cmdvartab, docs/nut-names.txt:
ecocontrol
change description
-
docs/nut-names.txt: change nut-names.txt also
-
drivers/mge-hid.c: change eco/bypass values to avoid
ERR TOO-LONG
-
drivers/mge-hid.c: add comment
-
drivers/mge-hid.c: fix upsdebugx
-
drivers/mge-hid.c: check freq limit in separate block for
eaton_input_bypass_check_range()
-
drivers/mge-hid.c: check freq limit in separate block in eco mode
-
drivers/mge-hid.c: add function for check eco range
-
drivers/mge-hid.c: change comments sign
-
drivers/mge-hid.c: add frequency default in case no value
-
NEWS.adoc: announce ECO mode concept support [issue #2495, PR
#2637]
-
scripts/python/app/NUT-Monitor-py2gtk2.in,
scripts/python/app/NUT-Monitor-py3qt5.in:
scripts/python/app/NUT-Monitor-*: add reporting for ECO status
[#2367]
-
clients/upsmon.c, clients/upsmon.h, common/nutconf.cpp,
common/nutwriter.cpp, conf/upsmon.conf.sample.in,
docs/man/upsmon.conf.txt, docs/man/upsmon.txt, docs/nut.dict,
include/nutconf.hpp, scripts/augeas/nutupsmonconf.aug.in,
tools/nutconf/nutconf-cli.cpp: upsmon (sources, docs, config
samples, C+\+ nutconf support): add tracking and reporting for ECO
status [#2367]
-
clients/status.h: add an entry for ECO status [#2367]
-
docs/nut.dict: update for changes in docs/nut-names.txt [#2495,
#2637]
-
drivers/mge-hid.c: add freq to function comment
-
drivers/mge-hid.c: add frequency range check to
eaton_input_bypass_check_range()
-
drivers/mge-hid.c: move declaration uppper
-
drivers/mge-hid.c: fix again upsdebugx
-
drivers/mge-hid.c: fix typo
-
drivers/mge-hid.c: more details for debugx \+ move declaration up
-
drivers/mge-hid.c: fix2 debugx
-
drivers/mge-hid.c: fix for upsdebugx
-
drivers/mge-hid.c: function to up for definition
-
drivers/mge-hid.c: fix3 eaton_input_bypass_check_range()
-
drivers/mge-hid.c: add define values
-
drivers/mge-hid.c: fix3 eaton_input_bypass_check_range()
-
drivers/mge-hid.c: fix2 eaton_input_bypass_check_range()
-
drivers/usbhid-ups.c: disable eco alarm
-
drivers/mge-hid.c: rename to eaton_input_bypass_check_range()
-
drivers/mge-hid.c: fix eaton_check_bypass_range()
-
drivers/mge-hid.c: fix for eaton_check_bypass_range()
-
drivers/mge-hid.c: add eaton_check_bypass_range() for check bypass
limit
-
drivers/mge-hid.c: input.bypass.switch.off up to 12 becose return
11 bytes
-
docs/nut-names.txt: added values to nut-names
-
data/cmdvartab, drivers/mge-hid.c: add values to cmdvartab \+ change
to bypass.sart/stop instead bypass.on/off
-
drivers/mge-hid.c, drivers/usbhid-ups.c: rename to ECO(HE) mode!
fix comments
-
docs/Makefile.am, docs/images/ci/ci-root.css:
docs/images/ci/ci-root.css: Introduce a root NUT CI farm CSS file
to include others (tracked in different repos)
-
docs/images/ci/jenkins-nut.css: update comments, add a style for
Customizable Header plugin with DigitalOcean logo
-
docs/man/usbhid-ups.txt: battery.runtime=65535 troubleshooting
[#731, #1740 et al]
-
data/driver.list.in: Add APC Back-UPS BK650M2-CH report with
usbhid-ups [#1970]
-
docs/man/usbhid-ups.txt: extra comments about CPS offdelay [#578]
Closes: #578
-
data/driver.list.in: Add NetVision U4BC02CB00NY100 report with
snmp-ups [#1732] Closes: #1732
-
data/driver.list.in: Add APC Smart-UPS 5000 RM report with snmp-ups
[#1559]
-
data/driver.list.in: Add Liebert GXT4-1500RT120 report
[nut-ddl#42]
-
data/driver.list.in: Add Powermatic Cleanline L-1000C report
[nut-ddl#43]
-
data/driver.list.in: Add APC Back-UPS ES 850G2 reports
[nut-ddl#40]
-
data/driver.list.in: Add Techly 1000VA (very basic info so far)
[#2651]
-
data/driver.list.in: Add 2E PS1000L reports
[nut-ddl#41]
-
drivers/mge-hid.c: comment added for …forced
-
drivers/mge-hid.c: remove nfo_lkp_t
eaton_input_transfer_on_off_info as eaton_enable_disable_info
avalible
-
drivers/mge-hid.c: input.transfer.forced.enabled added \+
input.bypass.switch.on/off for RW vars
-
drivers/usbhid-ups.c: change back to ecomode
-
drivers/mge-hid.c: change he to ecomode
-
drivers/mge-hid.c: rename to
bypassauto
in info_lkp_t
eaton_input_bypass_mode_info[]
-
drivers/mge-hid.c: spaces typo fixes
-
drivers/mge-hid.c: eaton_input_bypass_mode_info[] added
-
drivers/mge-hid.c: add bypass commands for test
-
NEWS.adoc, conf/ups.conf.sample, docs/man/nut_usb_addvars.txt,
docs/man/ups.conf.txt, drivers/main.c, include/nutconf.hpp:
drivers/main.c, docs, etc.: accept "LIBUSB_DEBUG=NUM" setting via
ups.conf
-
drivers/main.c: accept "debug_min" case-insensitively, like in
upsmon and upsd
-
drivers/mge-hid.c: add ecomode commands
-
drivers/usbhid-ups.c: change ecomode to high-efficiency in
status_info
-
drivers/mge-hid.c: info_lkp_t eaton_input_mode_info[] format spaces
-
drivers/usbhid-ups.c: fix typo ups_status
-
drivers/mge-hid.c, drivers/usbhid-ups.c: eco_mode_info[] back 3
values \+ UPS.PowerConverter.Input.[5].PresentStatus.Used added
-
drivers/mge-hid.c: delete typo space
-
drivers/usbhid-ups.h: define info_lkp_t eco_mode_info[] in
usbhid-ups.h
-
drivers/usbhid-ups.c: fix typo
-
drivers/usbhid-ups.c: fix info_lkp_t eco_mode_info[]
-
drivers/usbhid-ups.c, drivers/usbhid-ups.h: add eco_mode info
-
data/cmdvartab: Fix typo in "Outlet [P] → [p]rotection status"
-
drivers/mge-hid.c: change outlet.2 … Outlet.[1] to Outlet.[3]
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c:
outlet.n.status
back and new one move to intro
outlet.1.protect.status
also define in cmdvartab and
/docs/nut-names.txt
-
drivers/mge-hid.c:
outlet.1.switch.status
rename back to
outlet.1.status
-
docs/nut-names.txt: change to
switch (0-2)
for
input.eco.switchable in nut-names.txt
-
drivers/mge-hid.c: comment on ESS mode
-
data/cmdvartab, docs/nut-names.txt: adding
input.eco.switchable,outlet.n.ecocontrol
to cmdvartab and
/docs/nut-names.txt
-
drivers/mge-hid.c: added
info_lkp_t eaton_input_mode_info[]
for
input.eco.switchable
-
drivers/mge-hid.c, drivers/usbhid-ups.c, drivers/usbhid-ups.h: move
info_lkp_t outlet_eco_yes_no_info[]
to mge-hid.c
-
docs/man/usbhid-ups.txt: document troubleshooting Linux USB quirk
vs. Eaton devices [#630]
-
NEWS.adoc: update and move "expected" improvements from v2.8.3 to
v2.8.4 goals
-
drivers/mge-hid.c: some typo fix
-
drivers/mge-xml.c: remove typo space
-
drivers/mge-xml.c: remove also from mge-xml.c
-
drivers/powerp-bin.c: remove
outlet_eco_yes_no_info[]
from
powerp-bin.c
-
drivers/mge-xml.c, drivers/usbhid-ups.h: outlet_eco_yes_no_info
defined in upshid-ups.h
-
drivers/mge-xml.c: outlet.1.ecocontrol added to mge-xml to fix
undefined
-
drivers/mge-hid.c: remove
*outlet_eco_yes_no_info
from mgr-hid.c
-
drivers/mge-hid.c, drivers/mge-xml.c, drivers/powerp-bin.c,
drivers/usbhid-ups.c: try to fix definition of
outlet_eco_yes_no_info[] error
-
drivers/powerp-bin.c, drivers/usbhid-ups.c: added
info_lkp_t
outlet_eco_yes_no_info
and valtab_t
outlet_eco_yes_no_info
-
drivers/mge-hid.c: intoduce input.eco.switchable
-
drivers/mge-hid.c, drivers/mge-xml.c: outlet_eco_yes_no_info move
to mge-xml.c
-
drivers/mge-hid.c: eaton_outlet_protection_status_info \+
outlet_eco_yes_no_info fix
-
drivers/mge-hid.c: add eco_pegasus_yes_no_info func to
uotlet.2.ecocontrol
-
drivers/mge-hid.c: fix typo in comments
-
drivers/mge-hid.c: some of the fixes
-
drivers/liebert-gxe.c: non-functional cosmetic fixes (NUT codebase
style) [#2629]
-
drivers/ydn23.h: non-functional cosmetic fixes (NUT codebase style)
[#2629]
-
drivers/liebert-gxe.c: issue messages mentioning "liebert-gxe" not
plain "gxe" [#2629]
-
docs/man/liebert-gxe.txt: use double-dash for tirez [#2629]
-
docs/man/liebert-gxe.txt: clarify port/cable used [#2629]
-
NEWS.adoc: move liebert-gxe introduction into NUT v2.8.3 timeframe
[#2629]
-
drivers/mge-hid.c: first trying to add values
-
drivers/mge-hid.c: EATON HID: completion on examples
-
drivers/mge-hid.c: EATON HID: add missing usages and paths
-
drivers/liebert-gxe.c: satisfy opposing desires of static analysis
Compiler wants both to handle
default
cases in switch
lists,
and dislikes a default
label in enum handling when all known
values are handled (and wants them all to be handled). The clash is
only resolvable by pragmas, like elsewhere in out codebase.
-
clients/upssched.c, drivers/adelsystem_cbi.c, drivers/al175.c,
drivers/dstate.c, drivers/generic_modbus.c, drivers/main.c,
drivers/riello_usb.c: clients/, drivers/: use _with_errno helpers
instead of strerror(errno)
-
docs/man/usbhid-ups.txt: add missing lowbatt argument
-
docs/config-prereqs.txt: add a few recommended MacOS/HomeBrew
packages
-
NEWS.adoc, data/driver.list.in, docs/man/Makefile.am,
docs/man/liebert-gxe.txt, docs/nut.dict, drivers/Makefile.am,
drivers/liebert-gxe.c, drivers/ydn23.h: drivers/ydn23.h: add ydn23
protocol helper, drivers/liebert-gxe.c: add Liebert GXE Series
driver
-
drivers/main.c: upsdrv_banner(): keep NUT version near NUT project
name, only mention "driver" if needed (once) [#2583] Example
change: * Network UPS Tools driver 2.8.2.1064-1064-g501bbdc62
(development iteration after 2.8.2) - network XML UPS 0.46 *
Network UPS Tools 2.8.2.1064-1064-g501bbdc62 (development iteration
after 2.8.2) - network XML UPS driver 0.46 Compare to older
versions' markup where NUT version tailed in the end (generally
fixed by PR #2583 due to possible nested parentheses in dev
builds): * Network UPS Tools - Generic HID driver 0.53 (2.8.2)
…and to other non-driver programs now, which generally do print
their program name/type after NUT before version: * Network UPS
Tools upsmon 2.8.2.1064-1064-g501bbdc62 (development iteration
after 2.8.2)
-
docs/nut-names.txt: document the Input Voltage Hysteresis concept
[#2620]
-
docs/nut-names.txt: re-phrase input.transfer.hysteresis table
description [#2620]
-
drivers/mge-hid.c: bump sub-driver version due to added data points
[#2620]
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: Typo fix
(hysteresYs ⇒ hysteresIs) [#2620]
-
data/cmdvartab: fix a bit of wording for "percent of nominal"
-
docs/nut-names.txt: fix asciidoc table markup and a bit of wording
-
Makefile.am: fix shell typo [#2624]
-
data/cmdvartab, docs/nut-names.txt, drivers/mge-hid.c: add
hysteresys value \+ add nominal to freq range
-
data/cmdvartab: Update cmdvartab
-
configure.ac: avoid hard-coded auglensdir if we can, to avoid
broken distcheck on some platforms/builds
-
COPYING, docs/acknowledgements.txt, docs/nut.dict,
scripts/installer/.gitignore, scripts/installer/Makefile.am,
scripts/installer/README.adoc,
scripts/installer/common_EN/license.txt: docs: finalize
re-licensing of scripts/installer from Eaton to NUT terms (GPL)
[#2288, #2621]
-
m4/ax_realpath_lib.m4: recognize "GNU ld script" files which
redirect to a real library
-
m4/ax_realpath_lib.m4: fix indentation
-
NEWS.adoc, drivers/usb-common.c, tools/nut-scanner/scan_usb.c:
tools/nut-scanner/scan_usb.c: port nut_usb_get_string() from
usb-common.c [#2604, #2615]
-
drivers/usb-common.c: fix C style of comments [#2604]
-
docs/man/nut_usb_addvars.txt: make a NOTE of LibUSB specific
debugging [#2616]
-
Makefile.am: install-win-bundle-thirdparty DLL check: cover
libexecdir [#1936 follow-up]
-
drivers/clone-outlet.c, drivers/clone.c: drivers/clone{,-outlet}.c:
throttle if polling too quickly
-
drivers/clone-outlet.c, drivers/clone.c: drivers/clone{,-outlet}.c:
update header comment descriptions and ©
-
data/cmdvartab, docs/nut-names.txt: add missing values to nut vars
\+ percent Hz in cmdvartab
-
docs/Makefile.am: combine "make spellcheck-interactive" with "make
touch-files and update them properly
-
drivers/clone-outlet.c, drivers/clone.c: drivers/clone{,-outlet}.c:
parse_args(): add a skip_out label to log ignored socket protocol
line details
-
docs/man/dummy-ups.txt: update regarding clone-outlet driver and
differences of the three
-
data/cmdvartab: add values description
-
drivers/mge-hid.c: change high to range in
(input.transfer.frequency.bypass and input.transfer.frequency.eco)
-
drivers/mge-hid.c: Add Bypass and ECO Transfer values for future
work on enable Eco mode for Eaton
-
drivers/clone.c, drivers/clone-outlet.c: reconcile shared code
style
-
docs/man/clone.txt: revise vs. clone-outlet page
-
docs/man/Makefile.am, docs/man/clone-outlet.txt, docs/nut.dict:
Introduce docs/man/clone-outlet.txt
-
drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: rename
nut_libusb_subdriver_defaults() to common style [#2611]
-
NEWS.adoc, docs/nut.dict: NEWS.adoc: explain USB enumeration fix
[#2611] With an Arduino Leonardo compatible board attached
alongside a CyberPower CP1500PFCLCD, usbhid-ups would incorrectly
conclude that there was no kernel driver attached to the UPS and
then fail subsequent steps accordingly. The cause is the global
usb_communication_subdriver_t struct; when a subdriver (e.g.
arduino-hid) sets different values during the enumeration loop,
they’re not set back to defaults afterwards, causing issues with
other subdrivers (e.g. cps-hid). So, if a subdriver doesn’t match,
set a selection of fields back to their default values using the
newly added nut_usb_subdriver_defaults() before the next attempt.
// tofurky
-
NEWS.adoc: move bicker_ser entry to keep USB-related news together
-
drivers/blazer_usb.c, drivers/nutdrv_qx.c, drivers/riello_usb.c,
drivers/tripplite_usb.c, drivers/usbhid-ups.c: Bump USB-capable
driver versions impacted by new
nut_usb_get_string()
method
[#1925, #2604]
-
NEWS.adoc: document new
nut_usb_get_string()
method - extend
[#1925, #2604]
-
drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: rename
static nut_usb_set_altinterface() ⇒ nut_libusb_set_altinterface()
to maintain a consistent code style [#2604]
-
NEWS.adoc: document new
nut_usb_get_string()
method [#1925,
#2604]
-
NEWS.adoc: document fix for allow_killpower flag [#2605]
-
tests/NIT/nit.sh: default to run with BASH where available (and
system shell is not it)
-
tests/NIT/nit.sh: check with BASH before bailing out with available
tools that did not see hits Builds in Android with Termux lack the
permissions to see open ports.
-
tests/NIT/nit.sh: check that /proc/net/tcp* are readable, not just
existing Builds in Android with Termux lack the permissions to see
open ports.
-
tests/NIT/nit.sh: use TABCHAR in regex for portability
-
drivers/main.c: comment for setting driver.flag.allow_killpower
default
-
drivers/libusb0.c: libusb0: Rename nut API functions for
consistency with libusb1.c The original names could also be
confused with libusb-1.0 API functions. Also rename
nut_libusb_strerror() although not a nut API function.
-
drivers/libusb0.c, drivers/libusb1.c: libusb0/1: Simplify range
checks in nut API nut_libusb_get_string() The string index is a
number between 1 and 255, simply because it is the lower byte of
wValue in the GET_DESCRIPTOR request. String index 0 is used for
retrieving the langid array, so it is not valid for this function.
There is no reason to impose a limit to the length of the buffer
that the user is lending us, certainly not above the range of the
involved types, so just a minimal sanity check is enough. Since in
the minimal case we would return an empty zero-terminated string,
it must at least have room for this.
-
drivers/libusb0.c, drivers/libusb1.c: libusb0/1: Fix up comments
about expected types
-
drivers/libusb0.c, drivers/libusb1.c: libusb0/1: Use
nut_usb_get_string() instead of libusb functions Fixes #1925
-
drivers/usb-common.c, drivers/usb-common.h: usb-common.c: Add
API-neutral nut_usb_get_string() This function doesn’t use
usb_get_string_simple() from libusb0 or
libusb_get_string_descriptor_ascii() from libusb1 but replaces them
to be able to add a workaround for devices with broken langid
descriptors. If the langid descriptor is invalid, the en_US
language is assumed. (See
https://github.com/networkupstools/nut/issues/1925) It also adds
retries to the string descriptor fetching, which may help in some
cases. (See https://github.com/networkupstools/nut/issues/414) A
small delay is introduced between the retries.
-
drivers/main.c: do not overwrite set allow_killpower flag with
defaults
-
drivers/libusb0.c, drivers/libusb1.c: Revert
"drivers/libusb{0,1}.c: retry getting Manufacturer/Product/Serial a
few times if failed on the first" This reverts commit
0fa5687aef27ba7ada1cd8aeec6963560c08f00f. The reverted commit
introduced retries when failing to retrieve various device string
descriptors. In the following commits we will attempt this in a
more centralized way, and for the purpose of clarity it is easiest
to retract this and start with cleaner sheets.
-
drivers/libusb1.c: Revert "drivers/libusb1.c: nut_libusb_open():
try to re-fetch curDevice→Vendor, Product, Serial if NULL, after
claiming it by other criteria [#2562]" This reverts commit
ea99f96f87ea06cf5ff486ba7541bf8f74e2c33b. The reverted commit
attempted to workaround a string descriptor retrieval issue by
retrying after claiming an interface on the device. However, this
did not help, and it was later found out that a broken langid
descriptor was the root issue all along.
-
drivers/libusb0.c: Revert "drivers/libusb0.c: libusb_open(): try to
re-fetch curDevice→Vendor, Product, Serial if NULL, after claiming
it by other criteria [#2562]" This reverts commit
ad83b70bbd3a0f6eff64d6b8dbfc14621d3cba97. The reverted commit
attempted to workaround a string descriptor retrieval issue by
retrying after claiming an interface on the device. However, this
did not help, and it was later found out that a broken langid
descriptor was the root issue all along.
-
clients/upsmon.c: generalize handling of unexpectedly long sleeps
and negative time jumps [#1070]
-
clients/upsmon.c: fix debug print format for sleep during loop-end
[#1070]
-
docs/FAQ.txt, docs/nut.dict: docs/FAQ.txt: refer to "nutshutdown"
script from the older example
-
NEWS.adoc, docs/FAQ.txt, docs/man/upsdrvctl.txt,
drivers/upsdrvctl.c, scripts/Solaris/nut-driver.xml.in,
scripts/systemd/nut-driver@.service.in,
scripts/systemd/nutshutdown.in, tests/NIT/nit.sh: upsdrvctl and
docs: warn about direct use on builds with systemd/SMF (so NDE)
-
configure.ac: expose WITH_SOLARIS_SMF also to C code
-
clients/upsmon.c: add check for negative time jumps [#1070, #2597]
-
clients/upsmon.c: fix check for strange time jumps [#1070]
-
NEWS.adoc: document generalization of upsmon clock-jump handling
[#2597]
-
clients/upsmon.c: monitor if our sleep during end of loop cycle
took too long [#1070] Treat any clock jump same as OS sleep (act
to avoid stale UPS info), even if it was not a suspend/hibernate
event but e.g. summer/winter time change or just upsmon suspended
by a debugger or blocked stdio.
-
clients/upsmon.c: when we monitor changes of sleep/wake state and
have a value from an aborted older loop cycle, make sure it is up
to date now just before we handle it [#1070]
-
clients/upsmon.c: when we report ability (or not) to use sleep
inhibition, report also if we can monitor changes of sleep/wake
state [#1070]
-
tests/NIT/nit.sh: export TESTPASS_* values to NIT.env for the
sandbox after we actually have them [#2597]
-
common/common.c: Inhibit(), isPreparingForSleep(): refactor
debug-logging, add notes that we mark methods unsupported at
run-time [#1070]
-
clients/upsmon.c: fix a bit of coding style for WIN32 code path
-
clients/upsmon.c: when OS wants to sleep, abort the UPS polling
loop [#1070]
-
clients/upsmon.c: when OS wants to sleep, abort the sleep(sleepval)
done between loop cycles [#1070]
-
clients/upsmon.c: consult whether
isInhibitSupported/isPreparingForSleepSupported to avoid needless
decisions and logs on some deployments [#1070]
-
common/common.c, include/common.h: include ways to quickly query
whether isInhibitSupported/isPreparingForSleepSupported [#1070]
-
clients/upsmon.c: when OS wakes up from sleep, reload_conf() AFTER
resetting clocks on UPS readings [#1070] Also make sure it is
treated as a reload and not initial load!
-
tests/NIT/README.adoc, docs/nut.dict: update about mocking
upsmon.conf [#2597]
-
clients/upsmon.c: when waking up after OS sleep/hibernation, reset
UPS times to "now" to make-believe the readings are fresh and not
stale [#1070]
-
clients/upsmon.c: report sleep_inhibitor_status value (quietly)
during each loop processing [#1070]
-
touch-file callers can use to check for prepared sandbox [#2597]
-
tests/NIT/Makefile.am: build a few more binaries commonly used by
NIT (or manually tested by NIT sandbox) [#2597]
-
tests/NIT/nit.sh: report NIT.env location for sourcing also after
printing it out [#2597]
-
tests/NIT/nit.sh: export TESTDIR value to NIT.env [#2597]
-
tests/NIT/nit.sh: export TESTPASS_* values to NIT.env [#2597]
-
tests/NIT/nit.sh: remember the caller-provided TESTDIR value (if
any) and do not remove it after exit [#2597]
-
tests/NIT/nit.sh: allow caller to set TESTDIR, and have more
reasons to mktemp one in a non-default location [#2597]
-
Makefile.am, tests/NIT/Makefile.am, tests/NIT/nit.sh: Makefile.am,
tests/NIT/Makefile.am: introduce check-NIT-sandbox
check-NIT-sandbox-devel recipes to streamline dev-testing [#2597]
-
common/common.c, m4/nut_check_libsystemd.m4: open_sdbus_once(): use
older sd_bus_open_system() \+ optional sd_bus_set_description() as
fallback [#1070]
-
conf/upsmon.conf.sample.in: re-word some text about notifications
-
clients/upsmon.h: fix whitespaces
-
clients/upsmon.c, clients/upsmon.h, common/nutconf.cpp,
common/nutwriter.cpp, conf/upsmon.conf.sample.in,
docs/man/nutconf.txt, docs/man/upsmon.conf.txt,
docs/man/upsmon.txt, include/nutconf.hpp,
scripts/augeas/nutupsmonconf.aug.in, tools/nutconf/nutconf-cli.cpp:
upsmon code, docs, config tools: introduce notifications for
SUSPEND_STARTING and SUSPEND_FINISHED [#1070]
-
docs/man/nutconf.txt: update with new notification types of NUT
v2.8.1\+ era
-
clients/upsmon.c: report init_Inhibitor() success, should only be
once per uptime [#1070]
-
common/common.c: open_sdbus_once(): fiddle with
sd_bus_set_allow_interactive_authorization() [#1070]
-
common/common.c: Inhibit(), isPreparingForSleep(): log detailed
systemd exception, if available [#1070]
-
common/common.c: fix systemd endpoint definition for inhibitor
interface management [#1070]
-
common/common.c: Inhibit() et al: refactor with reopen_sdbus_once()
and would_reopen_sdbus() sanity-check [#1070]
-
common/common.c: Inhibit() et al for unsupported platforms: only
post "Not implemented" messages once [#1070]
-
clients/upsmon.c: refactor with init_Inhibitor() [#1070]
-
common/common.c: Inhibit() et al: quiesce error/debug messages
[#1070]
-
common/common.c: open_sdbus_once(): use prettier
sd_bus_open_system_with_description() for better journal logging
[#1070]
-
common/common.c: open_sdbus_once(): only report failures once in a
row [#1070]
-
UPGRADING.adoc: document systemd inhibitor interface support in
NUT, and stress that older hacks for the purpose may be obsolete
now [#1070]
-
clients/upsmon.c: add daemon support for OS-sleep inhibition and
wake-up [#1070]
-
clients/upsmon.c: barebone structure for OS-sleep inhibition
support [#1070] This commit adds support to process the systemd
(later potentially equivalent) framework signals about going to
sleep or waking up, to grab and release the locks which can hold up
the actual start of sleep mode. Later work would focus on not
shutting down because of the time jump when we wake up :)
-
common/common.c, include/common.h, m4/nut_check_libsystemd.m4:
introduce Uninhibit() and isPreparingForSleep() methods [#1070]
-
common/common.c: comment about attributecleanup(f) usage
[#1070]
-
m4/nut_check_libsystemd.m4: check for sd-bus.h auto-cleanup methods
[#1070]
-
common/common.c: augment Inhibit() with a retry of D-Bus connection
if a call() failed, and auto-close it on exit [#1070]
-
common/common.c: refactor Inhibit() with open_sdbus_once() and
re-usable systemd_bus connection [#1070]
-
common/common.c, clients/upsmon.c: annotate ends of systemd-related
ifdefs
-
m4/nut_check_libsystemd.m4: do not check for methods delivered by
newer systemd which we do not use now [#1070]
-
clients/upsmon.c: indent nested preprocessor directives (optional
includes)
-
NEWS.adoc: document systemd inhibitor interface support in NUT
[#1070]
-
common/common.c, include/common.h: introduce Inhibit() method
[#1070] Snow-ball several libsystemd pseudo-code and real code
examples.
-
configure.ac, scripts/systemd/Makefile.am: consider
WITH_LIBSYSTEMD_INHIBITOR availability for default installation of
nut-sleep.service [#1833, #1070, #2596]
-
m4/nut_check_libsystemd.m4: detect systemd inhibitor support (via
D-Bus API) [#1070] Thanks to pointers from
https://github.com/systemd/systemd/issues/34004
-
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.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/nutshutdown.in: scripts/systemd/*: bump © to 2024
-
NEWS.adoc, scripts/systemd/Makefile.am,
scripts/systemd/nut-sleep.service: Introduce
scripts/systemd/nut-sleep.service [#1833, #1070] Thanks to "Ropid"
for contributing this file via
https://github.com/networkupstools/nut/issues/1833#issuecomment-2292261061
-
m4/nut_check_libsystemd.m4: extend to try getting SYSTEMD_VERSION
from systemctl if pkg-config is missing [#1070]
-
.gitignore, Makefile.am, configure.ac: configure.ac: when doing
in-place builds, move config.log of the original invocation to
config.log.inplace-outer
-
configure.ac: comment to document the trick about "ln -sr" test
-
configure.ac: comment a FIXME about TREE_VERSION definition
-
ci_build.sh: refactor "Starting initial clean-up … TAKING
SHORTCUT", introduce CI_REGENERATE=true to force it * Move into a
method for different BUILD_TYPE’s to share. * Have one "rm" command
for different use-cases. * Add a new toggle to force the clean-up
and regen. * Also clean away config.h (if one remains somehow, it
confuses sub-tree builds like those done for Windows).
-
m4/nut_check_libgd.m4: generate test image to tmpfile() or stderr
…so its binary content does not pollute common log
-
configure.ac, m4/nut_check_libsystemd.m4:
m4/nut_check_libsystemd.m4: check if nut_have_libsystemd_inhibitor
[#1070]
-
scripts/fuse/README.adoc, scripts/fuse/execfuse-nut/getattr,
scripts/fuse/execfuse-nut/read_file,
scripts/fuse/execfuse-nut/readdir: scripts/fuse/README.adoc,
scripts/fuse/execfuse-nut/*: separate "client-location" from
"client-version" [#2591]
-
scripts/fuse/README.adoc, scripts/fuse/execfuse-nut/readdir:
integrate with NIT-prepared environments [#2591]
-
scripts/fuse/README.adoc: suggest use of plain
umount
, it works
too [#2591]
-
scripts/fuse/README.adoc: allow re-entrance with copy-pasted
experiments (mkdir -p) [#2591]
-
scripts/fuse/README.adoc: list the built execfuse binary to check
it was made [#2591]
-
scripts/fuse/README.adoc: clarify prerequisites for an execfuse
build [#2591] These would likely become NUT optional dependencies
in
docs/config-prereqs.txt
, if a more integrated client would be
made to follow up with this idea eventually.
-
NEWS.adoc, docs/nut.dict: announce the FUSE experiment [#2591]
-
scripts/fuse/README.adoc, scripts/fuse/execfuse-nut/getattr,
scripts/fuse/execfuse-nut/read_file,
scripts/fuse/execfuse-nut/readdir: scripts/fuse: extend
execfuse-nut experiment with a /client-version pseudo-file [#2591]
-
scripts/fuse/README.adoc, scripts/fuse/execfuse-nut/getattr,
scripts/fuse/execfuse-nut/init,
scripts/fuse/execfuse-nut/read_file,
scripts/fuse/execfuse-nut/readdir: Introduce a scripts/fuse
experiment [#2591]
-
m4/nut_check_libgd.m4: AX_RUN_OR_LINK_IFELSE() to check that we can
actually build a graphical program Namely, that further
third-party libs are available for the chosen architecture, not
only the headers. Had a problem with 32/64-bit build agent that
only had a binary lib*.so set for 64-bit after an update.
-
ci_build.sh: actually honour CANBUILD_LIBGD_CGI=no
-
ci_build.sh: fix shell syntax that could confuse CANBUILD_LIBGD_CGI
detection
-
drivers/usbhid-ups.c: upsdrv_initups(): cache testvar() outcome as
exactly 0/1 [#2347] When building a complex text expression, we
rely on maths in some spots.
-
data/driver.list.in: update about "Back-UPS BX****MI Series (may
need tweaks since 2023)" [#2347]
-
drivers/usbhid-ups.c: clarify suggested settings for LB\+RB log
flood [#2437]
-
NEWS.adoc, UPGRADING.adoc, docs/nut.dict: summarize the mitigation
for spurious LOWBATT/REPLACEBATT events on APC BXnnnnMI devices
[#2347]
-
NEWS.adoc, drivers/bcmxcp.c, drivers/nutdrv_atcl_usb.c,
drivers/richcomm_usb.c, m4/ax_c_pragmas.m4,
tools/nut-scanner/scan_usb.c: tools/nut-scanner/scan_usb.c: do not
actively suggest vendor(id), product(id), and serial options for
bcmxcp_usb, richcomm_usb, nutdrv_atcl_usb [#1763, #1764, #1768,
#2580]
-
NEWS.adoc, clients/nutclient.cpp, clients/upsclient.c,
clients/upslog.c, clients/upssched.c, common/common.c,
common/nutconf.cpp, common/nutstream.cpp, common/nutwriter.cpp,
common/parseconf.c, drivers/apc_modbus.c, drivers/apcsmart-old.c,
drivers/apcsmart.c, drivers/bcmxcp.c, drivers/belkin-hid.c,
drivers/bestups.c, drivers/blazer_usb.c, drivers/dstate.c,
drivers/etapro.c, drivers/hidparser.c, drivers/huawei-ups2000.c,
drivers/main.c, drivers/mge-hid.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_masterguard.c, drivers/openups-hid.c,
drivers/powercom.c, drivers/rhino.c, drivers/richcomm_usb.c,
drivers/riello.c, drivers/solis.c, drivers/tripplite_usb.c,
m4/ax_c_pragmas.m4, server/netssl.c, server/sockdebug.c,
server/upsd.c, tools/nut-scanner/scan_avahi.c: Fix clang-18
warnings about switch clauses without a default label [#2588]
-
include/str.h: use a more reliable definition of NUT_STRARG doing
nothing [#2585]
-
m4/ax_c_pragmas.m4, docs/configure.txt: let
--enable-NUT_STRARG-always
setting have auto
detection by
default [#2585] Flips to "yes" for gcc-13.x (clang having issues
is not proven at the moment)
-
m4/ax_c_pragmas.m4, docs/configure.txt, UPGRADING.adoc,
docs/nut.dict: introduce
configure --enable-NUT_STRARG-always
setting [#2585]
-
drivers/usbhid-ups.c: when defaulting lbrb_log_delay_sec, suggest
also setting the lbrb_log_delay_without_calibrating flag [#2347]
-
NEWS.adoc, docs/nut.dict: NEWS.adoc: mention fixes for fallback
localtime_r()
and gmtime_r()
[#1611, #2583]
-
drivers/huawei-ups2000.c: adapt to fixed gmtime_r() when a macron
in WIN32 fallbacks [#1611, #2583]
-
include/timehead.h: fix hacky macro localtime_*() fallbacks for
WIN32 builds [#2583, #1611] Partially inspired by
/mingw64/include/time.h NOTE: Unlike linux\+mingw cross-builds, the
semi-native ones on Windows with MSYS2 do not enforce
_POSIX_THREAD_SAFE_FUNCTIONS and so can lack the optional
declarations in the file above.
-
tools/nut-scanner/nut-scanner.c: no longer need to #include
"nut_version.h" [#2573, #2097]
-
configure.ac, include/timehead.h: check also for mere declarations
of localtime_r() etc.
-
configure.ac: report checking for lack of both decls and linkage
for time methods
-
configure.ac: clarify that failed AC_CHECK_FUNCS() are about linker
-
scripts/Windows/build-mingw-nut.sh, configure.ac: promote use of
_POSIX_THREAD_SAFE_FUNCTIONS It seems C+\+ builds using NUT
config.h ⇒ timehead.h on WIN32 struggle uniquely (as C ones did
not) with alleged redefinition of localtime_r() and gmtime_r()
which is in fact optionally present in headers but not found by
linking tests in AC_CHECK_FUNCS().
-
configure.ac: refactor with CODE_TIMEINCL
-
drivers/apc_modbus.c: indent code with TABs (cosmetic)
-
drivers/apc_modbus.c: indent optional includes (cosmetic)
-
tools/nutconf/nutconf-cli.cpp: indent nested preprocessor
directives (include)
-
common/common.c: nut_report_config_flags(): refactor with
describe_NUT_VERSION_once() copy of the code [#2573]
-
tools/nutconf/nutconf-cli.cpp: add a FIXME comment about lack of
"-D" CLI option
-
tools/nutconf/nutconf-cli.cpp: add a version printout to Usage
(both help and new standalone option) [#2573]
-
tools/nutconf/nutconf-cli.cpp: use just the xbasename() of prog
name [#2573]
-
drivers/upsdrvctl.c: refactor to common handling of "-V" CLI arg
and use of print_banner_once() [#2375]
-
drivers/main.c: upsdrv_banner(): rearrange the main version string
to follow common NUT pattern [#2573]
-
tools/nut-scanner/Makefile.am, tools/nut-scanner/nut-scanner.c:
tools/nut-scanner/nut-scanner.c: refactor to know its "progname"
and pass it to print_banner_once() and show_usage() [#2573] Also
update tools/nut-scanner/Makefile.am to have the symbols in
libnutscan
-
tools/nut-scanner/nut-scanner.c: refactor to use
print_banner_once() with its copy of describe_NUT_VERSION_once()
instead of large code chunk in the program [#2573]
-
common/common.c: revise print_banner_once() to use
describe_NUT_VERSION_once() rather than directly UPS_VERSION
[#2573]
-
common/common.c, include/common.h: introduce a common method for
NUT programs to describe_NUT_VERSION_once() [#2573]
-
drivers/main.c: avoid printing upsnotify() warnings when just
querying program versions [#2573]
-
clients/upsc.c, clients/upscmd.c, clients/upslog.c,
clients/upsmon.c, clients/upsrw.c, drivers/main.c,
scripts/Windows/wininit.c, server/upsd.c,
tools/nut-scanner/nut-scanner.c: Revise programs to
print_banner_once(), use same style of comment for "-V" handling
[#2573]
-
clients/upsc.c, clients/upscmd.c, clients/upslog.c,
clients/upsmon.c, clients/upsrw.c, server/upsd.c: Revise program
descriptions in help(), use same pattern for message layout there
[#2573]
-
common/common.c, include/common.h: introduce a common method for
NUT programs to print_banner_once() [#2573]
-
NEWS.adoc: Fix uses of
banner_is_disabled()
to not preclude CLI
-V
printouts [#2573]
-
tools/nut-scanner/scan_usb.c: nutscan_scan_usb(): avoid
fatal_with_errno(), emit upsdebug_with_errno(0, …) and return
NULL [#2575] Commented away idea: assume nutscan_avail_usb=0 if we
failed to init or malloc? TODO: This might preclude cleanly
unloading the library, and also the problem of one loop cycle might
not repeat on another.
-
tools/gitlog2version.sh: in debug, report also SEMVER [#1949]
-
scripts/upsdrvsvcctl/upsdrvsvcctl.in, docs/man/upsdrvsvcctl.txt:
complete the "upsdrvsvcctl status" feature [#2567]
-
scripts/upsdrvsvcctl/upsdrvsvcctl.in, docs/man/upsdrvsvcctl.txt:
add an option to display binary version (and fix the script one in
help) [#2567]
-
scripts/upsdrvsvcctl/upsdrvsvcctl.in: make path to UPSDRVCTL a
variable, like ENUMERATOR is used [#2567]
-
NEWS.adoc: new dstate LOGOUT command [#2567]
-
drivers/upsdrvquery.c: upsdrvquery_close(): track if we loggedOut
and so not complain about disconnection faults [#2567]
-
drivers/upsdrvctl.c: status: revise return values of
checkprocname() vs. sendsignalpid(), unite via pidAlive [#2567]
-
tools/gitlog2version.sh: comment why we repeat TRUNK candidate
branches, and add master in the end too [#1949]
-
drivers/dstate.c, drivers/dstate.h: drivers/dstate.{c,h}: err on
the safe side with LOGOUT, and only mark the connection - close
later [#2567]
-
server/netmisc.c: update net_help()
-
drivers/upsdrvquery.c: upsdrvquery_close(): take advantage of the
new LOGOUT command [#2567]
-
drivers/dstate.c, docs/sock-protocol.txt: introduce a LOGOUT
command [#2567] Now that the driver Unix socket / Windows named
pipe connections can come and go (sibling drivers,
upsdrvctl
status
…) it is not pretty to see logged messages about an
unexpected connection loss. Having it coincide with a LOGOUT is
better for troubleshooting.
-
drivers/upsdrvctl.c, docs/man/upsdrvctl.txt: "status": detect a
RUNNING or not program using PID from either PID file or socket
protocol [#2567]
-
docs/man/upsdrvctl.txt: add an example of "list" with hidden banner
[#2567]
-
common/common.c: parsepid(): set errno in case of errors [#2567]
-
drivers/mge-hid.c: add Eaton 9En000 models "iau" suffix, and 9E3000
"ixl"/"ixlau" [#2562] Per
https://github.com/networkupstools/nut/pull/2571#issuecomment-2261450468
-
drivers/mge-hid.c: add Eaton 9En000 models "iau" suffix, and 9E3000
"ixl"/"ixlau" [#2562] Per
https://github.com/networkupstools/nut/pull/2571#issuecomment-2261450468
-
scripts/upsdrvsvcctl/upsdrvsvcctl.in: adjust SVC_NAME_WIDTH to
framework type too [#2567]
-
scripts/upsdrvsvcctl/upsdrvsvcctl.in: allow caller to customize
ENUMERATOR and UPSDRVCTL when testing [#2567]
-
drivers/mge-hid.c: add Eaton 9E1000* models, and "ir" suffix for
rack [#2562] According to
https://github.com/networkupstools/nut/pull/2571#issuecomment-2261337602
-
drivers/mge-hid.c: add Eaton 9E1000* models, and "ir" suffix for
rack [#2562] According to
https://github.com/networkupstools/nut/pull/2571#issuecomment-2261337602
-
drivers/libusb0.c: libusb_open(): try to re-fetch
curDevice→Vendor, Product, Serial if NULL, after claiming it by
other criteria [#2562]
-
drivers/libusb0.c: libusb_open(): comment about
if
(!callback){...}
check
-
drivers/libusb1.c: nut_libusb_open(): try to re-fetch
curDevice→Vendor, Product, Serial if NULL, after claiming it by
other criteria [#2562]
-
drivers/libusb1.c: nut_libusb_open(): comment about
if
(!callback){...}
check
-
drivers/mge-hid.c: rephrase the presumed 9E2000*i* model [#2562] I
did not find any actual mentions of plain "9E2000" without an "i",
only these: https://www.eaton.com/tr/en-gb/skuPage.9E2000I.html
Also prepared for "9E3000i" models while here.
-
tools/gitlog2version.sh: actively discover a newest known
NUT_VERSION_GIT_TRUNK if not provided explicitly [#1949]
-
drivers/upsdrvctl.c: fix use of nut_sendsignal_debug_level; add
nut_upsdrvquery_debug_level hushing around
upsdrvquery_connect_drvname_upsname() attempt [#2567]
-
drivers/upsdrvquery.c: upsdrvquery_connect(): fix pidfn⇒sockname
var naming
-
drivers/upsdrvctl.c, docs/man/upsdrvctl.txt: status: print a header
with column names [#2567]
-
docs/man/upsdrvctl.txt: status: clarify PF_PID negative values
[#2567]
-
docs/man/upsdrvctl.txt: status: clarify print-out syntax just after
the example [#2567]
-
conf/nut.conf.sample: prepare to
export
envvars which are NUT
program configuration tweaks
-
docs/man/nut.conf.txt: update IMPORTANT NOTES
-
conf/nut.conf.sample: update heading comments (IMPORTANT NOTES)
-
drivers/upsdrvctl.c: status_driver(): no need to check for NULLness
of conn→buf [#2567]
-
drivers/upsdrvctl.c: status_driver(): upsdrvquery_close(conn) after
use [#2567]
-
scripts/upsdrvsvcctl/upsdrvsvcctl.in, docs/man/upsdrvsvcctl.txt:
provide a basic "status" operation [#2567]
-
drivers/upsdrvctl.c, docs/man/upsdrvctl.txt: complete "upsdrvctl
status" with socket protocol queries [#2567]
-
common/common.c, include/common.h: refactor parsepidfile() out of
sendsignalfn()
-
drivers/dstate.c, docs/sock-protocol.txt, docs/nut.dict: implement
DUMPVALUE and DUMPSTATUS queries
-
drivers/dstate.c, docs/sock-protocol.txt, docs/nut.dict: implement
GETPID query
-
drivers/dstate.c: refactor st_tree_dump_conn_one_node() out of
st_tree_dump_conn() [#2567]
-
docs/maintainer-guide.txt: note bumping wikipedia article
-
NEWS.adoc, docs/man/upsdrvctl.txt, drivers/upsdrvctl.c:
drivers/upsdrvctl.c: add "status" operation (initially triial
skeleton) [#2567]
-
drivers/upsdrvctl.c: only log suggestions about exec debugging if
we would start or shutdown
-
drivers/upsdrvctl.c: comment why pidfn is not used in apparent
WIN32 codepaths
-
tests/NIT/nit.sh: introduce NUT_FOREGROUND_WITH_PID=true tweak
-
tools/gitlog2version.sh: Set exit code based on availability of
default version info data point [#1949]
-
tools/gitlog2version.sh: getver_git(): "return 1" if we fail to
discover DESC or BASE data [#1949]
-
tools/gitlog2version.sh: report if Git-based version info discovery
failed and we fall back [#1949]
-
tools/gitlog2version.sh: only consider BASE after we get DESC
successfully (and abort if there is no common BASE) [#1949]
-
tools/gitlog2version.sh: refactor with a separate
NUT_VERSION_GIT_ALWAYS_DESC toggle envvar [#1949]
-
server/netget.c: get_var_server(): refer to PACKAGE_URL (and
hard-coded "https://www.networkupstools.org/" if PACKAGE_URL points
completely elsewhere) [#1949] Tested with "GET VAR dummy
server.info" command
-
server/netmisc.c: net_ver(): refer to PACKAGE_URL (and hard-coded
"https://www.networkupstools.org/" if PACKAGE_URL points completely
elsewhere) [#1949] Tested with "VER" command
-
tools/gitlog2version.sh: default PACKAGE_URL with "www" in the
string [#1949]
-
clients/upslog.c, clients/upsmon.c, drivers/main.c, server/upsd.c:
use banner_is_disabled() checking [#1789 vs. #316]
-
drivers/upsdrvctl.c, docs/man/upsdrvctl.txt: use
banner_is_disabled() checking [#1789 vs. #316]
-
NEWS.adoc, UPGRADING.adoc, common/common.c, conf/nut.conf.sample,
include/common.h: Introduce
NUT_QUIET_INIT_BANNER
envvar support
and banner_is_disabled()
common method [balancing issues #1789
vs. #316]
-
conf/nut.conf.sample: document NUT_QUIET_INIT_SSL missed before
[#1662]
-
conf/nut.conf.sample, docs/man/nut.conf.txt: document
NUT_QUIET_INIT_UPSNOTIFY missed before [#2136]
-
conf/nut.conf.sample, docs/man/nut.conf.txt: document NUT_DEBUG_PID
missed before [#2118]
-
drivers/upsdrvctl.c: main(): revise reporting of command_name in
debug logs [#2567] …and avoid a potential argv array overflow
(or at least useless NULL reporting) along the way
-
drivers/upsdrvctl.c: send_all_drivers(): drop redundant "ups =
upstable" assignments
-
NEWS.adoc, docs/man/upsdrvctl.txt, drivers/upsdrvctl.c:
drivers/upsdrvctl.c: add "list" operation [#2567]
-
docs/maintainer-guide.txt: suggest also use of
VERSION_FORCED
and
VERSION_FORCED_SEMVER
files in our release rituals, we have
support anyway and want to test it in-vivo [#1949]
-
NEWS.adoc, docs/man/usbhid-ups.txt, docs/nut.dict,
drivers/usbhid-ups.c: drivers/usbhid-ups.c,
docs/man/usbhid-ups.txt: introduce lbrb_log_delay_sec et al [#2347]
-
drivers/usbhid-ups.c: track start and end timestamps of calibration
[#2347]
-
NEWS.adoc, docs/new-drivers.txt, drivers/dstate.c,
drivers/dstate.h: drivers/dstate.{c,h}, docs/new-drivers.txt,
NEWS.adoc: introduce status_get()
-
drivers/usbhid-ups.c: avoid "\n" starting an upsdebugx() message
That "\n" gets printed as "#012"
-
NEWS.adoc: document the recent fixes for apcsmart [#704]
-
drivers/apcsmart.c: upsdrv_updateinfo(): if dstate_is_stale, log if
we fix it [#704]
-
drivers/apcsmart.c: upsdrv_updateinfo(): if dstate_is_stale, try to
reconnect every 60 retry attempts [#704]
-
drivers/apcsmart.c: upsdrv_updateinfo(): if dstate_is_stale, try to
flush the incoming data buffer [#704]
-
drivers/apcsmart.c: upsdrv_updateinfo(): if dstate_is_stale, retry
slowly [#704]
-
drivers/apcsmart.c: update upsdebugx() to report func where
they did not
-
NEWS.adoc, docs/nut.dict, drivers/apcsmart.c: drivers/apcsmart.c:
constrain strcpy() ⇒ strncpy() NOTE: Further improvement is
possible in that strncpy() does not guarantee a NUL byte in the end
of resulting string (if input is too long, it is only truncated).
-
drivers/apcsmart.c: revise comments and log messages
-
Makefile.am: distribute VERSION_FORCED and/or VERSION_FORCED_SEMVER
if present [#1949]
-
docs/maintainer-guide.txt: clarify use of annotated Git tags
[#1949]
-
docs/maintainer-guide.txt: clarify for
tools/gitlog2version.sh
now in the loop [#1949]
-
drivers/snmp-ups.h: neuter also PACKAGE_URL if present, to avoid
conflict with net-snmp-config.h [#1949]
-
tools/nut-scanner/scan_snmp.c: neuter also PACKAGE_URL if present,
to avoid conflict with net-snmp-config.h [#1949]
-
NEWS.adoc, data/driver.list.in, drivers/mge-hid.c:
drivers/mge-hid.c, NEWS.adoc: try to recognize Eaton 9E model and
info [#1925] Also handle "unknown 2000" assuming it is a mis-read
"Eaton 9E 2000(i?)" which refused to tell libusb its
vendor/product/serial strings. This may be the answer to such
issues as #1925, #2380 (re-opened), #2492
-
.gitignore, UPGRADING.adoc, ci_build.sh, tools/gitlog2version.sh:
tools/gitlog2version.sh: allow NUT_VERSION_FORCED_SEMVER for some
distros [#1949] Test: :; ./clients/upsmon -DDV Network UPS Tools
upsmon 2.8.2.404.365-769-g96f0c9cb3 0.000000 [D1] Network UPS
Tools version 2.8.2.404.365-769-g96f0c9cb3 (development iteration
after 1.1.1) built with clang version 16.0.6…
-
.gitignore, UPGRADING.adoc, ci_build.sh, tools/gitlog2version.sh:
tools/gitlog2version.sh, ci_build.sh: allow VERSION_FORCED for some
distros [#1949]
-
tools/gitlog2version.sh: update comment [#1949]
-
Makefile.am, autogen.sh, configure.ac, include/Makefile.am,
tools/gitlog2version.sh: tools/gitlog2version.sh et al: change
configurable vars to NUT_VERSION_* namespace [#1949]
-
docs/config-prereqs.txt: kudos to Termux
-
autogen.sh: kill obsolete nut_version.h during regen [#1949]
-
autogen.sh, configure.ac: configure.ac: drop square brackets around
macro in AC_INIT [#1949] Per suggestion from
https://github.com/NixOS/nix/issues/5832
-
tools/gitlog2version.sh: only PREFER_GIT blindly if abs_top_srcdir
is a git workspace [#1949]
-
tools/nut-scanner/nut-scanner.c: hush compiler warnings about
unreachable code paths with NUT_VERSION_IS_RELEASE macro decisions
[#1949]
-
common/common.c: hush compiler warnings about unreachable code
paths with NUT_VERSION_IS_RELEASE macro decisions [#1949]
-
autogen.sh: update comment about AC_INIT complaints for
m4_esyscmd_s() [#1949]
-
configure.ac: update comment about AC_INIT complaints for
m4_esyscmd_s() [#1949]
-
tools/gitlog2version.sh: provide a fallback for older git which
does not know how to --exclude [#1949]
-
ci_build.sh: check_gitignore(): define FILE_GLOB_EXCLUDE
differently [#1949]
-
common/common.c: convert nut_report_config_flags() to more
definitive behavior with NUT_VERSION_IS_RELEASE flag and
NUT_VERSION_SEMVER_MACRO string [#1949]
-
tools/nut-scanner/nut-scanner.c: use NUT_VERSION_IS_RELEASE and
NUT_VERSION_SEMVER_MACRO when printing version [#1949] Note this
is a custom printer, separate from common.c
-
common/common.c, include/Makefile.am: include/Makefile.am:
nut_version.h: inject also NUT_VERSION_SEMVER_MACRO and
NUT_VERSION_IS_RELEASE [#1949]
-
configure.ac: introduce NUT_SOURCE_GITREV_IS_RELEASE and
NUT_SOURCE_GITREV_SEMVER [#1949]
-
ci_build.sh: update suggestion about Homebrew envvar setting
[#2522]
-
drivers/libshut.c: shut_control_msg(): restrict memcpy() amount
Avoid warning: libshut.c:1296:25: error: memcpy forming offset
[11, 17] is out of the bounds [0, 11] of object shut_pkt with
type unsigned char[11] [-Werror=array-bounds=]
-
configure.ac: set PACKAGE_TARNAME and PACKAGE_URL verbatim via
AC_INIT() [#1949]
-
docs/config-prereqs.txt, docs/nut.dict: clarify envvar pre-sets for
MacOS/Homebrew [#2522, #2555]
-
common/common.c: compareprocname(): comment about libtool-wrapped
developer builds [#2463]
-
configure.ac: revise injection of "-O0" into debug-able C code
builds on some platforms
-
autogen.sh: add line separators around big blocks of scripted
messages
-
ci_build.sh: check_gitignore(): define FILE_GLOB_EXCLUDE
differently [#1949]
-
configure.ac: clarify further work possible about NUT versioning
support [#1949]
-
NEWS.adoc, docs/nut.dict, UPGRADING.adoc: announce NUT
development-friendly versioning scheme [#1949]
-
tools/Makefile.am: EXTRA_DIST the gitlog2version.sh helper [#1949]
-
.gitignore, Makefile.am, autogen.sh, ci_build.sh,
tools/gitlog2version.sh: tools/gitlog2version.sh et al: add support
for (taballed) VERSION_DEFAULT file [#1949]
-
configure.ac: provide m4_esyscmd_s for builds with older autotools
releases [#1949]
-
configure.ac: refactor to use tools/gitlog2version.sh directly in
AC_INIT without hacks [#1949]
-
tools/gitlog2version.sh: refactor to share more code; introduce
PREFER_GIT toggle [#1949]
-
tools/gitlog2version.sh: add WANT_VER query support, 3-digit
SEMVER, and URL, and IS_RELEASE [#1949]
-
ci_build.sh: check_gitignore(): introduce FILE_GLOB_EXCLUDE and
handle FILE_GLOB allowing for multi-token values
-
configure.ac: set PACKAGE_TARNAME and PACKAGE_URL [#1949]
-
configure.ac, include/Makefile.am: use consistently the
tools/gitlog2version.sh for version info [#1949]
-
tools/gitlog2version.sh: introduce new helper script to parse NUT
structured version from Git (if available) [#1949]
-
m4/nut_check_aspell.m4: avoid "exec — 2>&1" trick, not all shells
like it
-
configure.ac: avoid square brackets in m4 script [#1949]
-
docs/sock-protocol.txt: update with examples of propagated flag
names [#266]
-
server/netset.c: comment about true meaning of "!val" clause [#266]
-
docs/net-protocol.txt: update examples of invalid numbers [#265]
-
server/netget.c: get_type(): reword logged message for assuming a
NUMBER [#266]
-
UPGRADING.adoc: document NUT_DEBUG_SYSLOG and its possible impact
on future packaging [#2394]
-
server/netget.c: get_type(): report assuming UPS[%s] variable %s is
a NUMBER to help catch code that did not set the flags [#266]
-
server/sstate.c: fix upsdebugx() and upslogx() calls to refer to
func and not hard-coded strings [#266]
-
drivers/dstate.c: fix upsdebugx() and upslogx() calls to refer to
func and not hard-coded strings [#266]
-
common/state.c: fix upsdebugx() and upslogx() calls to refer to
func and not hard-coded strings [#266] This is more
streamlined and also fixes some mis-attributed messages (evolution?
copy-paste?)
-
server/netset.c: set_var(): trace-log why this method errors out
[#266]
-
drivers/main.c: comment about immutable (or not)
driver/default/override dstate values [#266]
-
common/state.c: log about not-updating an immutable value [#266]
-
clients/upsclient.c: when host is known NULL, report that directly,
no need for NUT_STRARG() [#2512]
-
common/common.c: compareprocname(): fix basename comparison
(copy-paste typo) [#2463]
-
common/common.c: refactor sendsignalpid() to check
checkprocname_ignored() and getprocname(pid) once for several tests
against its value, and report it in the end [#2463]
-
include/common.h, common/common.c: refactor apart
checkprocname_ignored() from checkprocname() and compareprocname()
[#2463]
-
include/common.h, common/common.c: refactor apart compareprocname()
from checkprocname() [#2463]
-
conf/hosts.conf.sample, conf/nut.conf.sample, conf/ups.conf.sample,
conf/upsd.conf.sample, conf/upsd.users.sample,
conf/upsmon.conf.sample.in, conf/upssched.conf.sample.in,
conf/upsset.conf.sample, docs/man/hosts.conf.txt,
docs/man/nut.conf.txt, docs/man/ups.conf.txt,
docs/man/upsd.conf.txt, docs/man/upsmon.conf.txt,
docs/man/upssched.conf.txt, docs/man/upsset.conf.txt:
docs/man/.conf.txt, conf/.sample*: note about ASCII-only contents
of parsed config files [#2543]
-
docs/nut.dict: update docs/nut-names.txt with items defined by
42ITy NUT fork [#2339]
-
NEWS.adoc: update docs/nut-names.txt with items defined by 42ITy
NUT fork [#2339]
-
drivers/usbhid-ups.c, NEWS.adoc: for devices with VendorID=
0x06da
(Phoenixtec) suggest trying nutdrv_qx
[#334]
-
NEWS.adoc: document fix of prefix for custom distchecks [#2541]
-
Makefile.am: re-define "prefix" to help both native distcheck and
its sub-make brethren pass [#2541]
-
drivers/cps-hid.c: support
ups.firmware
and input.sensitivity
These variables were tested to work fine on a CP1350EPFCLCD UPS.
-
drivers/cps-hid.c: use consistent indentation in recently added
code
-
Makefile.am, scripts/Makefile.am, scripts/udev/Makefile.am: use
AM_MAKEFLAGS when calling $(MAKE)
-
scripts/augeas/Makefile.am: EXTRA_DIST lens templates (including
the generated nutupsconf.aug.in) if not installing as DATA
-
Makefile.am: pass DISTCHECK_CONFIGURE_FLAGS explicitly to sub-makes
for different distcheck scenarios [#2541]
-
ci_build.sh: update log-trace messages about default-tgt:* running
a sequential or parallel build
-
ci_build.sh: update log-trace messages about Homebrew
-
NEWS.adoc: update for cps-hid bump [#2540]
-
drivers/cps-hid.c: tone down the version bump [#2540]
-
docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
update MacOS build agent setup [#2522]
-
Jenkinsfile-dynamatrix: do not build "pure autoconf default"
scenario on MacOS\+Homebrew
-
docs/config-prereqs.txt: update about NUT CI Jenkins agent on MacOS
-
server/upsd.c: fix build on systems without IPV6_V6ONLY
-
configure.ac, tools/nut-scanner/nut-scanner.c:
tools/nut-scanner/nut-scanner.c: update build for systems that lack
all getifaddr() related methods [#2244]
-
common/str.c, configure.ac, include/nut_float.h: Provide fallback
strtof() for platforms where it is missing
-
include/timehead.h, configure.ac, common/Makefile.am,
common/timegm_fallback.c: add a fallback timegm()
-
configure.ac: refactor discovery of SEMLIBS (may be needed to
AX_RUN_OR_LINK_IFELSE() just a bit below) [#2522]
-
tools/nut-scanner/nut-scan.h, configure.ac: sem_open() usage needs
O_CREAT header [#2522]
-
clients/upssched.c: indent preprocessor clauses
-
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_xml_http.c:
tools/nut-scanner/scan_*: typo fix from copy-pasted %i⇒PRIuSIZE
[#2522]
-
tools/nut-scanner/nut-scanner.c: include nut_stdint.h always, not
only in threaded builds [#2522]
-
Makefile.am: check-scripts-syntax: fix to ignore old /bin/bash and
try something else if possible MacOS ships 3.x and does not grok
our syntax; their HomeBrew version is ok.
-
configure.ac, tools/nut-scanner/nut-scan.h,
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-init.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_xml_http.c:
tools/nut-scanner/*: add ability to use named semaphores [#2522]
-
configure.ac: add a sem_open() detector of named semaphore support
[#2522]
-
configure.ac: try to run sem_init() detector to see if it is usable
[#2522] Should fail e.g. on MacOS where it is present in headers
but not implemented and throws deprecation warnings which our
compile\+link(+run) check can use to rule out the support.
-
docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
note temurin JDK installation in MacOS/HomeBrew section
-
docs/config-prereqs.txt: fix typo in NetBSD section
-
tools/nut-scanner/nut-scanner.c: bump RESERVE_FD_COUNT for NetSNMP
use of files [#2511]
-
m4/nut_check_libusb.m4: differentiate native and cross mingw
builds, they vary in preferences
-
NEWS.adoc: when cross-building with a non-cross pkg-config program,
neuter its PKG_CONFIG_LIBDIR
-
docs/Makefile.am: adjust to possibility of repeated date\+author
title lines [#2510] While we group by those (by default,
overridable) when generating the
ChangeLog
, we ignore the e-mail
for comparisons — and different signatures can matter!
-
m4/nut_check_pkgconfig.m4: when cross-building with a non-cross
pkg-config program, neuter its PKG_CONFIG_LIBDIR Imported from
wxWidgets project; their license is LGPL-based with extra
permissions:
https://github.com/wxWidgets/wxWidgets/blob/master/docs/licence.txt
-
m4/nut_check_pkgconfig.m4: report PKG_CONFIG_PATH and
pkg-config
--variable pc_path pkg-config
for troubleshooting
-
data/driver.list.in, drivers/cps-hid.c: drivers/cps-hid.c: support
variables available on CP1350EPFCLCD UPS
-
NEWS.adoc, configure.ac, docs/nut.dict, include/Makefile.am,
include/nut_bool.h, m4/nut_check_bool.m4, tests/.gitignore,
tests/Makefile.am, tests/nutbooltest.c: configure.ac,
m4/nut_check_bool.m4, include/nut_bool.h, tests/nutbooltest.c et
al: introduce a NUT_CHECK_BOOL scriptlet and a header with
nut_bool_t type [#1176] Chose to use a unique type name to avoid
conflicts with third-party headers which deliver a
bool_t
(currently commonly hacked into many NUT sources). Using
lower-cased true
and false
values, hoping for maximum
compatibility with C99 and newer language standards (if the
compilers do implement them on whatever obscure platform NUT gets
built on, and then our new nut_bool_t
definition can be just an
alias for what the language gives us). A test case was added to
make sure it behaves as expected on different systems. Converting
the sources from their custom type definitions and usages would be
a separate step.
-
drivers/bcmxcp.c, drivers/belkin-hid.c, drivers/isbmex.c,
drivers/libhid.c, drivers/powercom.c, drivers/powerp-bin.c,
drivers/powerp-txt.c, drivers/tripplite.c, drivers/tripplite_usb.c:
drivers/*.c: switch to #include "nut_float.h" instead of direct
<math.h> and/or <float.h> [#1176]
-
tools/nut-scanner/scan_snmp.c: cosmetic fixes, reconcile with DMF
branch
-
Makefile.am, NEWS.adoc, UPGRADING.adoc: for ChangeLog generation
from git metadata, default to
HANGELOG_REQUIRE_GROUP_BY_DATE_AUTHOR=true [#2510]
-
tools/gitlog2changelog.py.in: fixup! tools/gitlog2changelog.py.in:
cosmetic fixes
-
tools/gitlog2changelog.py.in: support
CHANGELOG_REQUIRE_GROUP_BY_DATE_AUTHOR mode [#2510]
-
tools/gitlog2changelog.py.in: cosmetic fixes
-
tools/gitlog2changelog.py.in: comment about possible interleaved
date\+author entries [#2510]
-
docs/Makefile.am: "doc" target as part of "all" is not alone there
[#2510]
-
docs/Makefile.am: actually do fail with
ChangeLog.html-contentchecked recipe hits [#2510] …except for
when we deliberately generated nothing and report it in the
document
-
docs/Makefile.am: try to make sure we only build ChangeLog.adoc
once (or keep the first built copy in a parallel fanout) [#2510]
-
docs/Makefile.am: clarify the message about
DOC-CHANGELOG-GENERATE-WRAPPER to differentiate it better from the
real build [#2510]
-
README.adoc: avoid double-dash in the TIP block, this somehow
breaks PDF generation
-
README.adoc: make "NUT GitHub Star History Chart" visible only in
GitHub/HTML auto-rendering but not in static PDF docs
-
docs/nut.dict, docs/man/hwmon_ina219.txt: update for OI aspell
dictionaries
-
README.adoc: reword the GitHub stars image
-
clients/Makefile.am: dlname_filter(): use a shell function to avoid
mixing backticks and double-quotes (upsets ksh) [#2431]
-
tools/nut-scanner/nutscan-init.c, tools/nut-scanner/Makefile.am,
NEWS.adoc: use client/libupsclient-version.h for
SOFILE_LIBUPSCLIENT/SOPATH_LIBUPSCLIENT [#2431]
-
clients/Makefile.am, clients/.gitignore: generate a
client/libupsclient-version.h from libtool information file [#2431]
-
tools/nut-scanner/Makefile.am, NEWS.adoc: bump "minor" semver
component [#2511, #2431, #2450 et al] Earlier bump went to "patch"
component, but here we actually have an API expansion (and more
exported symbols), so the more important component should be
bumped.
-
tools/nut-scanner/nut-scanner.c: count auto-selected subnets,
loudly warn if none were chosen [#2244]
-
tools/nut-scanner/nut-scan.h: minor typo fix in comment
-
tools/nut-scanner/nutscan-init.c, include/nut_platform.h,
m4/ax_realpath_lib.m4: move definition of SOEXT to the header
[#2431] This would allow the multiplatform-aware library-picking
logic to be used elsewhere (e.g. DMF) eventually.
-
drivers/libhid.c, drivers/libhid.h: drivers/libhid.{c,h}: clarify
"NUT HID Library - User API" in file headings
-
clients/upsclient.c, clients/upsclient.h, clients/upsmon.c,
common/nutwriter.cpp, drivers/apc-mib.c, drivers/hwmon_ina219.c,
drivers/libhid.c, drivers/libhid.h, drivers/masterguard.c,
drivers/mge-utalk.h, drivers/microdowell.c, drivers/nutdrv_qx.c,
drivers/usbhid-ups.c, include/nut_platform.h, include/parseconf.h,
server/netssl.c, server/nut_ctype.h,
tools/nut-scanner/nut-scanner.c: *.{c,h}: Revise indentation of
nested preprocessor clauses/code - vol.2 Conform to NUT code style
guide, and satisfy pre-processors that insist on "traditional" code
layout by default (hash sign must start the line for them).
-
docs/config-prereqs.txt: for platforms that offer a choice of
python2/3 package names, separate its installation sample from the
big block of unambiguous packages [#2467]
-
m4/ax_realpath_lib.m4, tools/nut-scanner/nutscan-init.c: add HP-UX
*.sl file name patterns into the loop [#2431]
-
docs/Makefile.am: if remaking ChangeLog.html due to failed content
check, remove the faulty file [#2510]
-
docs/Makefile.am: ChangeLog.html-contentchecked: no dependencies,
avoids (re-)generation and log messages [#2510]
-
NEWS.adoc, UPGRADING.adoc, docs/man/usbhid-ups.txt, docs/nut.dict,
drivers/powercom-hid.c, drivers/usbhid-ups.c:
drivers/powercom-hid.c, docs et al: add
powercom_sdcmd_byte_order_fallback to send shutdown/stayoff in old
byte order [#2480]
-
docs/Makefile.am: make a retry of ChangeLog.html more visible
[#2510]
-
docs/Makefile.am: avoid lots of noise about symlinks to
prep-src-docs
-
docs/Makefile.am: avoid unbalanced double-quotes inside backticks
[#2510]
-
tests/Makefile.am: avoid "$\^" which BSD make does not always
resolve
-
scripts/python/Makefile.am: avoid "$\^" which BSD make does not
always resolve [#2529]
-
scripts/Solaris/Makefile.am: avoid "$\^" which BSD make does not
always resolve
-
docs/Makefile.am: use ChangeLog.html-contentchecked to retry
building a broken document (once) [#2510]
-
.gitignore, docs/Makefile.am: docs/Makefile.am: turn
ChangeLog.html-contentchecked into a standalone recipe [#2510]
-
docs/Makefile.am: sanity-check html-single ChangeLog.html - report
it as FAILED only once, and list the current size etc. [#2510]
-
scripts/Windows/build-mingw-nut.sh: do not complain so loudly about
missing optional cgi dir
-
scripts/Windows/build-mingw-nut.sh: check the built docs [#2510]
-
docs/Makefile.am: report the amount of times the first/second/last
entries were seen (if not 2) [#2510]
-
docs/Makefile.am: sanity-check html-single ChangeLog.html for
presence of a few key entries (exactly once) [#2510]
-
ci_build.sh, scripts/Windows/build-mingw-nut.sh: consistently
report "configure phase complete" and use of PARMAKE_FLAGS [#2510]
Note that scripted WIN32 cross-build currently is sequential-only
and only with the
make
from PATH
.
-
scripts/python/Makefile.am: revise *.po ⇒ *.mo generation [#2529]
-
scripts/valgrind/.valgrind.supp: sem_open is broken in some libc
implementations [#2511] Per
https://forums.freebsd.org/threads/named-semaphore-uninitialized-bytes.84850/
apparently BSD libc and GLibc at least do suffer
-
scripts/valgrind/.valgrind.supp, tools/nut-scanner/Makefile.am,
tools/nut-scanner/nut-scanner.c,
tools/nut-scanner/nutscan-display.c,
tools/nut-scanner/nutscan-ip.c, tools/nut-scanner/nutscan-serial.c,
tools/nut-scanner/scan_avahi.c, tools/nut-scanner/scan_ipmi.c,
tools/nut-scanner/scan_nut.c,
tools/nut-scanner/scan_nut_simulation.c,
tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_usb.c,
tools/nut-scanner/scan_xml_http.c: scripts/valgrind/.valgrind.supp:
update titles for libssl suppressions
-
tools/nut-scanner/nutscan-init.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/nut-scanner/scan_*.c:
reconcile coding style some more [#2511]
-
tools/nut-scanner/scan_xml_http.c: nutscan_scan_xml_http_thready():
revise trace-logging and comment markup [#2511]
-
tools/nut-scanner/scan_snmp.c, scripts/valgrind/.valgrind.supp:
constrain warnings about library methods [#2511]
-
tools/nut-scanner/scan_ipmi.c, tools/nut-scanner/scan_avahi.c,
scripts/valgrind/.valgrind.supp: constrain warnings about library
methods [#2511]
-
tools/nut-scanner/scan_snmp.c, scripts/valgrind/.valgrind.supp:
constrain libnetsnmp leak reports [#2511] It seems that although
init_snmp()
is called once, every use of the library initializes
some data which it then does not release, at least on the test
system here.
-
tools/nut-scanner/scan_xml_http.c: close broadcast socket too,
avoid FD leak [#2511]
-
tools/nut-scanner/scan_nut.c: list_nut_devices_thready(): free
allocations more reliably [#2511]
-
tools/nut-scanner/scan_snmp.c: track nut_initialized_snmp to only
init_snmp() once per library load [#2511]
-
tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c:
tools/nut-scanner/scan_*.c: drop remaining usage of WSAStartup()
overlooked before
-
tools/nut-scanner/scan_ipmi.c, tools/nut-scanner/scan_nut.c,
tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c:
tools/nut-scanner/scan_*.c: initialize "stwS" and "stwST" to better
track semaphore usage in debugger
-
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:
tools/nut-scanner/*.c: refactor nutscan_free() to actively
lt_dlclose() the loaded library modules [#2511] Avoid some memory
leak reports
-
common/common.c: nut_prepare_search_paths(): avoid an FD leak, and
comment what we do about "dirname" with and without realpath()
support
-
Makefile.am, NEWS.adoc, docs/developers.txt, docs/nut.dict,
scripts/Makefile.am, scripts/valgrind/.valgrind.supp,
scripts/valgrind/README.adoc, scripts/valgrind/valgrind.sh:
Introduce scripts/valgrind with helper script\+data to trace memory
usage [#2511]
-
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: tools/nut-scanner/scan_*: revise
"thready" scanning methods [#2511] * Clearly name "thread-ready"
scanning methods that can be used standalone or from
pthread_create() constraints * Settle on "thready" methods freeing
caller’s data (so we do not worry about doing it after the parallel
loops, or at a wrong moment before) * Unify code mark-up in the
files to facilitate later comparisons * Update some comments
-
NEWS.adoc, tools/nut-scanner/nut-scan.h,
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-init.c,
tools/nut-scanner/scan_ipmi.c: tools/nut-scanner/scan_ipmi.c,
nut-scan.h, nutscan-init.c, nut-scanner.c, NEWS.adoc: implement
parallel scanning for remote IPMI controllers [#2523]
-
UPGRADING.adoc: Revert "UPGRADING.adoc: hush the changes of PR for
issue #2523 until it is in the codebase" This reverts commit
d710adef2eba7003a0b42ae2d38709a7204befb4: the feature is here now.
-
UPGRADING.adoc: hush the changes of PR for issue #2523 until it is
in the codebase
-
tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c:
use blank lines in fallback not-built-here methods markup (as in
other files)
-
UPGRADING.adoc: highlight API (and a bit of ABI) changes to
libnutscan
, version bumped [#2244, #2523 et al]
-
drivers/nut-libfreeipmi.c: fix indentation (TAB vs SPACE)
-
clients/upsclient.h, drivers/nut-libfreeipmi.c,
drivers/usb-common.c, drivers/usb-common.h,
tools/nut-scanner/nut-scan.h,
tools/nut-scanner/scan_eaton_serial.c,
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:
*.{c,h}: Revise indentation of nested preprocessor clauses/code
Conform to NUT code style guide, and satisfy pre-processors that
insist on "traditional" code layout by default (hash sign must
start the line for them).
-
tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c,
tools/nut-scanner/scan_xml_http.c:
tools/nut-scanner/scan_{nut,snmp,xml_http}.c: update comments
-
tools/nut-scanner/nutscan-device.c,
tools/nut-scanner/nutscan-device.h,
tools/nut-scanner/nutscan-display.c,
tools/nut-scanner/nutscan-init.c, tools/nut-scanner/nutscan-ip.h,
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/nut-scanner/*: update ©
headers
-
tools/nut-scanner/scan_ipmi.c, tools/nut-scanner/scan_snmp.c,
tools/nut-scanner/scan_xml_http.c:
tools/nut-scanner/scan_{ipmi,snmp,xml_http}.c: comment concerns
about bracketed IPv6 in "port" values [#2512]
-
tools/nut-scanner/scan_nut.c: report discovered IPv4 addresses in
brackets [#2512]
-
tools/nut-scanner/nut-scanner.c: add a warning comment about
bit-counting for
-m auto
[#2244, #2516]
-
tools/nut-scanner/nut-scanner.c: implement "-m auto" for two WIN32
APIs [#2516]
-
NEWS.adoc: update
nut-scanner -m auto
note - WIN32 is now
supported too [#2516]
-
tools/nut-scanner/nutscan-init.c, tools/nut-scanner/nutscan-ip.c,
tools/nut-scanner/scan_nut.c, tools/nut-scanner/scan_snmp.c,
tools/nut-scanner/scan_xml_http.c: tools/nut-scanner/*: move WIN32
WSAStartup() rituals to nutscan_init() so they only run once and
for all [#2516]
-
common/common.c: revise debug-tracing of get_libname*() methods
-
configure.ac: fix location of NUT_CHECK_HEADER_IPHLPAPI call
[#2516]
-
configure.ac, tools/nut-scanner/Makefile.am: detect WIN32 support
of newer GetAdaptersAddresses() and/or older GetAdaptersInfo()
[#2516]
-
configure.ac: clarify why we call "cygpath" or "pwd -W", constrain
their warnings if they fail (wrong "pwd"), and report the outcome
-
builtin)
-
m4/nut_check_headers_windows.m4: introduce
NUT_CHECK_HEADER_IPHLPAPI [#2516]
-
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_xml_http.c:
nut-scanner: convert NetXML scan to use nutscan_ip_ranges_iter*()
[#2511]
-
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_snmp.c:
nut-scanner: convert SNMP scan to use nutscan_ip_ranges_iter*()
[#2511]
-
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_nut.c:
nut-scanner: convert Old NUT scan to use nutscan_ip_ranges_iter*()
[#2511]
-
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/scan_ipmi.c:
nut-scanner: convert IPMI scan to use nutscan_ip_ranges_iter*()
[#2511]
-
docs/man/Makefile.am, docs/man/nutscan_add_ip_range.txt,
docs/man/nutscan_free_ip_ranges.txt,
docs/man/nutscan_init_ip_ranges.txt,
docs/man/nutscan_stringify_ip_ranges.txt, docs/nut.dict,
tools/nut-scanner/nutscan-ip.c, tools/nut-scanner/nutscan-ip.h:
nut-scanner: introduce nutscan_stringify_ip_ranges() [#2244, #2511]
-
tools/nut-scanner/nutscan-ip.c: nutscan_add_ip_range(): save
irl.start_ip⇐irl.stop_ip in alphanumeric comparison order [#2511]
-
NEWS.adoc, docs/man/Makefile.am, docs/man/nutscan_add_ip_range.txt,
docs/man/nutscan_free_ip_ranges.txt,
docs/man/nutscan_init_ip_ranges.txt,
docs/man/nutscan_ip_ranges_iter_inc.txt,
docs/man/nutscan_ip_ranges_iter_init.txt,
docs/man/nutscan_scan_ipmi.txt, docs/man/nutscan_scan_nut.txt,
docs/man/nutscan_scan_snmp.txt,
docs/man/nutscan_scan_xml_http_range.txt, docs/nut.dict,
tools/nut-scanner/nut-scan.h, tools/nut-scanner/nutscan-ip.c,
tools/nut-scanner/nutscan-ip.h: nut-scanner: implement iteration
across nutscan_ip_range_list_t collection [#2511]
-
tools/nut-scanner/nutscan-ip.h: add nutscan_ip_range_list_t
structure comments [#2244, #2511]
-
tools/nut-scanner/nutscan-ip.c: fix comment markup
-
docs/man/nutscan_add_ip_range.txt: update wording and structure
comments [#2244, #2511]
-
docs/man/nutscan_add_ip_range.txt: fix copy-paste typo in title
[#2244, #2511]
-
docs/man/Makefile.am: extend HTML_DEV_MANS_FICTION to be on par
with .3 man pages
-
docs/man/Makefile.am: move a comment up to cover more relevant
entries
-
docs/man/nut-scanner.txt, docs/nut.dict: docs/man/nut-scanner.txt:
clarify about text host names as start/stop/cidr IPs [#2519]
-
tools/nut-scanner/Makefile.am, tools/nut-scanner/nut-scanner.c,
tools/nut-scanner/nutscan-init.c, tools/nut-scanner/scan_nut.c,
tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c:
tools/nut-scanner/scan_*.c: trace parallel scan ability init
[#2511]
-
tools/nut-scanner/nutscan-ip.c: /tools/nut-scanner/nutscan-ip.c:
wrap iterated IPv6 addresses in square brackets [#2512]
-
clients/upsclient.c: comment about bracketed IP addresses/host
names [#2512]
-
clients/upsclient.c: troubleshoot wrong upsname@hostname where only
hostname was expected [#2512]
-
clients/upsclient.c: cosmetic fix
-
clients/upsclient.c: troubleshoot wrong hostname [#2512]
-
clients/upsc.c: enable support for NUT_DEBUG_LEVEL envvar [#2512]
-
clients/upsclient.c: troubleshoot wrong upsname@hostname where only
hostname was expected - use NUT_STRARG() for safety [#2512]
-
docs/man/Makefile.am, docs/man/nutscan.txt,
docs/man/nutscan_add_ip_range.txt,
docs/man/nutscan_free_ip_ranges.txt,
docs/man/nutscan_init_ip_ranges.txt, docs/nut.dict,
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-ip.c,
tools/nut-scanner/nutscan-ip.h: nut-scanner code and docs: refactor
with nutscan_ip_range_list_t type for ip_ranges[] list and helper
metadata, and methods as part of libnutscan [#2244, #2511] Not
bumping library version, because it was recently bumped as part of
other PRs about this issue. Technically the scope of the library
has been changed by new exported methods and header lines.
-
tools/nut-scanner/nut-scanner.c, tools/nut-scanner/nutscan-ip.h:
move ip_range_t definition into header [#2244]
-
tools/nut-scanner/nut-scan.h: move __cplusplus extern "C" guard up
to before we declare vars and types
-
docs/man/nut-scanner.txt, NEWS.adoc: (fixed) IPv6 addresses must be
passed in square brackets [#2512]
-
tools/nut-scanner/nut-scanner.c: strip square brackets around
start_ip/end_ip, if any [#2512]
-
tools/nut-scanner/nutscan-ip.c: nutscan_cidr_to_ip(): strip square
brackets around first_ip, if any [#2512]
-
tools/nut-scanner/nutscan-ip.c: nutscan_cidr_to_ip(): sanity-check
for cidr==null [#2512]
-
tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_nut.c: fix
order of WIN32 active init calls vs. pthread variable declarations
[#2511]
-
tools/nut-scanner/nut-scanner.c: debug-log the Parallel scan
support status in this build and run [#2511]
-
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_xml_http.c:
tools/nut-scanner/scan_*.c: update some comments [#2511]
-
tools/nut-scanner/scan_xml_http.c: collapse single and multiple IP
address cases into one [#2512] This should apply formatting from
nutscan_ip_iter_init() to single-IP scans like it happens for other
protocols already. Also take the chance to rectify indentations
through parallel threads code.
-
tools/nut-scanner/scan_xml_http.c: comment where logical blocks end
-
tools/nut-scanner/nut-scanner.c:
-t timeout
: fix to use strtol()
not atol() [#2244]
-
tools/nut-scanner/nut-scanner.c: handle_arg_cidr(): fix to use
strtol() not atoi() [#2244]
-
tools/nut-scanner/nut-scanner.c: handle_arg_cidr(): report ignoring
a subnet by family before checking for mask length [#2244]
-
tools/nut-scanner/nut-scanner.c: handle_arg_cidr() rename "optarg"
to "arg_addr" [#2244] Avoid warning about clash with a global
variable. Fallout of refactoring original code into a method. Also
make it
const
as we do not change the original value anyway.
-
tools/nut-scanner/nut-scanner.c, docs/man/nut-scanner.txt,
docs/nut.dict, NEWS.adoc: handle_arg_cidr(): add
-m auto*/ADDRLEN
mode [#2244]
-
tools/nut-scanner/nut-scanner.c: handle_arg_cidr(): log why some
discovered subnets are filtered out [#2244]
-
tools/nut-scanner/nut-scanner.c: handle_arg_cidr(): line-wrap long
printouts [#2244]
-
tools/nut-scanner/nut-scanner.c: handle_arg_cidr(): tabs (style)
[#2244]
-
tools/nut-scanner/nut-scanner.c: refactor handle_arg_cidr() logic
to un-indent it some more [#2244]
-
tools/nut-scanner/nut-scanner.c: refactor handle_arg_cidr() into a
separate method [#2244] Allow for some shorter indentation
-
m4/nut_check_libavahi.m4: fix detection of SOFILE/SOPATH - we need
only the client library [#2431]
-
NEWS.adoc, docs/man/nut-scanner.txt,
tools/nut-scanner/nut-scanner.c: tools/nut-scanner/nut-scanner.c:
implement "-m auto{4,6}" modes to limit selection of ranges to
IPv4/IPv6 only [#2244]
-
tools/nut-scanner/nut-scanner.c, NEWS.adoc: neuter networking "-m
auto" support for WIN32 (needs different implementation) [#2244]
-
tools/nut-scanner/nut-scanner.c: separate POSIX headers from WIN32
ones (for networking "-m auto" support) [#2244]
-
tools/nut-scanner/nut-scanner.c:
-m auto
discovery: use shorter
addr/mask buffers [#2244]
-
tools/nut-scanner/nut-scanner.c: comment some TODOs [#2244]
-
tools/nut-scanner/nut-scanner.c:
-m auto
: implement actually
converting discovered subnets into CIDR and adding to IP ranges for
scanning [#2244]
-
tools/nut-scanner/nut-scanner.c: flush existing start_ip/end_ip
before handling whatever value of
-m
option [#2244]
-
tools/nut-scanner/nut-scanner.c: quieter debug about "Discovering
getifaddrs()" [#2244]
-
tools/nut-scanner/nut-scanner.c: use pre-allocated struct
sockaddr_in{,6} so it is aligned how-ever the platform likes
[#2244]
-
tools/nut-scanner/nut-scanner.c: use fatalx() instead of
hackarounds [#2244]
-
tools/nut-scanner/nut-scanner.c: retain getifaddrs() findings
printout as a real upsdebugx() trail [#2244] Originally I intended
to use these to check that the address parsing code works, and drop
the printf() of these messages. But if I collect them into a string
and upsdebug() it - why not, can help troubleshooting in real life
later, too.
-
tools/nut-scanner/nut-scanner.c: upscale sockaddr flags to
uintmax_t for debug printouts to be predictable on different
platforms [#2244]
-
NEWS.adoc, docs/man/nut-scanner.txt,
tools/nut-scanner/nut-scanner.c: tools/nut-scanner/nut-scanner.c et
al: prepare for
-m auto
mode with detection of configured network
interfaces
-
drivers/libshut.c: libshut_open(): use static structs and memcpy()
to actually fix alignment warnings
-
tools/nut-scanner/nut-scanner.c: quieter debug about add_ip_range()
in-/semi-valid inputs [#2244]
-
tools/nut-scanner/nutscan-ip.c: refactor to name IPv4 vars with a
"4" in the name, and use static structs and memcpy() to actually
fix alignment warnings [#2244]
-
tools/nut-scanner/nutscan-ip.c: nutscan_cidr_to_ip(): update
comments and logged reports to help troubleshooting [#2244]
-
tools/nut-scanner/nut-scanner.c: use xcalloc() instead of
hackarounds [#2244]
-
tools/nut-scanner/Makefile.am, NEWS.adoc: expose more of libcommon*
symbols in libnutscan to use them in nut-scanner [#2244]
-
.circleci/config.yml: report IP address when re-running the job
with SSH
-
docs/developers.txt: document pragmas for unused code/vars
-
docs/developers.txt: document indentation style for nested
macros/pragmas Inspired by weird bugs in code analysis tools on
some platforms (and their headers). *
https://stackoverflow.com/questions/42031921/unterminated-unconditional-directive-error-when-preprocessing-c-code
-
https://bugs.llvm.org/show_bug.cgi?id=31886
-
ci_build.sh: jump through some hoops to avoid use of "cpp" program
name if we can
-
.circleci/config.yml: try to install MC into "Re-run job with SSH"
envs
-
.circleci/config.yml: allow use of latest brew packages
-
.circleci/config.yml: force use of CPP="clang -E" with clang builds
-
.circleci/config.yml: force use of python3.12 for MacOS/Homebrew as
of now
-
ci_build.sh: cater for netsnmp\+openssl intimacy on MacOS/Homebrew
-
m4/ax_realpath_lib.m4: fall back to use "uname -m" for MacOS linker
arch
-
configure.ac: refactor with PROBE_OS_GROUP/PROBE_OS_USER to try
"id" where "getent" is missing Primarily this facilitates
"in-place replacement" builds
-
docs/man/nut-scanner.txt: document that currently different IP
range scans do not parallelize together [#2244] See also:
https://github.com/networkupstools/nut/issues/2511
-
tools/nut-scanner/nut-scanner.c: drop unused DEFAULT_TIMEOUT macro
[#2244] We actually use DEFAULT_NETWORK_TIMEOUT from common.h same
as in clients/upsclient.c
-
tools/nut-scanner/nutscan-device.c: protect
nutscan_add_device_to_device() from adding a list to itself
-
tools/nut-scanner/nut-scanner.c: use run*() methods for most of the
non-threaded scans too [#2244]
-
tools/nut-scanner/nut-scanner.c, docs/man/nut-scanner.txt,
NEWS.adoc: introduce a way to scan several IP address ranges
[#2244]
-
docs/man/nut-scanner.txt, docs/nut.dict: docs/man/nut-scanner.txt:
note that some protocols require IP address options and others
behave differently without them [#2244]
-
docs/man/nut-scanner.txt: update general markup
-
docs/man/nut-scanner.txt: update general wording about IP address
options [#2244]
-
tools/nut-scanner/nutscan-ip.c: tools/nut-scanner/nut-scanner.c:
comment some TODO for IPv6 netmask proper support [#2244]
-
tools/nut-scanner/nut-scanner.c: clarify some code comments [#2244]
-
tools/nut-scanner/scan_ipmi.c, tools/nut-scanner/scan_nut.c,
tools/nut-scanner/scan_snmp.c, tools/nut-scanner/scan_xml_http.c:
tools/nut-scanner/{scan_xml_http.c,scan_snmp.c,scan_nut.c,scan_ipmi.c}:
report the IP address (range, single, none) in the log [#2244]
-
m4/nut_check_libnetsnmp.m4: revise detection of the two headers
-
m4/ax_realpath_lib.m4: revise to better detect MacOS *.dylib files
[#2431]
-
tools/nut-scanner/nutscan-init.c: do not detect
NUT_PLATFORM_APPLE_OSX as WITH_MACOSX (driver)
-
m4/nut_check_libnetsnmp.m4: check for both headers we use
typically, and report the findings
-
.circleci/config.yml: relink net-snmp from brew to be in default
search paths It seems the XCode version of the library and its
headers gets preferred, so we either find no symbols or load the
library variant built without them.
-
m4/nut_check_libnetsnmp.m4: report myCFLAGS_SOURCE and
myLIBS_SOURCE from which we learned the settings
-
.circleci/config.yml: clean up debugging around openssl@3 [#2502]
-
.circleci/config.yml: relink openssl package if needed, and fail
job if we can not
-
.circleci/config.yml: relink openssl package
-
.circleci/config.yml: report what "brew" knows about openssl*
package(s)
-
docs/config-prereqs.txt, .circleci/config.yml: we can detect
HOMEBREW_PREFIX from the running system [#2502]
-
.circleci/config.yml: try to ensure openssl@3 usability by
reinstalling it in the end, and report what pkg-config knows
-
ci_build.sh: do not set CPPFLAGS on MacOS/Homebrew builds [#2502]
-
.circleci/config.yml: use clang (not gcc) directly, gcc now seems
to just be an alias [#2502]
-
tools/nut-scanner/Makefile.am: undefine NETSNMP_USE_OPENSSL if
building without it
-
drivers/Makefile.am: undefine NETSNMP_USE_OPENSSL if building
without it
-
configure.ac: detect WITH_SSL variants before other libraries
(notably net-snmp)
-
.circleci/config.yml: stash resulting config.nut_report_feature.log
[#2501]
-
.circleci/config.yml: now ci_build.sh used for MacOS/Homebrew
builds knows to not distruct system include dirs by default [#2501]
-
ci_build.sh: for MacOS/Homebrew builds, do not distruct system
include dirs by default [#2501]
-
.circleci/config.yml, docs/config-prereqs.txt: enable cppunit with
MacOS/Homebrew builds [#2502]
-
ci_build.sh: try to mark Homebrew (MacOS) include paths as
"-isystem" to avoid some warnings [#2502]
-
tests/cpputest-client.cpp, tests/cpputest.cpp, tests/example.cpp,
tests/nutclienttest.cpp, tests/nutconf_parser_ut.cpp,
tests/nutconf_ut.cpp, tests/nutipc_ut.cpp, tests/nutstream_ut.cpp:
tests/*.cpp: wrap CPPUNIT includes with more pragmas to ignore
warnings [#2502]
-
m4/ax_c_pragmas.m4: add many C+\+ pragmas about CPPUNIT grief seen
on MacOS builds [#2502]
-
drivers/snmp-ups.h, tools/nut-scanner/scan_snmp.c: use
HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_UNUSED_PARAMETER around net-snmp
headers
-
m4/ax_c_pragmas.m4: introduce
HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_UNUSED_PARAMETER
-
NEWS.adoc: report changes about MacOS builds on NUT CI and
interactively [#2502]
-
.circleci/config.yml: pass just HOMEBREW_PREFIX to ./ci_build.sh
now, not customized paths anymore [#2502]
-
ci_build.sh: inject pkg-config, libltdl and libsnmp settings with
HOMEBREW_PREFIX automatically
-
ci_build.sh: guess CI_CCACHE_SYMLINKDIR with HOMEBREW_PREFIX
automatically
-
.circleci/config.yml, docs/config-prereqs.txt, docs/nut.dict:
.circleci/config.yml, docs/config-prereqs.txt: install docbook-xsl
and document nuances around it
-
ci_build.sh: set *FLAGS after detecting CI_OS_NAME nuances
-
.circleci/config.yml: use HOMEBREW_PREFIX variable as already used
by brew [#2502]
-
configure.ac: revise use of AC_SEARCH_LIBS for i2c methods (one per
call)
-
m4/nut_check_libregex.m4: further simplify work with AC_SEARCH_LIBS
-
m4/nut_check_libregex.m4: AC_SEARCH_LIBS is for one method at a
time
-
scripts/augeas/gen-nutupsconf-aug.py.in: mark regex strings as r""
[#2183]
-
.circleci/config.yml, docs/config-prereqs.txt: clarify dependencies
available via Homebrew on MacOS [#2502]
-
.circleci/config.yml: introduce NUTCI_HOMEBREW_BASEDIR to
parameterize location of Homebrew libs, includes and ccache [#2502]
-
.circleci/config.yml: introduce NUTCI_HOMEBREW_BASEDIR to
parameterize location of Homebrew libs, includes and ccache [#2502]
-
docs/config-prereqs.txt, .circleci/config.yml: clarify the
different Homebrew locations are due to architecture, not age
[#2502]
-
configure.ac: fix capitalization of Python the language [#2183]
-
configure.ac: rectify adding to PYTHON_FAILED_TEST_DETAILS [#2183]
-
configure.ac: fix reported messages after refactoring [#2183]
-
configure.ac: trace decision-making about NUT-Monitor installation
(or not) [#2183]
-
configure.ac, m4/nut_check_python.m4: reshuffle Python detection
vs. capability probing [#2183]
-
configure.ac: refactor detection of usable Python interpreters;
report their module search paths and versions [#2183]
-
configure.ac: separate tests for nut_with_pynut_py* from
nut_have_telnetlib_py*, and in those separate tests of stock
telnetlib from fallback nut_telnetlib [#2183]
-
configure.ac: be sure to probe nut_telnetlib module from source dir
[#2183] Avoid confusion for out-of-tree builds
-
COPYING, docs/nut.dict, scripts/python/module/nut_telnetlib.py:
COPYING, scripts/python/module/nut_telnetlib.py: clarify the
license for the copied file [#2183]
-
configure.ac: upper-case Python name in message [#2183]
-
configure.ac: typo in path to test with nut_telnetlib Python module
[#2183]
-
drivers/main.c, clients/upsmon.c, server/upsd.c: clarify PID-file
checks wording: "is running or not"
-
m4/ax_realpath_lib.m4: try to make use of LDFLAGS, LIBS and CFLAGS
when discovering libraries [#2431] At least MacOS with Homebrew
seems puts each packaged library into its own directory, so args
like
-L/opt/homebrew/Cellar/neon/0.32.5/lib
would be required for
successful discovery.
-
UPGRADING.adoc: clarify about AX_REALPATH_LIB benefits that can
simplify packaging [#2431]
-
tests/NIT/nit.sh: log_debug the python shebang, and separate first
-
NEWS.adoc, docs/nut.dict, tools/nut-scanner/nutscan-init.c:
tools/nut-scanner/*, NEWS.adoc, docs/nut.dict: make use of
AX_REALPATH_LIB discovered libraries [#2431]
-
tools/nut-scanner/nutscan-init.c: set libname=NULL after we free()
it [#2431]
-
tools/nut-scanner/nutscan-init.c: rearrange pragma indentations and
update comments [#2431]
-
common/common.c: extend get_libname() to try exact hits if
base_libname
includes path separator character(s) [#2431]
-
tools/nut-scanner/nutscan-init.c, m4/ax_realpath_lib.m4:
acknowledge MacOS Darwin "*.dylib" extension [#2431]
-
m4/nut_compiler_family.m4: fence NUT_COMPILER_FAMILY to only run
the logic once
-
m4/nut_check_libavahi.m4, m4/nut_check_libfreeipmi.m4,
m4/nut_check_libneon.m4, m4/nut_check_libnetsnmp.m4,
m4/nut_check_libusb.m4: m4/nut_check_lib*.m4: call AX_REALPATH_LIB
to discover SOPATH*/SOFILE* for nut-scanner third-party libs
[#2431] libavahi, libfreeipmi, libneon, libnetsnmp, libusb0/1
NOTE: The libnutclient is separate, we build it - so can not detect
the final name in advance right here
-
m4/ax_realpath_lib.m4: introduce a way to find dynamic library
names [#2431]
-
.circleci/config.yml: add /opt/homebrew to include and lib choices
[#2502]
-
configure.ac: MacOS Darwin fails to run python scripts with proper
interpreter via shebang [#2502]
-
.circleci/config.yml: re-enable relinking libtool files Allegedly
should help find ltdl.h
-
.circleci/config.yml: update Homebrew dependency list to facilitate
builds on newer baseline [#2502]
-
docs/config-prereqs.txt: update dependency list and
CI_CCACHE_SYMLINKDIR for newer Homebrew recipes [#2502]
-
.circleci/config.yml: update CI_CCACHE_SYMLINKDIR for newer
Homebrew recipes [#2502]
-
tests/NIT/nit.sh: report the detected python shebang
-
.circleci/config.yml: store config.log artifact for troubleshooting
[#1419]
-
NEWS.adoc, configure.ac, docs/nut.dict, scripts/python/Makefile.am,
scripts/python/README.adoc, scripts/python/module/Makefile.am,
scripts/python/module/PyNUT.py.in,
scripts/python/module/nut_telnetlib.py,
scripts/python/module/setup.py.in: Provide a fallback copy of
telnetlib module for PyNUTClient [#2183]
-
.circleci/config.yml: add a failfast implementation to abort broken
builds and use fewer resources [#2502] The underlying problems are
usually shared.
-
.circleci/config.yml: bump XCode version to the oldest currently
available now [#2502] Closes: #2502
-
ci_build.sh: allow to customize PYTHON implementation when
dev-building (without args)
-
scripts/python/module/test_nutclient.py.in: make internal debug
verbosity of the module optional
-
NEWS.adoc, docs/nut.dict: NEWS.adoc: update for
libserial-nutscan.la [#2490]
-
configure.ac: fix indentations for recently changed --with-docs
code [#2473]
-
Makefile.am: move distcheck-light-man up to distcheck-light [#2473]
-
common/Makefile.am: do not embed libnutwincompat.la pieces into
libcommonstr.la Initially that embedding was done to help
libnutscan builds with libcommonstr.la helper, but then a separate
link with libnutwincompat.la was back-ported - so this line removal
helps both to constrain the helper size/scope, and against a
build-time conflict.
-
tools/nut-scanner/Makefile.am: bump libnutscan version-info just in
case after recent recipe changes
-
tools/nut-scanner/Makefile.am: drop LINKED_SOURCE_FILES now that we
have libserial-nutscan.la
-
tools/nut-scanner/Makefile.am: append to common make variables
instead of defining them at first assignment Would help later when
merging DMF/FTY branches; for now just a bit of syntactic sugar and
reduction of diffs against them.
-
drivers/Makefile.am, tools/nut-scanner/Makefile.am: introduce
libserial-nutscan.la to simplify nut-scanner recipes Initiated in
DMF branch by commit 4fec99ab62977365c0fa3de12f77ed9b6a01cc20
-
drivers/dstate.c, drivers/dstate.h: drivers/dstate.{c,h}: introduce
conn_t→readzero field and throttles around it [#2484]
-
clients/nutclient.h, clients/nutclientmem.h, clients/upsclient.h,
drivers/generic_gpio_common.h, drivers/generic_gpio_libgpiod.h,
drivers/hidparser.h, drivers/libhid.h, drivers/main.h,
drivers/upsdrvquery.h, server/upsd.h: Numerous headers: define
include-guard to a number value; revise names of these guards
-
drivers/dstate.c: indent ifdef-fenced includes
-
drivers/dstate.c, NEWS.adoc: a read() returning 0 after a select
with O_NDELAY means EOF (the other side closed socket) [#2484]
-
tests/NIT/nit.sh: report PID_* set by this script for NUT daemons
it has launched
-
tests/NIT/nit.sh: when we DEBUG_SLEEP, report practical steps after
dumping envvars - so dev/tester knows how they can proceed
-
tests/NIT/nit.sh: document a typical test sandbox preparation
-
docs/nut.dict: update for recent changes in NEWS.adoc [#2478]
-
NEWS.adoc: mention use of SSL linker deps for
snmp-ups
and
netxml-ups
builds [#2479]
-
NEWS.adoc: mention libcommonstr.la [#2478]
-
common/Makefile.am: libcommonstr_la_LIBADD \+= @BSDKVMPROCLIBS@
[#2463, #2478]
-
common/Makefile.am, tools/nut-scanner/Makefile.am: Introduce
private
libcommonstr.la
recipe A smaller helper library than
libcommonclient.la
which is sometimes an overkill, e.g. in
nut-scanner
where the libupsclient.so/.dll
is loaded
dynamically for "Old NUT" scans and there is no specific use for
object files included into libcommonclient.la
. More use-cases
with DMF codebase (currently not yet upstreamed). Combined from a
series of commits like * 3ba6b576cd2248484eaad41a9e2a480cbd2aa6a6 *
c418728e6ed7879f4a569ca0e3fd6f38fcb27eae *
5f16b7b7c89fa341090e886e7ca5cf8d981430eb *
bc4cd957280c67778a36b49b524092dc15d1aa8b
-
NEWS.adoc, docs/configure.txt: document
--with-doc=dist-auto
option [#2473]
-
configure.ac: apply comment for nut_with_libltdl=no vs.
nut_with_nut_scanner=yes situation Derived from commits
21d62421fea72c4f981bfa05fb259da65a795ac9 and
9322e2e3404b97615af799b7062e962030277830 in the FTY branch.
-
Makefile.am: use job-server for DMF-related targets with sub-makes:
cover distcheck-light-man
-
Makefile.am:
make distcheck-light-man
should test installability
of NUT-Monitor and PyNUT (even if as a co-bundle) Modernize
DISTCHECK_LIGHT_MAN_FLAGS
for 2022\+ Replicate commit
e19fa235a7cecdf5bc5752ab87c3e6db81932dac from PR
https://github.com/networkupstools/nut/pull/1504
-
README.adoc: add a Star History Chart badge/image
-
clients/upsclient.h: include sys/types.h Include sys/types.h to
avoid the following uclibc build failure with collectd raised since
version 2.8.0 and
https://github.com/networkupstools/nut/commit/3f3851eab0d51e029f67e7db359860cc983557f4:
configure:109633: checking int type of port argument for NUT
upscli_splitname configure:109665:
/home/buildroot/instance-0/output-1/host/bin/x86_64-linux-gcc -c
-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-O2 -g0 -Wall -Werror -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 conftest.c >&5 In file included from
conftest.c:172:
/home/buildroot/instance-0/output-1/host/x86_64-buildroot-linux-uclibc/sysroot/usr/include/upsclient.h:114:1:
error: unknown type name ssize_t; did you mean size_t? 114 \|
ssize_t upscli_sendline_timeout(UPSCONN_t *ups, const char *buf,
size_t buflen, const time_t timeout); | ^~~~~ \| size_t Fixes: -
http://autobuild.buildroot.org/results/205/2058f87ad7dbf7fbc62c8747855c82da4157ea35/collectd-5.12.0/config.log
-
drivers/powercom-hid.c: fix bytes order in shutdown commands
-
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]
-
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]
-
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]
-
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
-
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
-
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
-
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.
-
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]
-
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
-
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
-
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.
-
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.
-
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.
-
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.
-
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]
-
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.
-
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.
-
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.
-
NEWS.adoc: announce bicker_ser driver [#2318]
-
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.
-
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.
-
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.
-
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]
-
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
-
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.
-
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]
-
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]
-
docs/nut.dict: update for hwmon_ina219 man page [#2430]
-
docs/nut.dict: apply changes from upstream NUT sources
-
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]
-
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]
-
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>
-
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]
-
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
-
data/driver.list.in: fix whitespace Fixes: a816677fcf0e
("data/driver.list.in: add CP1350PFCLCD")
-
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]
-
include/nutconf.hpp: document how to discover keywords for
UpsConfiguration class [#2294]
-
server/upsd.c, NEWS.adoc: log-trace daemon exit and clarify other
messages [#2417]
-
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]
-
include/nutconf.hpp, tests/nutconf_ut.cpp: revise
UpsConfiguration::setUsbSetAltInterface() logic to not save a bogus
-1 [#2294]
-
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]
-
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]
-
include/nutconf.hpp: add BoolInt constructors from supported data
types [#2294]
-
common/nutconf.cpp: wrap long lines and standardize style in method
declarations
-
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
-
common/nutwriter.cpp: introduce helper macro
SHELL_CONFIG_DIRECTIVEX() [#2294]
-
include/nutwriter.hpp, common/nutwriter.cpp: update comments to
match classes to config files [#2294]
-
conf/nut.conf.sample, docs/man/nut.conf.txt: document
NUT_DEBUG_LEVEL envvar support
-
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]
-
common/nutwriter.cpp, include/nutconf.hpp: include/nutconf.hpp,
include/nutwriter.cpp: extend CertHost class with BoolInt fields
-
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]
-
tests/nutconf_parser_ut.cpp: typo fixes in test names; whitespace
rectification
-
docs/nut.dict: drop key words absent in both current NUT and
NUT-WEBSITE sources [#2402]
-
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]
-
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]
-
include/nutconf.hpp: UpsdUsersConfiguration: update comments about
existing methods [#2294]
-
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]
-
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]
-
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)
-
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
-
docs/nut.dict: update for nut-website
-
.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
-
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]
-
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
-
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]
-
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]
-
docs/developers.txt, docs/nut.dict: document some caveats about
using IDEs to develop NUT
-
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]
-
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]
-
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]
-
NEWS.adoc, drivers/libhid.c: Fix comments/docs around the
maxreport
flag for usbhid-ups
driver, vs. max_report_size
setting in code
-
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
-
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
-
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]
-
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
-
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]
-
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
-
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
-
NEWS.adoc: Add Liebert PSI5 [#2369]
-
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
-
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.
-
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.
-
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]
-
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
-
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]
-
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
-
Jenkinsfile-dynamatrix: rectify passing of CONFIG_OPTS [relies on
nut/jenkins-dynamatrix#34]
-
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]
-
.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
-
.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
-
.github/workflows/codeql.yml: extend with python
-
Jenkinsfile-dynamatrix: fix naming for cross-Windows builds
("Strict C" part is optional)
-
Jenkinsfile-dynamatrix: add a TODO about "completely out-of-tree"
builds
-
autogen.sh: in the end of successful execution, lead interactive
users to running the ./configure script
-
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
-
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)
-
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
-
drivers/snmp-ups.c: apply comments and formatting from FTY branch
-
drivers/dstate.c: apply comments from FTY branch Originally from
commits 9723e08096 and 6909e965a9 (Jan 2017)
-
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
-
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.
-
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.
-
m4/ax_c_pragmas.m4: comment where "-Wcast-function-type-strict"
comes from
-
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]
-
docs/Makefile.am: comment typo fix
-
drivers/usb-common.c: free() USB matcher structures if called again
[#2309] e.g. when reconnecting after link loss
-
m4/ax_c_pragmas.m4: introduce
HAVE_PRAGMA_GCC_DIAGNOSTIC_IGNORED_ADDRESS
-
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]
-
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
-
Makefile.am: ChangeLog: fix shell-scripting typo
-
include/state.h: include time headers (we use timespec/timeval
here)
-
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
-
drivers/nutdrv_qx.c: Correct access method used for flag
battery_voltage_reports_one_pack
-
tools/nut-scanner/Makefile.am: use libnutwincompat.la where
appropriate
-
tools/nut-scanner/Makefile.am: fix libnutscan_la_LIBADD vs.
libnutscan_la_LDFLAGS
-
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
-
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!
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
configure.ac: avoid autoconf-added debug/optimization settings
-
configure.ac: allow to --enable-cppunit=force for dev-testing
-
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
-
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
-
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)
-
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)
-
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)
-
drivers/tripplite_usb.c: update comments and logging for unit id
matcher
-
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
-
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]
-
drivers/tripplite_usb.c: Fix for undefined upsid in config small
fix restoring matching when upsid is undefined in config closes
#2282
-
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
-
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()
-
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
-
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)
-
tests/nutstream_ut.cpp: Randomize bind(port) to try avoiding
collisions in parallel testing
-
clients/upsmon.c: debug information to rectify unwanted OFF
criticalities
-
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…)
-
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
-
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
-
m4/nut_check_libgd.m4: fall back to checking with explicit -lpng in
the LDFLAGS loop
-
docs/nut.dict: Update nut.dict
-
drivers/snmp-ups.h: adapt to non-DMF SNMP NUT driver builds
-
scripts/subdriver/gen-snmp-subdriver.sh: bump version and copyright
-
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
-
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)
-
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.
-
NEWS.adoc: untie OFF from linestate in upsmon FSD [#2279]
-
clients/upsmon.c: fix offstate not being a requirement for a
critical UPS on OFF
-
configure.ac: use -Wno-exit-time-destructors and
-Wno-global-constructors with clang+\+ to not worry about "(static)
const something" variables
-
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
-
include/nutipc.hpp: avoid naming clash for QUIT signal and command
-
tools/nut-usbinfo.pl: avoid dying on unknown file name patterns
(e.g. *-mib.c.bak), just warn and skip them
-
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
-
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
-
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
-
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
-
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
-
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!)
-
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
-
drivers/eaton-pdu-marlin-mib.c: marlin_device_count_fun(): decorate
a NUT_UNUSED_VARIABLE()
-
server/netssl.c: fix decl-after-statement NUT_UNUSED_VARIABLE()
implementation counts as a code statement, so should be after true
declarations.
-
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.
-
clients/upsmon.c: fix comment wording [#840, #2240]
-
scripts/upower/95-upower-hid.hwdb: update for recent changes in
drivers/belkin-hid.c [#2271]
-
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]
-
docs/ci-farm-lxc-setup.txt: errata for virt-top too new to work
with LXC
-
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.
-
drivers/nutdrv_qx.c: use correct read_size for too much data read
message
-
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
-
drivers/nutdrv_qx.c: return actual number of bytes we copied to
buffer
-
drivers/apc-mib.c: bump DRIVER_VERSION to double-digits 1.60 is
more future-proof than 1.7 (after 1.6) :)
-
drivers/apc-mib.c: update MIB values
-
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]
-
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]
-
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()
-
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]
-
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
-
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
-
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/…)
-
tools/nut-scanner/scan_nut_simulation.c: Fix declaration-after-code
in scan_nut_simulation.c
-
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
-
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, …
-
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
-
docs/ci-farm-lxc-setup.txt, docs/nut.dict: suggest dependency
packages for LXC and QEMU
-
NEWS.adoc, drivers/libusb0.c, drivers/libusb1.c:
drivers/libusb{0,1}.c: reset driver parameters while enumerating
With an Arduino Leonardo compatible board attached alongside a
CyberPower CP1500PFCLCD, usbhid-ups would incorrectly conclude that
there was no kernel driver attached to the UPS and then fail
subsequent steps accordingly. The cause is the global
usb_communication_subdriver_t struct; when a subdriver (e.g.
arduino-hid) sets different values during the enumeration loop,
they’re not set back to defaults afterwards, causing issues with
other subdrivers (e.g. cps-hid). So, if a subdriver doesn’t match,
set a selection of fields back to their default values using the
newly added nut_usb_subdriver_defaults() before the next attempt.
-
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]
-
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
-
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
-
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"
-
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.
-
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.
-
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]
-
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
-
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
-
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.
-
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.
-
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.
-
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
-
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
-
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]
-
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
-
.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]
-
drivers/Makefile.am: dist the apc_modbus.h file
-
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
-
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.
-
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
-
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.
-
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.
-
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
-
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
-
clients/upsmon.c: It is important to reset the "CAL" status. This
will be reset later if necessary.
-
.github/workflows/PyNUTClient.yml: limit auto-runs to NUT upstream
[#2158] Other repos lack needed pypi credentials anyway.
-
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
-
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)
-
server/Makefile.am: limit SSL and LIBWRAP options to upsd
(sockdebug/pipedebug is not networked)
-
scripts/python/module/.gitignore: .pypi* touch-files [#2158]
-
.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]
-
scripts/python/Makefile.am: python: Do not install setup.py
-
NEWS.adoc: Update with powerpanel driver changes
-
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
-
.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]
-
.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.
-
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)
-
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
-
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().
-
configure.ac: quiece -Wincompatible-function-pointer-types-strict
for clang-17 on some platforms [#823]
-
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.
-
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
-
m4/nut_compiler_family.m4: fix cross-compilation Do not use
isystem with host paths when cross-compiling
-
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
-
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
-
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
-
docs/man/apc_modbus.txt: update the man page with caveats
applicable at the publication time (Oct 2023) [#2063 follow-up]
-
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
-
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
-
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]
-
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]
-
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]
-
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
-
NEWS.adoc: update list of dummy-ups improvements for NUT v2.8.1
-
drivers/dummy-ups.c: relax error handling to prevent premature
driver termination
-
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
-
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
-
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
-
clients/upsmon.c: keep last UPS linestate on drop_connection
-
Jenkinsfile-dynamatrix: add a
dynamatrixGlobalState.enableDebugTraceGithubStatusHighlights toggle
-
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.
-
.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
-
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]
-
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.
-
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
-
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]
-
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]
-
docs/man/sms_ser.txt: update some wording
-
NEWS.adoc: sms_ser introduced [#2090]
-
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)
-
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.
-
Jenkinsfile-dynamatrix: enable @Library(jenkins-dynamatrix@)
notation for custom-built plugin on NUT CI farm
-
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
-
tests/Makefile.am: refer to nutlogtest$(EXEEXT) for clarity in
dependencies
-
drivers/compaq-mib.c: Fix issues in compaq mib
-
tests/nutlogtest.c: revise include statements
-
docs/nut.dict: Update nut.dict for PR #2090
-
drivers/main.c: follow TOCTOU analysis suggestions about file
permissions check and enforcement
-
Jenkinsfile-dynamatrix: hush down groovy debug verbosity, use
BRANCH_NAME patterns as the default toggle to be loud and slow
-
docs/man/Makefile.am, docs/man/sms_ser.txt: Add man file and update
Makefile.am
-
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"
-
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
-
NEWS.adoc: optiups fixes [#2089]
-
Jenkinsfile-dynamatrix: enable tracing for fightwarn branches
-
tests/generic_gpio_utest.c: more fscanf() width warnings
-
drivers/optiups.c: use str_to_short() instead of atoi()
-
drivers/optiups.c: use short instead of long/float
-
data/driver.list.in: updated driver.list.in
-
drivers/optiups.c: Shuffle lines to keep declarations before
operations
-
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
-
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()
-
drivers/optiups.c: correct voltages for Opti-UPS 230V AC models;
correct battery capacity for 24V models
-
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)
-
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.
-
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.
-
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
-
docs/nut.dict: update for nut-website additions
-
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)
-
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)
-
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]
-
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
-
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]
-
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.
-
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
-
docs/nut.dict: update dictionary for nut-website changes
-
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]
-
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]
-
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]
-
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
-
.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
-
ci_build.sh: introduce initial clean-up shortcut (used if recipes
change)
-
.gitattributes: make sure docs/nut.dict is always LF (no CR)
-
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
-
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]
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]
-
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…
-
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…
-
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.
-
UPGRADING.adoc: Update UPGRADING.adoc
-
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
-
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]
-
NEWS.adoc: change asciidoc link tag
-
docs/nut.dict: Update nut.dict
-
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]
-
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]
-
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
-
drivers/cyberpower-mib.c: Update cyberpower-mib.c Bump version
after #2041
-
drivers/cyberpower-mib.c: restore upsAdvanceControlUpsSleep as
"shutdown.return" [follow-up from #2029]
-
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
-
drivers/nutdrv_qx.c: dial back down the batt.volt.high
guesstimation to 130/120 of the nominal (back from experimental
150/120) [#1652]
-
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
-
data/driver.list.in: Add APC SmartUPS 750 (SMT750I) reports [#1261]
-
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]
-
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
.
-
NEWS: fix for cyberpower-mib instcmd definitions [#2029]
-
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]
-
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…)
-
docs/nutdrv_qx-subdrivers.txt, docs/nut.dict: fix some typos and
update the dictionary [#2005]
-
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]
-
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.
-
NEWS: cyberpower-mib.c supports more data points now [#1982]
-
drivers/cyberpower-mib.c: bump version for new entries
-
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).
-
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
-
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.
-
drivers/cyberpower-mib.c: Moved additional ups.status to ups.alarm
-
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]
-
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
-
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
-
drivers/nutdrv_qx.c: Update drivers/nutdrv_qx.c Fix debug printout
-
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
-
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)
-
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.
-
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
-
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
-
COPYING: Update COPYING about LICENSE-DCO file Follow-up to #1995
-
.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]
-
drivers/cyberpower-mib.c: Added more variables from the CyberPower
MIB
-
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]
-
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
-
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
-
…/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
-
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.
-
docs/man/nut-scanner.txt, docs/man/snmp-ups.txt: clarify that
secLevel
is required to use non-trivial authentication [#734]
-
docs/maintainer-guide.txt: stress the release git tag rituals
[#1971]
-
docs/nut-names.txt: reference
docs/new-drivers.txt
by name for
device status data definitions
-
drivers/liebert-hid.c: Apply code review fixes - Replace
non-standard variable names for Full charge capacity and Design
capacity - Prefix with experimental
-
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
-
clients/upssched.c: add enter/exit log tracing of sock_read()
[#1964]
-
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
-
clients/upssched.c: improve logging of client connection life cycle
-
tests/NIT/nit.sh: typo fix
-
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]
-
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
-
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.
-
docs/nut.dict: update with OpenPGP [#1410]
-
NEWS, docs/nut.dict: NEWS: published new maintainer GPG key
DE0184DA7043DCF7 [#1410]
-
configure.ac, include/Makefile.am: constrain use of "git describe"
to release tags [#1949, nut-website#35,
nut-website#34]
-
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
-
docs/nut.dict: bump for IntelliJ
-
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
-
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.
-
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
-
docs/man/Makefile.am: typo fix to not override man8_MANS definition
-
docs/man/sockdebug.txt: Update sockdebug.txt Fix markup (and a
progname mention), add original code authors.
-
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
-
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
-
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]
-
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
-
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]
-
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
-
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
-
tests/NIT/nit.sh: report test case names at start of ther methods,
to find error reports in log more easily
-
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
-
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]
-
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]
-
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]
-
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
-
drivers/salicru-hid.c: Update salicru-hid.c Whitespace and
alphabetic fixes, subdriver version bump
-
data/driver.list.in, drivers/salicru-hid.c,
scripts/upower/95-upower-hid.hwdb: feat: Added support for Salicru
SPS 3000 ADV RT2
-
docs/nut.dict: adapt to newer website preparations
-
drivers/nutdrv_qx_voltronic.c: cover another path to
"battery.voltage" with qx_multiply_battvolt()
-
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
-
NEWS: integration with usb_resetter documented [#1887]
-
docs/nut.dict: Update nut.dict
-
drivers/nutdrv_qx.c: should we not use correct
battery_voltage_reports_one_pack_considered every loop?
-
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)
-
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
-
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
-
NEWS, drivers/baytech-mib.c: drivers/baytech-mib.c: update
baytech_outlet_status_info[] valid values [#1871]
-
drivers/upsdrvctl.c: avoid another warning (WIN32 builds)
-
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
-
docs/nut.dict: fixup! NEWS: libdummy_mockdrv.la added [#1855]
-
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
-
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
-
drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c:
suggest Zadig tool to handle UPS with WinUSB (for WIN32 builds)
-
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
-
NEWS, UPGRADING, docs/configure.txt, docs/packager-guide.txt:
mention new category of GPIO drivers
-
configure.ac: currently --with-gpio defaults are platform-dependent
-
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
-
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
-
drivers/generic_gpio_common.c: 2n round of refactoring after test
-
tools/nut-scanner/scan_xml_http.c: Update scan_xml_http.c
-
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
-
drivers/generic_gpio_common.c: fixes after extensive rules& states
calc tests
-
drivers/libusb1.c: Update libusb1.c Change to conventional
error-message format
-
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
-
ci_build.sh: try to ensure a TMPDIR
-
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
-
drivers/generic_gpio_common.c, drivers/generic_gpio_libgpiod.c:
removed test code and finalized styling
-
drivers/generic_gpio_libgpiod.c: removed define for debug
-
docs/scheduling.txt: align example timeouts in different paragraphs
-
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
-
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]
-
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
-
docs/nut.dict: Update docs/nut.dict
-
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]
-
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)
-
INSTALL.nut: update instructions for parallel make all \+ check
-
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
-
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
-
drivers/gpio.c: removed local test define
-
docs/man/Makefile.am, docs/man/gpio.txt, drivers/gpio.c: PR
preparation fixes
-
drivers/gpio.h: .h updates
-
docs/man/gpio.txt, drivers/gpio.c: preparing for PR
-
docs/man/gpio.txt: added draft man page
-
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
-
m4/nut_report_feature.m4: fix NUT_REPORT_TARGET() for multi-token
values of CC_VERSION etc.
-
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)
-
drivers/gpio.h: initial for GPIO(2)
-
configure.ac, drivers/Makefile.am, drivers/gpio.c: initial for gpio
driver support
-
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
-
drivers/tripplite-hid.c, scripts/upower/95-upower-hid.hwdb: add
support for minuteman device a0a0
-
drivers/tripplite-hid.c: Update tripplite-hid.c Update subdriver
version along with content bump
-
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.
-
INSTALL.nut: fix link to Config Prereqs in generated HTML version
-
INSTALL.nut, docs/nut.dict: INSTALL.nut: update with "in-place"
rebuilds chapter [#1826]
-
.github/FUNDING.yml: Introduce .github/FUNDING.yml metadata
-
docs/nut.dict: add OSC and opencollective
-
configure.ac: rearrange progress message for "whether to build
binaries with tighter systemd integration support"
-
configure.ac: quiesce python checks for modules
-
docs/man/riello_usb.txt: Update riello_usb.txt
-
NEWS: Update NEWS
-
docs/man/riello_usb.txt: Update riello_usb.txt
-
appveyor.yml: avoid redirect to /dev/null on Windows
-
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
-
NEWS: bestfortress shutdown timeout fixed [#1820]
-
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]
-
drivers/bestfortress.c: Update bestfortress.c Fix prints of
(s)size_t
variables
-
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]
-
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]
-
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.
-
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.
-
configure.ac: prepare nut-common-tmpfiles.conf.in subdir for
@STATEPATH@/upssched, and update comments
-
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
-
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.
-
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 $(…)
-
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
-
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]
-
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.
-
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]
-
.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
-
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]
-
drivers/apc-hid.c: comment 0xff86007c as "APCDelayBeforeReboot" vs
"APCForceShutdown" uncertainty [#1796]
-
data/driver.list.in: update for APC CS500 (from 2004) [#1776]
-
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]
-
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]
-
drivers/libusb0.c, drivers/libusb1.c: drivers/libusb{0,1}.c: bump
version for allow_duplicates [#1756]
-
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]
-
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]
-
conf/upsd.conf.sample: upsd.conf.sample: Clarify LISTEN/firewall
comments
-
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]
-
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).
-
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]
-
drivers/libusb1.c: handle non-zero libusb port numbers as valid
[#1774]
-
docs/man/upsmon.txt: Explain POWERDOWNFLAG Document that it is
removed at successful startup
-
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]
-
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
-
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
-
MAINTAINERS: add pkgsrc
-
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.
-
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
-
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]
-
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
-
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
-
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]
-
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
-
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]
-
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]
-
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]
-
drivers/eaton-pdu-nlogic-mib.c: Fix discovery issue with Eaton pdu
nlogic
-
docs/nut.dict: update dict
-
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]
-
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]
-
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]
-
drivers/mge-hid.c: Update mge-hid.c fixed conversion issue
-
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.
-
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
-
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
-
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
-
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
-
NEWS: added "hpe-pdu3-cis-mib" snmp-ups subdriver [#1713]
-
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
-
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
-
NEWS: update for snmp-ups fix with wrong sysOID responses [#1710]
-
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
-
configure.ac, m4/nut_report_feature.m4: m4/nut_report_feature.m4:
report configure invocation args
-
NEWS, docs/nut.dict: NEWS: snmp-ups added "eaton-pdu-nlogic-mib"
subdriver [#1698]
-
Makefile.am: Update Makefile.am maintainer-clean the
config.nut_report_feature.log
-
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
-
docs/nut.dict: update dict
-
docs/nut.dict: update for nut-website::projects.txt
-
drivers/eaton-pdu-nlogic-mib.c: Update eaton-pdu-nlogic-mib.c Fix
a typo in data flags
-
appveyor.yml: disable required forced rebuilds of netsnmp (and
debug of build-mingw-prereqs.sh) [#1475]
-
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]
-
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
-
scripts/augeas/gen-nutupsconf-aug.py.in: skip a false-positive from
Augeas driver options
-
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)
-
docs/config-prereqs.txt, docs/nut.dict: docs/config-prereqs.txt:
update freeipmi -largp install for OpenBSD (6.4 \+ 6.5 checked)
-
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
-
docs/nut.dict: Update nut.dict
-
NEWS: Update NEWS
-
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]
-
NEWS: we log uid/gid/chroot changes since 2.8.1 [#1694]
-
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)
-
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
-
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.
-
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
-
scripts/upsdrvsvcctl/nut-driver-enumerator.sh.in: fix more "egrep"
⇒ "grep -E" cases in the older branch
-
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]
-
drivers/snmp-ups.c: Fix walk issue with snmpv3 ( add type error
execption )
-
drivers/snmp-ups.c: Update snmp-ups.c Avoid potential NULL pointer
dereference in a debug printout
-
docs/nut.dict: Update nut.dict
-
AUTHORS: Update AUTHORS
-
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
-
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.
-
NEWS: apc-epdu-mib added for NUT v2.8.1
-
drivers/Makefile.am, drivers/apc-epdu-mib.c,
drivers/apc-epdu-mib.h, drivers/snmp-ups.c: Add SNMP apc easy pdu
support
-
scripts/Windows/README: update mingw libneon build instructions
-
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]
-
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
-
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]
-
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
-
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
-
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
-
configure.ac: comment that _GNU_SOURCE may be needed for strptime()
detection
-
configure.ac: comment that _GNU_SOURCE may be needed for strptime()
detection
-
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
-
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]
-
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]
-
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]
-
Jenkinsfile-dynamatrix: enable linux\+mingw cross builds as part of
NUT baseline
-
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
-
include/Makefile.am: fix merge error (duplicate code)
-
clients/upslog.c: adjust to Windows branch after PR #1639
-
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"
-
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)
-
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
).
-
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
-
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 #
-
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
-
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]
-
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
-
docs/nut.dict: Update with key words from NUT for Windows effort
for nut-website
-
scripts/Windows/README: document building shared
"libnetsnmp-40.dll" Thanks to Denis Serov for the hints posted at
https://alioth-lists.debian.net/pipermail/nut-upsdev/2016-April/007171.html
-
tests/NIT/nit.sh: do not fail "make check-NIT" started by root just
because daemons drop privileges [#1568]
-
docs/config-prereqs.txt: update to OpenBSD 6.5 due to JDK 11\+ for
Jenkins agents, and update other OS instructions
-
scripts/python/module/PyNUT.py.in: Update PyNUT.py.in Add a note
on
PyNUTError("Always a string")
to file-heading changelog
-
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]
-
NEWS: RFC 9271 published 2022-08-10
-
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]
-
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]
-
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]
-
clients/nutclientmem.cpp: include config.h first
-
clients/nutclient.cpp: Update nutclient.cpp include "config.h"
first
-
clients/Makefile.am: separate delivery of C+\+ headers - do it only
if we deliver the libs [#1598]
-
tests/NIT/nit.sh: warn to have prepared a listening NUT_PORT before
asking for individual test cases
-
ci_build.sh: refactor with autogen_get_CONFIGURE_SCRIPT and
configure_CI_BUILDDIR for better out-of-tree builds
-
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)
-
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
-
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.
-
tests/NIT/Makefile.am: check-NIT-devel: become EXEEXT-aware
-
tests/NIT/nit.sh: report if skipping cppnit because absent
-
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
-
drivers/blazer.c: Blazer: Accept the value of "idleload" equal to
zero It allows setting the "idleload" parameter equal to zero
-
appveyor.yml: Update appveyor.yml Add mingw-w64-x86_64-cppunit to
check
cppnit
et al
-
configure.ac: NUT_REPORT_FEATURE the HAVE_CXX11 and HAVE_CPPUNIT
aspects
-
clients/nutclient.cpp: port connect() WIN32 code from upsclient.c
-
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
-
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
-
NEWS: group "NUT for Windows" bullet points
-
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
-
ci_build.sh: restructure error-catching in default BUILD_TYPE=""
case
-
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
-
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
-
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.
-
drivers/snmp-ups.c: snmp-ups: fix alarm processing only walk the
number of present alarms, instead of INT_MAX, to avoid potential
blocking
-
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
-
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…"
-
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)
-
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]
-
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]
-
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]
-
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
-
NEWS: snmp-ups updated for invalid negative values [#1558]
-
ci_build.sh: consider --with-nut-scanner option [#1560]
-
docs/packager-guide.txt: add suggestions for nut-scanner [#1560]
-
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
-
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]
-
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/S