From 40aaaa64e86ba6710bbeb31c4615a6ce80e75e11 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 28 Apr 2021 20:21:43 +0100 Subject: gentoo resync : 28.04.2021 --- sys-power/apcupsd/Manifest | 9 +- sys-power/apcupsd/apcupsd-3.14.13.ebuild | 137 ------------------- sys-power/apcupsd/apcupsd-3.14.14-r3.ebuild | 149 +++++++++++++++++++++ .../files/apcupsd-3.14.9-close-on-exec.patch | 50 +++++++ .../apcupsd/files/apcupsd-3.14.9-commfailure.patch | 15 +++ .../apcupsd/files/apcupsd-3.14.9-fix-nologin.patch | 15 +++ .../apcupsd/files/apcupsd-3.14.9-gapcmon.patch | 33 +++++ .../files/apcupsd-3.14.9-wall-on-mounted-usr.patch | 20 +++ sys-power/apcupsd/files/apcupsd.init | 28 ++++ 9 files changed, 317 insertions(+), 139 deletions(-) delete mode 100644 sys-power/apcupsd/apcupsd-3.14.13.ebuild create mode 100644 sys-power/apcupsd/apcupsd-3.14.14-r3.ebuild create mode 100644 sys-power/apcupsd/files/apcupsd-3.14.9-close-on-exec.patch create mode 100644 sys-power/apcupsd/files/apcupsd-3.14.9-commfailure.patch create mode 100644 sys-power/apcupsd/files/apcupsd-3.14.9-fix-nologin.patch create mode 100644 sys-power/apcupsd/files/apcupsd-3.14.9-gapcmon.patch create mode 100644 sys-power/apcupsd/files/apcupsd-3.14.9-wall-on-mounted-usr.patch create mode 100644 sys-power/apcupsd/files/apcupsd.init (limited to 'sys-power/apcupsd') diff --git a/sys-power/apcupsd/Manifest b/sys-power/apcupsd/Manifest index 7ae8f0d745de..e767ac0c9ff1 100644 --- a/sys-power/apcupsd/Manifest +++ b/sys-power/apcupsd/Manifest @@ -1,12 +1,17 @@ AUX apcupsd-3.14.9-aliasing.patch 2108 BLAKE2B b6ce1e6e3e40b6d533a08d5fac633e7c3d81574b2b2fd9c442a10eac8e507abfa73ddf3dc74ac9fc4d8bbd9c7da3f7d9eb5194f6df959dbe792d5b103d88844c SHA512 48eb51385136216d1cdddb6b237b89a52c516b223aa7fe50fb35761cd595d9ab7f7fabbd0e4f8c0f7d45df6feed0a2e240d227181f3d772fc5fa9f8bfa62529f +AUX apcupsd-3.14.9-close-on-exec.patch 1700 BLAKE2B 33bc681a008c98a6659a832359d3906bfe153db7cf3fbb0dbf442dc60e97c41dd0680eb5674592c835a28731f1fb361a20f2f5acae88f84142781153fba5ca66 SHA512 5f348efc11f35538fc9810d9026b2f8eeeadf5675ca1bf2275f704310a654266e5e79e393a59e6c25171a94f5d0b1d9e74b45a1511c4289242379f6f4e30888b +AUX apcupsd-3.14.9-commfailure.patch 519 BLAKE2B 58763a637f44ad3e506b1f8da73027353d05bbcab6a3a108d39c4d189682a8185d89960e46eb760b7f5781115b266ff0c5ebb902a1307634faed0639c7b4ceb9 SHA512 856063b915ccd583abbef4347e01a8a5f71f7853efbfeb62d2edfee1acd14030e34373c420d5fdd58bc47ce03e79b55dd4a5ee6486c8dee984e8f272257af673 +AUX apcupsd-3.14.9-fix-nologin.patch 529 BLAKE2B 6d3f6c735d88808056a73620c92e5f219cda2501714dc4566e6ccc9b36e4ef6a28da97d4938dd0174f8c7769afe71c2937fdfe0b9bf46d5f1172307f84d22a7f SHA512 50c614aeaa2118cc5745f34ec86aada0eaf41af4b6616717b7d5637aa84710fd078950a149fb0bf3a68107619125ea0c74ea6f8fa937338a662c7ee31804fbab +AUX apcupsd-3.14.9-gapcmon.patch 1213 BLAKE2B ecc9798a010cb60beb9bacd93b1223b2d8f0c7f5739b2237bd7bdc10182c4973944bc49a34c7a3060c164965524f19e2fbe40a042df8e6c7e77001874b396ab1 SHA512 5cb0eeb7449c16bd820f17ff64895f6e7beaa7f2af66376fbe5450e9ef803138f5248f43232bc7753b72ca7c650ca177b0227ce79d4002383f19d0174adbe542 +AUX apcupsd-3.14.9-wall-on-mounted-usr.patch 815 BLAKE2B dcc4e89328b0d5afc8d33555cc5c9b9a5ea06e74d80ffc761506f0435b65b4174ce9e4873344e7a1838f3a11d69eb9f7286b189f0cc67e7c21ae66db1baa7aca SHA512 00a3a01f3afdb1755c65ebc9832778bd3a7bfeab115531a1282668ba5340fd081eeaa263264a6510722ac4726e5d84961089c6c0305d0a6f7d1cf9e4de80be00 AUX apcupsd-tmpfiles.conf 70 BLAKE2B 6bc5fdff60918a5ccb616e28cc3832053938accd47a75aa29c3e569808c59ee35d618f385022309ab8eb2f714b5d87d6c752547447d896b7537b30b8dfc262ed SHA512 c63242a06cc14242575c24a8aca4ea35a7150e6073425c8230e36c7117a1bc49dc659dbb0c455ddc454a0ac5ebd7faa5638fb70282c38ed5d1ca9ffab700ef05 AUX apcupsd-udev.rules 328 BLAKE2B be1a8ff2eb09c045137ab2f1e48d3caa5ea9df85f766da5f9ae04786895631503d986cb184c74fd92aa6c229d34fedeab0a61dc5cad4a8fba1a799ade3f01081 SHA512 ba2ebb9f28011548c845a81f17a328b98ec8d79c1e6be33aeab863d77b9d3aa61b4dfbd1bb89a0cae00465387dffe8cc223634a6e9a2f59170846d4bed9e7135 AUX apcupsd.conf 12475 BLAKE2B c7695035887fa4fa867b2588f2ed0e2fee6c6a0086c221fec3019e3de639202287e9a35082334b8801cda38c846a0bcac714b046b1ddc1297f764bb211e42fb9 SHA512 1519d3cd47a2a73ff4148e4f74964ae841d37639616fe5b974b426983f5379db89b8793a6952389c443c56b84d0ef33f6995eccd920f71b4e5efc842a58a04e1 +AUX apcupsd.init 804 BLAKE2B 7afd83a6be8b068133f6221cc2396a1fe4cab23f6dec68957b48ef7940730908e7a20e1597a21480eeffdb79314fd02505d4bafdd0b7a6bd1ff2b7c452f847ef SHA512 dd7fcc52b495c3f73bc9b2fe73bbb7c8fe3ec959ea733360d370148d617d98f34de3b48f1cb451f9a8356eb8088b06d3c736bd6cbad2bb5e9e609e37d5f2c53c AUX apcupsd.init.4 926 BLAKE2B a698aa40ebab7bb14f6efd05f8d1300f95e81d18aa74d2d8daa35629803f8758a56ec4f6f79f27ccc3aec9d54a53a7326f5afe72b9972de90387b751c7ca21b2 SHA512 b31d054252d0caeaeee4b3e0d7d9d0f5c1d0ad32a08f952f57fe91a36964d6a895ff26bb5514820cc8e83b7e87df1b0c508c3ae35c39f43d2be2e1cd66ef705e AUX apcupsd.powerfail.init 397 BLAKE2B 472512906536753d3054d275707764a98094c14866da63fbc8d2d62e16a9099fdce0b61cf572a4ba862f0be13e1ed3407821ed07ec90f9c77fb8d95f18aafc2f SHA512 cd0ed9d24a8371de7920bf0ce2e89bb63c0bee58da1ac782ed2b929068f95b2af47458529223a33ecea4e8f73ddfe3a7b9591af6f64828de7ed1d91e2edbb6e1 AUX apcupsd.service 111 BLAKE2B bf2ac8161af5b971642298c30b08ad78d289044bb2452bdef39b31119b60eceb0a14add7c00262132bb80dbf1964103242452cb8d9b815d6ec82c204100ea184 SHA512 011e3e52e7909f36fb73b6064277a69e5db41263cfc72bda07e326172396d5318cd2b050f1fb84c4cc6da7a247c0035c36c55322ffb234a1cfa7bf13ba492889 -DIST apcupsd-3.14.13.tar.gz 1935043 BLAKE2B 56d8fb9c6a055b20c2d99867e43b6a2d6ebe1d55c724d8a6701d9baa569a14f600cb03c6176380c6c42c46ac610f43136a4b52c47c8b86bc41966d4091481e95 SHA512 74f7763de268626e24f9dd99090b01d5bff35c2fde769039104105ec27941673d1613c41fcac11e3d97d2fe5c364bcc0459847fcba5d2f7f1aac85795d6d8570 DIST apcupsd-3.14.14.tar.gz 1843409 BLAKE2B 48a3b249780064d699d86b658584aa222ce9f3b46a81209110b4684bf737cca7492b87b063154864ce76478f29f73cda83ab96b47f4a7aa7aa91e29a8abbf4a8 SHA512 c953bbf3e08f809748a7978a3952604176390d1cd276f187fe096d9bc3c8993b52127e8350c0363387da41318e24b4d1e00ea58df71f3bb8f50c9a5a64cd2d7f -EBUILD apcupsd-3.14.13.ebuild 3924 BLAKE2B 85dfef3e437613485b35d62f6987340d9dbeff63f0da334fae429e629e137e7648c3138f669e22f6a0975acac07d8d6517c75830835abbfe91a4cd6d41bdc7c5 SHA512 5197db78dd4be02b5e8ea8316d69e06fd065d2b43900be364faaf363712897888dcf5b8315c13d6d37fd1ba9f91ac7ce2f4625f99eab3183ba9f3233bb2fb8f1 EBUILD apcupsd-3.14.14-r2.ebuild 4042 BLAKE2B 3c71cb4717d389d1d6ff192c9654df79c515efde571b62e7a58bbf3dcd270220fba0611cc85f258255d95f989006c9a3521e62030b9fe2780aa48ca344c03bdb SHA512 864ed6f867c2f289318bd7ac8a1f123758bedf76f729c5304d84cf4a56e46313dc83054e2081e18e8a71a303e9da68d1e239e13b61e1b092d6e40a28c3ea6c09 +EBUILD apcupsd-3.14.14-r3.ebuild 4309 BLAKE2B 8951b63af6533640e2182e17138f578f55ed6b2481cf392a55a430ff4b4ee66ed5c21fd4ef183885bbb1371eb97b2169bcf4af4280fc72c9472f47c5b5e912d9 SHA512 d0257f7e2d11f3eabc89bac089bf0c85e783022310b774486ddd7ef44fc1a02544d95ed3427d88e72296042c2236b979b5c828c99a182362917c006a8828f977 MISC metadata.xml 1161 BLAKE2B 6ea52dc98c841f0f6e018f74addd11054ddedc635d0f153f5f629b6949eebc0833d3c5a7e27a584a0344dc48319de2cf85d0304dd03ba77927244654713a2488 SHA512 384db8369118c9d430e4baea4d65bef498ec4f198e0379581eac77f081fb34705ce5171fec4753beeaa5ae3c153fe98a91dbebbd04ce5c671172c7ba28d30dfe diff --git a/sys-power/apcupsd/apcupsd-3.14.13.ebuild b/sys-power/apcupsd/apcupsd-3.14.13.ebuild deleted file mode 100644 index b3489084c867..000000000000 --- a/sys-power/apcupsd/apcupsd-3.14.13.ebuild +++ /dev/null @@ -1,137 +0,0 @@ -# Copyright 1999-2021 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=5 - -inherit eutils linux-info flag-o-matic systemd udev tmpfiles - -DESCRIPTION="APC UPS daemon with integrated tcp/ip remote shutdown" -HOMEPAGE="http://www.apcupsd.org/" -SRC_URI="mirror://sourceforge/apcupsd/${P}.tar.gz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="amd64 ~arm ppc x86" -IUSE="snmp +usb cgi nls gnome kernel_linux" - -DEPEND=" - >=sys-apps/util-linux-2.23[tty-helpers(-)] - cgi? ( >=media-libs/gd-1.8.4 ) - nls? ( sys-devel/gettext ) - snmp? ( >=net-analyzer/net-snmp-5.7.2 ) - gnome? ( >=x11-libs/gtk+-2.4.0:2 - dev-libs/glib:2 - >=gnome-base/gconf-2.0 )" -RDEPEND="${DEPEND} - sys-apps/openrc - virtual/mailx" - -CONFIG_CHECK="~USB_HIDDEV ~HIDRAW" -ERROR_USB_HIDDEV="CONFIG_USB_HIDDEV: needed to access USB-attached UPSes" -ERROR_HIDRAW="CONFIG_HIDRAW: needed to access USB-attached UPSes" - -pkg_setup() { - if use kernel_linux && use usb && linux_config_exists; then - check_extra_config - fi -} - -src_prepare() { - epatch "${FILESDIR}/${PN}-3.14.9-aliasing.patch" -} - -src_configure() { - local myconf - use cgi && myconf="${myconf} --enable-cgi --with-cgi-bin=/usr/libexec/${PN}/cgi-bin" - if use usb; then - myconf="${myconf} --with-upstype=usb --with-upscable=usb --enable-usb --with-dev= " - else - myconf="${myconf} --with-upstype=apcsmart --with-upscable=smart --disable-usb" - fi - - # We force the DISTNAME to gentoo so it will use gentoo's layout also - # when installed on non-linux systems. - econf \ - --sbindir=/sbin \ - --sysconfdir=/etc/apcupsd \ - --with-pwrfail-dir=/etc/apcupsd \ - --with-lock-dir=/run/apcupsd \ - --with-pid-dir=/run/apcupsd \ - --with-log-dir=/var/log \ - --with-nis-port=3551 \ - --enable-net --enable-pcnet \ - --with-distname=gentoo \ - $(use_enable snmp net-snmp) \ - $(use_enable gnome gapcmon) \ - ${myconf} \ - APCUPSD_MAIL=/bin/mail -} - -src_compile() { - # Workaround for bug #280674; upstream should really just provide - # the text files in the distribution, but I wouldn't count on them - # doing that anytime soon. - MANPAGER=$(type -p cat) \ - emake -} - -src_install() { - emake DESTDIR="${D}" install - rm -f "${D}"/etc/init.d/halt - - insinto /etc/apcupsd - newins examples/safe.apccontrol safe.apccontrol - doins "${FILESDIR}"/apcupsd.conf - - dodoc ChangeLog* ReleaseNotes - doman doc/*.8 doc/*.5 - - dohtml -r doc/manual/* - - rm "${D}"/etc/init.d/apcupsd - newinitd "${FILESDIR}/${PN}.init.4" "${PN}" - newinitd "${FILESDIR}/${PN}.powerfail.init" "${PN}".powerfail - - systemd_dounit "${FILESDIR}"/${PN}.service - dotmpfiles "${FILESDIR}"/${PN}-tmpfiles.conf - - # remove hal settings, we don't really want to have it around still. - rm -r "${D}"/usr/share/hal - - # replace it with our udev rules if we're in Linux - if use kernel_linux; then - udev_newrules "${FILESDIR}"/apcupsd-udev.rules 60-${PN}.rules - fi - -} - -pkg_postinst() { - tmpfiles_process ${PN}-tmpfiles.conf - - if use cgi; then - elog "The cgi-bin directory for ${PN} is /usr/libexec/${PN}/cgi-bin." - elog "Set up your ScriptAlias or symbolic links accordingly." - fi - - elog "" - elog "Since version 3.14.0 you can use multiple apcupsd instances to" - elog "control more than one UPS in a single box with openRC." - elog "To do this, create a link between /etc/init.d/apcupsd to a new" - elog "/etc/init.d/apcupsd.something, and it will then load the" - elog "configuration file at /etc/apcupsd/something.conf." - 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 apcupsd.powerfail to your shutdown runlevel:' - elog '' - elog ' \e[01m rc-update add apcupsd.powerfail shutdown \e[0m' - elog '' - - if use kernel_linux; then - elog "Starting from version 3.14.9-r1, ${PN} installs udev rules" - elog "for persistent device naming. If you have multiple UPS" - elog "connected to the machine, you can point them to the devices" - elog "in /dev/apcups/by-id directory." - fi -} diff --git a/sys-power/apcupsd/apcupsd-3.14.14-r3.ebuild b/sys-power/apcupsd/apcupsd-3.14.14-r3.ebuild new file mode 100644 index 000000000000..12e0b16bcc7e --- /dev/null +++ b/sys-power/apcupsd/apcupsd-3.14.14-r3.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI="7" + +inherit linux-info flag-o-matic systemd udev tmpfiles + +DESCRIPTION="APC UPS daemon with integrated tcp/ip remote shutdown" +HOMEPAGE="http://www.apcupsd.org/" +SRC_URI="mirror://sourceforge/apcupsd/${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~x86" +IUSE="snmp +usb +modbus cgi gnome kernel_linux" + +DEPEND=">=sys-apps/util-linux-2.23[tty-helpers(-)] + cgi? ( >=media-libs/gd-1.8.4 ) + modbus? ( usb? ( virtual/libusb:0 ) ) + gnome? ( + >=x11-libs/gtk+-2.4.0:2 + dev-libs/glib:2 + >=gnome-base/gconf-2.0 + ) + snmp? ( >=net-analyzer/net-snmp-5.7.2 )" + +RDEPEND="${DEPEND} + virtual/mailx" + +CONFIG_CHECK="~USB_HIDDEV ~HIDRAW" +ERROR_USB_HIDDEV="CONFIG_USB_HIDDEV: needed to access USB-attached UPSes" +ERROR_HIDRAW="CONFIG_HIDRAW: needed to access USB-attached UPSes" + +DOCS=( ChangeLog ReleaseNotes ) +HTML_DOCS=( doc/manual ) + +PATCHES=( + "${FILESDIR}"/${PN}-3.14.9-aliasing.patch + "${FILESDIR}"/${PN}-3.14.9-close-on-exec.patch + "${FILESDIR}"/${PN}-3.14.9-commfailure.patch + "${FILESDIR}"/${PN}-3.14.9-fix-nologin.patch + "${FILESDIR}"/${PN}-3.14.9-gapcmon.patch + "${FILESDIR}"/${PN}-3.14.9-wall-on-mounted-usr.patch +) + +pkg_setup() { + if use kernel_linux && use usb && linux_config_exists ; then + check_extra_config + fi +} + +src_configure() { + local myconf + + use cgi && myconf="${myconf} --enable-cgi --with-cgi-bin=/usr/libexec/${PN}/cgi-bin" + + if use usb ; then + myconf="${myconf} --with-upstype=usb --with-upscable=usb --enable-usb --with-dev=" + use modbus && myconf="${myconf} --enable-modbus-usb" + else + myconf="${myconf} --with-upstype=apcsmart --with-upscable=smart --disable-usb" + use modbus || myconf="${myconf} --disable-modbus" + fi + + # We force the DISTNAME to gentoo so it will use gentoo's layout also + # when installed on non-linux systems. + econf \ + --sbindir=/sbin \ + --sysconfdir=/etc/apcupsd \ + --with-pwrfail-dir=/etc/apcupsd \ + --with-lock-dir=/run/apcupsd \ + --with-pid-dir=/run/apcupsd \ + --with-log-dir=/var/log \ + --with-nis-port=3551 \ + --enable-net --enable-pcnet \ + --with-distname=gentoo \ + $(use_enable snmp) \ + $(use_enable gnome gapcmon) \ + ${myconf} \ + APCUPSD_MAIL=$(type -p mail) +} + +src_compile() { + # Workaround for bug #280674; upstream should really just provide + # the text files in the distribution, but I wouldn't count on them + # doing that anytime soon. + MANPAGER=$(type -p cat) \ + emake VERBOSE=2 +} + +src_install() { + emake DESTDIR="${D}" VERBOSE=2 install + rm "${ED}"/etc/init.d/halt || die + + insinto /etc/apcupsd + newins examples/safe.apccontrol safe.apccontrol + doins "${FILESDIR}"/apcupsd.conf + + doman doc/*.8 doc/*.5 + + einstalldocs + + rm "${ED}"/etc/init.d/apcupsd || die + newinitd "${FILESDIR}/${PN}.init" "${PN}" + newinitd "${FILESDIR}/${PN}.powerfail.init" "${PN}".powerfail + + systemd_dounit "${FILESDIR}"/${PN}.service + dotmpfiles "${FILESDIR}"/${PN}-tmpfiles.conf + + # remove hal settings, we don't really want to have it still around. + rm -r "${D}"/usr/share/hal || die + + # replace it with our udev rules if we're in Linux + if use kernel_linux ; then + udev_newrules "${FILESDIR}"/apcupsd-udev.rules 60-${PN}.rules + fi + +} + +pkg_postinst() { + tmpfiles_process ${PN}-tmpfiles.conf + + if use cgi ; then + elog "The cgi-bin directory for ${PN} is /usr/libexec/${PN}/cgi-bin." + elog "Set up your ScriptAlias or symbolic links accordingly." + fi + + elog "" + elog "Since version 3.14.0 you can use multiple apcupsd instances to" + elog "control more than one UPS in a single box with openRC." + elog "To do this, create a link between /etc/init.d/apcupsd to a new" + elog "/etc/init.d/apcupsd.something, and it will then load the" + elog "configuration file at /etc/apcupsd/something.conf." + 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 apcupsd.powerfail to your shutdown runlevel:' + elog '' + elog ' \e[01m rc-update add apcupsd.powerfail shutdown \e[0m' + elog '' + + if use kernel_linux; then + elog "Starting from version 3.14.9-r1, ${PN} installs udev rules" + elog "for persistent device naming. If you have multiple UPS" + elog "connected to the machine, you can point them to the devices" + elog "in /dev/apcups/by-id directory." + fi +} diff --git a/sys-power/apcupsd/files/apcupsd-3.14.9-close-on-exec.patch b/sys-power/apcupsd/files/apcupsd-3.14.9-close-on-exec.patch new file mode 100644 index 000000000000..aeaa78b35420 --- /dev/null +++ b/sys-power/apcupsd/files/apcupsd-3.14.9-close-on-exec.patch @@ -0,0 +1,50 @@ +Close the socket on exec - avoid leaked file descriptors, patch from Fedora + +--- a/src/apcnis.c ++++ b/src/apcnis.c +@@ -157,6 +157,9 @@ void do_server(UPSINFO *ups) + sleep(5 * 60); + } + ++ /* Close the socket on exec - avoid leaked file descriptors */ ++ fcntl(sockfd, F_SETFD, FD_CLOEXEC); ++ + /* Reuse old sockets */ + #ifndef HAVE_MINGW + if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, (void*)&turnon, sizeof(turnon)) < 0) { +--- a/src/apcupsd.c ++++ b/src/apcupsd.c +@@ -212,6 +212,9 @@ int main(int argc, char *argv[]) + if (ups->event_fd < 0) { + log_event(ups, LOG_WARNING, "Could not open events file %s: %s\n", + ups->eventfile, strerror(errno)); ++ } else { ++ /* Close the file on exec - avoid leaked file descriptors */ ++ fcntl(ups->event_fd, F_SETFD, FD_CLOEXEC); + } + } + +--- a/src/drivers/usb/linux/linux-usb.c ++++ b/src/drivers/usb/linux/linux-usb.c +@@ -246,8 +246,11 @@ bool LinuxUsbUpsDriver::open_usb_device() + /* Retry 10 times */ + for (i = 0; i < 10; i++) { + _fd = open_device(_ups->device); +- if (_fd != -1) ++ if (_fd != -1) { ++ /* Close the device on exec - avoid leaked file descriptors */ ++ fcntl(_fd, F_SETFD, FD_CLOEXEC); + return true; ++ } + sleep(1); + } + +@@ -270,6 +273,7 @@ auto_detect: + asnprintf(devname, sizeof(devname), "%s%d", hiddev[j], k); + _fd = open_device(devname); + if (_fd != -1) { ++ fcntl(_fd, F_SETFD, FD_CLOEXEC); + /* Successful open, save device name and return */ + strlcpy(_ups->device, devname, sizeof(_ups->device)); + return true; + diff --git a/sys-power/apcupsd/files/apcupsd-3.14.9-commfailure.patch b/sys-power/apcupsd/files/apcupsd-3.14.9-commfailure.patch new file mode 100644 index 000000000000..49641c06bef3 --- /dev/null +++ b/sys-power/apcupsd/files/apcupsd-3.14.9-commfailure.patch @@ -0,0 +1,15 @@ +Author: Tero Janka +Description: apcaccess call blocking commfailure mails (Closes: #409734). + +Index: apcupsd/platforms/etc/commfailure.in +=================================================================== +--- apcupsd.orig/platforms/etc/commfailure.in ++++ apcupsd/platforms/etc/commfailure.in +@@ -13,7 +13,5 @@ MSG="$HOSTNAME Communications with UPS $ + echo "Subject: $MSG" + echo " " + echo "$MSG" +- echo " " +- @sbindir@/apcaccess status + ) | $APCUPSD_MAIL -s "$MSG" $SYSADMIN + exit 0 diff --git a/sys-power/apcupsd/files/apcupsd-3.14.9-fix-nologin.patch b/sys-power/apcupsd/files/apcupsd-3.14.9-fix-nologin.patch new file mode 100644 index 000000000000..75f9e4449bf5 --- /dev/null +++ b/sys-power/apcupsd/files/apcupsd-3.14.9-fix-nologin.patch @@ -0,0 +1,15 @@ +Description: only prohibit logins on shutdown if login is allowed at all +Index: apcupsd-3.14.12/src/action.c +=================================================================== +--- apcupsd-3.14.12.orig/src/action.c ++++ apcupsd-3.14.12/src/action.c +@@ -208,7 +208,8 @@ static void do_shutdown(UPSINFO *ups, in + delete_lockfile(ups); + ups->set_fastpoll(); + make_file(ups, ups->pwrfailpath); +- prohibit_logins(ups); ++ if (ups->nologin.type != NEVER) ++ prohibit_logins(ups); + + if (!ups->is_slave()) { + /* diff --git a/sys-power/apcupsd/files/apcupsd-3.14.9-gapcmon.patch b/sys-power/apcupsd/files/apcupsd-3.14.9-gapcmon.patch new file mode 100644 index 000000000000..0dd1cc69aa35 --- /dev/null +++ b/sys-power/apcupsd/files/apcupsd-3.14.9-gapcmon.patch @@ -0,0 +1,33 @@ +Description: take care of some deprecated functions and format issue +Author: Thorsten Alteholz +Index: apcupsd-3.14.14/src/gapcmon/gapcmon.c +=================================================================== +--- apcupsd-3.14.14.orig/src/gapcmon/gapcmon.c 2016-07-16 03:04:22.000000000 +0200 ++++ apcupsd-3.14.14/src/gapcmon/gapcmon.c 2017-10-06 09:26:40.412004149 +0200 +@@ -1580,7 +1580,7 @@ + scaled = gdk_pixbuf_scale_simple(pixbuf, size, size, GDK_INTERP_BILINEAR); + gtk_image_set_from_pixbuf(GTK_IMAGE(pm->tray_image), scaled); + gtk_widget_show(pm->tray_image); +- gdk_pixbuf_unref(scaled); ++ g_object_unref(scaled); + } + + if (pm->window != NULL) +@@ -2889,7 +2889,7 @@ + + pch = g_strdup_printf("%s(%s) emsg=%s", pch_func, pch_topic, pch_emsg); + +- g_message(pch); ++ g_message("%s",pch); + + g_free(pch); + +@@ -4474,7 +4474,7 @@ + gtk_image_set_from_pixbuf(GTK_IMAGE(image), scaled); + gtk_box_pack_start(GTK_BOX(hbox), image, TRUE, TRUE, 0); + gtk_widget_show(image); +- gdk_pixbuf_unref(scaled); ++ g_object_unref(scaled); + + label = gtk_label_new(about_text); + gtk_label_set_use_markup(GTK_LABEL(label), TRUE); diff --git a/sys-power/apcupsd/files/apcupsd-3.14.9-wall-on-mounted-usr.patch b/sys-power/apcupsd/files/apcupsd-3.14.9-wall-on-mounted-usr.patch new file mode 100644 index 000000000000..b89a5309e5ba --- /dev/null +++ b/sys-power/apcupsd/files/apcupsd-3.14.9-wall-on-mounted-usr.patch @@ -0,0 +1,20 @@ +At halt/killpower time, /usr may already be umounted, and wall +lives in /usr. Avoid failing by using cat if needed. + +Index: apcupsd/platforms/apccontrol.in +=================================================================== +--- apcupsd.orig/platforms/apccontrol.in ++++ apcupsd/platforms/apccontrol.in +@@ -62,10 +62,10 @@ fi + + case "$1" in + killpower) +- echo "Apccontrol doing: ${APCUPSD} --killpower on UPS ${2}" | ${WALL} ++ echo "Apccontrol doing: ${APCUPSD} --killpower on UPS ${2}" | (${WALL} 2>/dev/null || cat) + sleep 10 + ${APCUPSD} --killpower +- echo "Apccontrol has done: ${APCUPSD} --killpower on UPS ${2}" | ${WALL} ++ echo "Apccontrol has done: ${APCUPSD} --killpower on UPS ${2}" | (${WALL} 2>/dev/null || cat) + ;; + commfailure) + echo "Warning communications lost with UPS ${2}" | ${WALL} diff --git a/sys-power/apcupsd/files/apcupsd.init b/sys-power/apcupsd/files/apcupsd.init new file mode 100644 index 000000000000..e544fd4f3900 --- /dev/null +++ b/sys-power/apcupsd/files/apcupsd.init @@ -0,0 +1,28 @@ +#!/sbin/openrc-run +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +: ${APCUPSD_CONFIGFILE:=/etc/apcupsd/${SVCNAME#*.}.conf} +: ${APCUPSD_POWERFAILFILE:=/etc/apcupsd/powerfail} +: ${APCUPSD_PIDFILE:=/run/${SVCNAME}.pid} +: ${APCUPSD_SSDARGS:=--wait 1000} +: ${APCUPSD_TERMTIMEOUT:=TERM/60/KILL/5} + +command="/sbin/apcupsd" +command_args="${APCUPSD_OPTS} --config-file \"${APCUPSD_CONFIGFILE}\" --pid-file \"${APCUPSD_PIDFILE}\"" +pidfile="${APCUPSD_PIDFILE}" +retry="${APCUPSD_TERMTIMEOUT}" +start_stop_daemon_args="${APCUPSD_SSDARGS}" +required_files="${APCUPSD_CONFIGFILE}" + +depend() { + use dns +} + +start_pre() { + if [ -e "${APCUPSD_POWERFAILFILE}" ] ; then + ebegin "Removing stale ${APCUPSD_POWERFAILFILE}" + rm "${APCUPSD_POWERFAILFILE}" + eend $? + fi +} -- cgit v1.2.3