ports/56493: New port: deskutils/superkaramba

Markus Brueffer brueffer at phoenix-systems.de
Fri Sep 5 15:20:21 UTC 2003


>Number:         56493
>Category:       ports
>Synopsis:       New port: deskutils/superkaramba
>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:   Fri Sep 05 08:20:16 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator:     Markus Brueffer
>Release:        FreeBSD 4.9-PRERELEASE i386
>Organization:
>Environment:
System: FreeBSD sethos.phoenix 4.9-PRERELEASE FreeBSD 4.9-PRERELEASE #11: Thu Sep 4 16:51:15 CEST 2003 root at sethos.phoenix:/usr/obj/usr/src/sys/SETHOS i386

>Description:
	New port: deskutils/superkaramba

	SuperKaramba is, in simple terms, a tool that allows you to easily
	create interactive eye-candy on your KDE desktop.

	Here are just some examples of the things that can be done:

	  o Display system information such as CPU Usage, MP3 playing, etc.
	  o Create cool custom toolbars that work any way imaginable
	  o Create little games or virtual pets that live on your desktop
	  o Display information from the internet, such as weather and headlines

	The possibilities really are endless!

	WWW: http://netdragon.sourceforge.net

>How-To-Repeat:
>Fix:

--- superkaramba.shar begins here ---
# 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:
#
#	superkaramba
#	superkaramba/files
#	superkaramba/files/patch-cpusensor.cpp
#	superkaramba/files/patch-uptimesensor.cpp
#	superkaramba/files/patch-networksensor.cpp
#	superkaramba/files/patch-networksensor.h
#	superkaramba/files/patch-memsensor.cpp
#	superkaramba/files/patch-memsensor.h
#	superkaramba/files/patch-src::Makefile.in
#	superkaramba/files/patch-sensorsensor.cpp
#	superkaramba/files/patch-sensorsensor.h
#	superkaramba/pkg-plist
#	superkaramba/pkg-descr
#	superkaramba/distinfo
#	superkaramba/Makefile
#
echo c - superkaramba
mkdir -p superkaramba > /dev/null 2>&1
echo c - superkaramba/files
mkdir -p superkaramba/files > /dev/null 2>&1
echo x - superkaramba/files/patch-cpusensor.cpp
sed 's/^X//' >superkaramba/files/patch-cpusensor.cpp << 'END-of-superkaramba/files/patch-cpusensor.cpp'
X--- src/cpusensor.cpp.orig	Mon Apr 21 15:17:03 2003
X+++ src/cpusensor.cpp	Wed Aug 27 16:27:57 2003
X@@ -8,6 +8,14 @@
X  *   (at your option) any later version.                                   *
X  ***************************************************************************/
X 
X+#ifdef __FreeBSD__
X+#include <sys/time.h>
X+#include <sys/dkstat.h>
X+#include <sys/param.h>
X+#include <sys/sysctl.h>
X+#include <sys/resource.h>
X+#endif
X+
X #include "cpusensor.h"
X 
X CPUSensor::CPUSensor( QString cpu, int interval ) : Sensor( interval )
X@@ -24,6 +32,19 @@
X 
X void CPUSensor::getTicks (long &u,long &s,long &n,long &i)
X {
X+#ifdef __FreeBSD__
X+	static long cp_time[CPUSTATES];
X+
X+        size_t size = sizeof(cp_time);
X+
X+	/* get the cp_time array */
X+	if (sysctlbyname("kern.cp_time", &cp_time, &size, NULL, 0) != -1) {
X+		u = cp_time[CP_USER];
X+		s = cp_time[CP_SYS] + cp_time[CP_INTR];
X+		n = cp_time[CP_NICE];
X+		i = cp_time[CP_IDLE];
X+	}
X+#else
X     QFile file("/proc/stat");
X     QString line;
X     if ( file.open(IO_ReadOnly | IO_Translate) )
X@@ -46,6 +67,7 @@
X         i = rx.cap(4).toLong();
X         file.close();
X     }
X+#endif
X     else
X     {
X         u = 0;
X@@ -53,7 +75,6 @@
X         n = 0;
X         i = 0;
X     }
X-
X }
X 
X int CPUSensor::getCPULoad()
END-of-superkaramba/files/patch-cpusensor.cpp
echo x - superkaramba/files/patch-uptimesensor.cpp
sed 's/^X//' >superkaramba/files/patch-uptimesensor.cpp << 'END-of-superkaramba/files/patch-uptimesensor.cpp'
X--- src/uptimesensor.cpp.orig	Wed Aug 27 01:32:14 2003
X+++ src/uptimesensor.cpp	Wed Aug 27 02:34:41 2003
X@@ -7,6 +7,11 @@
X  *   the Free Software Foundation; either version 2 of the License, or     *
X  *   (at your option) any later version.                                   *
X  ***************************************************************************/
X+#ifdef __FreeBSD__
X+#include <sys/time.h>
X+#include <sys/sysctl.h>
X+#endif
X+
X #include "uptimesensor.h"
X 
X UptimeSensor::UptimeSensor( int interval ) : Sensor( interval )
X@@ -16,6 +21,42 @@
X 
X void UptimeSensor::update()
X {
X+#ifdef __FreeBSD__
X+	struct timeval  boottime;
X+	time_t          now;            /* the current time of day */
X+
X+	double avenrun[3];
X+	time_t uptime;
X+	int days, hours, i, mins, secs;
X+	int mib[2];
X+	size_t size;
X+	char buf[256];
X+
X+        /*
X+         * Get time of day.
X+         */
X+        (void)time(&now);
X+
X+        /*
X+         * Determine how long system has been up.
X+         * (Found by looking getting "boottime" from the kernel)
X+         */
X+        mib[0] = CTL_KERN;
X+        mib[1] = KERN_BOOTTIME;
X+        size = sizeof(boottime);
X+        if (sysctl(mib, 2, &boottime, &size, NULL, 0) != -1 &&
X+            boottime.tv_sec != 0) {
X+                uptime = now - boottime.tv_sec;
X+                if (uptime > 60)
X+                        uptime += 30;
X+                days = uptime / 86400;
X+                uptime %= 86400;
X+                hours = uptime / 3600;
X+                uptime %= 3600;
X+                mins = uptime / 60;
X+                secs = uptime % 60;
X+        }
X+#else
X     QFile file("/proc/uptime");
X     QString line;
X     if ( file.open(IO_ReadOnly | IO_Translate) )
X@@ -35,7 +76,7 @@
X         int mins = uptime / 60;
X         uptime -= mins * 60;
X         int secs = uptime;
X-
X+#endif
X 
X         QString format;
X         SensorParams *sp;
X@@ -63,5 +104,7 @@
X             meter->setValue(format);
X             ++it;
X         }
X+#ifndef __FreeBSD__
X     }
X+#endif
X }
END-of-superkaramba/files/patch-uptimesensor.cpp
echo x - superkaramba/files/patch-networksensor.cpp
sed 's/^X//' >superkaramba/files/patch-networksensor.cpp << 'END-of-superkaramba/files/patch-networksensor.cpp'
X--- src/networksensor.cpp.orig	Mon Apr 21 15:17:03 2003
X+++ src/networksensor.cpp	Thu Aug 28 00:11:45 2003
X@@ -7,23 +7,76 @@
X  *   the Free Software Foundation; either version 2 of the License, or     *
X  *   (at your option) any later version.                                   *
X  ***************************************************************************/
X+#ifdef __FreeBSD__
X+#include <sys/param.h>
X+#include <sys/sysctl.h>
X+#endif
X+
X #include "networksensor.h"
X 
X NetworkSensor::NetworkSensor( QString dev, int interval ):Sensor( interval )
X {
X+#ifdef __FreeBSD__
X    device = dev.lower();
X    if( device == "" )
X-   	device = "eth0";
X+        device = "lo0";
X+
X+   /* Determine number of interfaces */
X+   u_int   n    = 0;
X+   size_t  nlen = 0;
X+   nlen = sizeof(n);
X+   sysctlbyname("net.link.generic.system.ifcount", &n, &nlen, NULL, 0);  
X+
X+   size_t  if_miblen = 0;
X+   if_miblen = sizeof(if_mib);
X+   static  int name[] = { CTL_NET,
X+                          PF_LINK,
X+                          NETLINK_GENERIC,
X+                          IFMIB_IFDATA,
X+                          0,
X+                          IFDATA_GENERAL };
X+
X+   /* Find the interface we want to monitor */
X+   for (int i = 1; i <= n; ++i) {
X+        name[4] = i;
X+
X+	/* Get data for iface-number i */
X+        sysctl(name, 6, (void*)&if_mib, (size_t*)&if_miblen, (void*)NULL, (size_t)0);
X 
X+	/* We found the right interface? */
X+	if (QString(if_mib.ifmd_name) == device) {
X+           if_number = i;
X+           break;
X+	}
X+   }
X+#else
X+   device = dev.lower();
X+   if( device == "" )
X+   	device = "eth0";
X+#endif
X      getInOutBytes(receivedBytes,transmittedBytes);
X     netTimer.start();
X-
X }
X NetworkSensor::~NetworkSensor()
X {
X }
X void NetworkSensor::getInOutBytes ( unsigned long &in,unsigned long &out) const
X {
X+#ifdef __FreeBSD__
X+   size_t  if_miblen = 0;
X+   if_miblen = sizeof(if_mib);
X+   static  int name[] = { CTL_NET,
X+                          PF_LINK,
X+                          NETLINK_GENERIC,
X+                          IFMIB_IFDATA,
X+                          if_number,
X+                          IFDATA_GENERAL };
X+
X+   sysctl(name, 6, (void*)&if_mib, (size_t*)&if_miblen, (void*)NULL, (size_t)0);
X+
X+   in = if_mib.ifmd_data.ifi_ibytes;
X+   out = if_mib.ifmd_data.ifi_obytes;
X+#else
X     QFile file("/proc/net/dev");
X     QString line;
X     if ( file.open(IO_ReadOnly | IO_Translate) )
X@@ -49,6 +102,7 @@
X         }
X     file.close();
X     }
X+#endif
X }
X 
X void NetworkSensor::update()
END-of-superkaramba/files/patch-networksensor.cpp
echo x - superkaramba/files/patch-networksensor.h
sed 's/^X//' >superkaramba/files/patch-networksensor.h << 'END-of-superkaramba/files/patch-networksensor.h'
X--- src/networksensor.h.orig	Mon Apr 21 15:17:03 2003
X+++ src/networksensor.h	Wed Aug 27 16:36:58 2003
X@@ -15,6 +15,12 @@
X #include <qdatetime.h>
X #include <qfile.h>
X #include <qregexp.h>
X+#ifdef __FreeBSD__
X+#include <sys/types.h>
X+#include <sys/socket.h>
X+#include <net/if.h>
X+#include <net/if_mib.h>
X+#endif
X 
X class NetworkSensor :  public Sensor
X {
X@@ -30,7 +36,10 @@
X     unsigned long transmittedBytes;
X     QTime netTimer;
X     QString device;
X-
X+#ifdef __FreeBSD__
X+    int if_number;
X+    ifmibdata if_mib;
X+#endif
X     void getInOutBytes (unsigned long &in,unsigned long &out) const;
X 
X };
END-of-superkaramba/files/patch-networksensor.h
echo x - superkaramba/files/patch-memsensor.cpp
sed 's/^X//' >superkaramba/files/patch-memsensor.cpp << 'END-of-superkaramba/files/patch-memsensor.cpp'
X--- src/memsensor.cpp.orig	Mon Apr 21 15:17:03 2003
X+++ src/memsensor.cpp	Fri Sep  5 12:07:36 2003
X@@ -12,63 +12,202 @@
X #include <qtextstream.h>
X #include <qstring.h>
X #include <qregexp.h>
X+
X+#ifdef __FreeBSD__
X+#include <sys/time.h>
X+#include <sys/param.h>
X+#include <sys/sysctl.h>
X+#include <sys/resource.h>
X+#include <unistd.h>
X+#include <kvm.h>
X+#include <sys/file.h>
X+#include <osreldate.h>
X+
X+/* define pagetok in terms of pageshift */
X+#define pagetok(size) ((size) << pageshift)
X+#endif
X+
X MemSensor::MemSensor(int msec) : Sensor(msec)
X {
X+#ifdef __FreeBSD__
X+   /* get the page size with "getpagesize" and calculate pageshift from it */
X+    int pagesize = getpagesize();
X+    pageshift = 0;
X+    while (pagesize > 1)
X+    {
X+        pageshift++;
X+        pagesize >>= 1;
X+    }
X+
X+    /* we only need the amount of log(2)1024 for our conversion */
X+    pageshift -= 10;
X+
X+# if __FreeBSD_version < 500018
X+    connect(&ksp, SIGNAL(receivedStdout(KProcess *, char *, int )),
X+            this,SLOT(receivedStdout(KProcess *, char *, int )));
X+    connect(&ksp, SIGNAL(processExited(KProcess *)),
X+            this,SLOT(processExited( KProcess * )));
X+
X+    swapTotal = swapUsed = 0;
X+
X+    MaxSet = false;
X+
X     readValues();
X+# else
X+    kd = kvm_open("/dev/null", "/dev/null", "/dev/null", O_RDONLY, "kvm_open");
X+# endif
X+#else
X+    readValues();
X+#endif
X }
X+
X MemSensor::~MemSensor()
X {}
X 
X+#ifdef __FreeBSD__
X+void MemSensor::receivedStdout(KProcess *, char *buffer, int len )
X+{
X+    buffer[len] = 0;
X+    sensorResult += QString( QCString(buffer) );
X+}
X+
X+void MemSensor::processExited(KProcess *)
X+{
X+    QStringList stringList = QStringList::split('\n',sensorResult);
X+    sensorResult = "";
X+    QStringList itemsList = QStringList::split(' ', stringList[1]);
X+
X+    swapUsed = itemsList[2].toInt();
X+    swapTotal = itemsList[1].toInt();
X+}
X+#endif
X 
X int MemSensor::getMemTotal()
X {
X+#ifdef __FreeBSD__
X+    static int mem = 0;
X+    size_t size = sizeof(mem);
X+
X+    sysctlbyname("hw.physmem", &mem, &size, NULL, 0);
X+    return (mem / 1024);
X+#else
X     QRegExp rx( "MemTotal:\\s*(\\d+)" );
X     rx.search( meminfo );
X     return ( rx.cap(1).toInt() );
X+#endif
X }
X 
X int MemSensor::getMemFree()
X {
X+#ifdef __FreeBSD__
X+    static int mem = 0;
X+    size_t size = sizeof(mem);
X+
X+    sysctlbyname("vm.stats.vm.v_free_count", &mem, &size, NULL, 0);
X+    return (pagetok(mem));
X+#else
X     QRegExp rx( "MemFree:\\s*(\\d+)" );
X     rx.search( meminfo );
X     return ( rx.cap(1).toInt() );
X+#endif
X }
X 
X 
X int MemSensor::getBuffers()
X {
X+#ifdef __FreeBSD__
X+    static int mem = 0;
X+    size_t size = sizeof(mem);
X+
X+    sysctlbyname("vfs.bufspace", &mem, &size, NULL, 0);
X+    return (mem / 1024);
X+#else
X     QRegExp rx( "Buffers:\\s*(\\d+)" );
X     rx.search( meminfo );
X     return ( rx.cap(1).toInt() );
X+#endif
X }
X 
X int MemSensor::getCached()
X {
X+#ifdef __FreeBSD__
X+    static int mem = 0;
X+    size_t size = sizeof(mem);
X+
X+    sysctlbyname("vm.stats.vm.v_cache_count", &mem, &size, NULL, 0);
X+    return (pagetok(mem));
X+#else
X     QRegExp rx1( "Cached:\\s*(\\d+)" );
X     QRegExp rx2( "SwapCached:\\s*(\\d+)" );
X     rx1.search( meminfo );
X     rx2.search( meminfo );
X     return ( rx1.cap(1).toInt() + rx2.cap(1).toInt() );
X+#endif
X }
X 
X 
X int MemSensor::getSwapTotal()
X {
X+#ifdef __FreeBSD__
X+# if __FreeBSD_version < 500018
X+    return(swapTotal);
X+# else
X+    int n = -1;
X+    int pagesize = getpagesize();
X+    int retavail = 0;
X+
X+    if (kd != NULL)
X+        n = kvm_getswapinfo(kd, &swapinfo, 1, 0);
X+
X+    if (n < 0 || swapinfo.ksw_total == 0)
X+        return(0);
X+
X+    retavail = swapinfo.ksw_total * pagesize / 1024;
X+
X+    return(retavail);
X+# endif
X+#else
X     QRegExp rx( "SwapTotal:\\s*(\\d+)" );
X     rx.search( meminfo );
X     return ( rx.cap(1).toInt() );
X+#endif
X }
X 
X int MemSensor::getSwapFree()
X {
X+#ifdef __FreeBSD__
X+# if __FreeBSD_version < 500018
X+    return(swapTotal - swapUsed);
X+# else
X+    int n = -1;
X+    int pagesize = getpagesize();
X+    int retfree = 0;
X+
X+    if (kd != NULL)
X+        n = kvm_getswapinfo(kd, &swapinfo, 1, 0);
X+    if (n < 0 || swapinfo.ksw_total == 0)
X+        return(0);
X+
X+    retfree = (swapinfo.ksw_total - swapinfo.ksw_used) * pagesize / 1024;
X+
X+    return(retfree);
X+# endif
X+#else
X     QRegExp rx( "SwapFree:\\s*(\\d+)" );
X     rx.search( meminfo );
X     return ( rx.cap(1).toInt() );
X+#endif
X }
X 
X-
X void MemSensor::readValues()
X {
X+#ifdef __FreeBSD__
X+# if __FreeBSD_version < 500018
X+    ksp.clearArguments();
X+    ksp << "swapinfo";
X+    ksp.start( KProcess::NotifyOnExit,KProcIO::Stdout);
X+# endif
X+#else
X     QFile file("/proc/meminfo");
X     QString line;
X     if ( file.open(IO_ReadOnly | IO_Translate) )
X@@ -77,15 +216,21 @@
X         meminfo = t.read();
X         file.close();
X     }
X+#endif
X }
X 
X void MemSensor::update()
X {
X+#if (defined(__FreeBSD__) && __FreeBSD_version < 500018) 
X     readValues();
X+#endif
X     QString format;
X     SensorParams *sp;
X     Meter *meter;
X     QObjectListIt it( *objList );
X+#if (defined(__FreeBSD__) && __FreeBSD_version < 500018)
X+    bool set = false;
X+#endif
X 
X     int totalMem = getMemTotal();
X     int usedMem = totalMem - getMemFree();
X@@ -96,6 +241,12 @@
X     while (it != 0)
X     {
X         sp = (SensorParams*)(*it);
X+#if (defined(__FreeBSD__) && __FreeBSD_version < 500018)
X+        if ( (!MaxSet) && (totalSwap > 0) ) {
X+           setMaxValue(sp);
X+           bool set = true;
X+        }
X+#endif 
X         meter = sp->getMeter();
X         format = sp->getParam("FORMAT");
X         if (format.length() == 0 )
X@@ -118,6 +269,11 @@
X         meter->setValue(format);
X         ++it;
X     }
X+#if (defined(__FreeBSD__) && __FreeBSD_version < 500018)
X+    if (set)
X+        MaxSet = true;
X+#endif
X+
X }
X 
X void MemSensor::setMaxValue( SensorParams *sp )
X@@ -133,7 +289,6 @@
X     }
X     if( f=="%fm" || f== "%um" || f=="%fmb" || f=="%umb" )
X         meter->setMax( getMemTotal() / 1024 );
X-
X     if( f=="%fs" || f== "%us" )
X         meter->setMax( getSwapTotal() / 1024 );
X }
END-of-superkaramba/files/patch-memsensor.cpp
echo x - superkaramba/files/patch-memsensor.h
sed 's/^X//' >superkaramba/files/patch-memsensor.h << 'END-of-superkaramba/files/patch-memsensor.h'
X--- src/memsensor.h.orig	Mon Apr 21 15:17:03 2003
X+++ src/memsensor.h	Fri Sep  5 12:08:46 2003
X@@ -12,6 +12,12 @@
X #include "sensor.h"
X #include <qstring.h>
X #include <qregexp.h>
X+#ifdef __FreeBSD__
X+#include <kprocess.h>
X+#include <kprocio.h>
X+#include <kvm.h>
X+#include <osreldate.h>
X+#endif
X 
X class MemSensor :  public Sensor
X {
X@@ -36,6 +42,26 @@
X private:
X   QString meminfo;
X   void readValues();
X+#ifdef __FreeBSD__
X+  int pageshift;           /* log base 2 of the pagesize */
X+  QString sensorResult;
X+  int swapTotal;
X+  int swapUsed;
X+
X+# if __FreeBSD_version < 500018
X+  KShellProcess ksp;
X+  bool MaxSet;
X+
X+# else
X+  kvm_t *kd;
X+  kvm_swap swapinfo;
X+# endif
X+
X+private slots:
X+    void receivedStdout(KProcess *, char *buffer, int);
X+    void processExited(KProcess *);
X+
X+#endif
X };
X 
X #endif // MEMSENSOR_H
END-of-superkaramba/files/patch-memsensor.h
echo x - superkaramba/files/patch-src::Makefile.in
sed 's/^X//' >superkaramba/files/patch-src::Makefile.in << 'END-of-superkaramba/files/patch-src::Makefile.in'
X--- src/Makefile.in.orig	Wed Aug 27 16:09:51 2003
X+++ src/Makefile.in	Wed Aug 27 16:10:10 2003
X@@ -261,7 +261,7 @@
X # the application source, library search path, and link libraries
X superkaramba_SOURCES = main.cpp karamba.cpp meter.h meter.cpp bar.h bar.cpp sensor.h sensor.cpp datesensor.h datesensor.cpp textlabel.h textlabel.cpp memsensor.h memsensor.cpp uptimesensor.h uptimesensor.cpp cpusensor.h cpusensor.cpp networksensor.h networksensor.cpp imagelabel.h imagelabel.cpp graph.h graph.cpp xmmssensor.h xmmssensor.cpp programsensor.h programsensor.cpp disksensor.h disksensor.cpp sensorparams.h sensorparams.cpp sensorsensor.h sensorsensor.cpp textfilesensor.h textfilesensor.cpp clickarea.h clickarea.cpp noatunsensor.h noatunsensor.cpp karambarootpixmap.h karambarootpixmap.cpp clickmap.h clickmap.cpp rsssensor.h rsssensor.cpp textfield.h textfield.cpp taskmanager.h taskmanager.cpp showdesktop.h showdesktop.cpp richtextlabel.h richtextlabel.cpp karambasessionmanaged.h karambasessionmanaged.cpp welcomeform.h welcomeform.cpp
X superkaramba_LDFLAGS = -Wl,-export-dynamic  $(KDE_RPATH) $(all_libraries) $(PYTHONLIB)  
X-superkaramba_LDADD = -lkio $(LIB_KDEUI) $(XMMS_LIBS) $(LIBPYTHON)
X+superkaramba_LDADD = -lkio $(LIB_KDEUI) $(XMMS_LIBS) $(LIBPYTHON) -lkvm
X 
X # this is where the desktop file will go 
X shelldesktopdir = $(kde_appsdir)/Utilities
END-of-superkaramba/files/patch-src::Makefile.in
echo x - superkaramba/files/patch-sensorsensor.cpp
sed 's/^X//' >superkaramba/files/patch-sensorsensor.cpp << 'END-of-superkaramba/files/patch-sensorsensor.cpp'
X--- src/sensorsensor.cpp.orig	Mon Apr 21 15:17:03 2003
X+++ src/sensorsensor.cpp	Fri Sep  5 15:07:50 2003
X@@ -12,6 +12,22 @@
X 
X SensorSensor::SensorSensor( int interval ) : Sensor( interval )
X {
X+#ifdef __FreeBSD__
X+    sensorMapBSD["VCore 1"] = "VC0";
X+    sensorMapBSD["VCore 2"] = "VC1";
X+    sensorMapBSD["+3.3V"] = "V33";
X+    sensorMapBSD["+5V"] = "V50P";
X+    sensorMapBSD["+12V"] = "V12P";
X+    sensorMapBSD["-12V"] = "V12N";
X+    sensorMapBSD["-5V"] = "V50N";
X+    sensorMapBSD["fan1"] = "FAN0";
X+    sensorMapBSD["fan2"] = "FAN1";
X+    sensorMapBSD["fan3"] = "FAN2";
X+    sensorMapBSD["temp1"] = "TEMP0";
X+    sensorMapBSD["temp2"] = "TEMP1";
X+    sensorMapBSD["temp3"] = "TEMP2";
X+#endif
X+
X     connect(&ksp, SIGNAL(receivedStdout(KProcess *, char *, int )),
X             this,SLOT(receivedStdout(KProcess *, char *, int )));
X     connect(&ksp, SIGNAL(processExited(KProcess *)),
X@@ -36,8 +52,11 @@
X     QStringList stringList = QStringList::split('\n',sensorResult);
X     sensorResult = "";
X     QStringList::Iterator it = stringList.begin();
X+#ifdef __FreeBSD__
X+    QRegExp rx( "^(\\S+)\\s+:\\s+[\\+\\-]?(\\d+\\.?\\d*)");
X+#else
X     QRegExp rx( "^(\\S+):\\s+[\\+\\-]?(\\d+\\.?\\d*)");
X-
X+#endif
X     while( it != stringList.end())
X     {
X         rx.search( *it );
X@@ -69,7 +88,12 @@
X         {
X             format = "%v";
X         }
X+
X+#ifdef __FreeBSD__
X+        format.replace( QRegExp("%v", false), sensorMap[sensorMapBSD[type]]);
X+#else
X         format.replace( QRegExp("%v", false), sensorMap[type]);
X+#endif
X         meter->setValue(format);
X         ++lit;
X     }
X@@ -78,7 +102,11 @@
X void SensorSensor::update()
X {
X     ksp.clearArguments();
X+#ifdef __FreeBSD__
X+    ksp << "mbmon -r -c 1";
X+#else
X     ksp << "sensors";
X+#endif
X     ksp.start( KProcess::NotifyOnExit,KProcIO::Stdout);
X }
X 
END-of-superkaramba/files/patch-sensorsensor.cpp
echo x - superkaramba/files/patch-sensorsensor.h
sed 's/^X//' >superkaramba/files/patch-sensorsensor.h << 'END-of-superkaramba/files/patch-sensorsensor.h'
X--- src/sensorsensor.h.orig	Fri Sep  5 15:00:20 2003
X+++ src/sensorsensor.h	Fri Sep  5 15:12:17 2003
X@@ -32,6 +32,9 @@
X     KShellProcess ksp;
X 
X     QMap<QString,QString> sensorMap;
X+#ifdef __FreeBSD__
X+    QMap<QString,QString> sensorMapBSD;
X+#endif
X     QString sensorResult;
X 
X private slots:
END-of-superkaramba/files/patch-sensorsensor.h
echo x - superkaramba/pkg-plist
sed 's/^X//' >superkaramba/pkg-plist << 'END-of-superkaramba/pkg-plist'
Xbin/superkaramba
Xshare/applnk/Utilities/karamba.desktop
Xshare/apps/superkaramba/karambaui.rc
Xshare/doc/HTML/en/karamba/common
Xshare/doc/HTML/en/karamba/index.cache.bz2
Xshare/doc/HTML/en/karamba/index.docbook
X at dirrm share/doc/HTML/en/karamba
X at unexec rmdir %D/share/doc/HTML/en 2>/dev/null || true
X at unexec rmdir %D/share/doc/HTML 2>/dev/null || true
X at dirrm share/apps/superkaramba
X at unexec rmdir %D/share/apps 2>/dev/null || true
X at unexec rmdir %D/share/applnk/Utilities 2>/dev/null || true
X at unexec rmdir %D/share/applnk 2>/dev/null || true
END-of-superkaramba/pkg-plist
echo x - superkaramba/pkg-descr
sed 's/^X//' >superkaramba/pkg-descr << 'END-of-superkaramba/pkg-descr'
XSuperKaramba is, in simple terms, a tool that allows you to easily 
Xcreate interactive eye-candy on your KDE desktop.
X
XHere are just some examples of the things that can be done: 
X
X  o Display system information such as CPU Usage, MP3 playing, etc.
X  o Create cool custom toolbars that work any way imaginable
X  o Create little games or virtual pets that live on your desktop
X  o Display information from the internet, such as weather and headlines
X 
XThe possibilities really are endless! 
X
XWWW: http://netdragon.sourceforge.net
END-of-superkaramba/pkg-descr
echo x - superkaramba/distinfo
sed 's/^X//' >superkaramba/distinfo << 'END-of-superkaramba/distinfo'
XMD5 (superkaramba-0.32.tar.gz) = ac21dc33b1c8f7b3c8bee80b73b6a13b
END-of-superkaramba/distinfo
echo x - superkaramba/Makefile
sed 's/^X//' >superkaramba/Makefile << 'END-of-superkaramba/Makefile'
X# New ports collection makefile for:	superkaramba
X# Date created:			Fri Sep  5 16:32:35 CEST 2003
X# Whom:				Markus Brueffer <brueffer at phoenix-systems.de>
X#
X# $FreeBSD$
X
XPORTNAME=		superkaramba
XPORTVERSION=		0.32
XCATEGORIES=		deskutils kde
XMASTER_SITES=		${MASTER_SITE_SOURCEFORGE}
XMASTER_SITE_SUBDIR=	netdragon
X
XMAINTAINER=		brueffer at phoenix-systems.de
XCOMMENT=		Display various information right on your desktop
X
X.if !defined(WITHOUT_XMMS)
XLIB_DEPENDS=		xmms.3:${PORTSDIR}/multimedia/xmms
X.endif
X
X.if !defined(WITHOUT_XMBMON)
XRUN_DEPENDS=		mbmon:${PORTSDIR}/sysutils/xmbmon
X.endif
X
XUSE_KDEBASE_VER=	3
XGNU_CONFIGURE=		yes
XUSE_GMAKE=		yes
XINSTALLS_SHLIB=		yes
XUSE_PYTHON=		yes
XPYTHON_VERSION=		python2.2
XUSE_REINPLACE=		yes
X
XCONFIGURE_ARGS+=	--with-pythondir=${PYTHON_INCLUDEDIR}
X
XCONFIGURE_TARGET=	--build=${ARCH}-portbld-freebsd${OSREL}
X
Xpost-patch:
X	@${REINPLACE_CMD} -e 's|-O2 ||g' ${WRKSRC}/configure
X
X.include <bsd.port.mk>
END-of-superkaramba/Makefile
exit
--- superkaramba.shar ends here ---



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list