Date: Sun, 7 Nov 2010 15:28:48 +0100 (CET) From: Emanuel Haupt <ehaupt@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/152015: [patch] sysutils/xfce4-genmon-plugin - fix with current xfce4 version Message-ID: <201011071428.oA7ESmW4094976@freefall.freebsd.org> Resent-Message-ID: <201011071430.oA7EUH6v029090@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 152015 >Category: ports >Synopsis: [patch] sysutils/xfce4-genmon-plugin - fix with current xfce4 version >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Sun Nov 07 14:30:17 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Emanuel Haupt >Release: FreeBSD 8.1-PRERELEASE i386 >Organization: >Environment: System: FreeBSD freefall.freebsd.org 8.1-PRERELEASE FreeBSD 8.1-PRERELEASE #44 r209978: Tue Jul 13 08:42:03 UTC 2010 simon@freefall.freebsd.org:/usr/src/sys/i386/compile/FREEFALL i386 >Description: The current version of sysutils/xfce4-genmon-plugin crashes immediately when the initial configuration dialog is closed. I extracted the relevant patches from the debian lenny package base. After applying the patches sysutils/xfce4-genmon-plugin works again as expected. >How-To-Repeat: >Fix: --- xfce4-genmon-plugin.patch begins here --- Index: Makefile =================================================================== RCS file: /home/pcvs/ports/sysutils/xfce4-genmon-plugin/Makefile,v retrieving revision 1.30 diff -u -r1.30 Makefile --- Makefile 31 May 2010 15:27:26 -0000 1.30 +++ Makefile 7 Nov 2010 10:35:59 -0000 @@ -7,9 +7,9 @@ PORTNAME= xfce4-genmon-plugin PORTVERSION= 3.2 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= sysutils xfce -MASTER_SITES= http://goodies.xfce.org/releases/${PORTNAME}/ +MASTER_SITES= CRITICAL/xfce4 DIST_SUBDIR= xfce4 MAINTAINER= miwi@FreeBSD.org Index: files/patch-panel-plugin__cmdspawn.c =================================================================== RCS file: files/patch-panel-plugin__cmdspawn.c diff -N files/patch-panel-plugin__cmdspawn.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-panel-plugin__cmdspawn.c 7 Nov 2010 10:35:59 -0000 @@ -0,0 +1,33 @@ +--- ./panel-plugin/cmdspawn.c.orig 2007-11-23 16:32:40.000000000 +0100 ++++ ./panel-plugin/cmdspawn.c 2010-11-07 11:29:03.000000000 +0100 +@@ -184,6 +184,7 @@ + return (-1); + case 0: + /* Redirect stdout/stderr to associated pipe's write-ends */ ++ close(0); /* stdin is not used in child */ + for (i = 0; i < OUT_ERR; i++) { + j = i + 1; // stdout/stderr file descriptor + close (j); +@@ -199,6 +200,9 @@ + exit (-1); + } + ++ for (i = 0; i < OUT_ERR; i++) ++ close (aaiPipe[i][WR]); /* close write end of pipes in parent */ ++ + /* Wait for child completion */ + if (wait == 1) + { +@@ -231,10 +235,9 @@ + } + + End: +- /* Close created pipes */ ++ /* Close read end of pipes */ + for (i = 0; i < OUT_ERR; i++) +- for (j = 0; j < RD_WR; j++) +- close (aaiPipe[i][j]); ++ close (aaiPipe[i][RD]); + + return (-fError); + }// Spawn() Index: files/patch-panel-plugin__main.c =================================================================== RCS file: files/patch-panel-plugin__main.c diff -N files/patch-panel-plugin__main.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ files/patch-panel-plugin__main.c 7 Nov 2010 10:35:59 -0000 @@ -0,0 +1,32 @@ +--- ./panel-plugin/main.c.orig 2008-03-15 23:38:18.000000000 +0100 ++++ ./panel-plugin/main.c 2010-11-07 11:28:17.000000000 +0100 +@@ -32,6 +32,7 @@ + + #include <libxfce4util/libxfce4util.h> + #include <libxfcegui4/dialogs.h> ++#include <libxfcegui4/xfce-exec.h> + #include <libxfce4panel/xfce-panel-plugin.h> + #include <libxfce4panel/xfce-panel-convenience.h> + +@@ -94,10 +95,18 @@ + { + struct genmon_t *poPlugin = (genmon_t *) p_pvPlugin; + struct monitor_t *poMonitor = &(poPlugin->oMonitor); +- char result[256]; ++ GError *error = NULL; ++ ++ xfce_exec(poMonitor->onClickCmd, 0, 0, &error); ++ if (error) { ++ char first[256]; ++ g_snprintf (first, sizeof(first), _("Could not run \"%s\""), poMonitor->onClickCmd); ++ xfce_message_dialog (NULL, _("Xfce Panel"), ++ GTK_STOCK_DIALOG_ERROR, first, error->message, ++ GTK_STOCK_CLOSE, GTK_RESPONSE_OK, NULL); ++ g_error_free (error); ++ } + +- genmon_SpawnCmd (poMonitor->onClickCmd, result, +- sizeof (poMonitor->onClickCmd), 0); + } + + /**************************************************************/ --- xfce4-genmon-plugin.patch ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011071428.oA7ESmW4094976>