Upstreaming improvements from 42ity/nut fork #1316
Labels
CI
Entries related to continuous integration infrastructure (historically also recipes like Makefiles)
DMF
NUT Data/Dynamic Mapping File/Format/Functionality feature
enhancement
nut-scanner
patch
refactor/fightwarn
PR or issue proposal to improve code maintainability without functional changes, or to fix warnings
SNMP
Milestone
A lot of work on NUT was done under the auspices of Eaton-backed 42ity project, as well as some earlier bundled releases that became part of its codebase. While much of the development was cross-posted for PRs, some was only pursued in the fork to perfect there first. 42ity took the decision to eventually move from the burden of maintaining a separate fork (thereby regularly solving merge conflicts) towards using the "upstream NUT" codebase directly, so I imported the "FTY" branch and identified the largest differing subjects to reconcile between the two:
configure --with-docs=dist-auto
#2340, PR Upstream from FTY branch:make distcheck-light-man
and./confgure --with-doc=man=dist-auto
features #2473scripts/installer
… #2623 => https://github.com/networkupstools/nut/pulls?q=label%3Anutconfstr_concat
#2343 / PR common/str.c, include/str.h: introducestr_concat()
#2476libcommonstr.la
#2478 and Reviselibwincompat.la
vs.libcommonstr.la
helpers inlibnutscan
build recipe #2491libserial-nutscan.la
from DMF/FTY branch and clean up nut-scanner makefile #2490do_convert_deci
toggle was converted from boolean setting into a flag checked right inmge-xml.c
; will be posted in FTY remerge from master as of 2024-06-15 #2472 resyncauglenstest
bits #2341, PR Define anauglenstestsdir
to install the augeastest_nut.aug
file #2474Notes about known feature changes between the forks (as of comparison in early 2022, before some of these changes got upstreamed in e.g. #320):
** added "device.N.outlet.switchable" fields
** renamed the value of "ambient.contacts.N.status" from "opened" to "open"; note they are "opened" in other MIBs as seen below
** "device.N.input.feed.desc", "device.N.outlet.M.name", separated "device.N.outlet.group.M.name" vs. "device.N.outlet.group.M.desc" (also added "device.N.outlet.switchable")
** NOTE: compared to those master-branch builds, LOST phase info "outlet.group.N.phase" however maybe only for single-phase devices? seems there is a rename for three-phased ones:
...and in at least one case for one phase also (but that may be some experimental ePDU? its data dump includes three separate input phase data collections, but just one outlet group... can that be a three-phase outlet actually?):
** between 42ity/nut versions, iteratively added lots of info categories for ambient sensors; listing some unique-name samples here:
...and "outlet.N.status" and "outlet.switchable" where applicable (UPS):
** compared to upstream, added "ambient.contacts.N.status" status (note "opened" not "open" here, while "ambient.N.contacts.M.status" flip between "active"/"inactive") and changed "ups.type" reading, and added "outlet.N.status" and "outlet.switchable" for UPS:
** added "ambient.contacts.N.name" and "outlet.N.status"
** Compared to master builds (same for 20190711, 20211102_a12302c90ae) added more (note: "opened" not "open"):
** Compared to master builds, added "ambient.contacts.N.status" (note: "opened" not "open") and "device.contact"/"device.location":
** Compared to master builds, added device.contact and device.location like above
Also it would help migrations and refactoring with peace of mind, if the 42ity/nut codebase passed same CI requirements as the upstream NUT. Some notes in this regard:
...and read the warnings which pop up, fix them,
make
until the recipe looks okay.The few errors above are about definitions:
...and a large amount of same error with missing field initializers for
snmp_info_t
tables (DMF codebase has more fields there, aiming for more conversion function types; if that approach survives - an initialization macro may be due to substitute the NULLs where no value was given).The text was updated successfully, but these errors were encountered: