Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP2:GA
nut
nut.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File nut.spec of Package nut
# # spec file for package nut # # Copyright (c) 2018 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 NUT_USER upsd %define NUT_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' ' ') %define systemdsystemdutildir %(pkg-config --variable=systemdutildir systemd) %define bashcompletionsdir %(pkg-config bash-completion --variable=completionsdir) Name: nut Version: 2.7.4 Release: 0 Summary: Network UPS Tools Core (Uninterruptible Power Supply Monitoring) License: GPL-2.0-or-later Group: Hardware/UPS Url: http://www.networkupstools.org/ Source: http://www.networkupstools.org/source/2.7/%{name}-%{version}.tar.gz Source2: README.SUSE 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 # PATCH-FIX-UPSTREAM use-pkg-config-gdlib.diff alarrosa@suse.com -- Use pkg-config to obtain CFLAGS and LDFLAGS to use when building with gd Patch10: use-pkg-config-gdlib.diff Patch11: openssl-1_1.patch Patch12: nut-upssched.patch BuildRequires: apache2-devel BuildRequires: asciidoc BuildRequires: avahi-devel BuildRequires: dblatex BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: libcppunit-devel BuildRequires: libtool %if 0%{?suse_version} >= 1330 BuildRequires: libnsl-devel %endif BuildRequires: libusb-devel BuildRequires: libxml2-tools BuildRequires: libxslt-tools BuildRequires: net-snmp-devel BuildRequires: pkgconfig # Not available in SLE 12. Needed just for documentation build. #BuildRequires: source-highlight BuildRequires: tcpd-devel BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(gdlib) BuildRequires: pkgconfig(libpowerman) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(neon) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(udev) BuildRequires: tex(upquote.sty) 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} # for update from openSUSE <= 11.3, SLE <= 11 Provides: nut-classic = %{version} Obsoletes: nut-classic < %{version} Obsoletes: nut-hal < %{version} %{?systemd_requires} BuildRequires: pkgconfig(bash-completion) %ifarch %{ix86} x86_64 ia64 BuildRequires: pkgconfig(libfreeipmi) %endif %if 0%{?suse_version} >= 1330 Requires(pre): user(upsd) %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: Documentation/Other Requires: %{name}-doc-images = %{version} Recommends: %{name} = %{version} Enhances: %{name} BuildArch: noarch %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: Documentation/Other Requires: %{name}-doc-images = %{version} Recommends: %{name} = %{version} Enhances: %{name} BuildArch: noarch %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. %package doc-pdf Summary: Network UPS Tools - Documentation in PDF Group: Documentation/Other Recommends: %{name} = %{version} Enhances: %{name} BuildArch: noarch %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 HTML Group: Documentation/HTML Requires: %{name}-doc-images = %{version} Recommends: %{name} = %{version} Enhances: %{name} BuildArch: noarch %description doc-html User manual in HTML 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: Documentation/Other Recommends: %{name} = %{version} Enhances: %{name} BuildArch: noarch %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 HTML # For CSS files: Group: Documentation/HTML Requires: %{name}-doc-html = %{version} Requires: %{name}-doc-images = %{version} Recommends: %{name} = %{version} Enhances: %{name} BuildArch: noarch %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. %prep %setup -q cp -a %{SOURCE2} %{SOURCE5} %{SOURCE6} %{SOURCE7} . %patch0 %patch3 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 sed -i s/@now@/`date -r ChangeLog +%%Y-%%m-%%d`/g docs/docinfo.xml.in sed -i s:%{_prefix}/local/ups/bin:/bin: conf/upssched.conf.sample.in %build autoreconf -fvi %configure \ --disable-static \ --sysconfdir=%{CONFPATH} \ --datadir=%{_datadir}/nut \ --with-all \ --with-doc \ --with-ssl \ --with-openssl \ --without-nss \ --with-wrap \ %ifnarch %{ix86} x86_64 ia64 --without-ipmi \ %endif --with-htmlpath=%{HTMLPATH} \ --with-cgipath=%{CGIPATH} \ --with-statepath=%{STATEPATH} \ --with-drvpath=%{MODELPATH} \ --with-user=%{NUT_USER} \ --with-group=%{NUT_GROUP} \ --with-udev-dir=%{_libexecdir}/udev \ --enable-option-checking=fatal # There is a bug in doc build that makes impossible to build in parallel cd docs make -j1 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_install find %{buildroot} -type f -name "*.la" -delete -print mkdir -p %{buildroot}%{STATEPATH} # initscript mkdir -p %{buildroot}%{_sbindir} ln -s service %{buildroot}%{_sbindir}/rcnut-driver ln -s service %{buildroot}%{_sbindir}/rcnut-server ln -s service %{buildroot}%{_sbindir}/rcnut-monitor 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 install -d %{buildroot}%{_libexecdir}/systemd/system-sleep install nut.system-sleep %{buildroot}%{_libexecdir}/systemd/system-sleep/%{name}.sh # 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 %{buildroot}%{_docdir}/%{name}/ cp -a docs/*.txt docs/cables docs/images %{buildroot}%{_docdir}/%{name}/ cp -a docs/*.css docs/*.html docs/*.pdf %{buildroot}%{_docdir}/%{name}/ # Not needed for packaged contents: rm %{buildroot}%{_docdir}/%{name}/packager-guide.* # Create symlinks for man pages %fdupes -s %{buildroot}%{_mandir} %pre %if 0%{?suse_version} < 1330 getent passwd %{NUT_USER} >/dev/null || useradd -r -g %{NUT_GROUP} -s /bin/false -c "UPS daemon" -d /sbin %{NUT_USER} 2>/dev/null %endif %service_add_pre nut-driver.service nut-server.service nut-monitor.service %post # Be sure that all files are owned by a dedicated user. chown -R %{NUT_USER}:%{NUT_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 %{NUT_USER}:root %{CONFPATH}/upsd.conf %{CONFPATH}/upsmon.conf %{CONFPATH}/upsd.users /bin/chmod 600 %{CONFPATH}/upsd.conf %{CONFPATH}/upsmon.conf %{CONFPATH}/upsd.users # 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 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 # And finally trigger udev to set permissions according to newly installed rules files. /sbin/udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device %service_add_post nut-driver.service nut-server.service nut-monitor.service %preun %service_del_preun nut-driver.service nut-server.service nut-monitor.service %postun %service_del_postun nut-driver.service nut-server.service nut-monitor.service %post -n libupsclient1 -p /sbin/ldconfig %postun -n libupsclient1 -p /sbin/ldconfig %files %doc %dir %{_docdir}/%{name} %doc %{_docdir}/%{name}/[A-EG-Z]* %config %{_sysconfdir}/logrotate.d/* %{_bindir}/* %{_datadir}/nut %{_mandir}/man5/*%{ext_man} %{_mandir}/man8/*%{ext_man} %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,%{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 %dir %{MODELPATH} %{MODELPATH}/* %exclude %{MODELPATH}/snmp-ups %exclude %{MODELPATH}/netxml-ups %attr(700,%{NUT_USER},%{NUT_GROUP}) %{STATEPATH} %{_unitdir}/*.service %{systemdsystemdutildir}/system-shutdown/* %{_libexecdir}/systemd/system-sleep/%{name}.sh %{bashcompletionsdir}/* %files drivers-net %{MODELPATH}/snmp-ups %{MODELPATH}/netxml-ups %{_mandir}/man8/netxml-ups*%{ext_man} %{_mandir}/man8/snmp-ups*%{ext_man} %files -n libupsclient1 %{_libdir}/*.so.* %files cgi %{CGIPATH}/nut %{HTMLPATH}/nut %config(noreplace) %{CONFPATH}/upsstats-single.html %config(noreplace) %{CONFPATH}/upsstats.html %files devel %{_includedir}/*.h %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc %{_mandir}/man3/*%{ext_man} %files doc-images %doc %dir %{_docdir}/%{name} %{_docdir}/%{name}/images %files doc-asciidoc %doc %dir %{_docdir}/%{name} %{_docdir}/%{name}/*.txt %{_docdir}/%{name}/cables %files doc-pdf %doc %dir %{_docdir}/%{name} %{_docdir}/%{name}/FAQ.pdf %{_docdir}/%{name}/cables.pdf %{_docdir}/%{name}/user-manual.pdf %files doc-html %{_docdir}/%{name}/FAQ.html %{_docdir}/%{name}/cables.html %{_docdir}/%{name}/user-manual.html %{_docdir}/%{name}/*.css %files devel-doc-pdf %doc %dir %{_docdir}/%{name} %{_docdir}/%{name}/developer-guide.pdf %files devel-doc-html %{_docdir}/%{name}/developer-guide.html %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor