From 73b9eb1973d6ca6954412dd58b552ef73fe9ae5e Mon Sep 17 00:00:00 2001 From: Michael Perlov Date: Tue, 16 Oct 2018 15:03:32 +0300 Subject: sys-power/nut: Add USE gui to install NUT-Monitor Acked-by: Matthew Thode Signed-off-by: Michael Perlov Signed-off-by: Andreas Sturmlechner Package-Manager: Portage-2.3.51, Repoman-2.3.11 --- sys-power/nut/files/NUT-Monitor-1.3-paths.patch | 48 +++++++++++++++++++++++++ sys-power/nut/metadata.xml | 1 + sys-power/nut/nut-2.7.4-r2.ebuild | 30 ++++++++++++++-- 3 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 sys-power/nut/files/NUT-Monitor-1.3-paths.patch (limited to 'sys-power') diff --git a/sys-power/nut/files/NUT-Monitor-1.3-paths.patch b/sys-power/nut/files/NUT-Monitor-1.3-paths.patch new file mode 100644 index 000000000000..17bedaead727 --- /dev/null +++ b/sys-power/nut/files/NUT-Monitor-1.3-paths.patch @@ -0,0 +1,48 @@ +--- a/scripts/python/app/NUT-Monitor ++++ b/scripts/python/app/NUT-Monitor +@@ -70,7 +70,7 @@ + ( cmd_opts, args ) = opt_parser.parse_args() + + +- self.__glade_file = os.path.join( os.path.dirname( sys.argv[0] ), "gui-1.3.glade" ) ++ self.__glade_file = '/usr/share/nut/gui-1.3.glade' + + self.__widgets["interface"] = gtk.glade.XML( self.__glade_file, "window1", APP ) + self.__widgets["main_window"] = self.__widgets["interface"].get_widget("window1") +@@ -103,11 +103,11 @@ + + # Create the tray icon and connect it to the show/hide method... + self.__widgets["status_icon"] = gtk.StatusIcon() +- self.__widgets["status_icon"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "on_line.png" ) ) ++ self.__widgets["status_icon"].set_from_file( "/usr/share/nut/pixmaps/on_line.png" ) + self.__widgets["status_icon"].set_visible( True ) + self.__widgets["status_icon"].connect( "activate", self.tray_activated ) + +- self.__widgets["ups_status_image"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "on_line.png" ) ) ++ self.__widgets["ups_status_image"].set_from_file( "/usr/share/nut/pixmaps/on_line.png" ) + + # Define interface callbacks actions + self.__callbacks = { "on_window1_destroy" : self.quit, +@@ -265,8 +265,8 @@ + #------------------------------------------------------------------- + # Change the status icon and tray icon + def change_status_icon( self, icon="on_line", blink=False ) : +- self.__widgets["status_icon"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "%s.png" % icon ) ) +- self.__widgets["ups_status_image"].set_from_file( os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "%s.png" % icon ) ) ++ self.__widgets["status_icon"].set_from_file( "/usr/share/nut/pixmaps/%s.png" % icon ) ++ self.__widgets["ups_status_image"].set_from_file( "/usr/share/nut/pixmaps/%s.png" % icon ) + self.__widgets["status_icon"].set_blinking( blink ) + + #------------------------------------------------------------------- +@@ -719,9 +719,9 @@ + + for k,v in vars.iteritems() : + if ( rwvars.has_key( k ) ) : +- icon_file = os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "var-rw.png" ) ++ icon_file = "/usr/share/nut/pixmaps/var-rw.png" + else : +- icon_file = os.path.join( os.path.dirname( sys.argv[0] ), "pixmaps", "var-ro.png" ) ++ icon_file = "/usr/share/nut/pixmaps/var-ro.png" + + icon = gtk.gdk.pixbuf_new_from_file( icon_file ) + self.__widgets["ups_vars_tree_store"].append( [ icon, k, v ] ) diff --git a/sys-power/nut/metadata.xml b/sys-power/nut/metadata.xml index d9ab89aeb368..85d0b12815ae 100644 --- a/sys-power/nut/metadata.xml +++ b/sys-power/nut/metadata.xml @@ -9,6 +9,7 @@ prometheanfire@gentoo.org + Install NUT-Monitor python gui Support IPMI-based UPSes. Driver for Eltek UPS models with AL175 alarm module Driver for UPSes supporting the serial BCM/XCP protocol diff --git a/sys-power/nut/nut-2.7.4-r2.ebuild b/sys-power/nut/nut-2.7.4-r2.ebuild index 5045bf0a37cc..031f61d9dd95 100644 --- a/sys-power/nut/nut-2.7.4-r2.ebuild +++ b/sys-power/nut/nut-2.7.4-r2.ebuild @@ -3,7 +3,9 @@ EAPI=6 -inherit autotools bash-completion-r1 fixheadtails user systemd flag-o-matic toolchain-funcs +PYTHON_COMPAT=( python2_7 ) + +inherit autotools bash-completion-r1 desktop fixheadtails flag-o-matic python-single-r1 systemd toolchain-funcs user MY_P=${P/_/-} @@ -14,11 +16,13 @@ LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~x86-fbsd" -IUSE="cgi ipmi snmp +usb selinux ssl tcpd xml zeroconf" +IUSE="cgi gui ipmi snmp +usb selinux ssl tcpd xml zeroconf" +REQUIRED_USE="gui? ( ${PYTHON_REQUIRED_USE} )" COMMON_DEPEND="dev-libs/libltdl:* virtual/udev cgi? ( >=media-libs/gd-2[png] ) + gui? ( dev-python/pygtk[${PYTHON_USEDEP}] ) ipmi? ( sys-libs/freeipmi ) snmp? ( net-analyzer/net-snmp ) ssl? ( >=dev-libs/openssl-1 ) @@ -88,6 +92,7 @@ pkg_setup() { # in some cases on old systems it wasn't in the nut group either! gpasswd -a nut nut 2>/dev/null warningmsg ewarn + use gui && python-single-r1_pkg_setup } src_prepare() { @@ -106,6 +111,8 @@ src_prepare() { -e 's:@LIBSSL_LDFLAGS@:@LIBSSL_LIBS@:' \ lib/libupsclient{.pc,-config}.in || die #361685 + use gui && eapply "${FILESDIR}"/NUT-Monitor-1.3-paths.patch + eautoreconf } @@ -169,6 +176,25 @@ src_install() { elog "If you use lighttpd, see lighttpd_nut.conf in the documentation." fi + if use gui; then + python_fix_shebang scripts/python/app + python_domodule scripts/python/module/PyNUT.py + python_doscript scripts/python/app/NUT-Monitor + + insinto /usr/share/nut + doins scripts/python/app/gui-1.3.glade + + dodir /usr/share/nut/pixmaps + insinto /usr/share/nut/pixmaps + doins scripts/python/app/pixmaps/* + + sed -i -e 's/nut-monitor.png/nut-monitor/' -e 's/Application;//' \ + scripts/python/app/${PN}-monitor.desktop || die + + doicon scripts/python/app/${PN}-monitor.png + domenu scripts/python/app/${PN}-monitor.desktop + fi + # this must be done after all of the install phases for i in "${D}"/etc/nut/*.sample ; do mv "${i}" "${i/.sample/}" || die -- cgit v1.2.3-18-g5258