diff --git a/nut.spec b/nut.spec index dba51af..f88dc36 100644 --- a/nut.spec +++ b/nut.spec @@ -1,4 +1,5 @@ %global _hardened_build 1 +%bcond_with python2 #TODO: split nut-client so it does not require python %global nut_uid 57 @@ -6,14 +7,14 @@ %global cgidir /var/www/nut-cgi-bin %global piddir /run/nut -%global modeldir %{_libexecdir}/%{name} +%global modeldir %{_sbindir} # powerman is retired on Fedora, therefore disable it by default %bcond_with powerman Summary: Network UPS Tools Name: nut Version: 2.8.4 -Release: 5%{?dist} +Release: 1%{?dist} License: GPL-2.0-or-later AND GPL-3.0-or-later Url: https://www.networkupstools.org/ Source: https://www.networkupstools.org/source/2.8/%{name}-%{version}.tar.gz @@ -93,6 +94,10 @@ live status tracking on web pages, and more. Summary: Network UPS Tools client monitoring utilities Requires(post): systemd Requires(preun): systemd +%if %{with python2} +Requires: pygtk2, pygtk2-libglade +#only for python and gui part +%endif Requires: group(dialout) Requires: group(tty) @@ -109,14 +114,6 @@ Requires: %{name}-client = %{version}-%{release} webserver This package includes CGI programs for accessing UPS status via a web browser. -%package monitor -Summary: Network UPS Tools monitor application -BuildRequires: python3-pyqt6 - -%description monitor -This package contain the Python NUT-Monitor GUI application to -monitor a UPS. - %package xml Summary: XML UPS driver for the Network UPS Tools Requires: %{name}-client = %{version}-%{release} @@ -140,6 +137,8 @@ necessary to develop NUT client applications. #patch -P 15 -p1 %patch -P 16 -p2 -b .rhinoname +sed -i 's|=NUT-Monitor|=nut-monitor|' scripts/python/app/nut-monitor-py3qt5.desktop +sed -i "s|sys.argv\[0\]|'%{_datadir}/%{name}/nut-monitor/nut-monitor'|" scripts/python/app/NUT-Monitor-py3qt5.in sed -i 's|LIBSSL_LDFLAGS|LIBSSL_LIBS|' lib/libupsclient-config.in sed -i 's|LIBSSL_LDFLAGS|LIBSSL_LIBS|' lib/libupsclient.pc.in @@ -157,7 +156,7 @@ m nut tty EOF %build -%if 0%{?fedora} +%if 0%{?fedora} > 38 #--without-gpio is not enough to stop it complaining about missing library sed -i 's|with_gpio="[^"]*"|with_gpio="no"|g' configure.ac %endif @@ -171,7 +170,7 @@ export LDFLAGS="-Wl,-z,now" --without-powerman \ %endif --with-libltdl \ -%if 0%{?el8} +%if (0%{?fedora} && 0%{?fedora} < 33) || 0%{?el8} --with-nss \ %endif --without-wrap \ @@ -188,7 +187,7 @@ export LDFLAGS="-Wl,-z,now" --sysconfdir=%{_sysconfdir}/ups \ --with-cgipath=%{cgidir} \ --with-drvpath=%{modeldir} \ -%if 0%{?fedora} +%if 0%{?fedora} > 38 --without-gpio \ %endif --with-systemdsystemunitdir=%{_unitdir} \ @@ -251,20 +250,16 @@ mv %{buildroot}%{_mandir}/man8/rhino.8 %{buildroot}%{_mandir}/man8/nutdrv_rhino. # install PyNUT install -p -D -m 644 scripts/python/module/PyNUT.py %{buildroot}%{python3_sitelib}/PyNUT.py -# add lowercase name -ln %{buildroot}%{_bindir}/{NUT-Monitor,nut-monitor} -# install desktop file -mkdir -p %{buildroot}%{_datadir}/applications -desktop-file-install \ - --dir=%{buildroot}%{_datadir}/applications \ - %{buildroot}%{_datadir}/nut-monitor/app/nut-monitor.desktop -# install icons -for res in 256x256 48x48 64x64 scalable -do - mkdir -p %{buildroot}%{_datadir}/icons/hicolor/${res}/apps - ln %{buildroot}%{_datadir}/nut-monitor/app/icons/${res}/nut-monitor.* \ - %{buildroot}%{_datadir}/icons/hicolor/${res}/apps/ -done +# install nut-monitor +%if %{with python2} +mkdir -p %{buildroot}%{_datadir}/nut/nut-monitor/pixmaps +install -p -m 755 scripts/python/app/NUT-Monitor %{buildroot}%{_datadir}/nut/nut-monitor/nut-monitor +install -p -m 644 scripts/python/app/gui-1.3.glade %{buildroot}%{_datadir}/nut/nut-monitor +install -p -m 644 scripts/python/app/pixmaps/* %{buildroot}%{_datadir}/nut/nut-monitor/pixmaps/ +install -p -D scripts/python/app/nut-monitor.png %{buildroot}%{_datadir}/pixmaps/nut-monitor.png +desktop-file-install --dir=%{buildroot}%{_datadir}/applications scripts/python/app/nut-monitor.desktop +ln -s %{_datadir}/nut/nut-monitor/nut-monitor %{buildroot}%{_bindir}/nut-monitor +%endif # Setup permissions for pid file touch %{buildroot}/%{piddir}/upsmon.pid @@ -277,8 +272,8 @@ install -m0644 -D nut.sysusers.conf %{buildroot}%{_sysusersdir}/nut.conf # phase 1: stop upsmon before upsd changes if [ "$1" = "2" ]; then rm -f %restart_flag - /bin/systemctl is-active nut-monitor.service >/dev/null 2>&1 && touch %restart_flag || : - /bin/systemctl stop nut-monitor.service >/dev/null 2>&1 || : + /bin/systemctl is-active nut-monitor.service >/dev/null 2>&1 && touch %restart_flag ||: + /bin/systemctl stop nut-monitor.service >/dev/null 2>&1 fi @@ -320,9 +315,7 @@ fi %config(noreplace) %attr(640,root,nut) %{_sysconfdir}/ups/upsd.users %attr(644,root,root) %{_usr}/lib/udev/rules.d/62-nut-usbups.rules %attr(644,root,root) %{_usr}/lib/udev/rules.d/62-nut-ipmipsu.rules -%{modeldir}/ -# dummy-ups requires libupsclient -%exclude %{modeldir}/dummy-ups +%{modeldir}/* %exclude %{modeldir}/netxml-ups %{_unitdir}/nut-driver-enumerator.path %{_unitdir}/nut-driver-enumerator.service @@ -340,8 +333,6 @@ fi %{_sbindir}/upsd %{_bindir}/nutconf %{_bindir}/nut-scanner -%{_sbindir}/upsdrvctl -%{_sbindir}/upsdrvsvcctl %{_libdir}/libnutscan.so.* %{_libdir}/libnutconf.so.* %{_libexecdir}/nut-driver-enumerator.sh @@ -462,8 +453,6 @@ fi %{_sbindir}/upsmon %{_sbindir}/upssched %{_bindir}/upssched-cmd -# dummy-ups requires libupsclient -%{modeldir}/dummy-ups %{_unitdir}/nut-monitor.service # nut-monitor.service also needs nut.target %{_unitdir}/nut.target @@ -481,19 +470,15 @@ fi %{_mandir}/man8/upsrw.8.gz %{_mandir}/man8/upsmon.8.gz %{_mandir}/man8/upssched.8.gz -%{_datadir}/nut -%{_sysusersdir}/nut.conf - -%files monitor -%{_bindir}/nut-monitor -%{_bindir}/NUT-Monitor -%{_datadir}/applications/nut-monitor.desktop -%{_datadir}/icons/hicolor/*/apps/nut-monitor.png -%{_datadir}/icons/hicolor/scalable/apps/nut-monitor.svg -%{_datadir}/nut-monitor/ -%{_mandir}/man8/NUT-Monitor*.8.gz %pycached %{python3_sitelib}/PyNUT.py %pycached %{python3_sitelib}/test_nutclient.py +%{_datadir}/nut +%if %{with python2} +%{_bindir}/nut-monitor +%{_datadir}/pixmaps/nut-monitor.png +%{_datadir}/applications/nut-monitor.desktop +%endif +%{_sysusersdir}/nut.conf %files cgi %config(noreplace) %attr(644,root,root) %{_sysconfdir}/ups/hosts.conf @@ -530,20 +515,6 @@ fi %{_libdir}/pkgconfig/libnutscan.pc %changelog -* Sat Dec 06 2025 Orion Poplawski - 2.8.4-5 -- Add missing || : to preinstall scriptlet (rhbz#2419644) - -* Tue Sep 30 2025 Michal Hlavinka - 2.8.4-4 -- based on PR#18 by Orion Poplawski -- Build NUT-Monitor and ship in separate nut-monitor package (rhbz#2359149) -- Move UPS drivers into /usr/libexec/nut - -* Fri Sep 19 2025 Python Maint - 2.8.4-3 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Fri Aug 15 2025 Python Maint - 2.8.4-2 -- Rebuilt for Python 3.14.0rc2 bytecode - * Thu Aug 14 2025 Michal Hlavinka - 2.8.4-1 - updated to 2.8.4 (#2387244)