diff --git a/harden_nut-driver.service.patch b/harden_nut-driver.service.patch index 3665cbf..51fb645 100644 --- a/harden_nut-driver.service.patch +++ b/harden_nut-driver.service.patch @@ -1,9 +1,9 @@ Index: nut-2.7.4/scripts/systemd/nut-driver.service.in =================================================================== ---- nut-2.7.4.orig/scripts/systemd/nut-driver.service.in -+++ nut-2.7.4/scripts/systemd/nut-driver.service.in -@@ -4,6 +4,17 @@ After=local-fs.target network.target - StopWhenUnneeded=yes +--- a/scripts/systemd/nut-driver@.service.in ++++ b/scripts/systemd/nut-driver@.service.in +@@ -38,6 +38,17 @@ + # Finally note that "nut-driver-enumerator.service" should take care of this. [Service] +# added automatically, for details please see @@ -17,6 +17,6 @@ Index: nut-2.7.4/scripts/systemd/nut-driver.service.in +ProtectControlGroups=true +RestrictRealtime=true +# end of automatic additions - ExecStart=@SBINDIR@/upsdrvctl start - ExecStop=@SBINDIR@/upsdrvctl stop - Type=forking + EnvironmentFile=-@CONFPATH@/nut.conf + SyslogIdentifier=%N + 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"' diff --git a/harden_nut-monitor.service.patch b/harden_nut-monitor.service.patch index c998af2..d6ce68a 100644 --- a/harden_nut-monitor.service.patch +++ b/harden_nut-monitor.service.patch @@ -1,9 +1,9 @@ Index: nut-2.7.4/scripts/systemd/nut-monitor.service.in =================================================================== ---- nut-2.7.4.orig/scripts/systemd/nut-monitor.service.in -+++ nut-2.7.4/scripts/systemd/nut-monitor.service.in -@@ -3,6 +3,17 @@ Description=Network UPS Tools - power de - After=local-fs.target network.target nut-server.service +--- a/scripts/systemd/nut-monitor.service.in ++++ b/scripts/systemd/nut-monitor.service.in +@@ -3,6 +3,17 @@ + PartOf=nut.target [Service] +# added automatically, for details please see @@ -17,6 +17,6 @@ Index: nut-2.7.4/scripts/systemd/nut-monitor.service.in +ProtectControlGroups=true +RestrictRealtime=true +# end of automatic additions - ExecStart=@SBINDIR@/upsmon - PIDFile=@PIDPATH@/upsmon.pid - Type=forking + EnvironmentFile=-@CONFPATH@/nut.conf + SyslogIdentifier=%N + ExecStart=@SBINDIR@/upsmon -F diff --git a/harden_nut-server.service.patch b/harden_nut-server.service.patch index d5a7eea..aaaf73e 100644 --- a/harden_nut-server.service.patch +++ b/harden_nut-server.service.patch @@ -2,8 +2,8 @@ Index: nut-2.7.4/scripts/systemd/nut-server.service.in =================================================================== --- nut-2.7.4.orig/scripts/systemd/nut-server.service.in +++ nut-2.7.4/scripts/systemd/nut-server.service.in -@@ -8,6 +8,17 @@ Wants=nut-driver.service - Before=nut-monitor.service +@@ -18,6 +18,17 @@ + PartOf=nut.target [Service] +# added automatically, for details please see @@ -17,6 +17,6 @@ Index: nut-2.7.4/scripts/systemd/nut-server.service.in +ProtectControlGroups=true +RestrictRealtime=true +# end of automatic additions - ExecStart=@SBINDIR@/upsd - Type=forking - + EnvironmentFile=-@CONFPATH@/nut.conf + SyslogIdentifier=%N + # Note: foreground mode by default skips writing a PID file (and diff --git a/nut-2.7.4.tar.gz b/nut-2.7.4.tar.gz deleted file mode 100644 index c9a4535..0000000 --- a/nut-2.7.4.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:980e82918c52d364605c0703a5dcf01f74ad2ef06e3d365949e43b7d406d25a7 -size 2509831 diff --git a/nut-2.7.4.tar.gz.sig b/nut-2.7.4.tar.gz.sig deleted file mode 100644 index 508ca19..0000000 Binary files a/nut-2.7.4.tar.gz.sig and /dev/null differ diff --git a/nut-2.8.0.tar.gz b/nut-2.8.0.tar.gz new file mode 100644 index 0000000..e65c4ad --- /dev/null +++ b/nut-2.8.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c3e5a708da797b7c70b653d37b1206a000fcb503b85519fe4cdf6353f792bfe5 +size 3287640 diff --git a/nut-2.8.0.tar.gz.sha256 b/nut-2.8.0.tar.gz.sha256 new file mode 100644 index 0000000..7d7892d --- /dev/null +++ b/nut-2.8.0.tar.gz.sha256 @@ -0,0 +1 @@ +c3e5a708da797b7c70b653d37b1206a000fcb503b85519fe4cdf6353f792bfe5 nut-2.8.0.tar.gz diff --git a/nut-Solaris-init-files.patch b/nut-Solaris-init-files.patch new file mode 100644 index 0000000..596bcec --- /dev/null +++ b/nut-Solaris-init-files.patch @@ -0,0 +1,156 @@ +From 05ccf412f9212b8206ea33a56e5dde2e2a8016b8 Mon Sep 17 00:00:00 2001 +From: Jim Klimov +Date: Sun, 14 Aug 2022 22:03:57 +0200 +Subject: [PATCH] configure.ac, scripts/Solaris/Makefile.am: introduce + WITH_SOLARIS_INIT and depend WITH_SOLARIS_SMF on whether we want packaging + for Solaris/illumos [#1554] + +--- + configure.ac | 104 ++++++++++++++++++++++++++---------- + scripts/Solaris/Makefile.am | 17 +----- + 2 files changed, 79 insertions(+), 42 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 065fcd76f1..d9b3859c42 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2090,34 +2090,8 @@ else + fi + AM_CONDITIONAL(WITH_PKG_CONFIG, test -n "${pkgconfigdir}") + +-AC_MSG_CHECKING(whether to install Solaris SMF files) +-solarissmf="auto" +-AC_ARG_WITH([solaris-smf], +- AS_HELP_STRING([--with-solaris-smf=(yes|auto|no)], [Enable installation of NUT scripts and manifests for Solaris Service Management Framework (auto)]), +-[ +- case "${withval}" in +- auto|"") +- solarissmf="auto" +- ;; +- yes|no) +- solarissmf="${withval}" +- ;; +- *) +- AC_MSG_ERROR([Unexpected argument for --with-solaris-smf=${withval}]) +- ;; +- esac +-], []) +- +-if test x"$solarissmf" = xauto ; then +- if test -x /usr/sbin/svcadm && test -x /usr/sbin/svccfg && test -x /usr/bin/svcs ; then +- solarissmf="yes" +- else +- solarissmf="no" +- fi +-fi +-AC_MSG_RESULT([${solarissmf}]) +-AM_CONDITIONAL(WITH_SOLARIS_SMF, test x"$solarissmf" = x"yes") + ++dnl Options for Solaris/illumos `make install` and `make package` + AC_MSG_CHECKING(whether to make Solaris SVR4 packages) + solarispkg_svr4="auto" + AC_ARG_WITH([solaris-pkg-svr4], +@@ -2146,6 +2120,7 @@ fi + AC_MSG_RESULT([${solarispkg_svr4}]) + AM_CONDITIONAL(WITH_SOLARIS_PKG_SVR4, test x"$solarispkg_svr4" = x"yes") + ++ + AC_MSG_CHECKING(whether to make Solaris IPS packages) + solarispkg_ips="auto" + AC_ARG_WITH([solaris-pkg-ips], +@@ -2174,6 +2149,81 @@ fi + AC_MSG_RESULT([${solarispkg_ips}]) + AM_CONDITIONAL(WITH_SOLARIS_PKG_IPS, test x"$solarispkg_ips" = x"yes") + ++ ++dnl NOTE: Be sure to customize e.g. --datarootdir=/usr/share/nut to install ++dnl these scripts not into default location as e.g. /usr/share/solaris-smf ++AC_MSG_CHECKING(whether to install Solaris SMF files) ++solarissmf="auto" ++AC_ARG_WITH([solaris-smf], ++ AS_HELP_STRING([--with-solaris-smf=(yes|auto|no)], [Enable installation of NUT scripts and manifests for Solaris Service Management Framework (auto)]), ++[ ++ case "${withval}" in ++ auto|"") ++ solarissmf="auto" ++ ;; ++ yes|no) ++ solarissmf="${withval}" ++ ;; ++ *) ++ AC_MSG_ERROR([Unexpected argument for --with-solaris-smf=${withval}]) ++ ;; ++ esac ++], []) ++ ++if test x"$solarissmf" = xauto ; then ++ if test -x /usr/sbin/svcadm && test -x /usr/sbin/svccfg && test -x /usr/bin/svcs ; then ++ solarissmf="yes" ++ else ++ case "${solarispkg_ips}${solarispkg_svr4}" in ++ *yes*) solarisinit="yes" ;; dnl Want to install so we can generally package ++ *) solarissmf="no" ;; dnl Target not solarish ++ esac ++ fi ++fi ++AC_MSG_RESULT([${solarissmf}]) ++AM_CONDITIONAL(WITH_SOLARIS_SMF, test x"$solarissmf" = x"yes") ++ ++ ++AC_MSG_CHECKING(whether to install Solaris SVR4 (legacy) init-script files) ++solarisinit="auto" ++AC_ARG_WITH([solaris-init], ++ AS_HELP_STRING([--with-solaris-init=(yes|auto|no)], [Enable installation of NUT legacy init-scripts for Solaris/illumos (auto)]), ++[ ++ case "${withval}" in ++ auto|"") ++ solarisinit="auto" ++ ;; ++ yes|no) ++ solarisinit="${withval}" ++ ;; ++ *) ++ AC_MSG_ERROR([Unexpected argument for --with-solaris-init=${withval}]) ++ ;; ++ esac ++], []) ++ ++if test x"$solarisinit" = xauto ; then ++ dnl Depends on usability of SMF or making for packaging ++ case "${solarispkg_ips}${solarispkg_svr4}" in ++ *yes*) solarisinit="yes" ;; dnl Want to install so we can generally package ++ *) ++ case ${target_os} in ++ solaris*|sunos*|SunOS*|illumos*) ++ if test "$solarissmf" = x"yes" ; then ++ dnl no need on modern OSes ++ solarisinit="no" ++ else ++ solarisinit="yes" ++ fi ++ ;; ++ *) solarisinit="no" ;; dnl Some other OS ++ esac ++ ;; ++ esac ++fi ++AC_MSG_RESULT([${solarisinit}]) ++AM_CONDITIONAL(WITH_SOLARIS_INIT, test x"$solarisinit" = x"yes") ++ + dnl Note: Currently there is no reliable automatic detection - + dnl users have to ask they want systemd units installed, or + dnl risk auto-detection like seen below. +diff --git a/scripts/Solaris/Makefile.am b/scripts/Solaris/Makefile.am +--- a/scripts/Solaris/Makefile.am 2022-04-23 13:56:07.000000000 +0200 ++++ b/scripts/Solaris/Makefile.am 2023-01-25 19:46:38.925491136 +0100 +@@ -29,8 +29,10 @@ sbin_SCRIPTS = ../upsdrvsvcctl/upsdrvsvc + SOLARIS_CHECK_TARGETS += check-local-solaris-smf + endif + ++if WITH_SOLARIS_INIT + solarisinitscriptdir = @datadir@/solaris-init + solarisinitscript_SCRIPTS = nut ++endif + + SOLARIS_PACKAGE_TARGETS = + diff --git a/nut-doc-cables.patch b/nut-doc-cables.patch deleted file mode 100644 index 134fd46..0000000 --- a/nut-doc-cables.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: nut-2.7.4/docs/Makefile.am -=================================================================== ---- nut-2.7.4.orig/docs/Makefile.am -+++ nut-2.7.4/docs/Makefile.am -@@ -46,11 +46,13 @@ EXTRA_DIST = $(ALL_TXT_SRC) $(SHARED_DEP - ASCIIDOC_HTML_SINGLE = user-manual.html \ - developer-guide.html \ - packager-guide.html \ -+ cables.html \ - FAQ.html - - ASCIIDOC_HTML_CHUNKED = user-manual.chunked \ - developer-guide.chunked \ - packager-guide.chunked \ -+ cables.html \ - FAQ.html - - ASCIIDOC_PDF = user-manual.pdf \ diff --git a/nut-doc-fixed-date.patch b/nut-doc-fixed-date.patch index ec73fad..59f1ab6 100644 --- a/nut-doc-fixed-date.patch +++ b/nut-doc-fixed-date.patch @@ -2,29 +2,29 @@ Index: nut-2.7.4/docs/Makefile.am =================================================================== --- nut-2.7.4.orig/docs/Makefile.am +++ nut-2.7.4/docs/Makefile.am -@@ -92,8 +92,8 @@ packager-guide.html packager-guide.chunk - # $ ASCIIDOC_VERBOSE=-v make - A2X_COMMON_OPTS = $(ASCIIDOC_VERBOSE) --attribute icons \ - --xsltproc-opts "--nonet" \ -- --xsltproc-opts "--stringparam nut.localdate \"`TZ=UTC date +%Y-%m-%d`\"" \ -- --xsltproc-opts "--stringparam nut.localtime \"`TZ=UTC date +%H:%M:%S`\"" \ +@@ -165,8 +165,8 @@ packager-guide.html packager-guide.chunk + A2X_COMMON_OPTS = $(ASCIIDOC_VERBOSE) \ + --attribute=icons \ + --xsltproc-opts="--nonet" \ +- --xsltproc-opts="--stringparam nut.localdate \"`TZ=UTC date +%Y-%m-%d`\"" \ +- --xsltproc-opts="--stringparam nut.localtime \"`TZ=UTC date +%H:%M:%S`\"" \ + --xsltproc-opts "--stringparam nut.localdate \"`TZ=UTC date +%Y-%m-%d -r $(top_srcdir)/ChangeLog`\"" \ + --xsltproc-opts "--stringparam nut.localtime \"`TZ=UTC date +%H:%M:%S -r $(top_srcdir)/ChangeLog`\"" \ - --xsltproc-opts "--stringparam nut.nutversion \"@PACKAGE_VERSION@\"" \ - --attribute iconsdir=$(srcdir)/images \ + --xsltproc-opts="--stringparam nut.nutversion \"@PACKAGE_VERSION@\"" \ + --attribute=iconsdir="$(srcdir)/images" \ --attribute=badges \ Index: nut-2.7.4/docs/man/Makefile.am =================================================================== --- nut-2.7.4.orig/docs/man/Makefile.am +++ nut-2.7.4/docs/man/Makefile.am -@@ -591,8 +591,8 @@ if HAVE_ASCIIDOC - - .txt.html: - $(ASCIIDOC) --backend=xhtml11 \ -- --attribute localdate=`TZ=UTC date +%Y-%m-%d` \ -- --attribute localtime=`TZ=UTC date +%H:%M:%S` \ +@@ -924,8 +924,8 @@ if HAVE_ASCIIDOC + echo " DOC-MAN-HTML Generating $@"; \ + $(DOCBUILD_BEGIN) ; RES=0; \ + $(ASCIIDOC) --backend=xhtml11 $${A2X_VERBOSE} \ +- --attribute localdate="`TZ=UTC date +%Y-%m-%d`" \ +- --attribute localtime="`TZ=UTC date +%H:%M:%S`" \ + --attribute localdate=`TZ=UTC date +%Y-%m-%d -r $(top_srcdir)/ChangeLog` \ + --attribute localtime=`TZ=UTC date +%H:%M:%S -r $(top_srcdir)/ChangeLog` \ --attribute nutversion="@PACKAGE_VERSION@" \ - -o $@ $< - + --attribute srcdir="$(abs_srcdir)" \ + --attribute builddir="$(abs_builddir)" \ diff --git a/nut-notifyflag.patch b/nut-notifyflag.patch index 03de6e0..c1cfd84 100644 --- a/nut-notifyflag.patch +++ b/nut-notifyflag.patch @@ -1,6 +1,6 @@ ---- conf/upsmon.conf.sample.in -+++ conf/upsmon.conf.sample.in -@@ -243,6 +243,15 @@ +--- a/conf/upsmon.conf.sample.in ++++ b/conf/upsmon.conf.sample.in +@@ -312,6 +312,15 @@ # IGNORE - Don't do anything # # If you use IGNORE, don't use any other flags on the same line. diff --git a/nut-preconfig.patch b/nut-preconfig.patch index 6a6f846..e7490e3 100644 --- a/nut-preconfig.patch +++ b/nut-preconfig.patch @@ -1,14 +1,14 @@ ---- conf/hosts.conf.sample -+++ conf/hosts.conf.sample +--- a/conf/hosts.conf.sample ++++ b/conf/hosts.conf.sample @@ -27,3 +27,5 @@ # MONITOR myups@localhost "Local UPS" # MONITOR su2200@10.64.1.1 "Finance department" # MONITOR matrix@shs-server.example.edu "Sierra High School data room #1" + +MONITOR myups@localhost "Local UPS" ---- conf/ups.conf.sample -+++ conf/ups.conf.sample -@@ -102,3 +102,8 @@ +--- a/conf/ups.conf.sample ++++ b/conf/ups.conf.sample +@@ -200,3 +200,8 @@ # # To find out if your driver supports any extra settings, start it with # the -h option and/or read the driver's documentation. @@ -17,12 +17,12 @@ + driver = undefined + port = /dev/undefined + desc = "Local UPS" ---- conf/upsd.users.sample -+++ conf/upsd.users.sample -@@ -62,3 +62,11 @@ - # The matching MONITOR line in your upsmon.conf would look like this: +--- a/conf/upsd.users.sample ++++ b/conf/upsd.users.sample +@@ -73,3 +73,11 @@ # - # MONITOR myups@localhost 1 upsmon pass master (or slave) + # See comments in the upsmon.conf(.sample) file for details about this + # keyword and the difference of NUT secondary and primary systems. + +[upsmaster] + password = @UPSD_INITIAL_MASTER_PASSWORD@ @@ -31,11 +31,11 @@ +[upsslave] + password = @UPSD_INITIAL_SLAVE_PASSWORD@ + upsmon slave ---- conf/upsmon.conf.sample.in -+++ conf/upsmon.conf.sample.in -@@ -84,6 +84,8 @@ - # MONITOR su700@server.example.com 1 upsmon secretpass slave - # MONITOR myups@localhost 1 upsmon pass master (or slave) +--- a/conf/upsmon.conf.sample.in ++++ b/conf/upsmon.conf.sample.in +@@ -116,6 +116,8 @@ + # MONITOR su700@server.example.com 1 upsmon secretpass secondary + # MONITOR myups@localhost 1 upsmon pass primary # (or secondary) +MONITOR myups@localhost 1 upsmaster @UPSD_INITIAL_MASTER_PASSWORD@ master + diff --git a/nut-systemd-dirs.patch b/nut-systemd-dirs.patch deleted file mode 100644 index db4a68e..0000000 --- a/nut-systemd-dirs.patch +++ /dev/null @@ -1,18 +0,0 @@ -Index: nut-2.7.3/configure.ac -=================================================================== ---- nut-2.7.3.orig/configure.ac -+++ nut-2.7.3/configure.ac -@@ -1065,7 +1065,12 @@ dnl Override installation directory, wit - dnl prefix. This is needed for 'distcheck*' targets, otherwise - dnl files will try to get intalled to the actual system directories - if test -n "${systemdsystemunitdir}"; then -- systemdsystemshutdowndir="${libdir}/systemd/system-shutdown" -+ systemdutildir=`$PKG_CONFIG --variable=systemdutildir systemd` -+ if test -n "${systemdutildir}"; then -+ systemdsystemshutdowndir="${systemdutildir}/system-shutdown" -+ else -+ systemdsystemshutdowndir="${systemdsystemunitdir}/system-shutdown" -+ fi - AC_MSG_RESULT(using ${systemdsystemunitdir}) - else - AC_MSG_RESULT(no) diff --git a/nut-upssched.patch b/nut-upssched.patch deleted file mode 100644 index fd4337e..0000000 --- a/nut-upssched.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/clients/upssched.c b/clients/upssched.c -index 97b3ed42..3fdf118e 100644 ---- a/clients/upssched.c -+++ b/clients/upssched.c -@@ -794,7 +794,7 @@ static void parse_at(const char *ntype, const char *un, const char *cmd, - } - - if (!strcmp(cmd, "EXECUTE")) { -- if (ca1 == '\0') { -+ if (*ca1 == '\0') { - upslogx(LOG_ERR, "Empty EXECUTE command argument"); - return; - } diff --git a/nut.changes b/nut.changes index 3baf3f4..6dc2e9c 100644 --- a/nut.changes +++ b/nut.changes @@ -1,3 +1,68 @@ +------------------------------------------------------------------- +Mon Jan 23 22:09:31 UTC 2023 - Arjen de Korte + +- Update to version 2.8.0 + For more see NEWS and UPGRADING in /usr/share/doc/packages/nut. + * NUT now supports more i2c and modbus devices, as well as libusb-1.0 + support as an alternative to earlier libusb-0.1 (so new + dependency-based categories of packages for drivers may be due). + * NUT Python modules and scripts (e.g. NUT-Monitor variants) should + work with python-2.7 and with python-3.x, so covering historic + distro releases as well as new ones (and so your distro can deliver + one or both, probably in several packages with different + dependencies in the latter case). + * NUT provides revised reference systemd and SMF service unit + definitions, including support of drivers wrapped into individual + service instances with varying dependencies based on different + media required (networked stack, USB stack, etc.), and many daemons + include -F option for running "in foreground" to avoid extra + forking after one already done by a service framework - you may + want to use those in your packaged deliverables. + * NUT newly provides the "nut-driver-enumerator" script and service, + which allows it to follow edition of ups.conf and dynamically + define+(re)start and stop+undefine service instances for drivers - + there are several ways it can be integrated for different + use-cases. + * Yhere are several new configuration keywords and CLI options - so + while new NUT builds should work with old configs and scripts, the + opposite is not necessarily true (old binaries may reject + configurations taking advantage of new features). + * There are several new protocol keywords - but old and new NUT + daemons (data server and clients) should be able to communicate + both ways. + * It is assumed that API/ABI changes may require third-party NUT + clients (library consumers of libnutclient, libupsclient, + libnutscan... -- their version info was bumped accordingly) to get + rebuilt, in order to work with the new NUT release in a stable + fashion. + * The dummy-ups driver used in automated testing now processes *.dev + filename patterns once and does not loop, like it still does for + *.seq and other files (by default). + * USB code is now more strict about logical minimum/maximum ranges + for data reported from devices, and some devices were already found + to make mistakes - so there is also a mechanism for turning a blind + eye to known issues and fix-up such report descriptors to produce + intended sane values. + * New documentation page docs/config-prereqs.txt highlights packaged + dependencies installable on a large range of platforms to build as + much of NUT as possible (incidentally, ones NUT CI farm uses to + test every iteration). +- Remove upstreamed and obsolete patches: + * nut-doc-cables.patch + * nut-systemd-dirs.patch + * nut-upssched.patch + * nutscanner-ftbfs.patch + * openssl-1_1.patch + * reproducible.patch + * use-pkg-config-gdlib.diff +- Source is no longer GPG signed, so keyring is not needed anymore + * nut.keyring +- Unused additional source file removed (was added as a source, but + not packaged) + * nut.sleep +- Don't install Solaris init files univited (PR# + * nut-Solaris-init-files.patch + ------------------------------------------------------------------- Wed May 11 23:01:34 UTC 2022 - Stanislav Brabec diff --git a/nut.keyring b/nut.keyring deleted file mode 100644 index 65b099b..0000000 --- a/nut.keyring +++ /dev/null @@ -1,135 +0,0 @@ -pub 1024D/204DDF1B 2002-07-15 -uid [ unknown] Arnaud Quette -uid [ unknown] Arnaud Quette -uid [ unknown] Arnaud Quette -uid [ unknown] Arnaud Quette -uid [ unknown] Arnaud Quette -uid [ unknown] Arnaud Quette -sub 1024g/D8B1B6B4 2002-07-15 - -pub 4096R/55CA5976 2014-04-22 -uid [ unknown] Arnaud Quette -uid [ unknown] Arnaud Quette -sub 4096R/F3AA7FEA 2014-04-22 -sub 4096R/0E515A22 2014-04-22 - ------BEGIN PGP PUBLIC KEY BLOCK----- -Version: GnuPG v2 - -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 -1Fl1SNx/VNIXb2ScB4cMtnHgIs9z4d7t -=H4gS ------END PGP PUBLIC KEY BLOCK----- diff --git a/nut.rpmlintrc b/nut.rpmlintrc new file mode 100644 index 0000000..0cdc5e2 --- /dev/null +++ b/nut.rpmlintrc @@ -0,0 +1,6 @@ +addFilter("binary-or-shlib-calls-gethostbyname /usr/libexec/ups/driver/apcupsd-ups") +addFilter("logrotate-log-dir-not-packaged /var/log$") +addFilter("obsolete-not-provided nut-devel-doc-pdf") +addFilter("obsolete-not-provided nut-doc-pdf") +addFilter("obsolete-not-provided nut-hal") +addFilter("potential-bashisms /usr/libexec/nut-driver-enumerator.sh") diff --git a/nut.sleep b/nut.sleep deleted file mode 100644 index f8acbfd..0000000 --- a/nut.sleep +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -. /usr/lib/pm-utils/functions - -case "$1" in - hibernate) - stopservice upsd - sleep 2 - if test -n "$POWERDOWNFLAG" -a -f "$POWERDOWNFLAG" ; then - export UPSD_POWERDOWN_CONDITION=1 - /etc/init.d/upsd try-powerdown - fi - ;; - suspend) - stopservice upsd - ;; - thaw|resume) - restartservice upsd - ;; - *) - ;; -esac diff --git a/nut.spec b/nut.spec index 8851bc0..222307c 100644 --- a/nut.spec +++ b/nut.spec @@ -1,7 +1,7 @@ # # spec file for package nut # -# Copyright (c) 2022 SUSE LLC +# Copyright (c) 2023 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,10 +16,8 @@ # -%bcond_with texdoc - -%define CGIPATH %{apache_serverroot}/cgi-bin/nut -%define HTMLPATH %{apache_serverroot}/htdocs/nut +%define CGIPATH %{apache_serverroot}/cgi-bin/%{name} +%define HTMLPATH %{apache_serverroot}/htdocs/%{name} %define MODELPATH %{_libexecdir}/ups/driver %define STATEPATH %{_localstatedir}/lib/ups %define CONFPATH %{_sysconfdir}/ups @@ -35,57 +33,67 @@ %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) +%bcond_with texdoc +%if 0%{?suse_version} >= 1500 +%bcond_without libi2c +%else +%bcond_with libi2c +%endif +%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400 +%bcond_without libmodbus +%else +%bcond_with libmodbus +%endif +%if 0%{?suse_version} == 1500 +%bcond_without libnsl +%else +%bcond_with libnsl +%endif +%ifarch %{ix86} x86_64 ia64 +%bcond_without libfreeipmi +%else +%bcond_with libfreeipmi +%endif Name: nut -Version: 2.7.4 +Version: 2.8.0 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 +URL: https://www.networkupstools.org/ +Source0: https://github.com/networkupstools/nut/releases/download/v2.8.0/%{name}-%{version}.tar.gz +Source1: https://github.com/networkupstools/nut/releases/download/v2.8.0/%{name}-%{version}.tar.gz.sha256 Source2: README.SUSE +Source3: nut.rpmlintrc 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 +Patch1: nut-notifyflag.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 -Patch13: reproducible.patch -Patch14: nutscanner-ftbfs.patch -Patch15: harden_nut-driver.service.patch -Patch16: harden_nut-monitor.service.patch -Patch17: harden_nut-server.service.patch +Patch2: nut-doc-fixed-date.patch +# PATCH-FIX-UPSTREAM - do not install Solaris init files uninvited +Patch3: nut-Solaris-init-files.patch +Patch10: harden_nut-driver.service.patch +Patch11: harden_nut-monitor.service.patch +Patch12: harden_nut-server.service.patch BuildRequires: apache-rpm-macros BuildRequires: asciidoc -BuildRequires: avahi-devel BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: libcppunit-devel BuildRequires: libtool -%if 0%{?suse_version} >= 1500 -BuildRequires: libnsl-devel -%endif -BuildRequires: libusb-devel BuildRequires: libxml2-tools BuildRequires: libxslt-tools BuildRequires: net-snmp-devel BuildRequires: pkgconfig -BuildRequires: source-highlight BuildRequires: tcpd-devel +BuildRequires: pkgconfig(avahi-client) +BuildRequires: pkgconfig(avahi-core) +BuildRequires: pkgconfig(bash-completion) BuildRequires: pkgconfig(dbus-glib-1) BuildRequires: pkgconfig(gdlib) BuildRequires: pkgconfig(libpowerman) BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libusb-1.0) BuildRequires: pkgconfig(neon) BuildRequires: pkgconfig(openssl) BuildRequires: pkgconfig(udev) @@ -101,12 +109,17 @@ Provides: nut-classic = %{version} Obsoletes: nut-classic < %{version} Obsoletes: nut-hal < %{version} %{?systemd_requires} -BuildRequires: pkgconfig(bash-completion) -%ifarch %{ix86} x86_64 ia64 +%if %{with libfreeipmi} BuildRequires: pkgconfig(libfreeipmi) %endif -%if 0%{?suse_version} >= 1500 -Requires(pre): user(upsd) +%if %{with libi2c} +BuildRequires: libi2c0-devel +%endif +%if %{with libmodbus} +BuildRequires: pkgconfig(libmodbus) +%endif +%if %{with libnsl} +BuildRequires: pkgconfig(libnsl) %endif %if %{with texdoc} BuildRequires: asciidoc-latex-backend @@ -115,6 +128,10 @@ BuildRequires: asciidoc-latex-backend Obsoletes: %{name}-devel-doc-pdf <= %{version} Obsoletes: %{name}-doc-pdf <= %{version} %endif +%if 0%{?suse_version} >= 1500 +BuildRequires: source-highlight +Requires(pre): user(upsd) +%endif %description Core package of Network UPS Tools. @@ -135,34 +152,45 @@ 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 libnutclient0 +%package -n libnutclient2 Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries Conflicts: libupsclient1 -%description -n libnutclient0 +%description -n libnutclient2 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 -n libnutscan1 +%package -n libnutscan2 Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries Conflicts: libupsclient1 -%description -n libnutscan1 +%description -n libnutscan2 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 -n libupsclient4 +%package -n libupsclient6 Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) Group: System/Libraries Conflicts: libupsclient1 -%description -n libupsclient4 +%description -n libupsclient6 +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 -n libnutclientstub1 +Summary: Network UPS Tools Library (Uninterruptible Power Supply Monitoring) +Group: System/Libraries +Conflicts: libupsclient1 + +%description -n libnutclientstub1 Shared library for the Network UPS Tools. Network UPS Tools is a collection of programs which provide a common @@ -173,7 +201,7 @@ Summary: Network UPS Tools Web Server Support (UPS Status Pages) Group: Hardware/UPS Requires: %{name} = %{version} Enhances: %{name} -Supplements: packageand(%{name}:apache2) +Supplements: (%{name} and apache2) %description cgi Web server support package for the Network UPS Tools. @@ -186,10 +214,11 @@ interface for monitoring and administering UPS hardware. %package devel Summary: Network UPS Tools (Uninterruptible Power Supply Monitoring) Group: Development/Libraries/C and C++ -Requires: libnutclient0 = %{version}-%{release} -Requires: libnutscan1 = %{version}-%{release} -Requires: libupsclient4 = %{version}-%{release} -Requires: openssl-devel +Requires: libnutclient2 = %{version}-%{release} +Requires: libnutclientstub1 = %{version}-%{release} +Requires: libnutscan2 = %{version}-%{release} +Requires: libupsclient6 = %{version}-%{release} +Requires: pkgconfig(openssl) %description devel Network UPS Tools is a collection of programs which provide a common @@ -280,87 +309,72 @@ Developer manual in PDF 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 %{SOURCE2} %{SOURCE6} %{SOURCE7} . -%patch0 -%patch3 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -%patch10 -p1 -%patch11 -p1 -%patch12 -p1 -%patch13 -p1 -%patch14 -p1 +%autosetup -p1 +cp -a %{SOURCE2} . sed -i s/@now@/`date -r ChangeLog +%%Y-%%m-%%d`/g docs/docinfo.xml.in -%patch15 -p1 -%patch16 -p1 -%patch17 -p1 - -sed -i s:%{_prefix}/local/ups/bin:/bin: conf/upssched.conf.sample.in %build autoreconf -fvi -%if 0%{?suse_version} > 1500 -export CXXFLAGS="%{optflags} -std=gnu++14" -%endif %configure \ --disable-static \ --sysconfdir=%{CONFPATH} \ - --datadir=%{_datadir}/nut \ + --datadir=%{_datadir}/%{name} \ --with-all \ %if %{with texdoc} - --with-doc \ + --with-doc="man html-single html-chunked pdf" \ %else - --with-doc="html-single html-chunked" \ + --with-doc="man html-single html-chunked" \ %endif --with-ssl \ --with-openssl \ --without-nss \ +%if %{without libmodbus} + --without-modbus \ +%endif +%if %{with libnsl} --with-wrap \ -%ifnarch %{ix86} x86_64 ia64 +%endif +%if %{without libfreeipmi} --without-ipmi \ +%endif +%if %{without libi2c} + --without-i2c %endif --with-htmlpath=%{HTMLPATH} \ --with-cgipath=%{CGIPATH} \ --with-statepath=%{STATEPATH} \ --with-drvpath=%{MODELPATH} \ - --with-pidpath=%{PIDPATH} \ + --with-pidpath=%{PIDPATH} \ --with-user=%{NUT_USER} \ --with-group=%{NUT_GROUP} \ --with-udev-dir=%{_udevrulesdir}/.. \ --enable-option-checking=fatal # does not create reproducible output with parallelism -make -j1 +%make_build -j1 %install %make_install find %{buildroot} -type f -name "*.la" -delete -print - mkdir -p %{buildroot}%{STATEPATH} -# initscript +mkdir -p %{buildroot}%{_docdir}/%{name} mkdir -p %{buildroot}%{_sbindir} + +# initscript 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 +mv %{buildroot}%{_tmpfilesdir}/nut-common.{tmpfiles,conf} -install -d %{buildroot}/usr/lib/systemd/system-sleep -install nut.system-sleep %{buildroot}/usr/lib/systemd/system-sleep/%{name}.sh - -mkdir -p %{buildroot}%{bashcompletionsdir} -install -m0644 scripts/misc/nut.bash_completion %{buildroot}%{bashcompletionsdir}/nut +install -D -m 750 %{SOURCE6} %{buildroot}%{systemdsystemdutildir}/system-sleep/%{name}.sh +install -D -m 644 scripts/logrotate/nutlogd %{buildroot}%{_sysconfdir}/logrotate.d/%{name} +install -D -m 644 scripts/misc/nut.bash_completion %{buildroot}%{bashcompletionsdir}/%{name} # Documentation -mkdir -p %{buildroot}%{_docdir}/%{name} cp -a docs/*.txt docs/cables docs/images %{buildroot}%{_docdir}/%{name}/ cp -a docs/*.css docs/*.html %{buildroot}%{_docdir}/%{name}/ %if %{with texdoc} @@ -368,7 +382,8 @@ cp -a docs/*.pdf %{buildroot}%{_docdir}/%{name}/ %endif # Not needed for packaged contents: -rm %{buildroot}%{_docdir}/%{name}/packager-guide.* +rm -f %{buildroot}%{_docdir}/%{name}/packager-guide.* +rm -f %{buildroot}%{_docdir}/%{name}/cables/Makefile.am # Create symlinks for man pages %fdupes -s %{buildroot}%{_mandir} @@ -377,7 +392,7 @@ rm %{buildroot}%{_docdir}/%{name}/packager-guide.* %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 +%service_add_pre nut-server.service nut-monitor.service nut-driver-enumerator.path nut-driver-enumerator.service nut-driver.target nut.target %post # Generate initial passwords. @@ -402,32 +417,43 @@ if grep "powersave -U" %{_sysconfdir}/ups/upsmon.conf ; then fi # And finally trigger udev to set permissions according to newly installed rules files. udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device -%service_add_post nut-driver.service nut-server.service nut-monitor.service +%service_add_post nut-server.service nut-monitor.service nut-driver-enumerator.path nut-driver-enumerator.service nut-driver.target nut.target +%tmpfiles_create %{_tmpfilesdir}/%{name}-common.conf %preun -%service_del_preun nut-driver.service nut-server.service nut-monitor.service +%service_del_preun nut-server.service nut-monitor.service nut-driver-enumerator.path nut-driver-enumerator.service nut-driver.target nut.target %postun -%service_del_postun nut-driver.service nut-server.service nut-monitor.service +%service_del_postun nut-server.service nut-monitor.service nut-driver-enumerator.path nut-driver-enumerator.service nut-driver.target nut.target -%post -n libnutclient0 -p /sbin/ldconfig -%postun -n libnutclient0 -p /sbin/ldconfig -%post -n libnutscan1 -p /sbin/ldconfig -%postun -n libnutscan1 -p /sbin/ldconfig -%post -n libupsclient4 -p /sbin/ldconfig -%postun -n libupsclient4 -p /sbin/ldconfig +%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400 +%ldconfig_scriptlets -n libnutclient2 +%ldconfig_scriptlets -n libnutclientstub1 +%ldconfig_scriptlets -n libnutscan2 +%ldconfig_scriptlets -n libupsclient6 +%else +%post -n libnutclient2 -p /sbin/ldconfig +%postun -n libnutclient2 -p /sbin/ldconfig +%post -n libnutclientstub1 -p /sbin/ldconfig +%postun -n libnutclientstub1 -p /sbin/ldconfig +%post -n libnutscan2 -p /sbin/ldconfig +%postun -n libnutscan2 -p /sbin/ldconfig +%post -n libupsclient6 -p /sbin/ldconfig +%postun -n libupsclient6 -p /sbin/ldconfig +%endif %files %doc AUTHORS ChangeLog MAINTAINERS NEWS README README.SUSE UPGRADING %license COPYING %config %{_sysconfdir}/logrotate.d/* %{_bindir}/* -%{_datadir}/nut +%{_datadir}/%{name} %{_mandir}/man5/*%{ext_man} %{_mandir}/man8/*%{ext_man} %exclude %{_mandir}/man8/netxml-ups*.* %exclude %{_mandir}/man8/snmp-ups*.* %dir %{_libexecdir}/ups +%{_libexecdir}/nut-driver-enumerator.sh %{_sbindir}/* %{_udevrulesdir}/*.rules %config(noreplace) %{CONFPATH}/hosts.conf @@ -443,11 +469,16 @@ udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device %{MODELPATH}/* %exclude %{MODELPATH}/snmp-ups %exclude %{MODELPATH}/netxml-ups -%attr(700,%{NUT_USER},%{NUT_GROUP}) %{STATEPATH} +%dir %attr(700,%{NUT_USER},%{NUT_GROUP}) %{STATEPATH} +%{_unitdir}/*.path +%{_unitdir}/*.target %{_unitdir}/*.service %{systemdsystemdutildir}/system-shutdown/* -/usr/lib/systemd/system-sleep/%{name}.sh +%{systemdsystemdutildir}/system-sleep/%{name}.sh %{bashcompletionsdir}/* +%{_tmpfilesdir}/%{name}-common.conf +%ghost %{_rundir}/%{name} +%ghost %attr(700,%{NUT_USER},%{NUT_GROUP}) %{STATEPATH}/%{name} %files drivers-net %{MODELPATH}/snmp-ups @@ -455,13 +486,16 @@ udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device %{_mandir}/man8/netxml-ups*%{ext_man} %{_mandir}/man8/snmp-ups*%{ext_man} -%files -n libnutclient0 +%files -n libnutclient2 %{_libdir}/libnutclient.so.* -%files -n libnutscan1 +%files -n libnutclientstub1 +%{_libdir}/libnutclientstub.so.* + +%files -n libnutscan2 %{_libdir}/libnutscan.so.* -%files -n libupsclient4 +%files -n libupsclient6 %{_libdir}/libupsclient.so.* %files cgi @@ -487,6 +521,7 @@ udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device %files doc-html %{_docdir}/%{name}/FAQ.html %{_docdir}/%{name}/cables.html +%{_docdir}/%{name}/solaris-usb.html %{_docdir}/%{name}/user-manual.html %{_docdir}/%{name}/*.css @@ -499,12 +534,12 @@ udevadm trigger --subsystem-match=usb --property-match=DEVTYPE=usb_device %doc %dir %{_docdir}/%{name} %{_docdir}/%{name}/FAQ.pdf %{_docdir}/%{name}/cables.pdf +%{_docdir}/%{name}/solaris-usb.pdf %{_docdir}/%{name}/user-manual.pdf %files devel-doc-pdf %doc %dir %{_docdir}/%{name} %{_docdir}/%{name}/developer-guide.pdf - %endif %changelog diff --git a/nutscanner-ftbfs.patch b/nutscanner-ftbfs.patch deleted file mode 100644 index 62b2bb9..0000000 --- a/nutscanner-ftbfs.patch +++ /dev/null @@ -1,33 +0,0 @@ -commit 5d98d5536699222bc93c58c1e6f6df43dc9bfcff -Author: Arnaud Quette -Date: Thu Mar 10 14:41:40 2016 +0100 - - Fix nut-scanner compilation in some environments - - Following the commits 5187dab (common: add some string-related functions) and - e767df5 (common: consolidate some string-related functions), the build rules of - nut-scanner were not updated to also use str.c. Since the libcommon.la - dependency was still there, some environments managed to build cleanly, while - other are failing. Update build dependencies to fix this situation - -diff --git a/tools/nut-scanner/Makefile.am b/tools/nut-scanner/Makefile.am -index 558cb23b..db85c682 100644 ---- a/tools/nut-scanner/Makefile.am -+++ b/tools/nut-scanner/Makefile.am -@@ -14,14 +14,14 @@ libnutscan_la_SOURCES = scan_nut.c scan_ipmi.c \ - scan_avahi.c scan_eaton_serial.c nutscan-serial.c \ - ../../drivers/serial.c \ - ../../drivers/bcmxcp_ser.c \ -- ../../common/common.c -+ ../../common/common.c ../../common/str.c - libnutscan_la_LIBADD = $(NETLIBS) $(LIBLTDL_LIBS) - libnutscan_la_LDFLAGS = $(SERLIBS) -version-info 1:0:0 - libnutscan_la_CFLAGS = -I$(top_srcdir)/clients -I$(top_srcdir)/include $(LIBLTDL_CFLAGS) -I$(top_srcdir)/drivers - - nut_scanner_SOURCES = nut-scanner.c - nut_scanner_CFLAGS = -I$(top_srcdir)/clients -I$(top_srcdir)/include --nut_scanner_LDADD = libnutscan.la ../../common/libcommon.la -+nut_scanner_LDADD = libnutscan.la - - if WITH_SSL - libnutscan_la_CFLAGS += $(LIBSSL_CFLAGS) diff --git a/openssl-1_1.patch b/openssl-1_1.patch deleted file mode 100644 index 102dc32..0000000 --- a/openssl-1_1.patch +++ /dev/null @@ -1,147 +0,0 @@ -diff --git a/clients/upsclient.c b/clients/upsclient.c -index b90587b0..b7dd8f42 100644 ---- a/clients/upsclient.c -+++ b/clients/upsclient.c -@@ -299,11 +299,6 @@ int upscli_init(int certverify, const char *certpath, - { - #ifdef WITH_OPENSSL - int ret, ssl_mode = SSL_VERIFY_NONE; --#if OPENSSL_VERSION_NUMBER >= 0x10000000L -- const SSL_METHOD *ssl_method; --#else -- SSL_METHOD *ssl_method; --#endif - #elif defined(WITH_NSS) /* WITH_OPENSSL */ - SECStatus status; - #endif /* WITH_OPENSSL | WITH_NSS */ -@@ -315,22 +310,35 @@ int upscli_init(int certverify, const char *certpath, - } - - #ifdef WITH_OPENSSL -+ -+ SSL_load_error_strings(); - -+#if OPENSSL_VERSION_NUMBER < 0x10100000L - SSL_library_init(); -- SSL_load_error_strings(); - -- ssl_method = TLSv1_client_method(); -+ ssl_ctx = SSL_CTX_new(SSLv23_client_method()); -+#else -+ OPENSSL_init_ssl(0, NULL); - -- if (!ssl_method) { -- return 0; -- } -+ ssl_ctx = SSL_CTX_new(TLS_client_method()); -+#endif - -- ssl_ctx = SSL_CTX_new(ssl_method); - if (!ssl_ctx) { - upslogx(LOG_ERR, "Can not initialize SSL context"); - return -1; - } - -+#if OPENSSL_VERSION_NUMBER < 0x10100000L -+ /* set minimum protocol TLSv1 */ -+ SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); -+#else -+ ret = SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION); -+ if (ret != 1) { -+ upslogx(LOG_ERR, "Can not set minimum protocol to TLSv1"); -+ return -1; -+ } -+#endif -+ - if (!certpath) { - if (certverify == 1) { - upslogx(LOG_ERR, "Can not verify certificate if any is specified"); -@@ -737,7 +745,7 @@ static int upscli_sslinit(UPSCONN_t *ups, int verifycert) - switch(res) - { - case 1: -- upsdebugx(3, "SSL connected"); -+ upsdebugx(3, "SSL connected (%s)", SSL_get_version(ups->ssl)); - break; - case 0: - upslog_with_errno(1, "SSL_connect do not accept handshake."); -diff --git a/m4/nut_check_libopenssl.m4 b/m4/nut_check_libopenssl.m4 -index 1b875077..5f29f4a3 100644 ---- a/m4/nut_check_libopenssl.m4 -+++ b/m4/nut_check_libopenssl.m4 -@@ -57,8 +57,9 @@ if test -z "${nut_have_libopenssl_seen}"; then - AC_MSG_RESULT([${LIBS}]) - - dnl check if openssl is usable -- AC_CHECK_HEADERS(openssl/ssl.h, [nut_have_openssl=yes], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT]) -- AC_CHECK_FUNCS(SSL_library_init, [], [nut_have_openssl=no]) -+ AC_CHECK_FUNCS(OPENSSL_init_ssl, [nut_have_openssl=yes], [nut_have_openssl=no]) -+ AC_CHECK_FUNCS(SSL_library_init, [nut_have_openssl=yes], []) -+ AC_CHECK_HEADERS(openssl/ssl.h, [], [nut_have_openssl=no], [AC_INCLUDES_DEFAULT]) - - if test "${nut_have_openssl}" = "yes"; then - nut_with_ssl="yes" -diff --git a/server/netssl.c b/server/netssl.c -index c2f40989..6ae13e8d 100644 ---- a/server/netssl.c -+++ b/server/netssl.c -@@ -275,7 +275,7 @@ void net_starttls(nut_ctype_t *client, int numarg, const char **arg) - { - case 1: - client->ssl_connected = 1; -- upsdebugx(3, "SSL connected"); -+ upsdebugx(3, "SSL connected (%s)", SSL_get_version(client->ssl)); - break; - - case 0: -@@ -371,13 +371,7 @@ void ssl_init(void) - { - #ifdef WITH_NSS - SECStatus status; --#elif defined(WITH_OPENSSL) --#if OPENSSL_VERSION_NUMBER >= 0x10000000L -- const SSL_METHOD *ssl_method; --#else -- SSL_METHOD *ssl_method; --#endif --#endif /* WITH_NSS|WITH_OPENSSL */ -+#endif /* WITH_NSS */ - - if (!certfile) { - return; -@@ -388,17 +382,31 @@ void ssl_init(void) - #ifdef WITH_OPENSSL - - SSL_load_error_strings(); -+ -+#if OPENSSL_VERSION_NUMBER < 0x10100000L - SSL_library_init(); - -- if ((ssl_method = TLSv1_server_method()) == NULL) { -+ ssl_ctx = SSL_CTX_new(SSLv23_server_method()); -+#else -+ OPENSSL_init_ssl(0, NULL); -+ -+ ssl_ctx = SSL_CTX_new(TLS_server_method()); -+#endif -+ -+ if (!ssl_ctx) { - ssl_debug(); -- fatalx(EXIT_FAILURE, "TLSv1_server_method failed"); -+ fatalx(EXIT_FAILURE, "SSL_CTX_new failed"); - } - -- if ((ssl_ctx = SSL_CTX_new(ssl_method)) == NULL) { -+#if OPENSSL_VERSION_NUMBER < 0x10100000L -+ /* set minimum protocol TLSv1 */ -+ SSL_CTX_set_options(ssl_ctx, SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3); -+#else -+ if (SSL_CTX_set_min_proto_version(ssl_ctx, TLS1_VERSION) != 1) { - ssl_debug(); -- fatalx(EXIT_FAILURE, "SSL_CTX_new failed"); -+ fatalx(EXIT_FAILURE, "SSL_CTX_set_min_proto_version(TLS1_VERSION)"); - } -+#endif - - if (SSL_CTX_use_certificate_chain_file(ssl_ctx, certfile) != 1) { - ssl_debug(); diff --git a/reproducible.patch b/reproducible.patch deleted file mode 100644 index a5afd63..0000000 --- a/reproducible.patch +++ /dev/null @@ -1,43 +0,0 @@ -PATCH-FIX-UPSTREAM https://github.com/networkupstools/nut/pull/528 - -From d1372910ccc449edb5f447b04a5fd50c5423b314 Mon Sep 17 00:00:00 2001 -From: "Bernhard M. Wiedemann" -Date: Tue, 20 Feb 2018 13:40:18 +0100 -Subject: [PATCH] Sort input file list - -so that nut builds in a reproducible way -in spite of indeterministic filesystem readdir order -and http://bugs.python.org/issue30461 - -See https://reproducible-builds.org/ for why this is good. ---- - tools/nut-snmpinfo.py | 2 +- - tools/nut-usbinfo.pl | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tools/nut-snmpinfo.py b/tools/nut-snmpinfo.py -index 32d17784e..0649ef5a3 100755 ---- a/tools/nut-snmpinfo.py -+++ b/tools/nut-snmpinfo.py -@@ -80,7 +80,7 @@ def expand_define(filename,constant): - output_file.write( "/* SNMP IDs device table */\n" ) - output_file.write( "static snmp_device_id_t snmp_device_table[] = {\n" ) - --for filename in glob.glob('../drivers/*-mib.c'): -+for filename in sorted(glob.glob('../drivers/*-mib.c')): - list_of_line = open(filename,'r').read().split(';') - for line in list_of_line: - if "mib2nut_info_t" in line: -diff --git a/tools/nut-usbinfo.pl b/tools/nut-usbinfo.pl -index 2c0dd055b..a8638769b 100755 ---- a/tools/nut-usbinfo.pl -+++ b/tools/nut-usbinfo.pl -@@ -76,7 +76,7 @@ - - ################# MAIN ################# - --find(\&find_usbdevs,$scanPath); -+find({wanted=>\&find_usbdevs, preprocess=>sub{sort @_}}, $scanPath); - &gen_usb_files; - - ################# SUB METHOD ################# diff --git a/use-pkg-config-gdlib.diff b/use-pkg-config-gdlib.diff deleted file mode 100644 index fa62c3e..0000000 --- a/use-pkg-config-gdlib.diff +++ /dev/null @@ -1,28 +0,0 @@ -Index: nut-2.7.4/m4/nut_check_libgd.m4 -=================================================================== ---- nut-2.7.4.orig/m4/nut_check_libgd.m4 -+++ nut-2.7.4/m4/nut_check_libgd.m4 -@@ -19,8 +19,8 @@ if test -z "${nut_have_libgd_seen}"; the - LDFLAGS="-L/usr/X11R6/lib" - LIBS="-lgd -lpng -lz -ljpeg -lfreetype -lm -lXpm -lX11" - -- AC_MSG_CHECKING(for gd version via gdlib-config) -- GD_VERSION=`gdlib-config --version 2>/dev/null` -+ AC_MSG_CHECKING(for gd version via pkg-config) -+ GD_VERSION=`pkg-config --modversion gdlib 2>/dev/null` - if test "$?" != "0" -o -z "${GD_VERSION}"; then - GD_VERSION="none" - fi -@@ -34,9 +34,9 @@ if test -z "${nut_have_libgd_seen}"; the - AC_MSG_WARN([[If gd detection fails, upgrade gd or use --with-gd-includes and --with-gd-libs]]) - ;; - *) -- CFLAGS="`gdlib-config --includes 2>/dev/null`" -- LDFLAGS="`gdlib-config --ldflags 2>/dev/null`" -- LIBS="`gdlib-config --libs 2>/dev/null`" -+ CFLAGS="`pkg-config gdlib --cflags 2>/dev/null`" -+ LDFLAGS="`pkg-config gdlib --libs 2>/dev/null`" -+ LIBS="" - ;; - esac -