- Update from version 2.7.4 to 2.8.0 - 2.7.4 was released in 2016 and since then not a lot of progress was made with it but since the start of 2022 new work on nut has ocurred culminating in this release - Update of rootfile - Ran find-dependencies on the old libraries due to the sobump to confirm that nothing else than nut used them, which was the case. - Changelog After a long and windy trip since the last official release v2.7.4 half a dozen years ago, we the community, contributors and maintainers are proud to announce at last the general availability of NUT v2.8.0! As always, the new release includes numerous new drivers, sub-drivers, protocols and bug-fixes, with many companies and individuals chipping in with contributions of code.Thanks to everyone involved in making this happen, inspiring the changes, and providing the open-source friendly infrastructure. This release also culminates a significant effort in improvements of NUT QA and CI, and as a result -- in codebase quality and portability across a decade or two of recent platforms, third-party tools and other dependencies. As a side effect, public API (in headers and libraries) has changed a bit, hence a new semantic "minor" number is claimed for this major body of work. During this time, the https://networkupstools.org/ web site has changed to a rolling-release model to serve current information to match the evolving codebase. There are now special Sub-sites for historic releases to keep documentation snapshots relevant for users of packages which are typically based on official NUT releases. We recognize that NUT is an important piece of infrastructure which gets built into all sorts of devices, projects and operating systems -- some of which the team never heard of until they pop up in a question, and others we haven't heard of for years -- so we take a seriously omnivorous stance towards covering many versions and implementations of compiler suites, C/C++ revisions, make programs, shell and other scripted language interpreters, OSes and CPUs, and other similar variables tamed with our new NUT CI farm test matrix dynamically driven by currently registered build agents and their declared capabilities. Sections in the NEWS and UPGRADING files about changes since last release are several pages long, so would not all be repeated here. A few important highlights for distribution packagers and custom builders follow, however: NUT now supports more i2c and modbus devices, as well as libusb-1.0 support as an alternative to earlier libusb-0.1 (so new dependency-based categories of packages for drivers may be due); NUT Python modules and scripts (e.g. NUT-Monitor variants) should work with python-2.7 and with python-3.x, so covering historic distro releases as well as new ones (and so your distro can deliver one or both, probably in several packages with different dependencies in the latter case); NUT provides revised reference systemd and SMF service unit definitions, including support of drivers wrapped into individual service instances with varying dependencies based on different media required (networked stack, USB stack, etc.), and many daemons include -F option for running "in foreground" to avoid extra forking after one already done by a service framework - you may want to use those in your packaged deliverables; NUT newly provides the "nut-driver-enumerator" script and service, which allows it to follow edition of ups.conf and dynamically define+(re)start and stop+undefine service instances for drivers - there are several ways it can be integrated for different use-cases; There are several new configuration keywords and CLI options - so while new NUT builds should work with old configs and scripts, the opposite is not necessarily true (old binaries may reject configurations taking advantage of new features); There are several new protocol keywords - but old and new NUT daemons (data server and clients) should be able to communicate both ways; It is assumed that API/ABI changes may require third-party NUT clients (library consumers of libnutclient, libupsclient, libnutscan... -- their version info was bumped accordingly) to get rebuilt, in order to work with the new NUT release in a stable fashion; The dummy-ups driver used in automated testing now processes *.dev filename patterns once and does not loop, like it still does for *.seq and other files (by default); USB code is now more strict about logical minimum/maximum ranges for data reported from devices, and some devices were already found to make mistakes - so there is also a mechanism for turning a blind eye to known issues and fix-up such report descriptors to produce intended sane values; New documentation page docs/config-prereqs.txt highlights packaged dependencies installable on a large range of platforms to build as much of NUT as possible (incidentally, ones NUT CI farm uses to test every iteration); Finally, we hope that NUT codebase might be able to cater for everyone "out of the box" (it also simplifies local builds from GitHub sources on any systems, for troubleshooting and checking pre-release enhancements): if you as a packager have to apply patches for your distribution, give it a thought -- whether they address a common issue best solved upstream once and behave similarly for everyone (and conversely, if your platform can do with existing solutions already tracked in the NUT version du-jour). PRs welcome! Or at least Wiki entries to list all the distro efforts for cross-pollination
Signed-off-by: Adolf Belka adolf.belka@ipfire.org --- config/rootfiles/packages/nut | 36 +++++++++++++++++++++-------------- lfs/nut | 18 ++++++++++++------ 2 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/config/rootfiles/packages/nut b/config/rootfiles/packages/nut index b01381d74..3bf9d03a9 100644 --- a/config/rootfiles/packages/nut +++ b/config/rootfiles/packages/nut @@ -5,6 +5,7 @@ etc/nut/upsd.conf.sample etc/nut/upsd.users.sample etc/nut/upsmon.conf.sample etc/nut/upssched.conf.sample +etc/rc.d/init.d/nut etc/udev/rules.d/62-nut-usbups.rules usr/bin/al175 usr/bin/apcsmart @@ -36,10 +37,11 @@ usr/bin/metasys usr/bin/mge-shut usr/bin/mge-utalk usr/bin/microdowell +usr/bin/microsol-apc usr/bin/nut-scanner usr/bin/nutdrv_atcl_usb usr/bin/nutdrv_qx -usr/bin/oldmge-shut +usr/bin/nutdrv_siemens-sitop usr/bin/oneac usr/bin/optiups usr/bin/powercom @@ -63,21 +65,22 @@ usr/bin/upsrw usr/bin/upssched-cmd usr/bin/usbhid-ups usr/bin/victronups -#usr/lib/libnutclient.a #usr/lib/libnutclient.la -usr/lib/libnutclient.so -usr/lib/libnutclient.so.0 -usr/lib/libnutclient.so.0.0.0 -#usr/lib/libnutscan.a +#usr/lib/libnutclient.so +usr/lib/libnutclient.so.2 +usr/lib/libnutclient.so.2.0.0 +#usr/lib/libnutclientstub.la +#usr/lib/libnutclientstub.so +usr/lib/libnutclientstub.so.1 +usr/lib/libnutclientstub.so.1.0.0 #usr/lib/libnutscan.la -usr/lib/libnutscan.so -usr/lib/libnutscan.so.1 -usr/lib/libnutscan.so.1.0.0 -#usr/lib/libupsclient.a +#usr/lib/libnutscan.so +usr/lib/libnutscan.so.2 +usr/lib/libnutscan.so.2.0.0 #usr/lib/libupsclient.la -usr/lib/libupsclient.so -usr/lib/libupsclient.so.4 -usr/lib/libupsclient.so.4.0.0 +#usr/lib/libupsclient.so +usr/lib/libupsclient.so.6 +usr/lib/libupsclient.so.6.0.0 usr/sbin/upsd usr/sbin/upsdrvctl usr/sbin/upsmon @@ -119,10 +122,13 @@ usr/share/driver.list #usr/share/man/man8/mge-shut.8 #usr/share/man/man8/mge-utalk.8 #usr/share/man/man8/microdowell.8 +#usr/share/man/man8/microsol-apc.8 +#usr/share/man/man8/nut-driver-enumerator.8 #usr/share/man/man8/nut-recorder.8 #usr/share/man/man8/nut-scanner.8 #usr/share/man/man8/nutdrv_atcl_usb.8 #usr/share/man/man8/nutdrv_qx.8 +#usr/share/man/man8/nutdrv_siemens_sitop.8 #usr/share/man/man8/nutupsdrv.8 #usr/share/man/man8/oneac.8 #usr/share/man/man8/optiups.8 @@ -143,12 +149,14 @@ usr/share/driver.list #usr/share/man/man8/upscode2.8 #usr/share/man/man8/upsd.8 #usr/share/man/man8/upsdrvctl.8 +#usr/share/man/man8/upsdrvsvcctl.8 #usr/share/man/man8/upslog.8 #usr/share/man/man8/upsmon.8 #usr/share/man/man8/upsrw.8 #usr/share/man/man8/upssched.8 #usr/share/man/man8/usbhid-ups.8 #usr/share/man/man8/victronups.8 +#usr/share/solaris-init +#usr/share/solaris-init/nut var/ipfire/backup/addons/includes/nut var/state/ups -etc/rc.d/init.d/nut diff --git a/lfs/nut b/lfs/nut index cd0af7ec5..619918b5b 100644 --- a/lfs/nut +++ b/lfs/nut @@ -26,7 +26,7 @@ include Config
SUMMARY = Network UPS Tools Core (Uninterruptible Power Supply Monitoring)
-VER = 2.7.4 +VER = 2.8.0
THISAPP = nut-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = nut -PAK_VER = 7 +PAK_VER = 8
DEPS =
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 367c687efd739150898a14c700d5fddbe22bf926522923e1842011ec49b67d6638620500c4eda50291feb474cc6eef39fff63764cb3e0fad5898abee981f8308 +$(DL_FILE)_BLAKE2 = 6ad87e9c90920d45846d9c1311e8feeb3c36bfa506d62d938940c00d2fc7f7b30632d079a8ee969db624824ae4fd3e14e41e8acd1eda296e26a3aa340f186b94
install : $(TARGET)
@@ -84,9 +84,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE) - cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc/nut \ - --with-usb --with-user=root --with-group=nut \ - --with-wrap=no --with-udev-dir=/etc/udev + cd $(DIR_APP) && ./configure \ + --prefix=/usr \ + --sysconfdir=/etc/nut \ + --with-usb \ + --with-user=root \ + --with-group=nut \ + --with-wrap=no \ + --with-udev-dir=/etc/udev \ + --disable-static cd $(DIR_APP) && make #$(MAKETUNING) cd $(DIR_APP) && make install # sed -i -e "s|ATTR{|SYSFS{|g" /etc/udev/rules.d/52-nut-usbups.rules
Excellent - this means we can finally get rid of libusb-compat. Yay. :-)
Reviewed-by: Peter Müller peter.mueller@ipfire.org
- Update from version 2.7.4 to 2.8.0
- 2.7.4 was released in 2016 and since then not a lot of progress was made with it but since the start of 2022 new work on nut has ocurred culminating in this release
- Update of rootfile
- Ran find-dependencies on the old libraries due to the sobump to confirm that nothing else than nut used them, which was the case.
- Changelog After a long and windy trip since the last official release v2.7.4 half a dozen years ago, we the community, contributors and maintainers are proud to announce at last the general availability of NUT v2.8.0! As always, the new release includes numerous new drivers, sub-drivers, protocols and bug-fixes, with many companies and individuals chipping in with contributions of code.Thanks to everyone involved in making this happen, inspiring the changes, and providing the open-source friendly infrastructure. This release also culminates a significant effort in improvements of NUT QA and CI, and as a result -- in codebase quality and portability across a decade or two of recent platforms, third-party tools and other dependencies. As a side effect, public API (in headers and libraries) has changed a bit, hence a new semantic "minor" number is claimed for this major body of work. During this time, the https://networkupstools.org/ web site has changed to a rolling-release model to serve current information to match the evolving codebase. There are now special Sub-sites for historic releases to keep documentation snapshots relevant for users of packages which are typically based on official NUT releases. We recognize that NUT is an important piece of infrastructure which gets built into all sorts of devices, projects and operating systems -- some of which the team never heard of until they pop up in a question, and others we haven't heard of for years -- so we take a seriously omnivorous stance towards covering many versions and implementations of compiler suites, C/C++ revisions, make programs, shell and other scripted language interpreters, OSes and CPUs, and other similar variables tamed with our new NUT CI farm test matrix dynamically driven by currently registered build agents and their declared capabilities. Sections in the NEWS and UPGRADING files about changes since last release are several pages long, so would not all be repeated here. A few important highlights for distribution packagers and custom builders follow, however: NUT now supports more i2c and modbus devices, as well as libusb-1.0 support as an alternative to earlier libusb-0.1 (so new dependency-based categories of packages for drivers may be due); NUT Python modules and scripts (e.g. NUT-Monitor variants) should work with python-2.7 and with python-3.x, so covering historic distro releases as well as new ones (and so your distro can deliver one or both, probably in several packages with different dependencies in the latter case); NUT provides revised reference systemd and SMF service unit definitions, including support of drivers wrapped into individual service instances with varying dependencies based on different media required (networked stack, USB stack, etc.), and many daemons include -F option for running "in foreground" to avoid extra forking after one already done by a service framework - you may want to use those in your packaged deliverables; NUT newly provides the "nut-driver-enumerator" script and service, which allows it to follow edition of ups.conf and dynamically define+(re)start and stop+undefine service instances for drivers - there are several ways it can be integrated for different use-cases; There are several new configuration keywords and CLI options - so while new NUT builds should work with old configs and scripts, the opposite is not necessarily true (old binaries may reject configurations taking advantage of new features); There are several new protocol keywords - but old and new NUT daemons (data server and clients) should be able to communicate both ways; It is assumed that API/ABI changes may require third-party NUT clients (library consumers of libnutclient, libupsclient, libnutscan... -- their version info was bumped accordingly) to get rebuilt, in order to work with the new NUT release in a stable fashion; The dummy-ups driver used in automated testing now processes *.dev filename patterns once and does not loop, like it still does for *.seq and other files (by default); USB code is now more strict about logical minimum/maximum ranges for data reported from devices, and some devices were already found to make mistakes - so there is also a mechanism for turning a blind eye to known issues and fix-up such report descriptors to produce intended sane values; New documentation page docs/config-prereqs.txt highlights packaged dependencies installable on a large range of platforms to build as much of NUT as possible (incidentally, ones NUT CI farm uses to test every iteration); Finally, we hope that NUT codebase might be able to cater for everyone "out of the box" (it also simplifies local builds from GitHub sources on any systems, for troubleshooting and checking pre-release enhancements): if you as a packager have to apply patches for your distribution, give it a thought -- whether they address a common issue best solved upstream once and behave similarly for everyone (and conversely, if your platform can do with existing solutions already tracked in the NUT version du-jour). PRs welcome! Or at least Wiki entries to list all the distro efforts for cross-pollination
Signed-off-by: Adolf Belka adolf.belka@ipfire.org
config/rootfiles/packages/nut | 36 +++++++++++++++++++++-------------- lfs/nut | 18 ++++++++++++------ 2 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/config/rootfiles/packages/nut b/config/rootfiles/packages/nut index b01381d74..3bf9d03a9 100644 --- a/config/rootfiles/packages/nut +++ b/config/rootfiles/packages/nut @@ -5,6 +5,7 @@ etc/nut/upsd.conf.sample etc/nut/upsd.users.sample etc/nut/upsmon.conf.sample etc/nut/upssched.conf.sample +etc/rc.d/init.d/nut etc/udev/rules.d/62-nut-usbups.rules usr/bin/al175 usr/bin/apcsmart @@ -36,10 +37,11 @@ usr/bin/metasys usr/bin/mge-shut usr/bin/mge-utalk usr/bin/microdowell +usr/bin/microsol-apc usr/bin/nut-scanner usr/bin/nutdrv_atcl_usb usr/bin/nutdrv_qx -usr/bin/oldmge-shut +usr/bin/nutdrv_siemens-sitop usr/bin/oneac usr/bin/optiups usr/bin/powercom @@ -63,21 +65,22 @@ usr/bin/upsrw usr/bin/upssched-cmd usr/bin/usbhid-ups usr/bin/victronups -#usr/lib/libnutclient.a #usr/lib/libnutclient.la -usr/lib/libnutclient.so -usr/lib/libnutclient.so.0 -usr/lib/libnutclient.so.0.0.0 -#usr/lib/libnutscan.a +#usr/lib/libnutclient.so +usr/lib/libnutclient.so.2 +usr/lib/libnutclient.so.2.0.0 +#usr/lib/libnutclientstub.la +#usr/lib/libnutclientstub.so +usr/lib/libnutclientstub.so.1 +usr/lib/libnutclientstub.so.1.0.0 #usr/lib/libnutscan.la -usr/lib/libnutscan.so -usr/lib/libnutscan.so.1 -usr/lib/libnutscan.so.1.0.0 -#usr/lib/libupsclient.a +#usr/lib/libnutscan.so +usr/lib/libnutscan.so.2 +usr/lib/libnutscan.so.2.0.0 #usr/lib/libupsclient.la -usr/lib/libupsclient.so -usr/lib/libupsclient.so.4 -usr/lib/libupsclient.so.4.0.0 +#usr/lib/libupsclient.so +usr/lib/libupsclient.so.6 +usr/lib/libupsclient.so.6.0.0 usr/sbin/upsd usr/sbin/upsdrvctl usr/sbin/upsmon @@ -119,10 +122,13 @@ usr/share/driver.list #usr/share/man/man8/mge-shut.8 #usr/share/man/man8/mge-utalk.8 #usr/share/man/man8/microdowell.8 +#usr/share/man/man8/microsol-apc.8 +#usr/share/man/man8/nut-driver-enumerator.8 #usr/share/man/man8/nut-recorder.8 #usr/share/man/man8/nut-scanner.8 #usr/share/man/man8/nutdrv_atcl_usb.8 #usr/share/man/man8/nutdrv_qx.8 +#usr/share/man/man8/nutdrv_siemens_sitop.8 #usr/share/man/man8/nutupsdrv.8 #usr/share/man/man8/oneac.8 #usr/share/man/man8/optiups.8 @@ -143,12 +149,14 @@ usr/share/driver.list #usr/share/man/man8/upscode2.8 #usr/share/man/man8/upsd.8 #usr/share/man/man8/upsdrvctl.8 +#usr/share/man/man8/upsdrvsvcctl.8 #usr/share/man/man8/upslog.8 #usr/share/man/man8/upsmon.8 #usr/share/man/man8/upsrw.8 #usr/share/man/man8/upssched.8 #usr/share/man/man8/usbhid-ups.8 #usr/share/man/man8/victronups.8 +#usr/share/solaris-init +#usr/share/solaris-init/nut var/ipfire/backup/addons/includes/nut var/state/ups -etc/rc.d/init.d/nut diff --git a/lfs/nut b/lfs/nut index cd0af7ec5..619918b5b 100644 --- a/lfs/nut +++ b/lfs/nut @@ -26,7 +26,7 @@ include Config
SUMMARY = Network UPS Tools Core (Uninterruptible Power Supply Monitoring)
-VER = 2.7.4 +VER = 2.8.0
THISAPP = nut-$(VER) DL_FILE = $(THISAPP).tar.gz @@ -34,7 +34,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = nut -PAK_VER = 7 +PAK_VER = 8
DEPS =
@@ -50,7 +50,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 367c687efd739150898a14c700d5fddbe22bf926522923e1842011ec49b67d6638620500c4eda50291feb474cc6eef39fff63764cb3e0fad5898abee981f8308 +$(DL_FILE)_BLAKE2 = 6ad87e9c90920d45846d9c1311e8feeb3c36bfa506d62d938940c00d2fc7f7b30632d079a8ee969db624824ae4fd3e14e41e8acd1eda296e26a3aa340f186b94
install : $(TARGET)
@@ -84,9 +84,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) @$(PREBUILD) @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE) $(UPDATE_AUTOMAKE)
- cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc/nut \
--with-usb --with-user=root --with-group=nut \
--with-wrap=no --with-udev-dir=/etc/udev
- cd $(DIR_APP) && ./configure \
--prefix=/usr \
--sysconfdir=/etc/nut \
--with-usb \
--with-user=root \
--with-group=nut \
--with-wrap=no \
--with-udev-dir=/etc/udev \
cd $(DIR_APP) && make #$(MAKETUNING) cd $(DIR_APP) && make install--disable-static
# sed -i -e "s|ATTR{|SYSFS{|g" /etc/udev/rules.d/52-nut-usbups.rules