- Update to version 2.7.4: For more see NEWS and UPGRADING in /usr/share/doc/packages/nut. * New class of device supported: ATS - Automatic Transfer Switch * NUT command and variable naming scheme changes. * support for new devices: AEG PROTECT B / NAS APC ATS AP7724 (should be supported) Asium P700 Eaton ATS Eaton 5E 1100iUSB Eaton E Series DX UPS 1-20 kVA Eaton Powerware 9125-5000g Electrys UPS 2500 Fideltronic INIGO Viper 1200 Legrand Keor Multiplug LYONN CTB-800V Micropower LCD 1000 NHS Laser Senoidal 5000VA Sweex model P220 TS Shara Various APCUPSD-controlled APC devices * snmp-ups improvements. * Eaton: improvements and fixes of 3ph SNMP, ePDU (G2 and G3) and XML/PDC. * Further fixes and improvements of bcmxcp_usb, dummy-ups, libnutclient, nutdrv_atcl_usb, nutdrv_qx, nut-ipmipsu, solis, tripplitesu, usbhid-ups. * nut-scanner: Don't depend on development libraries (boo#963505). * Improved SSL support through Mozilla NSS, Augeas support. * Fixed UPower device matching in recent kernels. * nut-server.service: Restore systemd relationship (drop 0001-Restore-systemd-relationship-with-nut-driver-service.patch). * Network protocol information change. - Drop dummy init scripts. They are not needed any more (nut-monitor, nut-server, nut-driver, boo#801542#c2). - Build and package documentation (nut-doc-fixed-date.patch, nut-doc-cables.patch). - Fix dependencies. - Fix bash-completion path. OBS-URL: https://build.opensuse.org/request/show/489344 OBS-URL: https://build.opensuse.org/package/show/hardware/nut?expand=0&rev=57
615 lines
20 KiB
RPMSpec
615 lines
20 KiB
RPMSpec
#
|
|
# spec file for package nut
|
|
#
|
|
# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define apache_serverroot %(%{_sbindir}/apxs2 -q datadir 2>/dev/null || %{_sbindir}/apxs -q PREFIX)
|
|
%define CGIPATH %{apache_serverroot}/cgi-bin
|
|
%define HTMLPATH %{apache_serverroot}/htdocs
|
|
%define MODELPATH %{_libexecdir}/ups/driver
|
|
%define STATEPATH %{_localstatedir}/lib/ups
|
|
%define CONFPATH %{_sysconfdir}/ups
|
|
%define USER upsd
|
|
%define GROUP daemon
|
|
%define LBRACE (
|
|
%define RBRACE )
|
|
%define QUOTE "
|
|
%define BACKSLASH \\
|
|
# Collect all devices listed in ups-nut-device.fdi:
|
|
%define USBHIDDRIVERS %(zcat %{SOURCE0} | tr a-z A-Z | grep -a -A1 USBHID-UPS | 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 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' ' ')
|
|
%if 0%{?suse_version} > 1210
|
|
%define systemdsystemdutildir %(pkg-config --variable=systemdutildir systemd)
|
|
%define with_systemd 1
|
|
%systemd_requires
|
|
%else
|
|
%define _libexecdir %{_prefix}/lib
|
|
%define _udevrulesdir %{_sysconfdir}/udev/rules.d/
|
|
%define with_systemd 0
|
|
%endif
|
|
# SLE <= 12 lacks needed packages
|
|
%if 0%{?sle_version} == 0
|
|
%if 0%{?suse_version} < 1200
|
|
%define with_doc 0
|
|
%else
|
|
%define with_doc 1
|
|
%endif
|
|
%else
|
|
%if 0%{?sle_version} < 130000
|
|
%define with_doc 0
|
|
%else
|
|
%define with_doc 1
|
|
%endif
|
|
%endif
|
|
Name: nut
|
|
Version: 2.7.4
|
|
Release: 0
|
|
Summary: Network UPS Tools Core (Uninterruptible Power Supply Monitoring)
|
|
License: GPL-2.0+
|
|
Group: Hardware/UPS
|
|
Url: http://www.networkupstools.org/
|
|
Source: http://www.networkupstools.org/source/2.7/%{name}-%{version}.tar.gz
|
|
Source1: upsd.init
|
|
Source2: README.SUSE
|
|
Source3: upsd-early-powerdown.init
|
|
Source5: nut.firewall.in
|
|
Source6: nut.system-sleep
|
|
Source7: nut.sleep
|
|
Source8: http://www.networkupstools.org/source/2.7/%{name}-%{version}.tar.gz.sig
|
|
Source9: %{name}.keyring
|
|
Patch0: nut-preconfig.patch
|
|
Patch3: nut-notifyflag.patch
|
|
# PATCH-FIX-UPSTREAM nut-systemd-dirs.patch sbrabec@suse.cz -- Fix systemd targets.
|
|
Patch7: nut-systemd-dirs.patch
|
|
# PATCH-FEATURE-OPENSUSE nut-doc-fixed-date.patch sbrabec@suse.cz -- Make doc builds reproducible.
|
|
Patch8: nut-doc-fixed-date.patch
|
|
# PATCH-FIX-UPSTREAM nut-doc-cables.patch sbrabec@suse.cz -- Build HTML documentation of cables.
|
|
Patch9: nut-doc-cables.patch
|
|
BuildRequires: apache2-devel
|
|
BuildRequires: avahi-devel
|
|
BuildRequires: dbus-1-glib-devel
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gd-devel
|
|
BuildRequires: libcppunit-devel
|
|
BuildRequires: libneon-devel
|
|
BuildRequires: libopenssl-devel
|
|
BuildRequires: libtool
|
|
BuildRequires: libusb-devel
|
|
BuildRequires: net-snmp-devel
|
|
BuildRequires: pkg-config
|
|
BuildRequires: tcpd-devel
|
|
%if 0%{?suse_version} >= 1200
|
|
%if 0%{?suse_version} >= 1330
|
|
BuildRequires: bash-completion-devel
|
|
%else
|
|
BuildRequires: bash-completion
|
|
%endif
|
|
%endif
|
|
Requires: logrotate
|
|
Requires: usbutils
|
|
Requires(post): udev
|
|
# Package provides driver for USB HID UPSes, but people can live with hal addon:
|
|
Enhances: %{USBHIDDRIVERS}
|
|
# Package provides the only avalailable driver for other USB UPSes:
|
|
Supplements: %{USBNONHIDDRIVERS}
|
|
Conflicts: apcupsd
|
|
Provides: smartups = %{version}
|
|
Obsoletes: smartups < %{version}
|
|
# for update from openSUSE <= 11.3, SLE <= 11
|
|
Provides: nut-classic = %{version}
|
|
Obsoletes: nut-classic < %{version}
|
|
Obsoletes: nut-hal < %{version}
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if 0%{?suse_version} > 1230
|
|
BuildRequires: powerman-devel
|
|
BuildRequires: systemd-devel
|
|
BuildRequires: udev
|
|
%ifarch %ix86 x86_64 ia64
|
|
BuildRequires: freeipmi-devel
|
|
%endif
|
|
%else
|
|
Requires(pre): %insserv_prereq
|
|
BuildRequires: pm-utils
|
|
Requires: powersave
|
|
%endif
|
|
%if %suse_version >= 1330
|
|
Requires(pre): user(upsd)
|
|
%endif
|
|
%if %with_doc
|
|
BuildRequires: asciidoc
|
|
BuildRequires: aspell
|
|
BuildRequires: dblatex
|
|
BuildRequires: libxml2-tools
|
|
BuildRequires: libxslt-tools
|
|
BuildRequires: source-highlight
|
|
%endif
|
|
%if 0%{?suse_version} >= 1200
|
|
%define bashcompletionsdir %(pkg-config bash-completion --variable=completionsdir)
|
|
%else
|
|
%define bashcompletionsdir %{_sysconfdir}/bash_completion.d
|
|
%endif
|
|
|
|
%description
|
|
Core package of Network UPS Tools.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package drivers-net
|
|
Summary: Network UPS Tools - Extra Networking Drivers (for Network Monitoring)
|
|
Group: Hardware/UPS
|
|
Requires: %{name} = %{version}
|
|
Enhances: %{name}
|
|
|
|
%description drivers-net
|
|
Networking drivers for the Network UPS Tools. You will need them
|
|
together with nut to provide UPS networking support.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package -n libupsclient1
|
|
Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring)
|
|
Group: System/Libraries
|
|
|
|
%description -n libupsclient1
|
|
Shared library for the Network UPS Tools.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package cgi
|
|
Summary: Network UPS Tools Web Server Support (UPS Status Pages)
|
|
Group: Hardware/UPS
|
|
Requires: %{name} = %{version}
|
|
Enhances: %{name}
|
|
Supplements: packageand(%{name}:apache2)
|
|
|
|
%description cgi
|
|
Web server support package for the Network UPS Tools.
|
|
|
|
Predefined URL is http://localhost/nut/index.html
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package devel
|
|
Summary: Network UPS Tools (Uninterruptible Power Supply Monitoring)
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{name} = %{version}
|
|
Requires: openssl-devel
|
|
|
|
%description devel
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package doc-images
|
|
Summary: Network UPS Tools - Images for Documentation
|
|
Group: Hardware/UPS
|
|
Recommends: %{name} = %{version}
|
|
Enhances: %{name}
|
|
Requires: %{name}-doc-images = %{version}
|
|
%if 0%{?suse_version} > 1200
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description doc-images
|
|
Images for the documentation. It is a supplementary package for some NUT
|
|
documentation packages.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package doc-asciidoc
|
|
Summary: Network UPS Tools - Documentation in AsciiDoc Format
|
|
Group: Hardware/UPS
|
|
Recommends: %{name} = %{version}
|
|
Enhances: %{name}
|
|
Requires: %{name}-doc-images = %{version}
|
|
%if 0%{?suse_version} > 1200
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description doc-asciidoc
|
|
NUT manuals in AsciiDoc format (human readable source).
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%if %with_doc
|
|
%package doc-pdf
|
|
Summary: Network UPS Tools - Documentation in PDF
|
|
Group: Hardware/UPS
|
|
Recommends: %{name} = %{version}
|
|
Enhances: %{name}
|
|
%if 0%{?suse_version} > 1200
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description doc-pdf
|
|
User manual in PDF format.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package doc-html
|
|
Summary: Network UPS Tools - Documentation in PDF
|
|
Group: Hardware/UPS
|
|
Recommends: %{name} = %{version}
|
|
Enhances: %{name}
|
|
Requires: %{name}-doc-images = %{version}
|
|
%if 0%{?suse_version} > 1200
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description doc-html
|
|
User manual in PDF format.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package devel-doc-pdf
|
|
Summary: Network UPS Tools - Documentation in PDF
|
|
Group: Hardware/UPS
|
|
Recommends: %{name} = %{version}
|
|
Enhances: %{name}
|
|
%if 0%{?suse_version} > 1200
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description devel-doc-pdf
|
|
Developer manual in PDF format.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%package devel-doc-html
|
|
Summary: Network UPS Tools - Documentation in PDF
|
|
Group: Hardware/UPS
|
|
Recommends: %{name} = %{version}
|
|
Enhances: %{name}
|
|
Requires: %{name}-doc-images = %{version}
|
|
# For CSS files:
|
|
Requires: %{name}-doc-html = %{version}
|
|
%if 0%{?suse_version} > 1200
|
|
BuildArch: noarch
|
|
%endif
|
|
|
|
%description devel-doc-html
|
|
Developer manual in HTML format.
|
|
|
|
Network UPS Tools is a collection of programs which provide a common
|
|
interface for monitoring and administering UPS hardware.
|
|
|
|
%endif
|
|
%prep
|
|
%setup -q
|
|
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE5} %{SOURCE6} %{SOURCE7} .
|
|
mv upsd-early-powerdown.init upsd-early-powerdown
|
|
%patch0
|
|
%patch3
|
|
%patch7 -p1
|
|
%patch8 -p1
|
|
%patch9 -p1
|
|
sed -i s/@now@/`date -r ChangeLog +%%Y-%%m-%%d`/g docs/docinfo.xml.in
|
|
|
|
sed -i "s/@UPSD_USER@/%{USER}/g" upsd.init
|
|
sed -i s:%{_prefix}/local/ups/bin:/bin: conf/upssched.conf.sample.in
|
|
|
|
%build
|
|
autoreconf -fvi
|
|
# documentation fails to build -> disable
|
|
%configure \
|
|
--disable-static \
|
|
--with-pic \
|
|
--sysconfdir=%{CONFPATH} \
|
|
--datadir=%{_datadir}/nut \
|
|
--with-all \
|
|
%if %with_doc
|
|
--with-doc \
|
|
%else
|
|
--without-doc \
|
|
%endif
|
|
--with-ssl \
|
|
--with-openssl \
|
|
--without-nss \
|
|
--with-wrap \
|
|
%if 0%{?suse_version} <= 1230
|
|
--without-ipmi \
|
|
%endif
|
|
%ifnarch %ix86 x86_64 ia64
|
|
--without-ipmi \
|
|
%endif
|
|
%if 0%{?suse_version} <= 1110
|
|
--without-powerman \
|
|
%endif
|
|
--with-htmlpath=%{HTMLPATH} \
|
|
--with-cgipath=%{CGIPATH} \
|
|
--with-statepath=%{STATEPATH} \
|
|
--with-drvpath=%{MODELPATH} \
|
|
--with-user=%{USER} \
|
|
--with-group=%{GROUP} \
|
|
%if 0%{with_systemd}
|
|
--with-udev-dir=%{_libexecdir}/udev \
|
|
%else
|
|
--with-udev-dir=%{_sysconfdir}/udev \
|
|
%endif
|
|
--enable-option-checking=fatal
|
|
|
|
# There is a bug in doc build that makes impossible to build in parallel
|
|
cd docs
|
|
make
|
|
cd ..
|
|
make %{?_smp_mflags}
|
|
PORT=$(sed -n 's/#define PORT //p' config.log)
|
|
if test "$PORT" = 3493 ; then
|
|
PORT=nut
|
|
fi
|
|
sed s/@PORT@/$PORT/ <nut.firewall.in >nut.firewall
|
|
|
|
%install
|
|
make DESTDIR=%{buildroot} install %{?_smp_mflags}
|
|
find %{buildroot} -type f -name "*.la" -delete -print
|
|
|
|
mkdir -p %{buildroot}%{STATEPATH}
|
|
# initscript
|
|
mkdir -p %{buildroot}%{_sbindir}
|
|
%if 0%{with_systemd}
|
|
ln -s service %{buildroot}%{_sbindir}/rcnut-driver
|
|
ln -s service %{buildroot}%{_sbindir}/rcnut-server
|
|
ln -s service %{buildroot}%{_sbindir}/rcnut-monitor
|
|
%else
|
|
mkdir -p %{buildroot}%{_sysconfdir}/init.d
|
|
install -m 755 upsd.init %{buildroot}%{_sysconfdir}/init.d/upsd
|
|
ln -sf ../..%{_sysconfdir}/init.d/upsd %{buildroot}%{_sbindir}/rcupsd
|
|
%endif
|
|
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
|
|
install -m 644 scripts/logrotate/nutlogd %{buildroot}%{_sysconfdir}/logrotate.d/nut
|
|
mkdir -p %{buildroot}%{STATEPATH}
|
|
rename .sample "" %{buildroot}%{_sysconfdir}/ups/*.sample
|
|
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
|
|
cp nut.firewall %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/nut
|
|
|
|
%if 0%{with_systemd}
|
|
install -d %{buildroot}%{_libexecdir}/systemd/system-sleep
|
|
install nut.system-sleep %{buildroot}%{_libexecdir}/systemd/system-sleep/%{name}.sh
|
|
%else
|
|
mkdir -p %{buildroot}%{_libexecdir}/pm-utils/sleep.d
|
|
install nut.sleep %{buildroot}%{_libexecdir}/pm-utils/sleep.d/99nut
|
|
%endif
|
|
|
|
# Rename web pages to not conflict with apache2-example-pages or user home page:
|
|
mkdir %{buildroot}%{HTMLPATH}/nut %{buildroot}%{CGIPATH}/nut
|
|
mv %{buildroot}%{HTMLPATH}/*.{html,png} %{buildroot}%{HTMLPATH}/nut/
|
|
mv %{buildroot}%{CGIPATH}/*.cgi %{buildroot}%{CGIPATH}/nut
|
|
|
|
mkdir -p %{buildroot}%{bashcompletionsdir}
|
|
install -m0644 scripts/misc/nut.bash_completion %{buildroot}%{bashcompletionsdir}/nut
|
|
|
|
# Documentation
|
|
mkdir -p %{buildroot}%{_docdir}/%{name}
|
|
cp -a AUTHORS COPYING ChangeLog MAINTAINERS NEWS README README.SUSE UPGRADING upsd-early-powerdown %{buildroot}%{_docdir}/%{name}/
|
|
cp -a docs/*.txt docs/cables docs/images %{buildroot}%{_docdir}/%{name}/
|
|
%if %with_doc
|
|
cp -a docs/*.css docs/*.html docs/*.pdf %{buildroot}%{_docdir}/%{name}/
|
|
%endif
|
|
|
|
# Not needed for packaged contents:
|
|
rm %{buildroot}%{_docdir}/%{name}/packager-guide.*
|
|
|
|
%pre
|
|
%if %suse_version < 1330
|
|
useradd -r -g %{GROUP} -s /bin/false -c "UPS daemon" -d /sbin %{USER} 2>/dev/null || :
|
|
%endif
|
|
%if 0%{with_systemd}
|
|
%service_add_pre nut-driver.service nut-server.service nut-monitor.service
|
|
%endif
|
|
|
|
%post
|
|
# Be sure that all files are owned by a dedicated user.
|
|
chown -R %{USER}:%{GROUP} %{STATEPATH}
|
|
# Generate initial passwords.
|
|
if grep -q "password = @UPSD_INITIAL_MASTER_PASSWORD@" %{CONFPATH}/upsmon.conf %{CONFPATH}/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
|
|
fi
|
|
if grep -q "password = @UPSD_INITIAL_SLAVE_PASSWORD@" %{CONFPATH}/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
|
|
fi
|
|
# Be sure that all files are owned by a dedicated user.
|
|
bin/chown %{USER}:root %{CONFPATH}/upsd.conf %{CONFPATH}/upsmon.conf %{CONFPATH}/upsd.users
|
|
bin/chmod 600 %{CONFPATH}/upsd.conf %{CONFPATH}/upsmon.conf %{CONFPATH}/upsd.users
|
|
# Install or remove HALT_POWERDOWN_INSERT
|
|
# It was last installed in 1310, but it is obsolete since dropping sysvinit support.
|
|
%if 0%{?suse_version} < 1310
|
|
if grep -q '^HALT_POWERDOWN_INSERT="\(%{_sysconfdir}/init\.d/upsd try-powerdown\|\)"' etc/sysconfig/shutdown ; then
|
|
sed -i 's:^\(HALT_POWERDOWN_INSERT="\).*"[[:space:]]*:\1%{_sysconfdir}/init.d/upsd try-powerdown":' etc/sysconfig/shutdown
|
|
else
|
|
# User configured Suspend-to-disc. Keep it unchanged and be silent.
|
|
if ! grep -q '^HALT_POWERDOWN_INSERT="%{_bindir}/powersave -U' etc/sysconfig/shutdown ; then
|
|
echo >&2 "nut: WARNING: Unknown value of HALT_POWERDOWN_INSERT in %{_sysconfdir}/sysconfig/shutdown."
|
|
echo >&2 " Keeping unchanged. Should be:"
|
|
echo >&2 "HALT_POWERDOWN_INSERT=\"%{_sysconfdir}/init.d/upsd try-powerdown\""
|
|
echo >&2 "or"
|
|
echo >&2 "HALT_POWERDOWN_INSERT=\"%{_bindir}/powersave -U\""
|
|
fi
|
|
fi
|
|
%endif
|
|
# 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
|
|
# "shutdown -z +0" for suspend to disc. It was discontinued before 11.0.
|
|
# Documentation since 11.0 up to 13.1 recommends /powersave -U.
|
|
# pm-utils (and powersave) were obsoleted after 13.1 in favor of systemd.
|
|
%if 0%{with_systemd}
|
|
if grep "shutdown -z +0" %{_sysconfdir}/ups/upsmon.conf ; then
|
|
sed -i 's:/sbin/shutdown -z +0:%{_bindir}/systemctl hibernate:;s:shutdown -z +0:%{_bindir}/systemctl hibernate:' %{_sysconfdir}/ups/upsmon.conf
|
|
fi
|
|
if grep "powersave -U" %{_sysconfdir}/ups/upsmon.conf ; then
|
|
sed -i 's:%{_bindir}/powersave -U:%{_bindir}/systemctl hibernate:;s:powersave -U:%{_bindir}/systemctl hibernate:' %{_sysconfdir}/ups/upsmon.conf
|
|
fi
|
|
%else
|
|
if grep "shutdown -z +0" %{_sysconfdir}/ups/upsmon.conf ; then
|
|
sed -i 's:/sbin/shutdown -z +0:%{_bindir}/powersave -U:;s:shutdown -z +0:%{_bindir}/powersave -U:' %{_sysconfdir}/ups/upsmon.conf
|
|
fi
|
|
%endif
|
|
# And finally trigger udev to set permissions according to newly installed rules files.
|
|
/sbin/udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device
|
|
%if 0%{with_systemd}
|
|
%service_add_post nut-driver.service nut-server.service nut-monitor.service
|
|
%else
|
|
%{fillup_and_insserv -f -n upsd}
|
|
%endif
|
|
|
|
%preun
|
|
%if 0%{with_systemd}
|
|
%service_del_preun nut-driver.service nut-server.service nut-monitor.service
|
|
%else
|
|
%{stop_on_removal upsd}
|
|
%endif
|
|
|
|
%postun
|
|
# Remove HALT_POWERDOWN_INSERT
|
|
# It was last installed in 1310, but it is obsolete since dropping sysvinit support.
|
|
%if 0%{?suse_version} < 1310
|
|
if test $1 -eq 0 -a ! -f %{_sysconfdir}/init.d/upsd ; then
|
|
if grep -q '^HALT_POWERDOWN_INSERT="\(%{_sysconfdir}/init\.d/upsd try-powerdown\|%{_bindir}/powersave -U\)"' etc/sysconfig/shutdown ; then
|
|
sed -i 's:^\(HALT_POWERDOWN_INSERT="\)\(%{_sysconfdir}/init\.d/upsd try-powerdown\|%{_bindir}/powersave -U\)":\1":' etc/sysconfig/shutdown
|
|
else
|
|
echo >&2 "nut: WARNING: Unknown value of HALT_POWERDOWN_INSERT in %{_sysconfdir}/sysconfig/shutdown."
|
|
echo >&2 " Keeping unchanged. Should be:"
|
|
echo >&2 "HALT_POWERDOWN_INSERT=\"\""
|
|
fi
|
|
if test -f %{_sysconfdir}/init.d/upsd-early-powerdown ; then
|
|
echo >&2 "nut: WARNING: You may want to remove your %{_sysconfdir}/init.d/upsd-early-powerdown."
|
|
fi
|
|
fi
|
|
%endif
|
|
%if 0%{with_systemd}
|
|
%service_del_postun nut-driver.service nut-server.service nut-monitor.service
|
|
%else
|
|
%{restart_on_update upsd}
|
|
%insserv_cleanup
|
|
%endif
|
|
|
|
%post -n libupsclient1 -p /sbin/ldconfig
|
|
|
|
%postun -n libupsclient1 -p /sbin/ldconfig
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc %dir %{_docdir}/%{name}
|
|
%doc %{_docdir}/%{name}/[A-EG-Z]*
|
|
%doc %{_docdir}/%{name}/upsd-early-powerdown
|
|
%config %{_sysconfdir}/logrotate.d/*
|
|
%{_bindir}/*
|
|
%{_datadir}/nut
|
|
%{_mandir}/man5/*.*
|
|
%{_mandir}/man8/*.*
|
|
%exclude %{_mandir}/man8/netxml-ups*.*
|
|
%exclude %{_mandir}/man8/snmp-ups*.*
|
|
%dir %{_libexecdir}/ups
|
|
%{_sbindir}/*
|
|
%config(noreplace) %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/nut
|
|
%{_udevrulesdir}/*.rules
|
|
%config(noreplace) %{CONFPATH}/hosts.conf
|
|
%config(noreplace) %attr(600,%{USER},root) %{CONFPATH}/upsd.conf
|
|
%config(noreplace) %attr(600,%{USER},root) %{CONFPATH}/upsd.users
|
|
%config(noreplace) %attr(600,%{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
|
|
%dir %{MODELPATH}
|
|
%{MODELPATH}/*
|
|
%exclude %{MODELPATH}/snmp-ups
|
|
%exclude %{MODELPATH}/netxml-ups
|
|
%attr(700,%{USER},%{GROUP}) %{STATEPATH}
|
|
%if 0%{with_systemd}
|
|
%{_unitdir}/*.service
|
|
%{systemdsystemdutildir}/system-shutdown/*
|
|
%{_libexecdir}/systemd/system-sleep/%{name}.sh
|
|
%else
|
|
%{_libexecdir}/pm-utils/sleep.d/99nut
|
|
%{_sysconfdir}/init.d/*
|
|
%endif
|
|
%{bashcompletionsdir}/*
|
|
|
|
%files drivers-net
|
|
%defattr(-,root,root)
|
|
%{MODELPATH}/snmp-ups
|
|
%{MODELPATH}/netxml-ups
|
|
%{_mandir}/man8/netxml-ups*.*
|
|
%{_mandir}/man8/snmp-ups*.*
|
|
|
|
%files -n libupsclient1
|
|
%defattr(-,root,root)
|
|
%{_libdir}/*.so.*
|
|
|
|
%files cgi
|
|
%defattr(-,root,root)
|
|
%{CGIPATH}/nut
|
|
%{HTMLPATH}/nut
|
|
%config(noreplace) %{CONFPATH}/upsstats-single.html
|
|
%config(noreplace) %{CONFPATH}/upsstats.html
|
|
|
|
%files devel
|
|
%defattr(-,root,root)
|
|
%{_includedir}/*.h
|
|
%{_libdir}/*.so
|
|
%{_libdir}/pkgconfig/*.pc
|
|
%{_mandir}/man3/*.*
|
|
|
|
%files doc-images
|
|
%defattr(-,root,root)
|
|
%doc %dir %{_docdir}/%{name}
|
|
%{_docdir}/%{name}/images
|
|
|
|
%files doc-asciidoc
|
|
%defattr(-,root,root)
|
|
%doc %dir %{_docdir}/%{name}
|
|
%{_docdir}/%{name}/*.txt
|
|
%{_docdir}/%{name}/cables
|
|
|
|
%if %with_doc
|
|
%files doc-pdf
|
|
%defattr(-,root,root)
|
|
%doc %dir %{_docdir}/%{name}
|
|
%{_docdir}/%{name}/FAQ.pdf
|
|
%{_docdir}/%{name}/cables.pdf
|
|
%{_docdir}/%{name}/user-manual.pdf
|
|
|
|
%files doc-html
|
|
%defattr(-,root,root)
|
|
%{_docdir}/%{name}/FAQ.html
|
|
%{_docdir}/%{name}/cables.html
|
|
%{_docdir}/%{name}/user-manual.html
|
|
%{_docdir}/%{name}/*.css
|
|
|
|
%files devel-doc-pdf
|
|
%defattr(-,root,root)
|
|
%doc %dir %{_docdir}/%{name}
|
|
%{_docdir}/%{name}/developer-guide.pdf
|
|
|
|
%files devel-doc-html
|
|
%defattr(-,root,root)
|
|
%{_docdir}/%{name}/developer-guide.html
|
|
|
|
%endif
|
|
|
|
%changelog
|