-# TODO: /var/lib/ups dir ownership (shouldn't be nobody)
+# TODO:
+# - upsdrvctl (used by ups.init) doesn't recognize status and reload commands
+# - test that hal-stuff
+#
+# Conditional build:
+%bcond_without usb # build without usb drivers
+%bcond_without hal # build without hal support
+%bcond_without snmp # build without snmp driver
+%bcond_without cgi # build without cgi support
+%bcond_without neon # build with neon based XML/HTTP driver
+#
Summary: Network UPS Tools
-Summary(pl): Sieciowe narzêdzie do UPS-ów
-Summary(ru): NUT - Network UPS Tools
-Summary(uk): NUT - Network UPS Tools
+Summary(pl.UTF-8): Sieciowe narzędzie do UPS-ów
Name: nut
-Version: 1.2.3
+Version: 2.4.3
Release: 1
License: GPL
Group: Applications/System
-Source0: http://penguin.harrison.k12.co.us/mirrors/nut/release/1.2/%{name}-%{version}.tar.gz
-# Source0-md5: 87dd831a819d06904cbe06e70dcf3c2f
+Source0: http://www.networkupstools.org/source/2.4/%{name}-%{version}.tar.gz
+# Source0-md5: 6f893b61b07915e7a139324fa3f79121
Source1: %{name}.init
Source2: %{name}.sysconfig
Source3: %{name}-upsmon.init
+Source4: %{name}.sysconfig.upsmon
Patch0: %{name}-client.patch
-URL: http://www.exploits.org/nut/
+Patch1: %{name}-config.patch
+Patch2: %{name}-smartdp-load.patch
+Patch3: %{name}-upssched-cmd-sysconf.patch
+Patch4: %{name}-hal-paths.patch
+Patch5: %{name}-matrix.patch
+URL: http://www.networkupstools.org/
BuildRequires: autoconf
BuildRequires: automake
-BuildRequires: gd-devel >= 2.0.1
-BuildRequires: libpng-devel
-BuildRequires: openssl-devel >= 0.9.7
-PreReq: rc-scripts
+%{?with_hal:BuildRequires: dbus-glib-devel}
+%{?with_cgi:BuildRequires: gd-devel >= 2.0.15}
+%{?with_hal:BuildRequires: hal-devel >= 0.5.8}
+BuildRequires: libtool
+%{?with_usb:BuildRequires: libusb-compat-devel}
+BuildRequires: libwrap-devel
+%{?with_neon:BuildRequires: neon-devel}
+%{?with_snmp:BuildRequires: net-snmp-devel}
+BuildRequires: openssl-devel >= 0.9.7d
+BuildRequires: pkgconfig
+BuildRequires: rpmbuild(macros) >= 1.268
Requires(post,preun): /sbin/chkconfig
-Requires: %{name}-common = %{version}
-BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
+Requires: %{name}-common = %{version}-%{release}
+Requires: rc-scripts
Obsoletes: smartupstools
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sysconfdir /etc/ups
+%define _udevrulesdir /etc/udev/rules.d
%description
These programs are part of a developing project to monitor the
checking. This capability has been harnessed where possible to allow
for safe shutdowns, live status tracking on web pages, and more.
-%description -l pl
-Te programy s± czê¶ci± projektu do monitorowania wielu UPS-ów w jakim¶
-otoczeniu. Wiele modeli ma porty szeregowe i pozwala na jak±¶ formê
-sprawdzania stanu. Ta funkcjonalno¶æ pozwala na bezpieczne
-zatrzymywanie systemów, sprawdzanie stanu zasilania przez WWW i inne.
-
-%description -l ru
-üÔÉ ÐÒÏÇÒÁÍÍÙ - ÞÁÓÔØ ÐÒÏÅËÔÁ ÐÏ ÍÏÎÉÔÏÒÉÎÇÕ ÒÁÚÌÉÞÎÙÈ UPS. õ ÍÎÏÇÉÈ
-ÍÏÄÅÌÅÊ ÅÓÔØ ÓÅÒÉÁÌØÎÙÅ ÐÏÒÔÙ, ÐÏÚ×ÏÌÑÀÝÉÅ ÐÒÏ×ÅÒÑÔØ ÓÏÓÔÏÑÎÉÅ ÜÔÉÈ
-UPS. üÔÁ ×ÏÚÍÏÖÎÏÓÔØ ÂÙÌÁ ÉÓÐÏÌØÚÏ×ÁÎÁ, ÇÄÅ ÜÔÏ ×ÏÚÍÏÖÎÏ, ÄÌÑ
-×ÙÐÏÌÎÅÎÉÑ ÂÅÚÏÐÁÓÎÙÈ ÏÓÔÁÎÏ×Ï× ËÏÍÐØÀÔÅÒÏ×, ÏÔÓÌÅÖÉ×ÁÎÉÑ ÓÔÁÔÕÓÁ
-ÞÅÒÅÚ ×ÅÂ É Ô.Ð.
-
-%description -l uk
-㦠ÐÒÏÇÒÁÍÉ ¤ ÞÁÓÔÉÎÏÀ ÐÒÏÅËÔÕ ÐÏ ÍÏΦÔÏÒÉÎÇÕ Ò¦ÚÎÏÍÁΦÔÎÉÈ UPS.
-âÁÇÁÔÏ ÍÏÄÅÌÅÊ ÍÁÀÔØ ÓÅÒ¦ÁÌØΦ ÐÏÒÔÉ, ÝÏ ÄÏÚ×ÏÌÑÔØ ÐÅÒÅצÒÑÔÉ ÓÔÁÎ ÃÉÈ
-UPS. ãÑ ÍÏÖÌÉצÓÔØ ÂÕÌÁ ×ÉËÏÒÉÓÔÁÎÁ, ÄÅ ÃÅ ÍÏÖÌÉ×Ï, ÄÌÑ ×ÉËÏÎÁÎÎÑ
-ÂÅÚÐÅÞÎÉÈ ÚÕÐÉÎÏË ËÏÍÐ'ÀÔÅÒ¦×, צÄÓ̦ÄËÏ×Õ×ÁÎÎÑ ÓÔÁÔÕÓÕ ÞÅÒÅÚ ×ÅÂ,
-ÔÏÝÏ.
+%description -l pl.UTF-8
+Te programy są częścią projektu do monitorowania wielu UPS-ów w jakimś
+otoczeniu. Wiele modeli ma porty szeregowe i pozwala na jakąś formę
+sprawdzania stanu. Ta funkcjonalność pozwala na bezpieczne
+zatrzymywanie systemów, sprawdzanie stanu zasilania przez WWW i inne.
+
+%description -l ru.UTF-8
+Эти программы - часть проекта по мониторингу различных UPS. У многих
+моделей есть сериальные порты, позволяющие проверять состояние этих
+UPS. Эта возможность была использована, где это возможно, для
+выполнения безопасных остановов компьютеров, отслеживания статуса
+через веб и т.п.
+
+%description -l uk.UTF-8
+Ці програми є частиною проекту по моніторингу різноманітних UPS.
+Багато моделей мають серіальні порти, що дозволять перевіряти стан цих
+UPS. Ця можливість була використана, де це можливо, для виконання
+безпечних зупинок комп'ютерів, відслідковування статусу через веб,
+тощо.
%package common
Summary: Package with common files for nut daemon and its clients
-Summary(pl): Pakiet z plikami wspólnymi dla demona nut i jego klientów
+Summary(pl.UTF-8): Pakiet z plikami wspólnymi dla demona nut i jego klientów
Group: Applications/System
+Requires(postun): /usr/sbin/groupdel
+Requires(postun): /usr/sbin/userdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/groupmod
+Requires(pre): /usr/sbin/useradd
+Provides: group(ups)
+Provides: user(ups)
%description common
Package with common files for nut daemon and its clients.
-%description common -l pl
-Pakiet z plikami wspólnymi dla demona nut i jego klientów.
+%description common -l pl.UTF-8
+Pakiet z plikami wspólnymi dla demona nut i jego klientów.
%package client
Summary: Multi-vendor UPS Monitoring Project Client Utilities
-Summary(pl): Narzêdzia klienckie do monitorowania UPS-ów
-Summary(uk): Network UPS Tools - Ë̦¤ÎÔÓØ˦ ÕÔÉ̦ÔÉ ÍÏΦÔÏÒÉÎÇÕ
-Summary(ru): Network UPS Tools - ËÌÉÅÎÔÓËÉÅ ÕÔÉÌÉÔÙ ÍÏÎÉÔÏÒÉÎÇÁ
+Summary(pl.UTF-8): Narzędzia klienckie do monitorowania UPS-ów
+Summary(ru.UTF-8): Network UPS Tools - клиентские утилиты мониторинга
+Summary(uk.UTF-8): Network UPS Tools - клієнтські утиліти моніторингу
Group: Applications/System
-PreReq: rc-scripts
Requires(post,preun): /sbin/chkconfig
-Requires: %{name}-common = %{version}
+Requires: %{name}-common = %{version}-%{release}
+Requires: rc-scripts
%description client
This package includes the client utilities that are required to
monitor a UPS that the client host is plugged into but monitored via
serial cable by another host on the network....
-%description client -l pl
-Ten pakiet zawiera narzêdzia kliencie potrzebne do monitorowania UPS-a
-do którego pod³±czony jest komputer kliencki, kiedy kabel szeregowy
-UPS-a jest pod³±czony do innego komputera w sieci.
+%description client -l pl.UTF-8
+Ten pakiet zawiera narzędzia kliencie potrzebne do monitorowania UPS-a
+do którego podłączony jest komputer kliencki, kiedy kabel szeregowy
+UPS-a jest podłączony do innego komputera w sieci.
-%description client -l ru
-üÔÏÔ ÐÁËÅÔ ×ËÌÀÞÁÅÔ ËÌÉÅÎÔÓËÉÅ ÕÔÉÌÉÔÙ, ÎÅÏÂÈÏÄÉÍÙÅ ÄÌÑ ÍÏÎÉÔÏÒÉÎÇÁ
-UPS, Ë ËÏÔÏÒÏÍÕ ËÌÉÅÎÔÓËÉÊ ÈÏÓÔ ÉÍÅÅÔ ÄÏÓÔÕÐ, ÎÏ UPS ÆÉÚÉÞÅÓËÉ
-ÐÏÄËÌÀÞÅÎ Ë ÄÒÕÇÏÍÕ ËÏÍÐØÀÔÅÒÕ × ÓÅÔÉ.
+%description client -l ru.UTF-8
+Этот пакет включает клиентские утилиты, необходимые для мониторинга
+UPS, к которому клиентский хост имеет доступ, но UPS физически
+подклÑ\8eÑ\87ен к дÑ\80Ñ\83гомÑ\83 компÑ\8cÑ\8eÑ\82еÑ\80Ñ\83 в Ñ\81еÑ\82и.
-%description client -l uk
-ãÅÊ ÐÁËÅÔ ×ËÌÀÞÁ¤ Ë̦¤ÎÔÓØ˦ ÕÔÉ̦ÔÉ, ÐÏÔÒ¦ÂΦ ÄÌÑ ÍÏΦÔÏÒÉÎÇÕ UPS, ÄÏ
-ÑËÏÇÏ Ë̦¤ÎÔÓØËÉÊ ÈÏÓÔ ÍÁ¤ ÄÏÓÔÕÐ, ÁÌÅ UPS ƦÚÉÞÎÏ Ð¦ÄËÌÀÞÅÎÉÊ ÄÏ
-¦ÎÛÏÇÏ ËÏÍÐ'ÀÔÅÒÕ × ÍÅÒÅÖ¦.
+%description client -l uk.UTF-8
+Цей пакет включає клієнтські утиліти, потрібні для моніторингу UPS, до
+Ñ\8fкого клÑ\96Ñ\94нÑ\82Ñ\81Ñ\8cкий Ñ\85оÑ\81Ñ\82 маÑ\94 доÑ\81Ñ\82Ñ\83п, але UPS Ñ\84Ñ\96зиÑ\87но пÑ\96дклÑ\8eÑ\87ений до
+іншого комп'ютеру в мережі.
%package cgi
Summary: Multi-vendor UPS Monitoring Project Server - CGI utils
-Summary(pl): Narzêdzia CGI do monitorowania UPS-ów
-Summary(ru): Network UPS Tools - CGI ÕÔÉÌÉÔÙ
-Summary(uk): Network UPS Tools - CGI ÕÔÉ̦ÔÉ
+Summary(pl.UTF-8): Narzędzia CGI do monitorowania UPS-ów
+Summary(ru.UTF-8): Network UPS Tools - CGI утилиты
+Summary(uk.UTF-8): Network UPS Tools - CGI утиліти
Group: Applications/System
-Requires: %{name}-common = %{version}
+Requires: %{name}-common = %{version}-%{release}
%description cgi
These programs are part of a developing project to monitor the
for safe shutdowns, live status tracking on web pages, and more. This
package contains CGI utils.
-%description cgi -l pl
-Te programy s± czê¶ci± projektu do monitorowania wielu UPS-ów w jakim¶
-otoczeniu. Wiele modeli ma porty szeregowe i pozwala na jak±¶ formê
-sprawdzania stanu. Ta funkcjonalno¶æ pozwala na bezpieczne
-zatrzymywanie systemów, sprawdzanie stanu zasilania przez WWW i inne.
-Ten pakiet zawiera narzêdzia CGI.
+%description cgi -l pl.UTF-8
+Te programy są częścią projektu do monitorowania wielu UPS-ów w jakimś
+otoczeniu. Wiele modeli ma porty szeregowe i pozwala na jakąś formę
+sprawdzania stanu. Ta funkcjonalność pozwala na bezpieczne
+zatrzymywanie systemów, sprawdzanie stanu zasilania przez WWW i inne.
+Ten pakiet zawiera narzędzia CGI.
-%description cgi -l ru
-üÔÏÔ ÐÁËÅÔ ×ËÌÀÞÁÅÔ CGI ÐÒÏÇÒÁÍÍÙ ÄÌÑ ÄÏÓÔÕÐÁ Ë ÉÎÆÏÒÍÁÃÉÉ Ï ÓÔÁÔÕÓÅ
-UPS ÞÅÒÅÚ ×ÅÂ-ÉÎÔÅÒÆÅÊÓ.
+%description cgi -l ru.UTF-8
+Этот пакет включает CGI программы для доступа к информации о статусе
+UPS через веб-интерфейс.
-%description cgi -l uk
-ãÅÊ ÐÁËÅÔ ×ËÌÀÞÁ¤ CGI ÐÒÏÇÒÁÍÉ ÄÌÑ ÄÏÓÔÕÐÕ ÄÏ ¦ÎÆÏÒÍÁæ§ ÐÒÏ ÓÔÁÔÕÓ
-UPS ÞÅÒÅÚ ×ÅÂ-¦ÎÔÅÒÆÅÊÓ.
+%description cgi -l uk.UTF-8
+Цей пакет включає CGI програми для доступу до інформації про статус
+UPS через веб-інтерфейс.
%package devel
Summary: Files for NUT clients development
-Summary(pl): Pliki do tworzenia klientów NUT-a
+Summary(pl.UTF-8): Pliki do tworzenia klientów NUT-a
Group: Development/Libraries
-Requires: openssl-devel >= 0.9.7
-# it does NOT require nut
+Requires: %{name}-common = %{version}-%{release}
+Requires: openssl-devel >= 0.9.7c
%description devel
Object file and header for developing NUT clients.
-%description devel -l pl
-Plik wynikowy oraz nag³ówek s³u¿±ce do tworzenia klientów NUT-a.
+%description devel -l pl.UTF-8
+Plik wynikowy oraz nagłówek służące do tworzenia klientów NUT-a.
+
+%package hal
+Summary: NUT integration with FreeDesktop HAL
+Summary(pl.UTF-8): Pliki do integracji NUT-a z HAL-em
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+
+%description hal
+NUT integration with FreeDesktop HAL.
+
+%description hal -l pl.UTF-8
+Pliki do integracji NUT-a z HAL-em.
%prep
%setup -q
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
%build
-%{__aclocal}
+cp -f /usr/share/automake/config.sub .
+%{__libtoolize}
+%{__aclocal} -I m4
+%{__automake}
%{__autoconf}
-LDFLAGS="-L%{_prefix}/X11R6/lib"; export LDFLAGS
%configure \
+ --datadir=%{_datadir}/%{name} \
+ --with-htmlpath=%{_datadir}/%{name}/html \
+ --with-serial \
+ --with%{!?with_usb:out}-usb \
+ --with%{!?with_snmp:out}-snmp \
+ --with%{!?with_hal:out}-hal \
+ --with%{!?with_cgi:out}-cgi \
+ --with-dev \
+ --with%{!?with_neon:out}-neon \
--with-ssl \
- --with-cgi \
- --with-linux-hiddev=%{_includedir}/linux/hiddev.h \
+ --with-ipv6 \
+ %{?with_usb:--with-udev-dir=/etc/udev} \
+ %{?with_hal:--with-hal-callouts-path=%{_libdir}/hal} \
+ %{?with_hal:--with-hal-fdi-path=%{_datadir}/hal/fdi/information/20thirdparty} \
--with-statepath=%{_var}/lib/ups \
- --with-drvpath=%{_libdir}/nut \
+ --with-drvpath=/lib/nut \
--with-cgipath=/home/services/httpd/cgi-bin \
- --with-user=nobody \
- --with-group=ttyS
-%{__make} all cgi
+ --with-user=ups \
+ --with-group=ups
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{/sbin,/etc/{sysconfig,rc.d/init.d},/var/lib/ups} \
- $RPM_BUILD_ROOT{%{_libdir}/nut,%{_includedir}}
+install -d $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d},/var/lib/ups,/lib/nut,/sbin}
-%{__make} install install-cgi \
+%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/ups
install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/ups
install %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/upsmon
+install %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/upsmon
-rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/*
-install conf/*.users conf/*.conf conf/*.html $RPM_BUILD_ROOT%{_sysconfdir}
+for i in $RPM_BUILD_ROOT%{_sysconfdir}/*.sample; do
+ mv -f $i ${i%.sample}
+done
-install clients/upsclient.o $RPM_BUILD_ROOT%{_libdir}
-install clients/upsclient.h $RPM_BUILD_ROOT%{_includedir}
+%{!?with_usb:rm -f $RPM_BUILD_ROOT%{_udevrulesdir}/52-nut-usbups.rules}
cat > $RPM_BUILD_ROOT/sbin/poweroff-ups << EOF
#!/bin/sh
%post
/sbin/chkconfig --add ups
-if [ -f /var/lock/subsys/ups ]; then
- /etc/rc.d/init.d/ups restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/ups start\" to start NUT ups daemon."
+%service ups restart "NUT ups daemon"
+
+%preun
+if [ "$1" = "0" ]; then
+ %service ups stop
+ /sbin/chkconfig --del ups
fi
-%post client
-/sbin/chkconfig --add upsmon
-if [ -f /var/lock/subsys/upsmon ]; then
- /etc/rc.d/init.d/upsmon restart >&2
-else
- echo "Run \"/etc/rc.d/init.d/upsmon start\" to start NUT upsmon daemon."
+%pre common
+# move to trigger?
+if [ -n "`/usr/bin/getgid ups`" ] && [ "`/usr/bin/getgid ups`" = 121 ]; then
+ /usr/sbin/groupmod -g 76 ups
+ chgrp ups %{_sysconfdir}/{upsd.conf,ups.conf,upsd.users}
+ /usr/sbin/usermod -g 76 ups
fi
+%groupadd -g 76 ups
+%useradd -u 70 -d /usr/share/empty -s /bin/false -c "UPS Manager User" -g ups ups
-%preun
+%post common -p /sbin/ldconfig
+
+%postun common
+/sbin/ldconfig
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/ups ]; then
- /etc/rc.d/init.d/ups stop >&2
- fi
- /sbin/chkconfig --del ups
+ %userremove ups
+ %groupremove ups
fi
+%post client
+/sbin/chkconfig --add upsmon
+%service upsmon restart "NUT upsmon daemon"
+
%preun client
if [ "$1" = "0" ]; then
- if [ -f /var/lock/subsys/upsmon ]; then
- /etc/rc.d/init.d/upsmon stop >&2
- fi
+ %service upsmon stop
/sbin/chkconfig --del upsmon
fi
%attr(755,root,root) %{_bindir}/upsrw
%attr(755,root,root) %{_sbindir}/upsd
%attr(755,root,root) /sbin/poweroff-ups
-%config(noreplace) %verify(not size mtime md5) /etc/sysconfig/ups
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ups
%attr(754,root,root) /etc/rc.d/init.d/ups
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/upsd.conf
-%attr(640,root,nobody) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/ups.conf
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/upsd.users
+%attr(640,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/nut.conf
+%attr(640,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upsd.conf
+%attr(640,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ups.conf
+%attr(640,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upsd.users
%{_mandir}/man5/ups.conf.5*
%{_mandir}/man5/upsd.conf.5*
%{_mandir}/man5/upsd.users.5*
-%{_mandir}/man8/[!u]*.8*
%{_mandir}/man8/upscmd.8*
+%{_mandir}/man8/upscode2.8*
%{_mandir}/man8/upsd.8*
%{_mandir}/man8/upsdrvctl.8*
%{_mandir}/man8/upslog.8*
%{_mandir}/man8/upsrw.8*
-%dir %attr(750,nobody,root) /var/lib/ups
-%dir %{_libdir}/nut
-%attr(755,root,root) %{_libdir}/nut/*
+%dir %attr(770,root,ups) /var/lib/ups
+%dir /lib/nut
+%attr(755,root,root) /lib/nut/apcsmart
+%attr(755,root,root) /lib/nut/bcmxcp
+%{?with_usb:%attr(755,root,root) /lib/nut/bcmxcp_usb}
+%attr(755,root,root) /lib/nut/belkin
+%attr(755,root,root) /lib/nut/belkinunv
+%attr(755,root,root) /lib/nut/bestfcom
+%attr(755,root,root) /lib/nut/bestfortress
+%attr(755,root,root) /lib/nut/bestuferrups
+%attr(755,root,root) /lib/nut/bestups
+%attr(755,root,root) /lib/nut/blazer_ser
+%{?with_usb:%attr(755,root,root) /lib/nut/blazer_usb}
+%attr(755,root,root) /lib/nut/clone
+%attr(755,root,root) /lib/nut/clone-outlet
+%attr(755,root,root) /lib/nut/dummy-ups
+%attr(755,root,root) /lib/nut/etapro
+%attr(755,root,root) /lib/nut/everups
+%attr(755,root,root) /lib/nut/gamatronic
+%attr(755,root,root) /lib/nut/genericups
+%attr(755,root,root) /lib/nut/isbmex
+%attr(755,root,root) /lib/nut/ivtscd
+%attr(755,root,root) /lib/nut/liebert
+%attr(755,root,root) /lib/nut/liebertgxt2
+%attr(755,root,root) /lib/nut/masterguard
+%attr(755,root,root) /lib/nut/megatec
+%{?with_usb:%attr(755,root,root) /lib/nut/megatec_usb}
+%attr(755,root,root) /lib/nut/metasys
+%attr(755,root,root) /lib/nut/mge-shut
+%attr(755,root,root) /lib/nut/mge-utalk
+%attr(755,root,root) /lib/nut/microdowell
+%{?with_neon:%attr(755,root,root) /lib/nut/netxml-ups}
+%attr(755,root,root) /lib/nut/newmge-shut
+%attr(755,root,root) /lib/nut/oneac
+%attr(755,root,root) /lib/nut/optiups
+%attr(755,root,root) /lib/nut/powercom
+%attr(755,root,root) /lib/nut/powerpanel
+%attr(755,root,root) /lib/nut/rhino
+%{?with_usb:%attr(755,root,root) /lib/nut/richcomm_usb}
+%attr(755,root,root) /lib/nut/safenet
+%attr(755,root,root) /lib/nut/skel
+%{?with_snmp:%attr(755,root,root) /lib/nut/snmp-ups}
+%attr(755,root,root) /lib/nut/solis
+%attr(755,root,root) /lib/nut/tripplite
+%attr(755,root,root) /lib/nut/tripplitesu
+%{?with_usb:%attr(755,root,root) /lib/nut/tripplite_usb}
+%attr(755,root,root) /lib/nut/upscode2
+%attr(755,root,root) /lib/nut/upsdrvctl
+%{?with_usb:%attr(755,root,root) /lib/nut/usbhid-ups}
+%attr(755,root,root) /lib/nut/victronups
+%{_datadir}/nut
+%{_mandir}/man5/nut.conf.5*
+%{_mandir}/man8/apcsmart.8*
+%{_mandir}/man8/bcmxcp.8*
+%{?with_usb:%{_mandir}/man8/bcmxcp_usb.8*}
+%{_mandir}/man8/belkin.8*
+%{_mandir}/man8/belkinunv.8*
+%{_mandir}/man8/bestfcom.8*
+%{_mandir}/man8/bestfortress.8*
+%{_mandir}/man8/bestuferrups.8*
+%{_mandir}/man8/bestups.8*
+%{_mandir}/man8/blazer.8*
+%{_mandir}/man8/clone.8*
+%{_mandir}/man8/dummy-ups.8*
+%{_mandir}/man8/etapro.8*
+%{_mandir}/man8/everups.8*
+%{_mandir}/man8/gamatronic.8*
+%{_mandir}/man8/genericups.8*
+%{_mandir}/man8/isbmex.8*
+%{_mandir}/man8/ivtscd.8*
+%{_mandir}/man8/liebert.8*
+%{_mandir}/man8/liebertgxt2.8*
+%{_mandir}/man8/masterguard.8*
+%{_mandir}/man8/megatec.8*
+%{?with_usb:%{_mandir}/man8/megatec_usb.8*}
+%{_mandir}/man8/metasys.8*
+%{_mandir}/man8/mge-shut.8*
+%{_mandir}/man8/mge-utalk.8*
+%{_mandir}/man8/microdowell.8*
+%{?with_neon:%{_mandir}/man8/netxml-ups.8*}
+%{_mandir}/man8/nutupsdrv.8*
+%{_mandir}/man8/oneac.8*
+%{_mandir}/man8/optiups.8*
+%{_mandir}/man8/powercom.8*
+%{_mandir}/man8/powerpanel.8*
+%{_mandir}/man8/rhino.8*
+%{?with_usb:%{_mandir}/man8/richcomm_usb.8*}
+%{_mandir}/man8/safenet.8*
+%{?with_snmp:%{_mandir}/man8/snmp-ups.8*}
+%{_mandir}/man8/solis.8*
+%{_mandir}/man8/tripplite.8*
+%{_mandir}/man8/tripplitesu.8*
+%{?with_usb:%{_mandir}/man8/tripplite_usb.8*}
+%{?with_usb:%{_mandir}/man8/usbhid-ups.8*}
+%{_mandir}/man8/victronups.8*
+%{?with_usb:%config(noreplace) %verify(not md5 mtime size) %{_udevrulesdir}/52-nut-usbups.rules}
%files common
%defattr(644,root,root,755)
-%doc NEWS README CHANGES CREDITS docs
+%doc AUTHORS MAINTAINERS NEWS README UPGRADING ChangeLog docs
%dir %{_sysconfdir}
+%attr(755,root,root) %ghost %{_libdir}/libupsclient.so.1
+%attr(755,root,root) %{_libdir}/libupsclient.so.*.*.*
%files client
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/upsc
%attr(755,root,root) %{_sbindir}/upsmon
%attr(755,root,root) %{_sbindir}/upssched
-%attr(755,root,root) %{_sbindir}/upssched-cmd
%attr(754,root,root) /etc/rc.d/init.d/upsmon
-%attr(600,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/upsmon.conf
-%attr(600,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/upssched.conf
+%attr(640,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upsmon.conf
+%attr(640,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upssched.conf
+%attr(750,root,ups) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upssched-cmd
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/upsmon
%{_mandir}/man5/upsmon.conf.5*
%{_mandir}/man5/upssched.conf.5*
%{_mandir}/man8/upsc.8*
%{_mandir}/man8/upsmon.8*
%{_mandir}/man8/upssched.8*
+%if %{with cgi}
%files cgi
%defattr(644,root,root,755)
+%{_datadir}/%{name}/html
%attr(755,root,root) /home/services/httpd/cgi-bin/*.cgi
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/hosts.conf
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/upsset.conf
-%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/*.html
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hosts.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/upsset.conf
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.html
%{_mandir}/man5/hosts.conf.5*
%{_mandir}/man5/upsset.conf.5*
%{_mandir}/man5/upsstats.html.5*
%{_mandir}/man8/upsimage.cgi.8*
%{_mandir}/man8/upsset.cgi.8*
%{_mandir}/man8/upsstats.cgi.8*
+%endif
+
+%if %{with hal}
+%files hal
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/hal/hald-addon-bcmxcp_usb
+%attr(755,root,root) %{_libdir}/hal/hald-addon-megatec_usb
+%attr(755,root,root) %{_libdir}/hal/hald-addon-tripplite_usb
+%attr(755,root,root) %{_libdir}/hal/hald-addon-usbhid-ups
+%{_datadir}/hal/fdi/information/20thirdparty/20-ups-nut-device.fdi
+%endif
%files devel
%defattr(644,root,root,755)
-%{_libdir}/upsclient.o
-%{_includedir}/upsclient.h
+%attr(755,root,root) %{_libdir}/libupsclient.la
+%attr(755,root,root) %{_libdir}/libupsclient.so
+%{_pkgconfigdir}/*
+%{_includedir}/*.h
+%{_mandir}/man3/*.3*