ports/182042: [NEW PORT] sysutils/xfce4-diskperf-plugin
Danilo Egêa Gondolfo
danilogondolfo at gmail.com
Thu Sep 12 15:20:00 UTC 2013
>Number: 182042
>Category: ports
>Synopsis: [NEW PORT] sysutils/xfce4-diskperf-plugin
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Sep 12 15:20:00 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Danilo Egêa Gondolfo
>Release: FreeBSD 9.2-RC4
>Organization:
>Environment:
FreeBSD mac 9.2-RC4 FreeBSD 9.2-RC4 #4 r255480M: Wed Sep 11 19:15:08 BRT 2013 root at mac:/usr/obj/usr/src/sys/MAC amd64
>Description:
This plugin displays instant disk/partition performance (bytes transfered per second) for FreeBSD.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# xfce4-diskperf-plugin
# xfce4-diskperf-plugin/Makefile
# xfce4-diskperf-plugin/distinfo
# xfce4-diskperf-plugin/files
# xfce4-diskperf-plugin/files/patch-panel-plugin__devperf.c
# xfce4-diskperf-plugin/files/patch-panel-plugin__main.c
# xfce4-diskperf-plugin/pkg-descr
# xfce4-diskperf-plugin/pkg-plist
#
echo c - xfce4-diskperf-plugin
mkdir -p xfce4-diskperf-plugin > /dev/null 2>&1
echo x - xfce4-diskperf-plugin/Makefile
sed 's/^X//' >xfce4-diskperf-plugin/Makefile << '48d142e7a42de6f38881782c4101cc96'
X# Created by: Danilo Egea Gondolfo <danilogondolfo at gmail.com>
X# $FreeBSD$
X
XPORTNAME= xfce4-diskperf-plugin
XPORTVERSION= 2.5.4
XCATEGORIES= sysutils xfce
XMASTER_SITES= ${MASTER_SITE_XFCE}
XMASTER_SITE_SUBDIR= src/panel-plugins/${PORTNAME}/${PORTVERSION:R}
XDIST_SUBDIR= xfce4
X
XMAINTAINER= danilogondolfo at gmail.com
XCOMMENT= Graphical representation of the disk IO
X
XGNU_CONFIGURE= yes
XUSE_BZIP2= yes
XUSE_GNOME= gtk20 intltool intlhack
XUSE_XFCE= configenv libmenu panel
XINSTALLS_ICONS= yes
XUSES= gmake pkgconfig
X
XLDFLAGS+= -ldevstat
X
XOPTIONS_DEFINE= NLS
XOPTIONS_SUB= yes
XNLS_CONFIGURE_ENABLE= nls
XNLS_USES= gettext
X
X.include <bsd.port.options.mk>
X
Xpost-patch:
X.if empty(PORT_OPTIONS:MNLS)
X @${REINPLACE_CMD} -e 's|[[:blank:]]po||' \
X -e 's|po$$||' ${WRKSRC}/Makefile.in
X.endif
X
X.include <bsd.port.mk>
48d142e7a42de6f38881782c4101cc96
echo x - xfce4-diskperf-plugin/distinfo
sed 's/^X//' >xfce4-diskperf-plugin/distinfo << '471e4143ec4530a0cc5e71785310e62c'
XSHA256 (xfce4/xfce4-diskperf-plugin-2.5.4.tar.bz2) = aab6b9c4e2f78620920efac6874c4edf426f05b63b94cfda0da8c99a91110a0b
XSIZE (xfce4/xfce4-diskperf-plugin-2.5.4.tar.bz2) = 321974
471e4143ec4530a0cc5e71785310e62c
echo c - xfce4-diskperf-plugin/files
mkdir -p xfce4-diskperf-plugin/files > /dev/null 2>&1
echo x - xfce4-diskperf-plugin/files/patch-panel-plugin__devperf.c
sed 's/^X//' >xfce4-diskperf-plugin/files/patch-panel-plugin__devperf.c << '098a9a5cef03e185263c3cd3cad08d06'
X--- ./panel-plugin/devperf.c.orig 2012-04-03 10:22:41.000000000 -0300
X+++ ./panel-plugin/devperf.c 2013-09-11 17:45:00.000000000 -0300
X@@ -225,6 +225,94 @@
X
X /************************** Linux End ***************/
X
X+#elif defined(__FreeBSD__)
X+
X+#include <sys/disk.h>
X+#include <sys/param.h>
X+#include <sys/sysctl.h>
X+#include <sys/types.h>
X+#include <sys/errno.h>
X+#include <sys/resource.h>
X+#include <sys/time.h>
X+#include <devstat.h>
X+#include <fcntl.h>
X+#include <limits.h>
X+#include <string.h>
X+#include <syslog.h>
X+#include <stdarg.h>
X+
X+#define MAXNAMELEN 256
X+
X+int DevPerfInit ()
X+{
X+ return (0);
X+}
X+
X+int DevCheckStatAvailability(char const **strptr)
X+{
X+ return (0);
X+}
X+
X+int DevGetPerfData (const void *p_pvDevice, struct devperf_t *perf)
X+{
X+ struct timeval tv;
X+ struct timespec ts;
X+ struct statinfo stats;
X+ struct devinfo dinfo;
X+ struct devstat dev;
X+ kvm_t *kd = NULL;
X+ int i, found = 0;
X+ char *check_dev = (char *) p_pvDevice;
X+
X+ memset(&stats, 0, sizeof(stats));
X+ memset(&dinfo, 0, sizeof(dinfo));
X+ stats.dinfo = &dinfo;
X+
X+ if(devstat_getdevs(kd, &stats) == -1) {
X+ syslog(0, "DISKPERF: getdevs fail");
X+ }
X+
X+ for(found = 0, i = 0; i < (stats.dinfo)->numdevs; i++) {
X+ char dev_name[MAXNAMELEN];
X+ dev = (stats.dinfo)->devices[i];
X+ snprintf(dev_name, MAXNAMELEN-1, "%s%d",
X+ dev.device_name, dev.unit_number);
X+ if ((check_dev != NULL) && (strcmp(check_dev, dev_name) != 0))
X+ continue;
X+ else {
X+ found = 1;
X+ break;
X+ }
X+
X+ }
X+
X+ if(check_dev != NULL && found) {
X+ perf->wbytes = dev.bytes[DEVSTAT_WRITE];
X+ perf->rbytes = dev.bytes[DEVSTAT_READ];
X+ gettimeofday (&tv, 0);
X+ perf->timestamp_ns = (uint64_t)1000ull * 1000ull * 1000ull *
X+ tv.tv_sec + 1000ull * tv.tv_usec;
X+ perf->qlen = dev.start_count - dev.end_count;
X+ // I'm not sure about rbusy and wbusy calculation
X+ bintime2timespec(&dev.busy_time, &ts);
X+ perf->rbusy_ns = (uint64_t) ts.tv_nsec;
X+ perf->wbusy_ns = perf->rbusy_ns;
X+ }
X+
X+ return (0);
X+}
X+
X+#if 0 /* Standalone test purpose */
X+int main ()
X+{
X+ struct devperf_t oPerf;
X+ DevGetPerfData ((void*)"ada0", &oPerf);
X+ printf ("%lu\t%lu\n", oPerf.rbytes, oPerf.wbytes);
X+ return (0);
X+}
X+#endif
X+
X+
X
X #elif defined(__NetBSD__)
X /**************************************************************/
098a9a5cef03e185263c3cd3cad08d06
echo x - xfce4-diskperf-plugin/files/patch-panel-plugin__main.c
sed 's/^X//' >xfce4-diskperf-plugin/files/patch-panel-plugin__main.c << '602017401b09ce508ee4e38d9755a376'
X--- ./panel-plugin/main.c.orig 2012-06-23 05:02:16.000000000 -0300
X+++ ./panel-plugin/main.c 2013-09-11 17:44:45.000000000 -0300
X@@ -86,7 +86,7 @@
X typedef struct param_t {
X /* Configurable parameters */
X char acDevice[64];
X-#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X dev_t st_rdev;
X #endif
X int fTitleDisplayed;
X@@ -172,7 +172,7 @@
X struct param_t *poConf = &(p_poPlugin->oConf.oParam);
X struct monitor_t *poMonitor = &(p_poPlugin->oMonitor);
X struct perfbar_t *poPerf = poMonitor->aoPerfBar;
X-#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X struct stat oStat;
X #endif
X uint64_t iInterval_ns, rbytes, wbytes, iRBusy_ns, iWBusy_ns;
X@@ -185,7 +185,7 @@
X rbytes = wbytes = iRBusy_ns = iWBusy_ns = -1;
X memset (&oPerf, 0, sizeof (oPerf));
X oPerf.qlen = -1;
X-#if defined (__NetBSD__) || defined(__OpenBSD__) || defined(__sun__)
X+#if defined(__FreeBSD__) || defined (__NetBSD__) || defined(__OpenBSD__) || defined(__sun__)
X status = DevGetPerfData (poConf->acDevice, &oPerf);
X #else
X if (poConf->st_rdev == 0)
X@@ -429,7 +429,7 @@
X struct diskperf_t *poPlugin;
X struct param_t *poConf;
X struct monitor_t *poMonitor;
X-#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X struct stat oStat;
X int status;
X #endif
X@@ -444,6 +444,9 @@
X #if defined(__NetBSD__) || defined(__OpenBSD__)
X strncpy (poConf->acDevice, "wd0", 64);
X strncpy (poConf->acTitle, "wd0", 16);
X+#elif defined(__FreeBSD__)
X+ strncpy (poConf->acDevice, "ada0", 64);
X+ strncpy (poConf->acTitle, "ada0", 16);
X #elif defined(__sun__)
X strncpy (poConf->acDevice, "sd0", 64);
X strncpy (poConf->acTitle, "sd0", 16);
X@@ -517,7 +520,7 @@
X struct param_t *poConf = &(poPlugin->oConf.oParam);
X struct monitor_t *poMonitor = &(poPlugin->oMonitor);
X Widget_t *pw2ndBar = poPlugin->oMonitor.awProgressBar + 1;
X-#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X struct stat oStat;
X int status;
X #endif
X@@ -534,7 +537,7 @@
X if ((value = xfce_rc_read_entry (rc, (CONF_DEVICE), NULL))) {
X memset (poConf->acDevice, 0, sizeof (poConf->acDevice));
X strncpy (poConf->acDevice, value, sizeof (poConf->acDevice) - 1);
X-#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X status = stat (poConf->acDevice, &oStat);
X poConf->st_rdev = (status == -1 ? 0 : oStat.st_rdev);
X #endif
X@@ -666,7 +669,7 @@
X struct diskperf_t *poPlugin = (diskperf_t *) p_pvPlugin;
X struct param_t *poConf = &(poPlugin->oConf.oParam);
X const char *pcDevice = gtk_entry_get_text (GTK_ENTRY (p_wTF));
X-#if !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X+#if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__) && !defined(__sun__)
X struct stat oStat;
X int status;
X
602017401b09ce508ee4e38d9755a376
echo x - xfce4-diskperf-plugin/pkg-descr
sed 's/^X//' >xfce4-diskperf-plugin/pkg-descr << '6405b3792ff481c5e94eecfad10a34f5'
XPanel plugin to display a graphical representation of the disks IO.
X
XWWW: http://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin
6405b3792ff481c5e94eecfad10a34f5
echo x - xfce4-diskperf-plugin/pkg-plist
sed 's/^X//' >xfce4-diskperf-plugin/pkg-plist << '152b1a8da5122cdd2176dc9637a8f008'
Xlib/xfce4/panel/plugins/libdiskperf.so
Xlib/xfce4/panel/plugins/libdiskperf.la
X%%NLS%%share/locale/ar/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ast/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ca/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/cs/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/da/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/de/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/el/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/en_GB/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/es/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/eu/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/fr/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/gl/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/hu/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/id/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/it/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ja/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ko/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/lt/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/lv/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/nb/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/nl/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/pa/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/pl/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/pt/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/pt_BR/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ru/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/sk/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/sq/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/sv/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/tr/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ug/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/uk/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ur/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/ur_PK/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/zh_CN/LC_MESSAGES/xfce4-diskperf-plugin.mo
X%%NLS%%share/locale/zh_TW/LC_MESSAGES/xfce4-diskperf-plugin.mo
Xshare/xfce4/panel/plugins/diskperf.desktop
X%%NLS%%@dirrmtry share/locale/ur_PK/LC_MESSAGES
X%%NLS%%@dirrmtry share/locale/ur_PK
X%%NLS%%@dirrmtry share/locale/ur/LC_MESSAGES
X%%NLS%%@dirrmtry share/locale/ur
X%%NLS%%@dirrmtry share/locale/ug/LC_MESSAGES
X%%NLS%%@dirrmtry share/locale/ug
X%%NLS%%@dirrmtry share/locale/ast/LC_MESSAGES
X%%NLS%%@dirrmtry share/locale/ast
X at dirrmtry share/xfce4/panel/plugins
X at dirrmtry share/xfce4/panel
X at dirrmtry share/xfce4
X at dirrmtry lib/xfce4/panel/plugins
X at dirrmtry lib/xfce4/panel
X at dirrmtry lib/xfce4
152b1a8da5122cdd2176dc9637a8f008
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list