+#
+# Conditional build:
+%bcond_without test # without TEST support
+%bcond_with usb # with USB support
+%bcond_with net # with network support
+#
+Summary: Power management software for APC UPS hardware
+Summary(pl): Oprogramowanie do zarz±dzania energi± dla UPS-ów APC
Name: apcupsd
-Version: 3.5.8
+Version: 3.10.18
Release: 2
License: GPL v2
Group: Networking/Daemons
-Group(pl): Sieciowe/Serwery
-Source0: http://www.brisse.dk/site/apcupsd/download/%{name}-%{version}.src.tar.gz
-Patch0: apcups-initscript.patch
-Patch1: apcups-makefile.patch
-Patch2: apcupsd-Makefile-fix.patch
-Summary: power management software for APC UPS hardware
-URL: http://www.brisse.dk/site/apcupsd/
+Source0: http://dl.sourceforge.net/apcupsd/%{name}-%{version}.tar.gz
+# Source0-md5: 64104a1fface0253e77318ca84948bac
+Source1: %{name}.init
+Source2: %{name}.logrotate
+Source3: %{name}.sysconfig
+Patch0: %{name}-configure.patch
+URL: http://www.apcupsd.com/
+BuildRequires: autoconf
+BuildRequires: automake
+Requires(post): fileutils
+Requires(post,preun): /sbin/chkconfig
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-#Icon: apcupsd-logo.xpm
-%define _prefix /
-%define _mandir /usr/share/man
+%define _sysconfdir /etc/apcupsd
%description
UPS power management under Linux for APCC Products. It allows your
SmartUPS v/s, or SmartUPS, and then properly executes a controlled
shutdown during an extended power failure.
+%description -l pl
+Oprogramowanie do zarz±dzania energi± dla UPS-ów APC. Pozwala
+komputerowi dzia³aæ po awarii zasilania przez okre¶lony czas lub czas
+¿ycia akumulatorów w BackUPS, BackUPS Pro, SmartUPS v/s, SmartUPS oraz
+odpowiednio uruchamia kontrolowany shutdown przy d³u¿szej awarii
+zasilania.
+
%prep
-%setup -q -n %{name}-%{version}.src
+%setup -q
%patch0 -p1
-%patch1 -p1
-%patch2 -p0
%build
-mv Makefile Makefile.orig
-cat Makefile.orig \
- | sed "s,^PREFIX =,PREFIX = ${RPM_BUILD_ROOT}," \
- | sed "s,^MANPREFIX = /usr,MANPREFIX = ${RPM_BUILD_ROOT}/usr," \
- > Makefile
-make linux
+cd autoconf
+cp -f /usr/share/automake/config.sub .
+%{__autoconf}
+cp -f ./configure ..
+cd ..
+%configure \
+ --with-log-dir=%{_var}/log \
+ --with-stat-dir=%{_var}/lib/apcupsd \
+ %{?with_test:--enable-test} \
+ %{?with_net:--enable-net} \
+%if %{with usb}
+ --enable-usb \
+ --with-serial-dev=/dev/usb/hiddev[0-15] \
+ --with-upstype=usb \
+ --with-upscable=usb
+%endif
+
+%{__make}
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT/etc/{apcupsd,logrotate.d,rc.d/init.d,sysconfig} \
+ $RPM_BUILD_ROOT/var/{log,lib/apcupsd}
+
+%{__make} install \
+ DESTDIR=$RPM_BUILD_ROOT
-# Some issues :
-# - why doesn't the Makefile know that it should install *-linux ??
-# - make install tries to stop apcupsd. That's not necessary (buildroot) (hany: not issue anymore)
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/apcupsd
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/apcupsd
+install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/apcupsd
-#install -d ${RPM_BUILD_ROOT}/{sbin,bin,etc/rc.d/init.d,usr/man/man8,var/log}
-install -d ${RPM_BUILD_ROOT}/{bin,sbin,usr/share/man/man8}
-install -d ${RPM_BUILD_ROOT}/{etc/rc.d/init.d,var/log}
+touch $RPM_BUILD_ROOT/var/log/apcupsd.events
+touch $RPM_BUILD_ROOT/var/lib/apcupsd/apcupsd.status
-NAME="-linux" make MANPREFIX="${RPM_BUILD_ROOT}%{_datadir}/" install
-# hany: why this? we're just building. not installing
-#[ -x /sbin/powersc ] && /sbin/powersc RESTARTME
-gzip -9nf ${RPM_BUILD_ROOT}%{_mandir}/man8/*
-install installs/apcupsd.conf ${RPM_BUILD_ROOT}%{_sysconfdir}
-install installs/apcups.rhs ${RPM_BUILD_ROOT}/etc/rc.d/init.d/apcups
-touch ${RPM_BUILD_ROOT}/var/log/apcupsd.log
-touch ${RPM_BUILD_ROOT}%{_sysconfdir}/apcupsd.status
+cat > $RPM_BUILD_ROOT/etc/rc.d/init.d/halt << EOF
+#!/bin/sh
+/etc/rc.d/init.d/apcupsd powerdown
+EOF
%clean
-rm -rf ${RPM_BUILD_ROOT}
+rm -rf $RPM_BUILD_ROOT
%post
-/sbin/ldconfig
-/sbin/chkconfig --add apcups
-if !(grep /sbin/powersc /etc/rc.d/init.d/halt > /dev/null); then
-cp -f /etc/rc.d/init.d/halt /etc/rc.d/init.d/halt.rpmorig
-sed -e '/# Now halt or reboot./i\' \
- -e '\
-# See if this is a powerfail situation.\
-if [ -f /etc/powerfail ]; then\
- echo "APCUPSD to the Rescue!"\
- echo\
- /sbin/powersc KILL\
- echo\
- sleep 120\
- exit 1\
-fi\
-' /etc/rc.d/init.d/halt.rpmorig > /etc/rc.d/init.d/halt
-
+/sbin/chkconfig --add apcupsd
+if [ -f /var/lock/subsys/apcupsd ]; then
+ /etc/rc.d/init.d/apcupsd restart >&2
+else
+ echo "Run \"/etc/rc.d/init.d/apcupsd start\" to start apcupsd daemon."
fi
-echo Check the documentation to see whether /etc/rc.d/init.d/halt has a
-echo correct invocation of /sbin/powersc .
%preun
-chkconfig --del apcups
+if [ "$1" = "0" ]; then
+ if [ -f /var/lock/subsys/apcupsd ]; then
+ /etc/rc.d/init.d/apcupsd stop >&2
+ fi
+/sbin/chkconfig --del apcupsd
+fi
%files
%defattr(644,root,root,755)
-%doc README.NEW Changelog port.gif Statement.APCC
-%doc %{name}-%{version}.src.lsm
-%doc readmes/* docs/apcupsd.docs
-%doc installs/halt.rhs installs/apcups.rhs installs/powersc
-%{_mandir}/man8/apcupsd.8*
-%attr(755,root,root) /sbin/apcupsd
-%attr(755,root,root) /bin/apcaccess
-%attr(755,root,root) %config /sbin/powersc
-%attr(640,root,root) %config(noreplace) %{_sysconfdir}/apcupsd.conf
-%attr(754,root,root) /etc/rc.d/init.d/apcups
-%ghost /var/log/apcupsd.log
-%ghost %{_sysconfdir}/apcupsd.status
+%doc ChangeLog Developers doc/{README.apcaccess,README.solaris}
+%{_mandir}/man8/apcupsd.*
+%attr(755,root,root) %{_sbindir}/*
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/apcupsd.conf
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/apcupsd
+%attr(754,root,root) %{_sysconfdir}/apccontrol
+%attr(754,root,root) %{_sysconfdir}/changeme
+%attr(754,root,root) %{_sysconfdir}/commfailure
+%attr(754,root,root) %{_sysconfdir}/commok
+%attr(754,root,root) %{_sysconfdir}/mainsback
+%attr(754,root,root) %{_sysconfdir}/masterconnect
+%attr(754,root,root) %{_sysconfdir}/mastertimeout
+%attr(754,root,root) %{_sysconfdir}/onbattery
+%attr(754,root,root) /etc/rc.d/init.d/apcupsd
+%attr(754,root,root) /etc/rc.d/init.d/halt
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/apcupsd
+%dir %{_sysconfdir}
+%dir /var/lib/apcupsd
+%attr(640,root,root) %ghost /var/log/apcupsd.events
+%attr(640,root,root) %ghost /var/lib/apcupsd/apcupsd.status