diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a737052 --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +nut-2.4.3.tar.gz +/nut-2.6.0.tar.gz +/nut-2.6.1.tar.gz +/nut-2.6.2.tar.gz +/nut-2.6.3.tar.gz +/nut-2.6.4.tar.gz +/nut-2.6.5.tar.gz +/nut-2.7.1.tar.gz +/nut-2.7.2.tar.gz +/nut-2.7.3.tar.gz +/nut-2.7.4.tar.gz +/nut-2.8.0.tar.gz +/nut-2.8.1.tar.gz +/nut-2.8.2.tar.gz +/nut-2.8.2.1.tar.gz +/nut-2.8.3.tar.gz +/nut-2.8.4.tar.gz diff --git a/dead.package b/dead.package deleted file mode 100644 index a72aec0..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -epel8-playground decommissioned : https://pagure.io/epel/issue/136 diff --git a/libs.sh b/libs.sh new file mode 100644 index 0000000..641d9ad --- /dev/null +++ b/libs.sh @@ -0,0 +1,32 @@ +#!/bin/sh + +for l in libavahi-client libfreeipmi libusb libnetsnmp libneon +do + rp="" + for p in /usr/lib64 /lib64 /usr/lib /lib + do + if [ -f ${p}/${l}.so ] + then + fn=$( readlink ${p}/${l}.so ) + mfn=${fn%.so.*}.so + sfn=${fn##*.so.} + tfn=$mfn + while [ $tfn = ${l}.so ] || [ ! -f ${p}/${tfn} -a -n "$sfn" ] + do + tfn=${tfn}.${sfn%%.*} + sfn=${sfn#*.} + done + if [ -f ${p}/${tfn} ] + then + rp=${tfn} + else + rp=${fn} + fi + break + fi + done + echo "#define $( echo "$l" | tr '[a-z]-' '[A-Z]_')_PATH \"$rp\"" +done + +VINFO=$(sed -e '/version-info/!d' -e 's/#.*$//' -e 's/^.*-version-info//' -e 's/[[:space:]]//g' -e 's/\\//g' clients/Makefile) +echo "#define LIBUPSCLIENT_PATH \"libupsclient.so.$(( ${VINFO%%:*}-${VINFO##*:} ))\"" diff --git a/nut-2.6.3-tmpfiles.patch b/nut-2.6.3-tmpfiles.patch new file mode 100644 index 0000000..d1f09b4 --- /dev/null +++ b/nut-2.6.3-tmpfiles.patch @@ -0,0 +1,33 @@ +diff -up nut-2.8.0/scripts/systemd/nut-driver-enumerator.service.in.tmpfiles nut-2.8.0/scripts/systemd/nut-driver-enumerator.service.in +--- nut-2.8.0/scripts/systemd/nut-driver-enumerator.service.in.tmpfiles 2022-05-09 16:42:37.296229637 +0200 ++++ nut-2.8.0/scripts/systemd/nut-driver-enumerator.service.in 2022-05-09 16:42:51.139030657 +0200 +@@ -23,6 +23,7 @@ Type=oneshot + # don't want it to fail the unit (when it can't restart). + Environment=REPORT_RESTART_42=no + EnvironmentFile=-@CONFPATH@/nut.conf ++ExecStartPre=-/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/nut-common.conf + ExecStart=@NUT_LIBEXECDIR@/nut-driver-enumerator.sh + ExecReload=@NUT_LIBEXECDIR@/nut-driver-enumerator.sh + +diff -up nut-2.8.0/scripts/systemd/nut-driver@.service.in.tmpfiles nut-2.8.0/scripts/systemd/nut-driver@.service.in +--- nut-2.8.0/scripts/systemd/nut-driver@.service.in.tmpfiles 2022-05-09 16:41:00.952614514 +0200 ++++ nut-2.8.0/scripts/systemd/nut-driver@.service.in 2022-05-09 16:41:42.783013227 +0200 +@@ -40,6 +40,7 @@ PartOf=nut-driver.target + [Service] + EnvironmentFile=-@CONFPATH@/nut.conf + SyslogIdentifier=%N ++ExecStartPre=-/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/nut-common.conf + ExecStart=/bin/sh -c 'NUTDEV="`@NUT_LIBEXECDIR@/nut-driver-enumerator.sh --get-device-for-service %i`" && [ -n "$NUTDEV" ] || { echo "FATAL: Could not find a NUT device section for service unit %i" >&2 ; exit 1 ; } ; @SBINDIR@/upsdrvctl start "$NUTDEV"' + ExecStop=/bin/sh -c 'NUTDEV="`@NUT_LIBEXECDIR@/nut-driver-enumerator.sh --get-device-for-service %i`" && [ -n "$NUTDEV" ] || { echo "FATAL: Could not find a NUT device section for service unit %i" >&2 ; exit 1 ; } ; @SBINDIR@/upsdrvctl stop "$NUTDEV"' + # Restart really always, do not stop trying: +diff -up nut-2.8.0/scripts/systemd/nut-monitor.service.in.tmpfiles nut-2.8.0/scripts/systemd/nut-monitor.service.in +--- nut-2.8.0/scripts/systemd/nut-monitor.service.in.tmpfiles 2022-05-09 12:57:35.160646121 +0200 ++++ nut-2.8.0/scripts/systemd/nut-monitor.service.in 2022-05-09 16:40:18.289227772 +0200 +@@ -18,6 +18,7 @@ PartOf=nut.target + [Service] + EnvironmentFile=-@CONFPATH@/nut.conf + SyslogIdentifier=%N ++ExecStartPre=-/usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/nut-common.conf + ExecStart=@SBINDIR@/upsmon -F + ExecReload=@SBINDIR@/upsmon -c reload + PIDFile=@PIDPATH@/upsmon.pid diff --git a/nut-2.6.5-rmpidf.patch b/nut-2.6.5-rmpidf.patch new file mode 100644 index 0000000..40365b8 --- /dev/null +++ b/nut-2.6.5-rmpidf.patch @@ -0,0 +1,58 @@ +diff -up nut-2.8.2.1/clients/upsmon.c.rmpidf nut-2.8.2.1/clients/upsmon.c +--- nut-2.8.2.1/clients/upsmon.c.rmpidf 2024-07-03 12:18:04.788135176 +0200 ++++ nut-2.8.2.1/clients/upsmon.c 2024-07-03 12:19:33.164964473 +0200 +@@ -3309,6 +3309,7 @@ int main(int argc, char *argv[]) + upslogx(LOG_INFO, "Signal %d: exiting", exit_flag); + upsnotify(NOTIFY_STATE_STOPPING, "Signal %d: exiting", exit_flag); + upsmon_cleanup(); ++ cleanpid(prog); + + upsdebugx(1, "Finally exiting due to signal %d", exit_flag); + exit(EXIT_SUCCESS); +diff -up nut-2.8.2.1/common/common.c.rmpidf nut-2.8.2.1/common/common.c +--- nut-2.8.2.1/common/common.c.rmpidf 2024-07-03 12:14:56.000000000 +0200 ++++ nut-2.8.2.1/common/common.c 2024-07-03 12:18:04.788135176 +0200 +@@ -1338,6 +1338,20 @@ pid_t parsepid(const char *buf) + return pid; + } + ++/* remove pid file */ ++void cleanpid(const char *name) ++{ ++ char fn[SMALLBUF]; ++ ++ /* use full path if present, else build filename in PIDPATH */ ++ if (*name == '/') ++ snprintf(fn, sizeof(fn), "%s", name); ++ else ++ snprintf(fn, sizeof(fn), "%s/%s.pid", PIDPATH, name); ++ ++ unlink(fn); ++} ++ + /* open pidfn, get the pid, then send it sig + * returns negative codes for errors, or + * zero for a successfully sent signal +diff -up nut-2.8.2.1/include/common.h.rmpidf nut-2.8.2.1/include/common.h +--- nut-2.8.2.1/include/common.h.rmpidf 2024-07-03 12:14:56.000000000 +0200 ++++ nut-2.8.2.1/include/common.h 2024-07-03 12:18:04.788135176 +0200 +@@ -262,6 +262,9 @@ int checkprocname(pid_t pid, const char + /* write a pid file - is a full pathname *or* just the program name */ + void writepid(const char *name); + ++/* remove pid file */ ++void cleanpid(const char *name); ++ + /* parses string buffer into a pid_t if it passes + * a few sanity checks; returns -1 on error */ + pid_t parsepid(const char *buf); +diff -up nut-2.8.2.1/server/upsd.c.rmpidf nut-2.8.2.1/server/upsd.c +--- nut-2.8.2.1/server/upsd.c.rmpidf 2024-07-03 12:14:56.000000000 +0200 ++++ nut-2.8.2.1/server/upsd.c 2024-07-03 12:18:04.789135186 +0200 +@@ -2304,5 +2304,6 @@ int main(int argc, char **argv) + upsnotify(NOTIFY_STATE_STOPPING, "Signal %d: exiting", exit_flag); + + ssl_cleanup(); ++ if (*pidfn) cleanpid(pidfn); + return EXIT_SUCCESS; + } diff --git a/nut-2.8.0-piddir-owner.patch b/nut-2.8.0-piddir-owner.patch new file mode 100644 index 0000000..53e639d --- /dev/null +++ b/nut-2.8.0-piddir-owner.patch @@ -0,0 +1,50 @@ +diff -up nut-2.8.1/configure.ac.piddir-owner nut-2.8.1/configure.ac +--- nut-2.8.1/configure.ac.piddir-owner 2023-11-01 09:39:24.267596406 +0100 ++++ nut-2.8.1/configure.ac 2023-11-01 10:00:35.425987029 +0100 +@@ -4451,7 +4451,7 @@ AS_IF([test -n "$systemdtmpfilesdir"], + + # See also: https://github.com/networkupstools/nut/wiki/Technicalities:-Work-with-PID-and-state-file-paths#pidpath-altpidpath-statepath + # State file (e.g. upsd to driver pipes) and PID file location for NUT: +-d @STATEPATH@ 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - ++d @STATEPATH@ 0770 root @RUN_AS_GROUP@ - - + # Default PIPEFN and LOCKFN locations per upssched.conf: + d @STATEPATH@/upssched 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - + X @STATEPATH@ +@@ -4461,7 +4461,7 @@ EOF + [*/run|*/tmp|*/shm], [], dnl Do not intrude into system paths; TODO: add more if appropriate for some Linux distro + [cat >> "${TOP_BUILDDIR}"/scripts/systemd/nut-common-tmpfiles.conf.in << EOF + # Primarily used by upsmon and upslog, possibly running as root: +-d @PIDPATH@ 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - ++d @PIDPATH@ 0770 root @RUN_AS_GROUP@ - - + X @PIDPATH@ + EOF + ])]) +@@ -4469,14 +4469,14 @@ EOF + [cat >> "${TOP_BUILDDIR}"/scripts/systemd/nut-common-tmpfiles.conf.in << EOF + # Should be used as upsd and driver PID file location for NUT + # (if ALTPIDPATH differs from STATEPATH): +-d @ALTPIDPATH@ 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - ++d @ALTPIDPATH@ 0770 root @RUN_AS_GROUP@ - - + X @ALTPIDPATH@ + EOF]) + dnl Generally added to support some forks + AS_IF([test -n "$ALTSTATEPATH" && test "$STATEPATH" != "$ALTSTATEPATH" && test "$ALTSTATEPATH" != "$ALTPIDPATH" && test "$PIDPATH" != "$ALTSTATEPATH"], + [cat >> "${TOP_BUILDDIR}"/scripts/systemd/nut-common-tmpfiles.conf.in << EOF + # Some NUT variants also maintain an ALTSTATEPATH: +-d @ALTSTATEPATH@ 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - ++d @ALTSTATEPATH@ 0770 root @RUN_AS_GROUP@ - - + X @ALTSTATEPATH@ + EOF]) + ]) +diff -up nut-2.8.1/scripts/systemd/nut-common-tmpfiles.conf.in.piddir-owner nut-2.8.1/scripts/systemd/nut-common-tmpfiles.conf.in +--- nut-2.8.1/scripts/systemd/nut-common-tmpfiles.conf.in.piddir-owner 2023-10-31 23:05:03.000000000 +0100 ++++ nut-2.8.1/scripts/systemd/nut-common-tmpfiles.conf.in 2023-11-01 10:03:46.970845553 +0100 +@@ -5,7 +5,7 @@ + + # See also: https://github.com/networkupstools/nut/wiki/Technicalities:-Work-with-PID-and-state-file-paths#pidpath-altpidpath-statepath + # State file (e.g. upsd to driver pipes) and PID file location for NUT: +-d @STATEPATH@ 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - ++d @STATEPATH@ 0770 root @RUN_AS_GROUP@ - - + # Default PIPEFN and LOCKFN locations per upssched.conf: + d @STATEPATH@/upssched 0770 @RUN_AS_USER@ @RUN_AS_GROUP@ - - + X @STATEPATH@ diff --git a/nut-2.8.3-rhinoname.patch b/nut-2.8.3-rhinoname.patch new file mode 100644 index 0000000..71be46d --- /dev/null +++ b/nut-2.8.3-rhinoname.patch @@ -0,0 +1,23 @@ +diff -up nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am.rhinoname nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am +--- nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am.rhinoname 2025-08-14 11:08:48.763700333 +0200 ++++ nut-2.8.4-build/nut-2.8.4/drivers/Makefile.am 2025-08-14 11:29:43.803846801 +0200 +@@ -74,7 +74,7 @@ NUTSW_DRIVERLIST = $(NUTSW_DRIVERLIST_DU + SERIAL_DRIVERLIST = al175 bcmxcp belkin belkinunv bestfcom \ + bestfortress bestuferrups bestups etapro everups \ + gamatronic genericups isbmex liebert liebert-esp2 liebert-gxe masterguard metasys \ +- mge-utalk microdowell microsol-apc mge-shut nutdrv_hashx oneac optiups powercom powervar_cx_ser rhino \ ++ mge-utalk microdowell microsol-apc mge-shut nutdrv_hashx oneac optiups powercom powervar_cx_ser nutdrv_rhino \ + safenet nutdrv_siemens-sitop solis tripplite tripplitesu upscode2 victronups powerpanel \ + blazer_ser ivtscd apcsmart apcsmart-old riello_ser sms_ser bicker_ser ve-direct + if HAVE_LINUX_SERIAL_H +@@ -198,8 +198,8 @@ powerpanel_SOURCES = powerpanel.c powerp + powerpanel_LDADD = $(LDADD) -lm + powervar_cx_ser_SOURCES = powervar_cx_ser.c powervar_cx.c + powervar_cx_ser_CFLAGS = $(AM_CFLAGS) -DPVAR_SERIAL=1 +-rhino_SOURCES = rhino.c +-rhino_LDADD = $(LDADD) -lm ++nutdrv_rhino_SOURCES = rhino.c ++nutdrv_rhino_LDADD = $(LDADD) -lm + safenet_SOURCES = safenet.c + nutdrv_siemens_sitop_SOURCES = nutdrv_siemens_sitop.c + solis_SOURCES = solis.c diff --git a/nut-c99-strdup.patch b/nut-c99-strdup.patch new file mode 100644 index 0000000..90c83db --- /dev/null +++ b/nut-c99-strdup.patch @@ -0,0 +1,17 @@ +Fix strdup configure test: Remove a call to the undeclared free +function. + +Submitted upstream: + +diff --git a/configure.ac b/configure.ac +index 3aa26c24ebc99bb6..c93ccd1e494874d5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -294,7 +294,6 @@ AC_CACHE_CHECK([for strdup(s)], + char *t = "Test"; + char *s = strdup(t); + if (!s || !(s[0]=='T'&&s[1]=='e'&&s[2]=='s'&&s[3]=='t'&&s[4]=='\0') || s == t) res = 1; +-if (s) free (s); + if (res != 0) return res + /* autoconf adds ";return 0;" */ + ]])], diff --git a/nut.spec b/nut.spec new file mode 100644 index 0000000..dba51af --- /dev/null +++ b/nut.spec @@ -0,0 +1,860 @@ +%global _hardened_build 1 + +#TODO: split nut-client so it does not require python +%global nut_uid 57 +%global nut_gid 57 + +%global cgidir /var/www/nut-cgi-bin +%global piddir /run/nut +%global modeldir %{_libexecdir}/%{name} +# 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} +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 +Source4: libs.sh +Patch2: nut-2.8.0-piddir-owner.patch + +#quick fix. TODO: fix it properly +Patch9: nut-2.6.5-rmpidf.patch +Patch15: nut-c99-strdup.patch +Patch16: nut-2.8.3-rhinoname.patch + +Requires(post): coreutils systemd +Requires(preun): systemd +Requires(postun): coreutils systemd +Recommends: nut-xml +Requires: group(dialout) +Requires: group(tty) + +BuildRequires: asciidoc +BuildRequires: make +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: augeas-libs +BuildRequires: avahi-devel +BuildRequires: cppunit-devel +BuildRequires: dbus-glib-devel +BuildRequires: desktop-file-utils +BuildRequires: elfutils-devel +BuildRequires: fontconfig-devel +BuildRequires: freeipmi-devel +BuildRequires: freetype-devel +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: gd-devel +BuildRequires: jq +%if 0%{?fedora} < 39 +BuildRequires: libgpiod-devel +%endif +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libtool +BuildRequires: libtool-ltdl-devel +BuildRequires: libX11-devel +BuildRequires: libXpm-devel +BuildRequires: libmodbus-devel +BuildRequires: libi2c-devel +BuildRequires: neon-devel +BuildRequires: net-snmp-devel +BuildRequires: netpbm-devel +BuildRequires: nss-devel +BuildRequires: openssl-devel +BuildRequires: pkgconfig +%if %{with powerman} +BuildRequires: powerman-devel +%endif +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: systemd-devel +BuildRequires: systemd-rpm-macros + +%ifnarch s390 s390x +BuildRequires: libusb1-devel +%endif + +ExcludeArch: s390 s390x + +%global restart_flag %{piddir}/%{name}-restart-after-rpm-install + +%description +These programs are part of a developing project to monitor the assortment +of UPSes that are found out there in the field. Many models have serial +ports of some kind that allow some form of state checking. This +capability has been harnessed where possible to allow for safe shutdowns, +live status tracking on web pages, and more. + +%package client +Summary: Network UPS Tools client monitoring utilities +Requires(post): systemd +Requires(preun): systemd +Requires: group(dialout) +Requires: group(tty) + +%description client +This package includes the client utilities that are required to monitor a +ups that the client host has access to, but where the UPS is physically +attached to a different computer on the network. + +%package cgi +Summary: CGI utilities for the Network UPS Tools +Requires: %{name}-client = %{version}-%{release} webserver + +%description cgi +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} + +%description xml +This package adds the netxml-ups driver, that allows NUT to monitor a XML +capable UPS. + +%package devel +Summary: Development files for NUT Client +Requires: %{name}-client = %{version}-%{release} webserver openssl-devel + +%description devel +This package contains the development header files and libraries +necessary to develop NUT client applications. + +%prep +%setup -q +#patch -P 2 -p1 -b .piddir-owner +%patch -P 9 -p1 -b .rmpidf +#patch -P 15 -p1 +%patch -P 16 -p2 -b .rhinoname + +sed -i 's|LIBSSL_LDFLAGS|LIBSSL_LIBS|' lib/libupsclient-config.in +sed -i 's|LIBSSL_LDFLAGS|LIBSSL_LIBS|' lib/libupsclient.pc.in + +# workaround for multilib conflicts - caused by patch changing modification time of scripts +find . -mtime -1 -print0 | xargs -0 touch --reference %{SOURCE0} + +# fix python site packages check +sed -i 's|\(PYTHON3\?_SITE_PACKAGES=\)".*"|\1"%{python3_sitelib}"|' m4/nut_check_python.m4 + +# Create a sysusers.d config file +cat >nut.sysusers.conf <>include/config.h + +#remove rpath +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool +%make_build LDFLAGS="%{__global_ldflags}" + +%install +mkdir -p %{buildroot}%{modeldir} \ + %{buildroot}%{_sysconfdir}/udev/rules.d \ + %{buildroot}%{_sysconfdir}/ups \ + %{buildroot}%{piddir} \ + %{buildroot}%{_localstatedir}/lib/ups \ + %{buildroot}%{_libexecdir} + +%make_install + +#mv %{buildroot}%{_tmpfilesdir}/nut-common.tmpfiles %{buildroot}%{_tmpfilesdir}/nut-common.conf + +rm -rf %{buildroot}%{_prefix}/html +rm -f %{buildroot}%{_libdir}/*.la +rm -rf docs/man +rm -rf %{buildroot}%{_datadir}/nut/solaris-init +find docs/ -name 'Makefile*' -delete + +pushd conf; +%make_install +for file in %{buildroot}%{_sysconfdir}/ups/*.sample +do + mv $file %{buildroot}%{_sysconfdir}/ups/`basename $file .sample` +done +popd + +#fix collision with virtualbox +#mv %{buildroot}/%{_usr}/lib/udev/rules.d/52-nut-usbups.rules %{buildroot}/%{_usr}/lib/udev/rules.d/62-nut-usbups.rules +mv %{buildroot}/%{_usr}/lib/udev/rules.d/52-nut-ipmipsu.rules %{buildroot}/%{_usr}/lib/udev/rules.d/62-nut-ipmipsu.rules + +# fix encoding +for fe in ./docs/cables/powerware.txt +do + iconv -f iso-8859-1 -t utf-8 <$fe >$fe.new + touch -r $fe $fe.new + mv -f $fe.new $fe +done + +# rename rhino to nutdrv_rhino to prevent file conflict (rhbz#2367057) +mv %{buildroot}%{_mandir}/man8/rhino.8 %{buildroot}%{_mandir}/man8/nutdrv_rhino.8 + +# 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 + +# Setup permissions for pid file +touch %{buildroot}/%{piddir}/upsmon.pid +chmod 0644 %{buildroot}/%{piddir}/upsmon.pid + +install -m0644 -D nut.sysusers.conf %{buildroot}%{_sysusersdir}/nut.conf + +%pre +# do not let upsmon run during upgrade rhbz#916472 +# 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 || : +fi + + +%post +%systemd_post nut-driver-enumerator.path nut-driver-enumerator.service nut-driver.target nut-server.service nut.target + +%preun +%systemd_preun nut-driver-enumerator.path nut-driver-enumerator.service nut-driver.target nut-server.service nut.target + +%postun +%systemd_postun_with_restart nut-driver.target nut-server.service + + + +%post client +%systemd_post nut-monitor.service nut.target + +%preun client +%systemd_preun nut-monitor.service nut.target + +%postun client +%systemd_postun_with_restart nut-monitor.service + +%posttrans +# phase 2: start upsmon again +if [ -e %restart_flag ]; then + /bin/systemctl restart nut-monitor.service >/dev/null 2>&1 || : + rm -f %restart_flag +else + # maybe we did not stop it - if we reinstalled just nut-client + /bin/systemctl try-restart nut-monitor.service >/dev/null 2>&1 || : +fi + +%files +%license COPYING LICENSE-GPL2 LICENSE-GPL3 +%doc ChangeLog AUTHORS MAINTAINERS README docs INSTALL NEWS +%config(noreplace) %attr(640,root,nut) %{_sysconfdir}/ups/ups.conf +%config(noreplace) %attr(640,root,nut) %{_sysconfdir}/ups/upsd.conf +%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 +%exclude %{modeldir}/netxml-ups +%{_unitdir}/nut-driver-enumerator.path +%{_unitdir}/nut-driver-enumerator.service +%{_unitdir}/nut-driver-enumerator-daemon-activator.path +%{_unitdir}/nut-driver-enumerator-daemon-activator.service +%{_unitdir}/nut-driver-enumerator-daemon.service +%{_unitdir}/nut-driver@.service +%{_unitdir}/nut-driver.target +%{_unitdir}/nut-server.service +%{_unitdir}/nut.target +%{_presetdir}/nut-systemd.preset +%{_unitdir}/enphase-monitor@.service +%{_unitdir}/nut-logger.service +%{_unitdir}/nut-udev-settle.service +%{_sbindir}/upsd +%{_bindir}/nutconf +%{_bindir}/nut-scanner +%{_sbindir}/upsdrvctl +%{_sbindir}/upsdrvsvcctl +%{_libdir}/libnutscan.so.* +%{_libdir}/libnutconf.so.* +%{_libexecdir}/nut-driver-enumerator.sh +%{_libexecdir}/sockdebug +%{_libexecdir}/enphase-monitor +%{_datadir}/augeas/lenses/dist/nut* +%{_datadir}/augeas/lenses/dist/tests/test_nut.aug +%{_datadir}/%{name}/cmdvartab +%{_datadir}/%{name}/driver.list +%{_mandir}/man5/ups.conf.5.gz +%{_mandir}/man5/upsd.conf.5.gz +%{_mandir}/man5/upsd.users.5.gz + +%{_mandir}/man8/nutconf.8.gz + +%{_mandir}/man8/adelsystem_cbi.8.gz +%{_mandir}/man8/apc_modbus.8.gz + +%{_mandir}/man8/al175.8.gz +%{_mandir}/man8/apcsmart.8.gz +%{_mandir}/man8/apcsmart-old.8.gz +%{_mandir}/man8/apcupsd-ups.8.gz +%{_mandir}/man8/asem.8.gz +%{_mandir}/man8/bcmxcp.8* +%{_mandir}/man8/bcmxcp_usb.8.gz +%{_mandir}/man8/belkin.8.gz +%{_mandir}/man8/bestfcom.8.gz +%{_mandir}/man8/belkinunv.8.gz +%{_mandir}/man8/bestfortress.8.gz +%{_mandir}/man8/bestups.8.gz +%{_mandir}/man8/bestuferrups.8.gz +%{_mandir}/man8/bicker_ser.8.gz +%{_mandir}/man8/blazer_ser.8.gz +%{_mandir}/man8/blazer_usb.8.gz +%{_mandir}/man8/clone.8.gz +%{_mandir}/man8/clone-outlet.8.gz +%{_mandir}/man8/dummy-ups.8.gz +%{_mandir}/man8/everups.8.gz +%{_mandir}/man8/etapro.8.gz +%{_mandir}/man8/failover.8.gz +%{_mandir}/man8/gamatronic.8.gz +%{_mandir}/man8/generic_modbus.8.gz +%{_mandir}/man8/genericups.8.gz +%if 0%{?fedora} < 39 +%{_mandir}/man8/generic_gpio.8.gz +%endif +%{_mandir}/man8/hwmon_ina219.8.gz +%{_mandir}/man8/huawei-ups2000.8.gz +%{_mandir}/man8/isbmex.8.gz +%{_mandir}/man8/ivtscd.8.gz +%{_mandir}/man8/liebert.8.gz +%{_mandir}/man8/liebert-esp2.8.gz +%{_mandir}/man8/liebert-gxe.8.gz +%{_mandir}/man8/masterguard.8.gz +%{_mandir}/man8/metasys.8.gz +%{_mandir}/man8/microdowell.8.gz +%{_mandir}/man8/microsol-apc.8.gz +%{_mandir}/man8/mge-utalk.8.gz +%{_mandir}/man8/mge-shut.8.gz +%{_mandir}/man8/nhs_ser.8.gz +%{_mandir}/man8/nutupsdrv.8.gz +%{_mandir}/man8/nutdrv_atcl_usb.8.gz +%{_mandir}/man8/nutdrv_hashx.8.gz +%{_mandir}/man8/nutdrv_siemens_sitop.8.gz +%{_mandir}/man8/nut-driver-enumerator.8.gz +%{_mandir}/man8/nut-ipmipsu.8.gz +%{_mandir}/man8/nut-recorder.8.gz +%{_mandir}/man8/nut-scanner.8.gz +%{_mandir}/man8/nutdrv_qx.8.gz +%{_mandir}/man8/oneac.8.gz +%{_mandir}/man8/optiups.8.gz +%{_mandir}/man8/phoenixcontact_modbus.8.gz +%{_mandir}/man8/pijuice.8.gz +%{_mandir}/man8/powercom.8.gz +%if %{with powerman} +%{_mandir}/man8/powerman-pdu.8.gz +%endif +%{_mandir}/man8/powerpanel.8.gz +%{_mandir}/man8/powervar_cx_ser.8.gz +%{_mandir}/man8/powervar_cx_usb.8.gz +%{_mandir}/man8/nutdrv_rhino.8.gz +%{_mandir}/man8/richcomm_usb.8.gz +%{_mandir}/man8/riello_ser.8.gz +%{_mandir}/man8/riello_usb.8.gz +%{_mandir}/man8/safenet.8.gz +%{_mandir}/man8/sms_ser.8.gz +%{_mandir}/man8/snmp-ups.8.gz +%{_mandir}/man8/solis.8* +%{_mandir}/man8/sockdebug.8.gz +%{_mandir}/man8/socomec_jbus.8.gz +%{_mandir}/man8/tripplite.8.gz +%{_mandir}/man8/tripplite_usb.8.gz +%{_mandir}/man8/tripplitesu.8.gz +%{_mandir}/man8/upscode2.8* +%{_mandir}/man8/upsd.8.gz +%{_mandir}/man8/upsdrvctl.8.gz +%{_mandir}/man8/upsdrvsvcctl.8.gz +%{_mandir}/man8/usbhid-ups.8.gz +%{_mandir}/man8/victronups.8.gz +%{_mandir}/man8/ve-direct.8.gz +%{_sysusersdir}/nut.conf + +%files client +%license COPYING LICENSE-GPL2 LICENSE-GPL3 +%dir %{_sysconfdir}/ups +%config(noreplace) %attr(640,root,nut) %{_sysconfdir}/ups/nut.conf +%config(noreplace) %attr(640,root,nut) %{_sysconfdir}/ups/upsmon.conf +%config(noreplace) %attr(640,root,nut) %{_sysconfdir}/ups/upssched.conf +%{_tmpfilesdir}/nut-common-tmpfiles.conf +%dir %attr(750,nut,nut) %{_localstatedir}/lib/ups +# upsmon.pid is written as root, so root needs access for now +%dir %attr(770,root,dialout) %{piddir} +%attr(644,nut,nut) %verify(not size mtime md5) /run/%{name}/upsmon.pid +%{_bindir}/upsc +%{_bindir}/upscmd +%{_bindir}/upslog +%{_bindir}/upsrw +%{_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 +/lib/systemd/system-shutdown/nutshutdown +%{_libdir}/libupsclient.so.* +%{_libdir}/libnutclient.so.* +%{_libdir}/libnutclientstub.so.* +%{_mandir}/man5/nut.conf.5.gz +%{_mandir}/man5/upsmon.conf.5.gz +%{_mandir}/man5/upssched.conf.5.gz +%{_mandir}/man7/nut.7.gz +%{_mandir}/man8/upsc.8.gz +%{_mandir}/man8/upscmd.8.gz +%{_mandir}/man8/upslog.8.gz +%{_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 + +%files cgi +%config(noreplace) %attr(644,root,root) %{_sysconfdir}/ups/hosts.conf +%config(noreplace) %attr(600,nut,root) %{_sysconfdir}/ups/upsset.conf +%config(noreplace) %attr(644,root,root) %{_sysconfdir}/ups/upsstats.html +%config(noreplace) %attr(644,root,root) %{_sysconfdir}/ups/upsstats-single.html +%{cgidir}/ +%{_mandir}/man5/hosts.conf.5.gz +%{_mandir}/man5/upsstats.html.5.gz +%{_mandir}/man5/upsset.conf.5.gz +%{_mandir}/man8/upsimage.cgi.8.gz +%{_mandir}/man8/upsstats.cgi.8.gz +%{_mandir}/man8/upsset.cgi.8.gz + +%files xml +%{modeldir}/netxml-ups +%doc %{_mandir}/man8/netxml-ups.8.gz + +%files devel +%{_includedir}/* +%{_mandir}/man3/upscli* +%{_mandir}/man3/nutscan* +%{_mandir}/man3/nutclient* +%{_mandir}/man3/libnutclient* +%{_libdir}/libupsclient.so +%{_libdir}/libnutclient.so +%{_libdir}/libnutclientstub.so +%{_libdir}/libnutconf.so +%{_libdir}/libnutscan.so +%{_libdir}/pkgconfig/libupsclient.pc +%{_libdir}/pkgconfig/libnutclient.pc +%{_libdir}/pkgconfig/libnutconf.pc +%{_libdir}/pkgconfig/libnutclientstub.pc +%{_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) + +* Thu Jul 24 2025 Fedora Release Engineering - 2.8.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Mon Jun 02 2025 Python Maint - 2.8.3-3 +- Rebuilt for Python 3.14 + +* Wed May 21 2025 Michal Hlavinka - 2.8.3-2 +- rename rhino to nutdrv_rhino to prevent file conflict (rhbz#2367057) + +* Tue Apr 29 2025 Michal Hlavinka - 2.8.3-1 +- updated to 2.8.3 (#2352734) + +* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 2.8.2.1-5.1.git20240703pr2505 +- Add sysusers.d config file to allow rpm to create users/groups automatically + +* Wed Jan 29 2025 Michal Hlavinka - 2.8.2.1-4.1.git20240703pr2505 +- fix ftbfs, make it build with unified bin/sbin + +* Fri Jan 17 2025 Fedora Release Engineering - 2.8.2.1-3.1.git20240703pr2505 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Fri Nov 15 2024 Orion Poplawski - 2.8.2.1-2.1.git20240703pr2505 +- Add BR systemd-devel to enable systemd notification support + +* Thu Jul 18 2024 Fedora Release Engineering - 2.8.2.1-1.1.git20240703pr2505 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Wed Jul 03 2024 Michal Hlavinka - 2.8.2.1-0.1.git20240703pr2505 +- fix python FTBFS, uses git snapshot as of 20240703 with PR 2505 + +* Fri Jun 07 2024 Python Maint - 2.8.2-2 +- Rebuilt for Python 3.13 + +* Wed Apr 03 2024 Michal Hlavinka - 2.8.2-1 +- updated to 2.8.2(2272586) + +* Thu Jan 25 2024 Fedora Release Engineering - 2.8.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sun Jan 21 2024 Fedora Release Engineering - 2.8.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Thu Nov 30 2023 Orion Poplawski - 2.8.1-2 +- Re-add nut.target to nut-client (bz#2156504) + +* Wed Nov 01 2023 Michal Hlavinka - 2.8.1-1 +- updated to 2.8.1 (#2247337) + +* Tue Oct 10 2023 Michal Hlavinka - 2.8.0-14 +- spec cleanup, based on PR#14 by Orion Poplawski + +* Thu Jul 20 2023 Fedora Release Engineering - 2.8.0-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 13 2023 Python Maint - 2.8.0-12 +- Rebuilt for Python 3.12 + +* Wed Apr 26 2023 Michal Hlavinka - 2.8.0-11 +- update license tag format (SPDX migration) for https://fedoraproject.org/wiki/Changes/SPDX_Licenses_Phase_1 + +* Tue Feb 14 2023 Michal Hlavinka - 2.8.0-10 +- add nut-xml to nut recommends (#2151810) + +* Thu Jan 19 2023 Fedora Release Engineering - 2.8.0-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jan 04 2023 Michal Hlavinka - 2.8.0-8 +- move upslog to nut-client, some small spec file changes (#2156504) + +* Wed Nov 30 2022 Charles R. Anderson - 2.8.0-7 +- use piddir for specifying restart_flag location +- use piddir for specifying configure --with-statepath/pidpath/altpidpath +- add nut-2.8.0-piddir-owner.patch for upstream tmpfiles config creation to not append /nut and always use owner root +- update nut-2.6.3-tmpfiles.patch to use correct tmpfiles config file name +- remove unused downstream tmpfiles source and code + +* Sun Nov 27 2022 Florian Weimer - 2.8.0-6 +- Port configure script to C99 + +* Wed Aug 31 2022 Michal Hlavinka - 2.8.0-5 +- update pid path + +* Fri Jul 22 2022 Fedora Release Engineering - 2.8.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Mon Jun 13 2022 Python Maint - 2.8.0-3 +- Rebuilt for Python 3.11 + +* Tue Jun 07 2022 Michal Hlavinka - 2.8.0-2 +- drop unused solaris init script pulling unnecessary dependency + +* Mon May 09 2022 Michal Hlavinka - 2.8.0-1 +- updated to 2.8.0 + +* Thu Jan 20 2022 Fedora Release Engineering - 2.7.4-44 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Sep 23 2021 Miro Hrončok - 2.7.4-43 +- Don't own /usr/lib/python3.X/site-packages + +* Tue Sep 14 2021 Sahana Prasad - 2.7.4-42 +- Rebuilt with OpenSSL 3.0.0 + +* Thu Jul 22 2021 Fedora Release Engineering - 2.7.4-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jun 08 2021 Michal Hlavinka - 2.7.4-40 +- drop snmp-ups support for DES, as required net-snmp no longer supports it + +* Fri Jun 04 2021 Python Maint - 2.7.4-39 +- Rebuilt for Python 3.10 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 2.7.4-38 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Tue Jan 26 2021 Fedora Release Engineering - 2.7.4-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Sep 15 2020 Jeff Law - 2.7.4-36 +- Force C++14 as this code is not C++17 ready + +* Wed Sep 02 2020 Josef Ridky - 2.7.4-35 +- Resolves: #1865077 - FTBFS in Fedora 33 +- Rebuilt for new release of net-snmp + +* Sat Aug 01 2020 Fedora Release Engineering - 2.7.4-34 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 2.7.4-33 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 02 2020 Michal Hlavinka - 2.7.4-32 +- nut user needs tty group for wall (#1774591) + +* Tue Jun 02 2020 Michal Hlavinka - 2.7.4-31 +- update tmpfiles nut run directory + +* Tue May 26 2020 Orion Poplawski - 2.7.4-30 +- Drop old udev requires/scriptlet + +* Tue May 26 2020 Orion Poplawski - 2.7.4-29 +- Add upstream patch for OpenSSL 1.1.0 support, enable for Fedora >= 33 + +* Tue May 26 2020 Miro Hrončok - 2.7.4-28 +- Rebuilt for Python 3.9 + +* Wed Jan 29 2020 Fedora Release Engineering - 2.7.4-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Oct 04 2019 Michal Hlavinka - 2.7.4-26 +- drop pygtk2 requirements + +* Thu Oct 03 2019 Michal Hlavinka - 2.7.4-25 +- drop python 2 requirements including nut-monitor app + +* Thu Jul 25 2019 Fedora Release Engineering - 2.7.4-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Mon Mar 25 2019 Michal Hlavinka - 2.7.4-23 +- add missing requirements for nut monitor +- fix file descriptor leak for notifycmd + +* Fri Feb 01 2019 Fedora Release Engineering - 2.7.4-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Tue Oct 16 2018 Orion Poplawski - 2.7.4-21 +- Cleanup and modernize spec +- Fix ownership/permissions of /var/run/nut (bug #1584330, #1580082) +- Fix python shbangs + +* Sun Oct 14 2018 Peter Robinson 2.7.4-20 +- Updates dependencies, modernise spec, use %%license +- Python build fixes + +* Tue Jul 24 2018 Adam Williamson - 2.7.4-19 +- Rebuild for new net-snmp + +* Fri Jul 13 2018 Fedora Release Engineering - 2.7.4-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Apr 17 2018 Xavier Bachelot - 2.7.4-17 +- Remove unrecognized configure option --without-hal +- Explicitely disable tcpwrapper support +- Remove unneeded CRLF EOL fix +- Add BR: cppunit-devel + +* Wed Mar 07 2018 Michal Hlavinka - 2.7.4-16 +- add gcc buildrequire + +* Wed Feb 14 2018 Iryna Shcherbina - 2.7.4-15 +- Update Python 2 dependency declarations to new packaging standards + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Thu Feb 08 2018 Fedora Release Engineering - 2.7.4-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Nov 07 2017 Igor Gnatenko - 2.7.4-13 +- Remove old crufty coreutils requires + +* Wed Aug 30 2017 Michal Hlavinka - 2.7.4-12 +- rebuild for freeipmi update + +* Thu Aug 03 2017 Fedora Release Engineering - 2.7.4-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 2.7.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 22 2017 Michal Hlavinka - 2.7.4-9 +- enable nss crypto (#1463071) + +* Wed May 24 2017 Michal Hlavinka - 2.7.4-8 +- fix location of tmpfiles.d in service files (#1399602) + +* Sat Feb 11 2017 Fedora Release Engineering - 2.7.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 01 2017 Sandro Mani - 2.7.4-6 +- Rebuild (libwebp) + +* Fri Nov 11 2016 Michal Hlavinka - 2.7.4-5 +- use %%_tmpfilesdir macro (#1394009) + +* Thu Sep 15 2016 Till Maas - 2.7.4-4 +- Disable powerman support, powerman was retired on Fedora + +* Thu Aug 11 2016 Michal Hlavinka - 2.7.4-3 +- make sure tmpfiles creation is executped before ups driver (#1365904,#1349362) + +* Tue Jul 19 2016 Fedora Release Engineering - 2.7.4-2 +- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages + +* Sat Mar 12 2016 Michal Hlavinka - 2.7.4-1 +- nut updated to 2.7.4 + +* Thu Feb 04 2016 Fedora Release Engineering - 2.7.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Sat Dec 05 2015 Kalev Lember - 2.7.3-6 +- Rebuilt for libfreeipmi soname bump + +* Tue Dec 1 2015 Tom Callaway - 2.7.3-5 +- rebuild for libvpx 1.5.0 + +* Wed Jun 17 2015 Fedora Release Engineering - 2.7.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 2.7.3-3 +- Rebuilt for GCC 5 C++11 ABI change + +* Tue Apr 28 2015 Michal Hlavinka - 2.7.3-2 +- start nut driver before the daemon + +* Thu Apr 23 2015 Michal Hlavinka - 2.7.3-1 +- nut updated to 2.7.3 + +* Mon Apr 6 2015 Tom Callaway - 2.7.2-4 +- rebuild against libvpx 1.4.0 + +* Sun Aug 17 2014 Fedora Release Engineering - 2.7.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2.7.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Apr 22 2014 Michal Hlavinka - 2.7.2-1 +- nut updated to 2.7.2 + +* Thu Apr 17 2014 Michal Hlavinka - 2.7.1-4 +- fix multilib issue (#831429) + +* Thu Mar 06 2014 Michal Hlavinka - 2.7.1-3 +- fix path of nut-driver executable (#1072076) +- fix location of udev rules + +* Thu Mar 06 2014 Michal Hlavinka - 2.7.1-2 +- fix undefined references in libupsclient (#1071919) + +* Thu Feb 27 2014 Michal Hlavinka - 2.7.1-1 +- nut updated to 2.7.1 + +* Tue Sep 24 2013 Michal Hlavinka - 2.6.5-16 +- rebuilt with updated freeipmi (1.3.2) + +* Tue Sep 03 2013 Michal Hlavinka - 2.6.5-15 +- rebuilt with updated freeipmi + +* Sat Aug 03 2013 Fedora Release Engineering - 2.6.5-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jun 11 2013 Remi Collet - 2.6.5-13 +- rebuild for new GD 2.1.0 + +* Mon Apr 22 2013 Michal Hlavinka - 2.6.5-12 +- do not let upsmon run during update (#916472) +- make binaries hardened (#955157) + +* Thu Feb 28 2013 Michal Hlavinka - 2.6.5-11 +- clean pid file on exit (#916468) + +* Thu Feb 14 2013 Fedora Release Engineering - 2.6.5-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Jan 21 2013 Adam Tkac - 2.6.5-9 +- rebuild due to "jpeg8-ABI" feature drop + +* Mon Jan 07 2013 Michal Hlavinka - 2.6.5-8 +- do not traceback when ups is not reachable + diff --git a/sources b/sources new file mode 100644 index 0000000..5f00a02 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (nut-2.8.4.tar.gz) = 0d87c0006608f92ae54f8a500f93d9a81eac1d9abf57f32e7718dd72f265b8293a0b6cdba04c802b81eaf8907b52669c36b47b6875a4377f9752845ac6c5e8fa