forked from networkupstools/nut
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NEWS
2266 lines (1739 loc) · 98.2 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
If you're upgrading from an earlier version, see the UPGRADING file.
For a complete and more detailed list of changes, please refer to the
ChangeLog file (generated for release archives), or to the Git version
control history for "live" codebase.
---------------------------------------------------------------------------
PLANNED: Release notes for NUT 2.8.3 - what's new since 2.8.2:
https://github.com/networkupstools/nut/milestone/9
- (expected) Dynamic Mapping Files (DMF) feature supported, to allow
the driver binaries to be built once and data mappings to be loaded
and modernized on the fly [Ported from 42ITy project]
---------------------------------------------------------------------------
PLANNED: Release notes for NUT 2.8.2 - what's new since 2.8.1:
https://github.com/networkupstools/nut/milestone/10
- (expected) clean-up of libusb API variants support [#300 and follow-ups]
- (expected) CI automation for coding style
- (expected) CI automation for use of data points in drivers that conform
to patterns defined in docs/nut-names.txt
- (expected) Porting of performance and bug fixes from 42ITy project
- (expected) Bug fixes for fallout possible due to "fightwarn" effort in 2.8.0
---------------------------------------------------------------------------
PLANNED: Release notes for NUT 2.8.1 - what's new since 2.8.0:
https://github.com/networkupstools/nut/milestone/8
- "UPS management protocol", Informational RFC 9271 published
by IETF at https://www.rfc-editor.org/info/rfc9271 and the
IANA port number registry was updated accordingly at
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml?search=3493
(even though this RFC is not formally an Internet Standard)
- Bug fixes for fallout possible due to "fightwarn" effort and other
evolution in NUT v2.8.0 release:
* The `upsdebugx()` and similar methods were converted to macros in #685
to avoid useless data manipulations and requests for logged information,
whose results would be ignored instantly because the debug level is
too low. As issue #1455 and PR #1495 found, in two cases the called
commands did "meaningfully" modify data -- so without debug logs the
program misbehaved. A known regression for `upscode2` driver; might
be or not be a problem with `upsd` driver in NUT v2.8.0 release,
fixed for NUT v2.8.1.
* A table in `cyberpower-mib` (for `snmp-ups` driver) sources was
arranged in NUT v2.8.0 release in a way that precluded the driver
logic from looking at all of its entries. Regression fixed for NUT
v2.8.1 [#1432]
* A change for file-change detection in `dummy-ups` driver for NUT
v2.8.0 release misfired on some platforms. Regression fixed for NUT
v2.8.1 [#1420]
* Fixed building of NUT man pages when just a few drivers are selected
by `configure` script for custom builds [#1467]
- We lacked log information about changes of chroot jail (uncommon) and
of UID/GID (everywhere), which makes troubleshooting harder (e.g. lack
of access to config files or USB device nodes). Now we have it [#1694]
- huawei-ups2000 is now known to support more devices, noted in docs and
for auto-detection [#1448, #1684]
- nutdrv_qx updates:
* the `voltronic_qs_protocol` should now accept both "V" (as before)
and newly "H" dialects, which otherwise seem interchangeable [#1623]
- usbhid-ups updates:
* cps-hid subdriver now applies same report descriptor fixing logic to
devices with ProductID 0x0601 as done earlier for 0x0501, to get the
correct output voltage data [#1497]
* the `usbhid-ups` driver should now reconnect if `libusb` returned a
memory allocation error [#1422] (seen as "Can't retrieve Report 0a:
Resource temporarily unavailable"), which can cause practical problems
in the field -- the driver otherwise interpreted the situation as
`ups.status` being `OL OFF` and cut the power supply.
* powercom-hid subdriver: fixed `UPS.Battery.ManufacturerDate` to map
to `battery.mfr.date` (not `battery.date` which is the maintenance
replacement date) [#1644]
- riello_usb updates:
* added `localcalculation` option to compute `battery.runtime` and
`battery.charge` if the device provides bogus values [#1692, #1685]
- NUT for Windows:
* Ability to build NUT for Windows, last tackled with a branch based on
NUT v2.6.5 a decade ago, has been revived with the 2.8.x era codebase [#5].
It is known that at this time some features are not complete, for more
details see https://github.com/orgs/networkupstools/projects/2/views/1
* Cross-builds of NUT for Windows using Linux and MinGW (and many custom
built dependency packages, as documented in `scripts/Windows/README`)
are now regularly tested on NUT CI farm with moderate integration via
custom build script `scripts/Windows/build-mingw-nut.sh` [#1489]
* Semi-native NUT for Windows builds with MSYS2/MinGW x64 environment are
now regularly tested on AppVeyor, with the same `ci_build.sh` script and
`Makefile` checks as used across the board for local developer builds,
Linux/illumos/FreeBSD/OpenBSD/... on dedicated NUT CI farm on Fosshost,
and MacOS on CircleCI [#1552]
- snmp-ups updates:
* IETF MIB mapping updated for data points where negative readings
are invalid [#1558]
* Added SNMP subdriver "apc-epdu-mib" for APC easy PDU support [#1674]
* Fixed processing loop for large SNMPv2/SNMPv3 responses where one item
in the middle has a type error [#1682]
- Added support for `make install` of PyNUT module and NUT-Monitor desktop
application [#1462, #1504]
- Regular CI coverage for NUT codebase enhanced with CircleCI running some
scenarios on MacOS, might add Windows in the future. Fixed some build
issues for MacOS that had crept into NUT v2.8.0 release [#1415, #1421]
- NUT software-only drivers (dummy-ups, clone, clone-outlet) separated from
serial drivers in respective Makefile and configure script options [#1446]
- Stuck drivers that do not react to `SIGTERM` quickly are now retried with
`SIGKILL` [#1424]
- Code which resolves full paths to libraries should now consider the common
environment variable `LD_LIBRARY_PATH` as a preferred possible override
to built-in paths (note that most operating systems advise against setting
this variable unless troubleshooting, although other systems rely on it)
[#805]
- the nut-scanner program was updated to fall back to loading unresolved
library filenames, hoping that `lt_dlopen()` implementation on the current
platform would find library files better [#805]
- detection of `libltdl` in `configure` script updated with fallback code to
find it on systems that deliver the library to `/usr/local/lib` (e.g. on
FreeBSD) [#1577]
- an explicit `configure --with-nut-scanner` toggle was added, specifically
so that build environments requesting `--with-all` but lack `libltdl` would
abort and require either to install the dependency or explicitly forfeit
the tool (some distro packages missed it quietly in the past) [#1560]
- existing openssl-1.1.0 support added for NUT v2.8.0 release was tested to
be sufficient without deprecation warnings for builds against openssl-3.0.x
(but no real-time testing was done yet) [#1547]
- upslog: Added support for logging multiple devices with one call to the
program [#1604]
- some fixes applied to Solaris/illumos packaging and SMF service support
[#1554, #1564]
- PyNUT.py version bumped to 1.5.0 with some improvements:
* `ListClients()` method fixed (was broken in many ways), and is now
CI-tested [#549]
* `DeviceLogin()` method added (mostly as aid to CI-test `ListClients()`
in a practically relevant manner, so far)
- nutclient C++ library:
* added `listDeviceClients()` and `deviceGetClients(dev)` to `Client`
classes, and `Device::getClients()` to match PyNUT capabilities [#549]
- upsclient C library:
* added support for `NUT_QUIET_INIT_SSL` environment variable to hide
the infamous "Init SSL without certificate database" warning [#1662]
- sstate (server state, e.g. upsd) should now "PING" drivers also if they
last reported themselves as "stale" (and might later crash) so their
connections would be terminated if really no longer active [#1626]
- Further revision of public headers delivered by NUT was done, particularly
to address lack of common data types (`size_t`, `ssize_t`, `uint16_t`,
`time_t` etc.) in third-party client code that earlier sufficed to only
include NUT headers. Sort of regression by NUT 2.8.0 (note those consumers
still have to re-declare some numeric variable types used) [#1638, #1615]
---------------------------------------------------------------------------
Release notes for NUT 2.8.0 - what's new since 2.7.4:
NOTE: Earlier discussions (mailing list threads, GitHub issues, etc.) could
refer to this change set (too long in the making) as NUT 2.7.5.
- New (optional) keywords for configuration files were added,
so existing NUT 2.7.x builds would not accept them if some
deployments switch versions back and forth -- due to this,
semantically the version was bumped to NUT 2.8.x.
- Add support for openssl-1.1.0 (Arjen de Korte)
- libusb-1.0 API support in addition to libusb-0.1 API [#300]
- Add support for `DISABLE_WEAK_SSL=true` in upsd.conf to disable older/weaker
SSL/TLS protocols and ciphers: when NUT is built against relatively recent
versions of OpenSSL or NSS it will be restricted to TLSv1.2 or better.
For least-surprise, currently defaults to `false` and complains in log
[PR #1043]
- Add support for `ALLOW_NO_DEVICE=true` (as an upsd.conf flag or environment
variable passed from caller of the program), to allow starting the data
server initially without any device configurations and reloading it later
to apply config changes on the fly [PR #766]
- Add support for `debug_min=NUM` setting (ups.conf, upsd.conf, upsmon.conf)
to specify the minimum debug verbosity for daemons. This allows "in-vivo"
troubleshooting of service daemons without editing init scripts or service
unit definitions.
- Improve support for upsdrvctl for managing of numerous device configs,
including default "maxretry=3" and a "nowait" option to complete the
"start of everything" mode after triggering the drivers and not waiting
for them to complete initializing. This matters on systems that monitor
from dozens to hundreds of devices.
- Drivers support a new value for `synchronous` setting, which is the
new default now: `auto`. Initially after driver start-up this mode
acts as the older default `off`, but would fall back to `on` in case
the driver fails to send reports to `upsd` by overflowing the socket
buffer in async mode -- so the next connections of this driver uptime
would be synchronized (potentially slower, but safer -- blocking on
writes to the data server). This adaptation would primarily impact
and benefit devices with many (hundreds of) data points, such as
ePDUs and daisy chains. [issue #1309, PR #1315]
- Daemons such as upsd, upsmon, upslog, and device drivers previously
implied that enabled debugging (or upslog to stdout) means foreground
running, otherwise the daemon was always sent to the background.
Now there are explicit options for this (`-F`/`-B`), although default
behavior is retained. This change is used for simplified service unit
definitions.
- Improvements for device discovery or driver "lock-picking", including
general support for:
* "Standalone" mode (`-s` option), to monitor a device which is not
detailed or mentioned in ups.conf
* `NUT_ALTPIDPATH` and `NUT_STATEPATH` environment variables to override
the paths built into the driver binary [PR #473 and #507]
* "Driver data dump" mode (`-d` option), to poll a device for one or
few ('update_count' ) loops, report discovered values (dump the data
tree in upsc-like format), and exit. This complements the `nut-scanner`
for finding and identifying devices.
- support for new devices:
* IBM 6000 VA LCD 4U Rack UPS; 5396-1Kx (USB)
* Phoenix Contact QUINT-UPS model 2320461 (Modbus)
* Tripp-Lite SU3000LCD2UHV (USB; protocol 1330)
* Emerson Avocent PM3000 PDU (SNMP)
* HPE ePDU (SNMP)
- nutdrv_qx: enhanced estimation of remaining battery runtime based
on speed of voltage drop, which varies as they age [PR #1027]
- nutdrv_qx: several subdrivers added or improved, including:
* "snr" subdriver with USB connection, for SNR-UPS-LID-XXXX [PR #1008].
Note that end-users should reference explicitly the `snr` subdriver
in their `ups.conf` settings because of USB chip using the same
values of VendorID/ProductID as fabula_subdriver, fuji_subdriver,
and krauler_subdriver.
* "hunnox" subdriver, as a dialect of earlier "fabula" [PR #638]
adds support for Hunnox HNX-850 with USB connection and reported to work
for Powercool, Iron Guardian, ARES devices and possibly many others from
discussions linking to the pull request which introduced the driver.
* "phoenixtec" subdriver for Masterguard A and E series, device series
A700/1000/2000/3000(-19) and E40/60/100(-19). [PR #975]
* "ablerex" subdriver provided by the OEM vendor, note that it replaces
"krauler_subdriver" as default handler for VID:PID 0xffff:0x0000
[PR #1135]
* Legrand HID defined and handled by "krauler_subdriver" by default
[PR #1075, issue #616]
* add new "armac" subdriver, tested with Armac R/2000I/PSW, but should
support other UPSes that work with "PowerManagerII" software from
Richcomm Technologies from around 2004-2005 [PR #1239, issue #1238]
- microsol-apc (starting at version 0.68 as derived from solis 0.67):
adding support for newer APC Back-UPS BR hardware, such as
APC Back-UPS BZ1500, BZ2200BI and BZ2200I [PR #994]
- pijuice: added new i2c bus driver for PiJuice HAT, a battery UPS module
for the Raspberry Pi systems [PR #730]
- huawei-ups2000: added new driver for USB (Linux 5.12+ so far) and Serial
RS-232 Modbus device support of Huawei UPS2000/2000A (1kVA-3kVA) series,
and possibly some related FSP UPS models. [PR #954]
- socomec_jbus: added new driver for modbus-based JBUS protocol over serial
RS-232 for Socomec UPS (tested with a DIGYS 3/3 15kVA model, working
on Linux x86-64 and Raspberry Pi 3 ARM). [PR #1313]
- adelsystem_cbi: added new driver for ADELSYSTEM CBI2801224A, an all-in-one
12/24Vdc DC-UPS, which supports the modbus RTU communication protocol
[PR #1282]
- generic_modbus: added new driver for TCP and Serial Modbus device support.
The driver has been tested against PULS UPS (model UB40.241) via
MOXA ioLogikR1212 (RS485) and ioLogikE1212 (TCP/IP), and configuration
allows to map custom registers and addresses to NUT events [PR #1052]
- genericups: added support for FTTx battery backup devices, and new signal
type mappings for the contact closure pins interpretation (RB for replace
battery, BYPASS for disconnected battery, and "none" or NULL for signals
to ignore) [PR #1061]
- add devices to HCL/DDL:
* APC Back-UPS CS (USB)
* CPS CP1500EPFCLCD (USB)
* CPS EC350G, EC750G (USB)
* CPS PR2200LCDRT2U (SNMP)
* Eaton ATS 16 and 30 (SNMP)
* Eaton 5E2200VA (USB)
* Eaton 9PX Split Phase 6/8/10 kVA (XML/USB/SHUT)
* Eaton 9PX (XML/USB/SHUT)
* Eaton Ellipse PRO 650 VA (USB)
* Ippon Back Comfo Pro II 650/850/1050 (USB)
* Numeric Digital 800 (USB)
* Opti-UPS PS1500E (USB)
* Powercool 350VA to 1600VA (USB)
- C++11 support in nutclient library and cppunit tests
- Added C++ testing mock for TcpClient class (nutclientmem/MemClientStub:
data stored in local memory) [PR #1034]
- Dual Python 2 and 3 compatibility in development scripts; ability to
run build activities and resulting built NUT programs on systems that
do not have a binary named "python" [PR #1115 and some before it]
- Added Russian translation for NUT-Monitor GUI client [PR #806]
- Separated NUT-Monitor UI into two applications, NUT-Monitor-py2gtk2 and
NUT-Monitor-py3qt5, suitable for two generations of Python ecosystem
with their great differences; `NUT-Monitor` name is retained for wrapper
script which calls one of these, such that the current system can execute
[PRs #1310, #1354]
- Various USB driver families: expanded device-matching with "device" in
addition to "bus" and generic USB fields. This is needed to support
multiple attached devices that seem identical by other fields (e.g.
same vendor, same model, same USB bus, and no serial number) [PR #974]
- Various USB driver families: Improved HID parsing for byte-stream to
number conversions on different CPU architectures [PR #1024]
- Various USB HID driver families: added support for composite devices
utilizing interface greater than 0 for the UPS interface [PR #1044]
- usbhid-ups:
* added generic framework for fixing Report Descriptors which can be
used for different manufacturers by adding code to the appropriate
subdriver rather than polluting the main code with UPS specific
exceptions, and applied fixes for known mistakes in (some releases
of firmware for) CyberPower CPS*EPFCLCD [issue #439, PR #1245]
* added `onlinedischarge` option for UPSes that report `OL+DISCHRG`
when wall power is lost [PR #811]
* changed detection of VendorID 0x06da handling of which is claimed
by Liebert/Phoenixtec HID historically, and MGE HID (for AEG PROTECT
NAS UPSes) since NUT 2.7.4, so that the higher-priority MGE subdriver
would not grab each and all of the devices exposing that ID [PR #1357]
* CPS HID: add input.frequency and output.frequency
* OpenUPS2: only check OEM Information string once (fewer log messages)
* Liebert GXT4 USB VID:PID [10AF:0000]
* add battery voltage and input/output transfer voltage and frequency
in Liebert/Phoenixtec HID mapping, to support PowerWalker VFI 2000 TGS
better [PR #564, issue #560]
* add a little delay between multicommands [PR #1228]
* fix Eaton/MGE mapping for beeper handling
* add IBM USB VID
* add deep battery test for CyberPower OL3000RMXL2U
* report the libusb version used
* fixed CPU architecture dependent bitmask math issues, causing wrong
numbers interpreted from wire protocol data in Big-Endian LP64 builds
(SPARC64, s390x, etc.) [issue #1023, PRs #1024, #1040, #1055, #1226]
* add Delta UPS Amplon R Series, tested on R1K and R3K model [PR #987]
* add Delta Minuteman UPS VID/PID [PR #1230, issues #555 and #1227]
* add AMETEK Powervar UPM [PR #733]
* add Tripplite AVR750U (ProductID 0x3024) [PR #963]
* add Arduino HID device support with new arduino-hid subdriver [PR #1044]
* add new salicru-hid subdriver, tested with Salicru SPS Home 850 VA
[PR #1199, issue #732]
* add new ever-hid subdriver to support EVER UPS devices (Sinline RT Series,
Sinline RT XL Series, ECO PRO AVR CDS Series) [PR #431]
* add ability to set `battery.mfr.date` for APC HID UPS [PR #1318]
- usbhid-ups / mge-shut: compute a realpower output load approximation for
Eaton UPS when the needed data is not present
- snmp-ups:
* APC ePDU MIB support
* add `input.phase.shift` variable
* add configurable write-able `ondelay` (`ups.delay.start`) and `offdelay`
(`ups.delay.shutdown`) as timeticks support [PR #276]
* outlet groups
* fix the rounding / truncation of some values
* add outlet.N.name for Eaton ePDU
* add input.bypass.frequency for Eaton 3ph
* fix support for Eaton 2-phase ("split phase") UPS
* add flag to list currently loaded MIB-to-NUT mappings
* fix input.L2.voltage on Eaton G2/G3 PDU
* update Eaton Aphel Revelation MIB
* support Raritan Dominion PX2 PDU
* support Emerson Avocent PM3000 PDU
* improve ALARM flag handling
* add firmware version for new HPE Network card
* add ups.load, battery.charge, input.{voltage,frequency} and output.voltage
for CyberPower, as well as shutdown and other instant commands
* several rounds of updates for Eaton devices, including new ATS and ePDU
hardware families
* fixed bit mask values for flags to surely use different numbers behind
logical items (inevitably changing some of those macro symbols) [PR #1180]
- snmp-ups and nut-scanner should now support more SNMPv3 Auth and Priv
protocols, as available at NUT build time [PRs #1165, #1172]
- nut-scanner: various improvements, including:
* detection of libraries at runtime
* tracing information
* limiting parallelism (thread count) [PRs #1158, #1164]
- nut-ipmipsu: improve FreeIPMI support to build cleanly against older and
newer FreeIPMI versions [PR #1179]
- the powerpanel driver now also supports CyberPower OR1500LCDRTXL2U with
serial cable [PR #538]
- powercom driver: implement `nobt` config parameter to skip battery check
on initialization/startup [PR #1256]
- netxml-ups:
* Report calibration status
* Fix for erroneous battery info (MGEXML/0.30) [PR #1069]
- solis: various improvements and fixes
- liebert-esp2: Correct battery V scaling, update docs, implement split-phase
unit support [PR #412]
- tripplite: the "Tripp-Lite SmartUPS driver" as tested with SMART2200NET
learned to discover the firmware generation and some device features,
and in particular to manage power separately on one or two outlet groups
[PR #1048]
- tripplite_usb: updated to recognize the "3005" protocol [PR #584]
- libnutclient: introduce getDevicesVariableValues() to improve performances
when querying many devices (up to 15 times faster)
- nut-driver-enumerator: introduced a script for Linux systemd and
Solaris/illumos SMF to inspect current NUT configuration in ups.conf
file and generate service management instances for each currently
tracked power device. Also introduced services to monitor the NUT
configuration and react to editions of this file, mostly intended
for deployments that do massive monitoring of dynamically changing
farms of power devices.
- Fix File descriptors leaks by upsmon and upssched (SELinux errors)
- systemd support improvements:
* POWEROFF_WAIT
* reload support for upsd
* Deliver systemd-tmpfiles config to pre-create runtime locations
[PR #1037 for Issue #1030]
* Update units with SyslogIdentifier=%N for better logging [PR #1054]
- upsrw: display the variable type beside ENUM / RANGE
- Added `PROTVER` as alias to `NETVER` to report the protocol version in use.
Note that NUT codebase itself does not use this value and handles commands
and reported errors individually [issue #1347]
- Implement status tracking for instant commands (instcmd) and variables
settings (setvar): this allows to get the actual execution status from the
driver, and is available in libraries and upscmd / upsrw [PR #659]
- Add support for extra parameter for instant commands, both in library and
in upscmd
- dummy-ups can now specify `mode` as a driver argument, and separates the
notion of `dummy-once` (new default for `*.dev` files that do not change)
vs. `dummy-loop` (legacy default for `*.seq` and others) [issue #1385]
- new protocol variables:
* `input.phase.shift`
* `outlet.N.name`
* `outlet.N.type`
* `battery.voltage.cell.max`, `battery.voltage.cell.min`
* `battery.temperature.cell.max`, `battery.temperature.cell.min`
* `battery.status`
* `battery.capacity.nominal`
* `battery.date.maintenance` (and clarified purpose of `battery.date`)
* `battery.packs.external` (and clarified purpose of `battery.packs`)
* `experimental.*` namespace introduced [PR #1046] to facilitate
introduction of NUT drivers and their data points for which we do
not yet have concepts, or which the original driver contributors
did not map well per suitable NUT standards: this allows to balance
having those drivers available in the project vs. least surprise
for when the explicitly experimental names are changed to something
stable and standardized.
* Proposed to track Date and Time values (still as "opaque strings")
preferably in representations compatible to ISO-8601/RFC-3339 [PR #1076]
(standards update; changes to actual codebase to be applied in the future)
** New routine to convert a US formatted date string "MM/DD/YYYY" to an
ISO 8601 Calendar date "YYYY-MM-DD" was added to snmp-ups.c [PR #1078]
- Master/Slave terminology was deprecated in favor of Primary/Secondary
modes of `upsmon` client:
* Respective keywords in the configuration files (`upsd.users` and
`upsmon.conf`) are supported as backwards-compatible settings,
but the obsoleted values are no longer documented.
* Protocol keyword support was similarly updated, with `upsmon` now
first trying to elevate privileges with `PRIMARY <ups>` request,
and falling back to `MASTER <ups>` just in case it talks to an
older build of an `upsd` server.
* For the principle of least surprise, NUT codebase still exposes the
`net_master()` (as handler for `MASTER` net command) in header and
C code for the sake of existing linked binaries, and returns the
`OK MASTER-GRANTED` line to the older client that invoked it.
* Newly introduced `net_primary()` (as handler for `PRIMARY` net command)
calls the exact same application logic, but returns `OK PRIMARY-GRANTED`
line to the client.
* Python binding updated to handle both cases, as the only found in-tree
protocol consumer of the full-line text.
* For more details see issue #840 and several pull requests referenced
from it, and discussions on NUT mailing lists.
- Build fixes:
* In general, numerous fixes were applied to ensure portability and avoid
warnings (fixing a number of real bugs that caused them); CI was extended
to keep the codebase free of those types of warnings which we have got
rid of, requiring builds to succeed cleanly in several dozen combinations
of compiler versions, C standard revisions (C99 upwards, though on many
OSes with GNU99+ extensions), operating systems and CPU architectures.
* Public CI introduced to automatically test every contribution (PR) and
resulting increment of main NUT codebase, including Travis CI and LGTM.com
services, and a Jenkins farm on virtual hardware donated by Fosshost.org;
this augments testing earlier provided for some branches by Buildbot.
* Added cppunit testing with valgrind for the C++ client library
* Make targets added for shell script syntax checks for helper and service
scripts
* Make targets added for spellcheck and for maintenance of the dictionary,
including incremental spellcheck to only parse recently edited text files
* The AsciiDoc detection has been reworked to allow NUT to be built from
source without requiring asciidoc/a2x (using pre-built man pages from
the distribution tarball, for instance)
* Makefile contents rearranged for more resilient out-of-tree and in-tree
builds beside those made from the root workspace directory
* Makefiles are tested with GNU Make and BSD Make to ensure portable recipes
* More use of `pkg-config` to detect dependencies at configure time, as
well as fail-safe detection of presence of pkg-config (and its macros)
to survive and build without it too
* "slibtool" pedantic nuances now supported, allowing an alternative to
GNU libtool
* Build scripts updated to remove obsoleted calls to cleanly work with
autoconf-2.70 releases in 2020 (also works with 2.69 which was the
earlier release since 2012)
* Dynamic library loading used in certain programs and use-cases improved,
especially for 64-bit vs 32-bit builds on multiple-bitness OSes
* Logging routines like `upsdebugx()` were refactored as macros so there
is slightly less overhead when logging is disabled [PRs #685 and #1100]
* Numerous classes of compilation warnings eradicated, many of those being
potential issues with implicit data type conversions and varied numeric
type width, signedness, string buffer size, uninitialized variables or
structure fields; some more in progress
* Several logical errors found and fixed during this walk over codebase.
* Cases where compilers were overly zealous and particular code was written
the way wit was intentionally, including some comparisons that help with
different-bitness builds but indeed seem superfluous in a certain single
bitness, were commented and encased in pragmas to disable the warnings
* Basic coding style (indentations, lack of trailing white space) applied
per developer guide, but not automatically enforced/checked yet.
- Due to changes needed to resolve build warnings, mostly about mismatching
data types for some variables, some structure definitions and API signatures
of several routines had to be changed for argument types, return types,
or both. Primarily this change concerns internal implementation details
(may impact update of NUT forks with custom drivers using those), but a
few changes also happened in header files installed for builds configured
`--with-dev` and so may impact `upsclient` and `nutclient` (C++) consumers.
At the very least, binaries for those consumers should be rebuilt to remain
stable with NUT 2.8.0 and not mismatch int-type sizes and other arguments.
- As usual, more bugfixes, cleanup and improvements, on both source code
and documentation.
---------------------------------------------------------------------------
Release notes for NUT 2.7.4 - what's new since 2.7.3:
- New class of device supported: ATS - Automatic Transfer Switch are now
supported in NUT. Eaton ATS are supported, and APC ones should be too. Users
are welcomed to test and provide feedback
- NUT command and variable naming scheme:
* Document battery.charger.status, which will in time replace the historic
CHRG and DISCHRG flags published in ups.status
* Many extensions to support outlets groups, thresholds / alarms (ambient,
input, output, outlet and outlet.group)
- support for new devices:
AEG PROTECT B / NAS
APC ATS AP7724 (should be supported)
Asium P700
Eaton ATS
Eaton 5E 1100iUSB
Eaton E Series DX UPS 1-20 kVA
Eaton Powerware 9125-5000g
Electrys UPS 2500
Fideltronic INIGO Viper 1200
Legrand Keor Multiplug
LYONN CTB-800V
Micropower LCD 1000
NHS Laser Senoidal 5000VA
Sweex model P220
TS Shara
Various APCUPSD-controlled APC devices
- snmp-ups:
* Improve automatic detection algorithm
* Provide access to Net-SNMP timeout and retries
* Proper handling of integer RW variables
* Implement support for alarms, through ups.alarm and outlet.n.alarm
* Improve log/debug output trace
* Fix loss of precision when setting values, using upsrw
* Support for outlets group management
* Many improvements and simplification
* Add support for Tripplite units using IETF mib
* Improve communication staleness detection and recovery
* Add devices MAC address publication
* Register values enumerations, when available
* Many improvements and fixes to the SNMP subdriver creation script
- Eaton:
* 3ph SNMP:
Many improvements to Powerware / XUPS MIB, for data and commands
Add support for Eaton Power Xpert Gateway UPS Card
Improve support for temperature and humidity, including low / high values
Alarms handling
* ePDU (G2 and G3):
Improve support for ambient sensor, including thresholds and dry contacts
Outlet groups handling, including data, thresholds, settings and commands
Alarms handling
* XML/PDC (netxml-ups):
Fix Eaton XML published data
Add some settings (R/W flags) on ambient thresholds
- bcmxcp_usb: improvements for device claiming and multi-packets responses
- dummy-ups: allow any variable to be modified
- libnutclient: Fix for reads when the socket was closed by NUT server
- macosx-ups:
* fix for 10.10 (Yosemite), v1.1
* gracefully handle disconnection of UPS (return "data stale")
- nutdrv_atcl_usb: point to nutdrv_qx (fuji) for 0001:0000
- nutdrv_qx:
* Add new 'sgs' USB subdriver to support TS Shara units
* various improvements and simplification, to the code and documentation
- nut-ipmipsu: improve FreeIPMI support
- nut-scanner:
* Don't depend on development libraries, by looking at some known paths,
including the one provided through --libdir, to find the correct libraries
* Fix a crash on a 2nd call to libnutscan with SNMP method
- powercom: fix the processing of input and output voltage for KIN units
- solis:
* many improvements and cleanup
* resync with end-of-packet character
* fixes for Microsol Back-Ups BZ1200-BR
- tripplitesu: Fix initialization when tripplite firmware is buggy (for
Tripplite SU1000RT2U and possibly more)
- usbhid-ups:
* various minor improvements
* support for Eaton UPS with dual HID report descriptor in HID Parser
* handle missing USB strings in APC code
- SSL support through Mozilla NSS: Rework the NSS tests to ensure that NSS is
actually installed and usable for enabling SSL support in NUT
- Augeas support: Augeas lens for ups.conf was updated to add various missing
global directives and ups fields
- scripts/systemd/nut-server.service.in: Restore systemd relationship since it
was preventing upsd from starting whenever one or more drivers, among several,
was failing to start
- Fix UPower device matching for recent kernels, since hiddev* devices now have
class "usbmisc", rather than "usb"
- Network protocol information: default to type NUMBER for variables that are
not flagged as STRING . This point is subject to improvements or change in
the next release 2.7.5. Refer to docs/net-protocol.txt for more information
- As usual, more bugfixes, cleanup and improvements, on both source code
and documentation.
---------------------------------------------------------------------------
Release notes for NUT 2.7.3 - what's new since 2.7.2:
- reverted POWERDOWNFLAG to /etc/killpower as in 2.6.5 (packagers may want to
put this in another filesystem, though)
- configure/make fixes for ${systemdsystemunitdir}
- apcsmart: fix command set parsing for protocol version 4 (e.g. Smart-UPS
RT 10000 XL)
- upslog: SIGUSR1 forces an immediate log entry
- riello_usb/_ser: USB interface claim fix; improved error handling
- usbhid-ups: add support for OpenUPS2 (PID: D005), Liebert GXT3 (PID: 0008)
APC AP9584 Serial->USB kit (PID: 0000), and some Powercom models
(PID: 0001). Fixed scaling for Cyberpower 0764:0501.
- USB core: do not call usb_set_altinterface(0) by default
- nutdrv_qx: added fabula, fuji USB and Voltronic-QS-HEX subdrivers; add
bestups subdriver to supersede the old standalone bestups driver
- NUT Monitor: added FreeDesktop AppData file (including screenshots)
- renamed udev rules file to 62-nut-usbups.rules (permissions fix)
- added AIX packaging
- asem: added a driver for the UPS in ASEM PB1300 embedded PCs
- solis: updated to support APC Microsol units sold in Brazil
- tripplite_usb: updated to use dv/dq charge calculation for all models (also
exposes battery_min and battery max as configuration variables); added
binary 3005 protocol support (such as for SMART500RT1U)
- genericups: better debugging while parsing the cable description flags
- all drivers: a new 'synchronous' driver flag is available for very verbose
units, such as some ePDUs
- Eaton:
* Add support for EnergySaving features for Eaton UPSs (HID USB/SHUT and
XCP USB/serial)
* Fix and complete Eaton ePDUs G2/G3 support
* ABM (Advanced Battery Monitoring) support through battery.charger.status
in HID (USB and SHUT), XCP (USB and serial) and SNMP (Powerware XUPS
MIB)
- support for new devices:
APC Back-UPS 1200BR and Back-UPS BZ2200BI-BR (Microsol)
ASEM SPA PB1300 UPS
Belkin Regulator PRO-USB
Cyber Power Systems Value 1500ELCD-RU
EUROCASE EA200N 2000VA
Fideltronik LUPUS 500
Flight Technic & International (FTUPS) FT-1000BS and FT-1000BS(T)
Grafenthal PR-3000-HS
JAWAN JW-UPSLC02
Lacerda New Orion 800VA
Mecer ME-1000-WTU
NHS Sistemas de Energia Expert C Online 6000/8000/10000
NHS Sistemas de Energia Expert S Online 6000/8000/10000
Powercom BNT-xxxAP (USB product id: 0001)
Rucelf UPOII-3000-96-EL
Tripp Lite OMNIVSINT800
Voltronic Power Apex 1KVA and Imperial 1KVA
---------------------------------------------------------------------------
Release notes for NUT 2.7.2 - what's new since 2.7.1:
- This release is the second interim release of the 2.7 testing series.
- libupsclient had undefined references related to functions of libcommon.
This issue was reported on Debian (bug #731156) and is now fixed
- support for new devices:
CABAC UPS-1700DV2
Eaton Powerware 3105
Emerson Network Power Liebert PSI 1440
MicroDowell B.Box LP 500
Numeric Digital 800 plus
OptiUPS VS 575C
Tripp Lite SU10KRT3/1X
- FreeDesktop Hardware Abstraction Layer (HAL) support was removed.
- nutdrv_atcl_usb: new driver for 'ATCL FOR UPS'
- al175: re-introduced this driver (actually, it was in 2.7.1)
- upsdrvctl now provides retry options for upsdrvctl and driver(s)
- snmp-ups: add support for XPPC-MIB and Tripp Lite SU10KRT3/1X.
Also fix erroneous status in HP/Compaq SNMP MIB (with the most recent HP
firmware (1.76) ; improved various MIBs (APC, HP/Compaq, ...)
- nutdrv_qx: add new 'fallback' Q1 subdriver, with minimal 'Q1' support.
General improvements on all subdrivers.
- mge-shut: partially revert PnP/RTS change, for initializing the
communication with the UPS. Note that nut-scanner similar function was
not modified however.
- FreeBSD DEVD support: generate devd.conf files for USB UPSes
This adds a --with-devd-dir=PATH option to ./configure
- The NUT website was moved to a standalone website. A separate code
repository and source archive are now available.
- As usual, more bugfixes, cleanup and improvements, on both source code
and documentation.
---------------------------------------------------------------------------
Release notes for NUT 2.7.1 - what's new since 2.6.5:
- This release is an interim release, part of the testing series, and the
first release after the transition from Subversion to Git.
The last release (2.6.5) is almost a year old. A lot of work has
been done, but a good amount remains to achieve 2.8.0 goals.
Please read the UPGRADING notes.
- Added support for SSL via the Mozilla NSS library, in addition to the
existing OpenSSL support.
- Added a new driver, nutdrv_qx, for Megatec/Qx devices. This driver will
eventually replace the blazer_ser and blazer_usb drivers. In particular, it
adds support for Voltronic Power devices.
- Increased USB_TIMEOUT to standards-compliant 5.000 seconds in most drivers.
This should reduce the number of timeouts on low-speed USB 1.1 devices.
- The jNut Java source has been split into a separate GitHub repository.
- Added many devices to the HCL. Of particular note are many Tripp Lite USB
HID PDC models which were tested against NUT by Tripp Lite.
- Reworked some visual elements of the HCL. The output is better tailored for
graphical and text-only browsers, but suggestions are welcome for additional
accessibility enhancements.
- Also increased timeouts and added redundant commands to improve reliability
of mge-utalk driver.
- Added the apcupsd-ups driver to interoperate with apcupsd installations.
- Added documentation on creating subdrivers for snmp-ups and nutdrv_qx.
- Added new drivers for the Riello UPS product line (riello_ser/riello_usb).
- Many improvements to the BCM/XCP drivers have been merged in. This includes
an improved data reception loop, and additional mappings.
- Added a few variables to the Powercom HID mappings.
- Updated the apcsmart driver, and renamed the previous driver to apcsmart-old.
- Fixed the battery percentage calculation in the bestfcom driver.
- libnutclient has been added as a C++ alternative to libupsclient.
- Packaging files for Solaris and HP-UX (sponsored by Eaton)
- Fix shutdown of Eaton HID, using usbhid-ups and mge-shut
- usbhid-ups: final fix for APC Back UPS ES. APC Back UPS ES devices have
buggy firmware, and this version does not cause a regression. The max_report
variable should be set automatically based on the USB identification values.
- nut-scanner: fix crash
- IPMI support can handle more different versions of FreeIPMI
- Support power supplies scan over the network
nut-scanner can now scan for power supplies with IPMI over LAN.
This is currently limited to IPMI 1.5 only
- Implement a framework to spell check documentation source files,
using Aspell. This includes an interactive build target (make
spellcheck-interactive), and an automated one (make spellcheck),
mainly for QA / Buildbot purpose. Note that a base NUT dictionary
is also available (docs/nut.dict), providing a glossary of terms
related to power devices and management
- Improve systemd integration
- snmp-ups: Fixed a crash on outlet management, and added delta_ups MIB
support. Also fixed mappings for upsBypassVoltage, upsBypassCurrent, and
upsBypassPower in three-phase IETF MIB.
---------------------------------------------------------------------------
Release notes for NUT 2.6.5 - what's new since 2.6.4:
- This release fixes an important regression in upssched:
any upssched.conf command that takes a second argument resulted in
a defective frame sent to the parent process. Thus, the command was
not executed (report and patch from Oliver Schonefeld)
- Website hosting: free NUT from Eaton website hosting
NUT website (http://www.networkupstools.org) is no longer hosted by Eaton.
Arnaud Quette (NUT project leader) has taken over NUT hosting on his own,
to give NUT back some independence.
This effort is also part of a logic to stop crediting Eaton for
contributions from others (especially Arnaud Quette, as an individual).
The new hosting service is located, as for Arnaud's blog
(http://arnaud.quette.fr) on Gandi servers, using PaaS. This will allow
more flexibility and automation of the release process
- macosx-ups: new OS X Power Sources meta-driver
Mac OS X provides UPS status information in a format similar to
what is shown for laptop batteries. This driver will convert that
information into a format compatible with NUT (Charles Lepple).
- support for new devices:
Eaton ePDU Switched
Online Zinto A (USB ID 0x06da:0x0601)
REDi Blazer 400VA / 600VA / 800VA
UNITEK Alpha650ipF and Alpha650ipE (USB ID 0x0f03:0x0001)
- mge-shut driver has been replaced by a new implementation (newmge-shut).
In case of issue with this new version, users can revert to oldmge-shut.
- First NUT virtualization package: NUT now supports integration with
VMware ESXI 5.0, through a native VIB package. This is, for the time
being, an external effort from René Garcia (refer to the Download section
on NUT website). But work is underway to improve this integration, and
include it in the NUT source tree
- IPMI support (nut-ipmipsu driver and nut-scanner): prepare for supporting
API changes in upcoming FreeIPMI versions 1.1.x and 1.2.x.
- snmp-ups now supports high precision values for APC, and more variables
- the NUT variables and commands namespace has been fixed and
completed, with the known and used variables that were missing.
- more bugfixes, cleanup and improvements, on both source code and
documentation.
---------------------------------------------------------------------------
Release notes for NUT 2.6.4 - what's new since 2.6.3:
- This release Fix an important vulnerability in upsd
(CVE-2012-2944: upsd can be remotely crashed)
NUT server (upsd), from versions 2.4.0 to 2.6.3, are exposed to
crashes when receiving random data from the network.
This issue is related to the way NUT parses characters,
especially from the network. Non printable characters were missed
from strings operation (such as strlen), but still copied to the
buffer, causing an overflow.
Thus, fix NUT parser, to only allow the subset of ASCII charset from
Space to ~
(Reported by Sebastian Pohle, Alioth bug #313636, CVE-2012-2944)
A separate patch, which applies to any faulty version, is also available:
http://trac.networkupstools.org/projects/nut/changeset/3633
For more information, refer to the Common Vulnerabilities and Exposures:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-2944
- A static source code analysis has been done by Michal Hlavinka from RedHat,
using Coverity (12 issues fixed).
- Add new "LIST CLIENTS" and "NETVER" commands to NUT network protocol.
"NETVER" allows to retrieve the Network protocol version, while
"LIST CLIENTS" provides the list of clients connected to a device.
Refer to the developer guide, "Network protocol information" section for
more information.
- Support of ranges of values for writable variables has been added, to
complete the existing enumerated values mechanism. This will start to
appear in some drivers soon, beginning with Eaton. Refer to the developer
guide, "Creating a new driver..." section for more information.
- PyNUT.py has been updated to version 1.2.2, adding support for
LIST CLIENTS, FSD, HELP and VER (Rene Martín Rodríguez)
- support for new devices:
AEG Power Solutions PROTECT HOME
more APC SNMP cards
ATEK Defensor range
all Borri models
all COVER ENERGY SA
CyberPower OR700LCDRM1U, PR6000LCDRTXL5U and CP1000PFCLCD
Dell UPS Network Management Card
Dynamix 1000VA USB
Eaton Management Card Contact (ref 66104)
EVER POWERLINE RT / 11 / 31 and DUO II Pro
GE Digital Energy GT Series 1000-3000 VA
Gtec models
all recent HP serial / USB UPS (G2, G3 and R/T models, ) and HP UPS
Management Module
Ippon INNOVA RT
KOLFF BLACK NOVA
Lexis X-power Tigra 1kVA
Microline C-Lion Innova