summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-power/nut/Manifest1
-rw-r--r--sys-power/nut/nut-2.8.2.ebuild262
-rw-r--r--sys-power/nut/nut-9999.ebuild2
3 files changed, 264 insertions, 1 deletions
diff --git a/sys-power/nut/Manifest b/sys-power/nut/Manifest
index 20470d95ae84..feb2a82d2604 100644
--- a/sys-power/nut/Manifest
+++ b/sys-power/nut/Manifest
@@ -1,2 +1,3 @@
DIST nut-2.7.4.tar.gz 2509831 BLAKE2B 367c687efd739150898a14c700d5fddbe22bf926522923e1842011ec49b67d6638620500c4eda50291feb474cc6eef39fff63764cb3e0fad5898abee981f8308 SHA512 320c4aff85d8a370c5eff77d33924fdfc3caf6a250620693cdd5bf3336b3a80d8a207488eee841bcf8b72fbad68fda4c074e63b99c56e7886716fc934122d11a
DIST nut-2.8.0.tar.gz 3287640 BLAKE2B 6ad87e9c90920d45846d9c1311e8feeb3c36bfa506d62d938940c00d2fc7f7b30632d079a8ee969db624824ae4fd3e14e41e8acd1eda296e26a3aa340f186b94 SHA512 3c413ae54088045a713eb80cf1bdda474f41bb3b67c7c0248aa7a0c4d441dce1ff42627a2735273d7e36892d1f2eeb895220cf28af63fec2fa0c7a267f82d577
+DIST nut-2.8.2.tar.gz 5599935 BLAKE2B 87187293d8acda72c2d807d6f41f2601a318540f63a0ea93782b115402c6b43a0b61ecc710fd6de126d25e59dd4e03681f2b859a87549e9d5f7617ac7b2dad8c SHA512 b6f8f22318e4a4fcb8073a63132b1cb083952c665191b82a7d6765a61b859575a4b0c2ba84ed17cfb8c88d34179876d64520dd2f75f02fe8707b406da2c0821c
diff --git a/sys-power/nut/nut-2.8.2.ebuild b/sys-power/nut/nut-2.8.2.ebuild
new file mode 100644
index 000000000000..e59050b0c4e5
--- /dev/null
+++ b/sys-power/nut/nut-2.8.2.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..12} )
+inherit bash-completion-r1 desktop flag-o-matic linux-info optfeature
+inherit python-single-r1 systemd tmpfiles toolchain-funcs udev wrapper xdg
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Network-UPS Tools"
+HOMEPAGE="https://networkupstools.org/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/networkupstools/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://networkupstools.org/source/${PV%.*}/${MY_P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" # waiting for ~arch of dev-libs/libgpiod: ~ppc ~ppc64
+fi
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gpio cgi doc ipmi serial i2c +man snmp +usb modbus selinux ssl tcpd test xml zeroconf python monitor systemd"
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="
+ monitor? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ snmp? ( python )
+"
+
+# sys-apps/systemd-253 required for Type=notify-reload
+DEPEND="
+ acct-group/nut
+ acct-user/nut
+ dev-libs/libltdl
+ virtual/udev
+ cgi? ( >=media-libs/gd-2[png] )
+ gpio? ( dev-libs/libgpiod )
+ i2c? ( sys-apps/i2c-tools )
+ ipmi? ( sys-libs/freeipmi )
+ modbus? ( dev-libs/libmodbus )
+ python? ( ${PYTHON_DEPS} )
+ snmp? ( net-analyzer/net-snmp:= )
+ ssl? ( >=dev-libs/openssl-1:= )
+ systemd? ( >=sys-apps/systemd-253 )
+ tcpd? ( sys-apps/tcp-wrappers )
+ usb? ( virtual/libusb:1 )
+ xml? ( >=net-libs/neon-0.25.0:= )
+ zeroconf? ( net-dns/avahi )
+"
+BDEPEND="
+ virtual/pkgconfig
+ man? ( app-text/asciidoc )
+ test? ( dev-util/cppunit )
+"
+RDEPEND="
+ ${DEPEND}
+ monitor? ( $(python_gen_cond_dep '
+ dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+ ')
+ )
+ selinux? ( sec-policy/selinux-nut )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.6.2-lowspeed-buffer-size.patch"
+ "${FILESDIR}/systemd_notify.path"
+)
+
+pkg_pretend() {
+ if use i2c; then
+ CONFIG_CHECK="~I2C_CHARDEV"
+ ERROR_I2C_CHARDEV="You must enable I2C_CHARDEV in your kernel to continue"
+ fi
+ if use usb; then
+ CONFIG_CHECK+=" ~HIDRAW ~USB_HIDDEV"
+ ERROR_HIDRAW="HIDRAW is needed to support USB UPSes"
+ ERROR_I2C_CHARDEV="USB_HIDDEV is needed to support USB UPSes"
+ fi
+ if use gpio; then
+ CONFIG_CHECK="~GPIO_CDEV_V1"
+ ERROR_GPIO_CDEV_V1="GPIO_CDEV_V1 is needed to support GPIO UPSes"
+ fi
+ if use serial; then
+ CONFIG_CHECK="~SERIAL_8250"
+ ERROR_SERIAL_8250="SERIAL_8250 is needed to support Serial UPSes"
+ fi
+
+ # Now do the actual checks setup above
+ check_extra_config
+}
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ if [[ ${PV} == *9999 ]] ; then
+ ./autogen.sh || die
+ fi
+
+ xdg_environment_reset
+}
+
+src_configure() {
+ local myeconfargs=(
+ --datadir=/usr/share/nut
+ --datarootdir=/usr/share/nut
+ --disable-static
+ --disable-strip
+ --disable-Werror
+ --sysconfdir=/etc/nut
+ --with-dev
+ --with-drvpath="/$(get_libdir)/nut"
+ --with-group=nut
+ --with-htmlpath=/usr/share/nut/html
+ --with-logfacility=LOG_DAEMON
+ --with-statepath=/var/lib/nut
+ --with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
+ --with-systemdtmpfilesdir="/usr/lib/tmpfiles.d"
+ --with-udev-dir="$(get_udevdir)"
+ --with-user=nut
+ --without-powerman
+ --without-python
+ --without-python2
+ --with-altpidpath=/run/nut
+ --with-pidpath=/run/nut
+ $(use_with cgi)
+ $(use_with gpio)
+ $(use_with i2c linux_i2c)
+ $(use_with ipmi freeipmi)
+ $(use_with ipmi)
+ $(use_with monitor nut_monitor)
+ $(use_with python pynut)
+ $(use_with serial)
+ $(use_with snmp)
+ $(use_with ssl)
+ $(use_with systemd libsystemd)
+ $(use_with tcpd wrap)
+ $(use_with usb)
+ $(use_with xml neon)
+ $(use_with zeroconf avahi)
+ )
+
+ filter-lto
+ append-flags -fno-lto
+ tc-export CC CXX AR
+
+ use cgi && myeconfargs+=( --with-cgipath=/usr/share/nut/cgi )
+ use man && myeconfargs+=( --with-doc=man )
+ use python && myeconfargs+=( --with-python3="${PYTHON}" ) || myeconfargs+=( --without-python3 )
+
+ export bashcompdir="$(get_bashcompdir)"
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ rm -rf "${ED}/etc/hotplug" || die
+
+ find "${ED}" -name '*.la' -delete || die
+
+ dodir /sbin
+
+ if use cgi; then
+ elog "CGI monitoring scripts are installed in ${EPREFIX}/usr/share/nut/cgi."
+ elog "copy them to your web server's ScriptPath to activate (this is a"
+ elog "change from the old location)."
+ elog "If you use lighttpd, see lighttpd_nut.conf in the documentation."
+ elog
+ elog "Use script aliases according to the web server you use (apache, nginx, lighttpd, etc...)"
+ fi
+
+ # This must be done after all of the install phases
+ local i
+ for i in "${ED}"/etc/nut/*.sample ; do
+ mv "${i}" "${i/.sample/}" || die
+ done
+
+ local DOCS=( AUTHORS MAINTAINERS NEWS.adoc README.adoc TODO.adoc UPGRADING.adoc )
+ einstalldocs
+
+ if use doc; then
+ newdoc lib/README.adoc
+ dodoc docs/*.txt
+ docinto cables
+ dodoc docs/cables/*
+ fi
+
+ newinitd "${FILESDIR}"/nut-2.8.0-init.d-upsd upsd
+ newinitd "${FILESDIR}"/nut-2.2.2-init.d-upsdrv upsdrv
+ newinitd "${FILESDIR}"/nut-2.6.5-init.d-upsmon upsmon
+ newinitd "${FILESDIR}"/nut-2.6.5-init.d-upslog upslog
+ newinitd "${FILESDIR}"/nut.powerfail.initd nut.powerfail
+
+ newbashcomp "${S}"/scripts/misc/nut.bash_completion upsc
+ bashcomp_alias upsc upscmd upsd upsdrvctl upsmon upsrw
+
+ if use zeroconf; then
+ insinto /etc/avahi/services
+ doins scripts/avahi/nut.service
+ fi
+
+ if use monitor; then
+ make_wrapper NUT-Monitor-py3qt5 /usr/share/nut/nut-monitor/app/NUT-Monitor-py3qt5 /usr/share/nut/nut-monitor/app
+
+ # Install desktop shortcut
+ newmenu scripts/python/app/nut-monitor-py3qt5.desktop nut-monitor.desktop
+
+ # Installing Application icons
+ local res
+ for res in 48 64 256; do
+ doicon -s ${res} scripts/python/app/icons/${res}x${res}/nut-monitor.png
+ done
+ doicon -s scalable scripts/python/app/icons/scalable/nut-monitor.svg
+ fi
+
+ use python && python_optimize
+}
+
+pkg_postinst() {
+ elog "Please note that NUT now runs under the 'nut' user."
+ elog "NUT is in the uucp group for access to RS-232 UPS."
+ elog "However if you use a USB UPS you may need to look at the udev or"
+ elog "hotplug rules that are installed, and alter them suitably."
+ elog
+ elog "You are strongly advised to read the UPGRADING file provided by upstream."
+ elog
+ elog "Please note that upsdrv is NOT automatically started by upsd anymore."
+ elog "If you have multiple UPS units, you can use their NUT names to"
+ elog "have a service per UPS:"
+ elog "ln -s /etc/init.d/upsdrv /etc/init.d/upsdrv.\$UPSNAME"
+ elog
+ elog 'If you want apcupsd to power off your UPS when it'
+ elog 'shuts down your system in a power failure, you must'
+ elog 'add nut.powerfail to your shutdown runlevel:'
+ elog
+ elog 'rc-update add nut.powerfail shutdown'
+ elog
+
+ optfeature "all notify events generate a global message (wall) to all users, plus they are logged via the syslog" \
+ sys-apps/util-linux[logger,tty-helpers]
+
+ udev_reload
+
+ tmpfiles_process nut-common-tmpfiles.conf
+ xdg_pkg_postinst
+}
+
+pkg_postrm() {
+ udev_reload
+ xdg_pkg_postrm
+}
diff --git a/sys-power/nut/nut-9999.ebuild b/sys-power/nut/nut-9999.ebuild
index 22a0e6bc597a..e59050b0c4e5 100644
--- a/sys-power/nut/nut-9999.ebuild
+++ b/sys-power/nut/nut-9999.ebuild
@@ -17,7 +17,7 @@ if [[ ${PV} == *9999 ]] ; then
inherit git-r3
else
SRC_URI="https://networkupstools.org/source/${PV%.*}/${MY_P}.tar.gz"
- KEYWORDS="~amd64 ~arm64 ~x86"
+ KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86" # waiting for ~arch of dev-libs/libgpiod: ~ppc ~ppc64
fi
S="${WORKDIR}/${MY_P}"