Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nut for openSUSE:Factory checked in at 2026-05-06 19:20:34 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nut (Old) and /work/SRC/openSUSE:Factory/.nut.new.30200 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nut" Wed May 6 19:20:34 2026 rev:84 rq:1351217 version:2.8.5 Changes: -------- --- /work/SRC/openSUSE:Factory/nut/nut.changes 2025-08-13 18:16:08.581021689 +0200 +++ /work/SRC/openSUSE:Factory/.nut.new.30200/nut.changes 2026-05-06 19:24:50.022250742 +0200 @@ -1,0 +2,27 @@ +Mon Apr 27 18:42:07 UTC 2026 - Stanislav Brabec <[email protected]> + +- Update to version 2.8.5 (jsc#PED-16186): + * Improvements in NUT STARTTLS handling + * Several new drivers were added, and older ones improved. Added + support for driver name aliasing. + * Multiple mishaps fixed about service startup. Numerous changes + and new features in upsdrvctl and upssched. + * Systemd units for some daemons were revised to honour the MODE + setting from nut.conf, if available, to gracefully not-start + when explicitly not-requested. + * NUT CGI and upsc clients can now optionally output JSON. + Modern-looking HTML/CSS/JS templates for upsstats CGI are now + * In upsd, extended processing of MAXCONN setting to allow larger + values than the operating system allows to handle. The + system-provided value can be further limited by + NUT_SYSMAXCONN_LIMIT environment variable. + * Introduced a configure --enable-shared-private-libs build-time + option to provide internal common NUT code as a set of shared + libraries. + * For details, see + https://networkupstools.org/docs/release-notes.chunked/NUT_Release_Notes.html#_release_notes_for_nut_2_8_5_what_8217_s_new_since_2_8_4 + * For full changelog, see + https://github.com/networkupstools/nut/compare/v2.8.4...v2.8.5 +- Refresh harden_nut-monitor.service.patch + +------------------------------------------------------------------- Old: ---- nut-2.8.4.tar.gz nut-2.8.4.tar.gz.sig New: ---- nut-2.8.5.tar.gz nut-2.8.5.tar.gz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nut.spec ++++++ --- /var/tmp/diff_new_pack.iEhmcX/_old 2026-05-06 19:24:50.758281105 +0200 +++ /var/tmp/diff_new_pack.iEhmcX/_new 2026-05-06 19:24:50.758281105 +0200 @@ -1,8 +1,7 @@ # # spec file for package nut # -# Copyright (c) 2025 SUSE LLC and contributors -# Copyright (c) 2025 SUSE LLC and contributors +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -21,8 +20,8 @@ %define HTMLPATH %{apache_serverroot}/htdocs/%{name} %define MODELPATH %{_libexecdir}/ups/driver %define STATEPATH %{_localstatedir}/lib/ups -%define CONFPATH %{_sysconfdir}/ups %define PIDPATH %{_rundir} +%define CONFSUBDIR ups %define NUT_USER upsd %define NUT_GROUP daemon %define LBRACE ( @@ -34,6 +33,13 @@ %define USBNONHIDDRIVERS %(zcat %{SOURCE0} | tr a-z A-Z | grep -a -A1 _USB | sed -n 's/.*ATTR{IDVENDOR}==%{QUOTE}%{BACKSLASH}%{LBRACE}[^%{QUOTE}]*%{BACKSLASH}%{RBRACE}%{QUOTE}, ATTR{IDPRODUCT}==%{QUOTE}%{BACKSLASH}%{LBRACE}[^%{QUOTE}]*%{BACKSLASH}%{RBRACE}%{QUOTE}, MODE=.*/modalias%{LBRACE}usb:v%{BACKSLASH}1p%{BACKSLASH}2d*dc*dsc*dp*ic*isc*ip*%{RBRACE}/p' | tr '%{BACKSLASH}n' ' ') %define systemdsystemdutildir %(pkg-config --variable=systemdutildir systemd) %define bashcompletionsdir %(pkg-config bash-completion --variable=completionsdir) +# FIXME: Find a smarter way to set those from main codebase recipes... +# Something like `git grep 'version-info' '*.am'` ? +%define SO_MAJOR_LIBUPSCLIENT 7 +%define SO_MAJOR_LIBNUTCLIENT 2 +%define SO_MAJOR_LIBNUTCLIENTSTUB 1 +%define SO_MAJOR_LIBNUTSCAN 4 +%define SO_MAJOR_LIBNUTCONF 0 %bcond_with texdoc %if 0%{?suse_version} >= 1500 %bcond_without libi2c @@ -56,7 +62,7 @@ %bcond_with libfreeipmi %endif Name: nut -Version: 2.8.4 +Version: 2.8.5 Release: 0 Summary: Network UPS Tools Core (Uninterruptible Power Supply Monitoring) License: GPL-2.0-or-later @@ -153,60 +159,75 @@ Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS hardware. -%package -n libnutclient2 +%package -n libupsclient%{SO_MAJOR_LIBUPSCLIENT} Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries -Conflicts: libupsclient1 -%description -n libnutclient2 -Shared library for the Network UPS Tools. +%description -n libupsclient%{SO_MAJOR_LIBUPSCLIENT} +Shared library for the Network UPS Tools, used by its and third-party C clients. Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS hardware. -%package -n libnutscan4 +Detailed information about supported hardware can be found in +%{_docdir}/nut. + +%package -n libnutclient%{SO_MAJOR_LIBNUTCLIENT} Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries -Conflicts: libupsclient1 -%description -n libnutscan4 -Shared library for the Network UPS Tools. +%description -n libnutclient%{SO_MAJOR_LIBNUTCLIENT} +Shared library for the Network UPS Tools, used by its and third-party C++ clients. Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS hardware. -%package -n libupsclient7 +Detailed information about supported hardware can be found in +%{_docdir}/nut. + +%package -n libnutclientstub%{SO_MAJOR_LIBNUTCLIENTSTUB} Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries -Conflicts: libupsclient1 -%description -n libupsclient7 -Shared library for the Network UPS Tools. +%description -n libnutclientstub%{SO_MAJOR_LIBNUTCLIENTSTUB} +Shared stub library for the Network UPS Tools with memory-backed configurations, +primarily used by tests and mocks with its and third-party C++ clients. Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS hardware. -%package -n libnutclientstub1 +Detailed information about supported hardware can be found in +%{_docdir}/nut. + +%package -n libnutscan%{SO_MAJOR_LIBNUTSCAN} Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries -Conflicts: libupsclient1 -%description -n libnutclientstub1 -Shared library for the Network UPS Tools. +%description -n libnutscan%{SO_MAJOR_LIBNUTSCAN} +Shared library for the Network UPS Tools, used by its nut-scanner and nutconf tools, +and possibly third-party C clients, integrations or tools. Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS hardware. -%package -n libnutconf0 +Detailed information about supported hardware can be found in +%{_docdir}/nut. + +# If not published, nutconf is built with a statically linked library variant +%package -n libnutconf%{SO_MAJOR_LIBNUTCONF} Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries -%description -n libnutconf0 -Shared library for the Network UPS Tools. +%description -n libnutconf%{SO_MAJOR_LIBNUTCONF} +Shared library for the Network UPS Tools, used by its nutconf tool, +and possibly third-party C++ clients, integrations or tools. Network UPS Tools is a collection of programs which provide a common interface for monitoring and administering UPS hardware. +Detailed information about supported hardware can be found in +%{_docdir}/nut. + %package cgi Summary: Network UPS Tools Web Server Support (UPS Status Pages) Group: Hardware/UPS @@ -333,8 +354,9 @@ %configure \ --docdir=%{_docdir}/%{name} \ --disable-static \ - --sysconfdir=%{CONFPATH} \ --datadir=%{_datadir}/%{name} \ + --with-confdir-suffix=%{CONFSUBDIR} \ + --enable-shared-private-libs \ --with-all \ %if %{with texdoc} --with-doc="man html-single html-chunked pdf" \ @@ -356,6 +378,7 @@ %if %{without libi2c} --without-i2c %endif + --with-confdir-suffix=%{CONFSUBDIR} \ --with-htmlpath=%{HTMLPATH} \ --with-cgipath=%{CGIPATH} \ --with-statepath=%{STATEPATH} \ @@ -396,6 +419,12 @@ rm -f %{buildroot}%{_docdir}/%{name}/cables/Makefile* rm -f %{buildroot}%{_docdir}/%{name}/cables/*.txt-prepped +# Private libraries. Remove *.so +rm %{buildroot}%{_libdir}/libnutprivate*.so + +# Defined in system-users +rm %{buildroot}%{_prefix}/lib/sysusers.d/nut-common-sysusers.conf + # Create symlinks for man pages %fdupes -s %{buildroot}%{_mandir} %fdupes %{buildroot}%{_docdir}/%{name} @@ -408,13 +437,13 @@ %post # Generate initial passwords. -if grep -q "password = @UPSD_INITIAL_MASTER_PASSWORD@" %{CONFPATH}/upsmon.conf %{CONFPATH}/upsd.users; then +if grep -q "password = @UPSD_INITIAL_MASTER_PASSWORD@" %{_sysconfdir}/%{CONFSUBDIR}/upsmon.conf %{_sysconfdir}/%{CONFSUBDIR}/upsd.users; then UPSD_INITIAL_MASTER_PASSWORD=$(head -c 20 /dev/urandom | md5sum | head -c 10) - sed -i s/@UPSD_INITIAL_MASTER_PASSWORD@/$UPSD_INITIAL_MASTER_PASSWORD/ %{CONFPATH}/upsmon.conf %{CONFPATH}/upsd.users + sed -i s/@UPSD_INITIAL_MASTER_PASSWORD@/$UPSD_INITIAL_MASTER_PASSWORD/ %{_sysconfdir}/%{CONFSUBDIR}/upsmon.conf %{_sysconfdir}/%{CONFSUBDIR}/upsd.users fi -if grep -q "password = @UPSD_INITIAL_SLAVE_PASSWORD@" %{CONFPATH}/upsd.users ; then +if grep -q "password = @UPSD_INITIAL_SLAVE_PASSWORD@" %{_sysconfdir}/%{CONFSUBDIR}/upsd.users ; then UPSD_INITIAL_SLAVE_PASSWORD=$(head -c 20 /dev/urandom | md5sum | head -c 10) - sed -i s/@UPSD_INITIAL_SLAVE_PASSWORD@/$UPSD_INITIAL_SLAVE_PASSWORD/ %{CONFPATH}/upsd.users + sed -i s/@UPSD_INITIAL_SLAVE_PASSWORD@/$UPSD_INITIAL_SLAVE_PASSWORD/ %{_sysconfdir}/%{CONFSUBDIR}/upsd.users fi # Migrate Suspend to Disc to the new convention (bnc#449861 and later bnc#871406): # It was never on by default, but documentation up to 11.0 recommends @@ -445,16 +474,24 @@ %ldconfig_scriptlets -n libupsclient7 %ldconfig_scriptlets -n libnutconf0 %else -%post -n libnutclient2 -p /sbin/ldconfig -%postun -n libnutclient2 -p /sbin/ldconfig -%post -n libnutclientstub1 -p /sbin/ldconfig -%postun -n libnutclientstub1 -p /sbin/ldconfig -%post -n libnutscan4 -p /sbin/ldconfig -%postun -n libnutscan4 -p /sbin/ldconfig -%post -n libupsclient7 -p /sbin/ldconfig -%postun -n libupsclient7 -p /sbin/ldconfig -%post -n libnutconf0 -p /sbin/ldconfig -%postun -n libnutconf0 -p /sbin/ldconfig +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig +%post -n libnutclient%{SO_MAJOR_LIBNUTCLIENT} -p /sbin/ldconfig +%postun -n libnutclient%{SO_MAJOR_LIBNUTCLIENT} -p /sbin/ldconfig +%post -n libnutclientstub%{SO_MAJOR_LIBNUTCLIENTSTUB} -p /sbin/ldconfig +%postun -n libnutclientstub%{SO_MAJOR_LIBNUTCLIENTSTUB} -p /sbin/ldconfig +%post -n libnutscan%{SO_MAJOR_LIBNUTSCAN} -p /sbin/ldconfig +%postun -n libnutscan%{SO_MAJOR_LIBNUTSCAN} -p /sbin/ldconfig +%post -n libupsclient%{SO_MAJOR_LIBNUTCLIENT} -p /sbin/ldconfig +%postun -n libupsclient%{SO_MAJOR_LIBNUTCLIENT} -p /sbin/ldconfig +%post -n libnutconf%{SO_MAJOR_LIBNUTCONF} -p /sbin/ldconfig +%postun -n libnutconf%{SO_MAJOR_LIBNUTCONF} -p /sbin/ldconfig +%define SO_MAJOR_LIBUPSCLIENT 7 +%define SO_MAJOR_LIBNUTCLIENT 2 +%define SO_MAJOR_LIBNUTCLIENTSTUB 1 +%define SO_MAJOR_LIBNUTSCAN 4 +%define SO_MAJOR_LIBNUTCONF 0 + %endif %files @@ -463,6 +500,7 @@ %config %{_sysconfdir}/logrotate.d/* %{_bindir}/* %{_datadir}/%{name} +%{_libdir}/libnutprivate*.so.* %{_mandir}/man5/*%{ext_man} %{_mandir}/man7/*%{ext_man} %{_mandir}/man8/*%{ext_man} @@ -473,15 +511,17 @@ %python_sitelib/PyNUT.py %{_sbindir}/* %{_udevrulesdir}/*.rules -%config(noreplace) %{CONFPATH}/hosts.conf -%config(noreplace) %attr(600,%{NUT_USER},root) %{CONFPATH}/upsd.conf -%config(noreplace) %attr(600,%{NUT_USER},root) %{CONFPATH}/upsd.users -%config(noreplace) %attr(600,%{NUT_USER},root) %{CONFPATH}/upsmon.conf -%dir %{CONFPATH} -%config(noreplace) %{CONFPATH}/nut.conf -%config(noreplace) %{CONFPATH}/ups.conf -%config(noreplace) %{CONFPATH}/upsset.conf -%config(noreplace) %{CONFPATH}/upssched.conf +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/hosts.conf +%config(noreplace) %attr(600,%{NUT_USER},root) %{_sysconfdir}/%{CONFSUBDIR}/upsd.conf +%config(noreplace) %attr(600,%{NUT_USER},root) %{_sysconfdir}/%{CONFSUBDIR}/upsd.users +%config(noreplace) %attr(600,%{NUT_USER},root) %{_sysconfdir}/%{CONFSUBDIR}/upsmon.conf +%dir %{_sysconfdir}/%{CONFSUBDIR} +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/nut.conf +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/ups.conf +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/upsset.conf +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/upssched.conf +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/upsstats-modern-list.html +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/upsstats-modern-single.html %dir %{MODELPATH} %{MODELPATH}/* %exclude %{MODELPATH}/snmp-ups @@ -504,19 +544,19 @@ %{_mandir}/man8/netxml-ups*%{ext_man} %{_mandir}/man8/snmp-ups*%{ext_man} -%files -n libnutclient2 +%files -n libupsclient%{SO_MAJOR_LIBUPSCLIENT} +%{_libdir}/libupsclient.so.* + +%files -n libnutclient%{SO_MAJOR_LIBNUTCLIENT} %{_libdir}/libnutclient.so.* -%files -n libnutclientstub1 +%files -n libnutclientstub%{SO_MAJOR_LIBNUTCLIENTSTUB} %{_libdir}/libnutclientstub.so.* -%files -n libnutscan4 +%files -n libnutscan%{SO_MAJOR_LIBNUTSCAN} %{_libdir}/libnutscan.so.* -%files -n libupsclient7 -%{_libdir}/libupsclient.so.* - -%files -n libnutconf0 +%files -n libnutconf%{SO_MAJOR_LIBNUTCONF} %{_libdir}/libnutconf.so.* %files cgi @@ -525,8 +565,8 @@ %dir %{apache_serverroot}/htdocs %{CGIPATH} %{HTMLPATH} -%config(noreplace) %{CONFPATH}/upsstats-single.html -%config(noreplace) %{CONFPATH}/upsstats.html +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/upsstats-single.html +%config(noreplace) %{_sysconfdir}/%{CONFSUBDIR}/upsstats.html %files devel %{_includedir}/*.{h,hpp} ++++++ harden_nut-monitor.service.patch ++++++ --- /var/tmp/diff_new_pack.iEhmcX/_old 2026-05-06 19:24:50.858285230 +0200 +++ /var/tmp/diff_new_pack.iEhmcX/_new 2026-05-06 19:24:50.866285560 +0200 @@ -1,7 +1,7 @@ -Index: b/scripts/systemd/nut-monitor.service.in +Index: nut-2.8.5/scripts/systemd/nut-monitor.service.in =================================================================== ---- a/scripts/systemd/nut-monitor.service.in -+++ b/scripts/systemd/nut-monitor.service.in +--- nut-2.8.5.orig/scripts/systemd/nut-monitor.service.in ++++ nut-2.8.5/scripts/systemd/nut-monitor.service.in @@ -32,6 +32,17 @@ Documentation=man:nut.conf(@MAN_SECTION_ Documentation=@NUT_WEBSITE_BASE@/docs/man/nut.conf.html @@ -19,5 +19,5 @@ +# end of automatic additions EnvironmentFile=-@CONFPATH@/nut.conf SyslogIdentifier=%N - ExecStartPre=-@SYSTEMD_TMPFILES_PROGRAM@ --create @systemdtmpfilesdir@/nut-common-tmpfiles.conf + # DO NOT actually start if MODE is known and is "none"; however ++++++ nut-2.8.4.tar.gz -> nut-2.8.5.tar.gz ++++++ /work/SRC/openSUSE:Factory/nut/nut-2.8.4.tar.gz /work/SRC/openSUSE:Factory/.nut.new.30200/nut-2.8.5.tar.gz differ: char 13, line 1 ++++++ nut-preconfig.patch ++++++ --- /var/tmp/diff_new_pack.iEhmcX/_old 2026-05-06 19:24:50.922287870 +0200 +++ /var/tmp/diff_new_pack.iEhmcX/_new 2026-05-06 19:24:50.930288200 +0200 @@ -1,16 +1,21 @@ -diff -purN a/conf/hosts.conf.sample b/conf/hosts.conf.sample ---- a/conf/hosts.conf.sample 2023-02-28 13:49:32.000000000 +0100 -+++ b/conf/hosts.conf.sample 2023-11-03 19:28:46.048488997 +0100 -@@ -27,3 +27,5 @@ - # MONITOR myups@localhost "Local UPS" +Index: nut-2.8.5/conf/hosts.conf.sample +=================================================================== +--- nut-2.8.5.orig/conf/hosts.conf.sample ++++ nut-2.8.5/conf/hosts.conf.sample +@@ -44,6 +44,8 @@ # MONITOR [email protected] "Finance department" # MONITOR [email protected] "Sierra High School data room #1" -+ + +MONITOR myups@localhost "Local UPS" -diff -purN a/conf/ups.conf.sample b/conf/ups.conf.sample ---- a/conf/ups.conf.sample 2023-10-28 23:02:42.000000000 +0200 -+++ b/conf/ups.conf.sample 2023-11-03 19:29:35.641548694 +0100 -@@ -214,3 +214,8 @@ maxretry = 3 ++ + # ----------------------------------------------------------------------- + # + # Allowed custom template file (adapted copy of upsstats.html) for listing +Index: nut-2.8.5/conf/ups.conf.sample +=================================================================== +--- nut-2.8.5.orig/conf/ups.conf.sample ++++ nut-2.8.5/conf/ups.conf.sample +@@ -251,3 +251,8 @@ maxretry = 3 # # To find out if your driver supports any extra settings, start it with # the -h option and/or read the driver's documentation. @@ -19,10 +24,11 @@ + driver = undefined + port = /dev/undefined + desc = "Local UPS" -diff -purN a/conf/upsd.conf.sample b/conf/upsd.conf.sample ---- a/conf/upsd.conf.sample 2023-09-17 16:34:05.000000000 +0200 -+++ b/conf/upsd.conf.sample 2023-11-03 19:30:18.374644467 +0100 -@@ -183,3 +183,11 @@ +Index: nut-2.8.5/conf/upsd.conf.sample +=================================================================== +--- nut-2.8.5.orig/conf/upsd.conf.sample ++++ nut-2.8.5/conf/upsd.conf.sample +@@ -217,3 +217,11 @@ # or CLI options, regardless of older logging level being higher or lower # than the newly found number; a missing (or commented away) value however # does not change the previously active logging verbosity. @@ -34,10 +40,11 @@ +[upsslave] + password = @UPSD_INITIAL_SLAVE_PASSWORD@ + upsmon slave -diff -purN a/conf/upsmon.conf.sample.in b/conf/upsmon.conf.sample.in ---- a/conf/upsmon.conf.sample.in 2023-10-28 23:36:02.000000000 +0200 -+++ b/conf/upsmon.conf.sample.in 2023-11-03 19:25:57.482732658 +0100 -@@ -117,6 +117,8 @@ +Index: nut-2.8.5/conf/upsmon.conf.sample.in +=================================================================== +--- nut-2.8.5.orig/conf/upsmon.conf.sample.in ++++ nut-2.8.5/conf/upsmon.conf.sample.in +@@ -128,6 +128,8 @@ # MONITOR [email protected] 1 monuser secretpass secondary # MONITOR myups@localhost 1 monuser pass primary # (or secondary)
