summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Perlov <perlovka@gmail.com>2018-10-16 15:03:32 +0300
committerAndreas Sturmlechner <asturm@gentoo.org>2018-10-27 21:02:37 +0200
commit73b9eb1973d6ca6954412dd58b552ef73fe9ae5e (patch)
tree53b4e7bd869868cdea342d1b597c83723fe07bbd /sys-power/nut
parentsys-power/nut: EAPI-6 bump, fix repoman warnings (diff)
downloadgentoo-73b9eb1973d6ca6954412dd58b552ef73fe9ae5e.tar.gz
gentoo-73b9eb1973d6ca6954412dd58b552ef73fe9ae5e.tar.bz2
gentoo-73b9eb1973d6ca6954412dd58b552ef73fe9ae5e.zip
sys-power/nut: Add USE gui to install NUT-Monitor
Acked-by: Matthew Thode <prometheanfire@gentoo.org> Signed-off-by: Michael Perlov <perlovka@gmail.com> Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'sys-power/nut')
-rw-r--r--sys-power/nut/files/NUT-Monitor-1.3-paths.patch48
-rw-r--r--sys-power/nut/metadata.xml1
-rw-r--r--sys-power/nut/nut-2.7.4-r2.ebuild30
3 files changed, 77 insertions, 2 deletions
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 @@
<email>prometheanfire@gentoo.org</email>
</maintainer>
<use>
+ <flag name="gui">Install NUT-Monitor python gui</flag>
<flag name="ipmi">Support IPMI-based UPSes.</flag>
<flag name="ups_drivers_al175">Driver for Eltek UPS models with AL175 alarm module</flag>
<flag name="ups_drivers_bcmxcp">Driver for UPSes supporting the serial BCM/XCP protocol</flag>
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