ports/97575: [MAINTAINER] x11/fbpanel: make CPU plugin work on FreeBSD
Tobias Roth
ports at fsck.ch
Sun May 21 21:30:30 UTC 2006
>Number: 97575
>Category: ports
>Synopsis: [MAINTAINER] x11/fbpanel: make CPU plugin work on FreeBSD
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: maintainer-update
>Submitter-Id: current-users
>Arrival-Date: Sun May 21 21:30:19 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: Tobias Roth
>Release: FreeBSD 6.1-STABLE i386
>Organization:
>Environment:
System: FreeBSD factory.fsck.ch 6.1-STABLE FreeBSD 6.1-STABLE #9: Fri May 19 17:29:59 CEST 2006
>Description:
Integrate patch written by Andreas Wiese <bzimage at gmx.net> from
BSD Crew Dresden, which ports the previously linux-only CPU plugin
to FreeBSD.
Thanks a lot Andreas!
Added file(s):
- files/patch-Makefile
- files/patch-cpu.c
- files/patch-plugin.c
- files/patch-plugin.h
Removed file(s):
- pkg-message
Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:
--- fbpanel-4.3_3.patch begins here ---
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/x11/fbpanel/Makefile,v
retrieving revision 1.9
diff -u -u -r1.9 Makefile
--- Makefile 11 Apr 2006 11:11:53 -0000 1.9
+++ Makefile 21 May 2006 20:37:00 -0000
@@ -7,7 +7,7 @@
PORTNAME= fbpanel
PORTVERSION= 4.3
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= x11
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}
@@ -19,7 +19,7 @@
USE_X_PREFIX= yes
USE_GNOME= gtk20
HAS_CONFIGURE= yes
-CONFIGURE_ARGS= --prefix=${PREFIX} --cpu=off
+CONFIGURE_ARGS= --prefix=${PREFIX}
CFLAGS+= -I${WRKSRC}
USE_GMAKE= yes
@@ -29,9 +29,4 @@
post-patch:
@${REINPLACE_CMD} -e 's|share/man|man|g' ${WRKSRC}/man/Makefile
-post-install:
- @${ECHO_MSG} ""
- @${CAT} ${PKGMESSAGE}
- @${ECHO_MSG} ""
-
.include <bsd.port.mk>
Index: pkg-message
===================================================================
RCS file: pkg-message
diff -N pkg-message
--- pkg-message 15 Dec 2004 06:34:35 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1 +0,0 @@
-Please note that the cpu plugin has not been built due to compatibility reasons.
Index: files/patch-Makefile
===================================================================
RCS file: files/patch-Makefile
diff -N files/patch-Makefile
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-Makefile 21 May 2006 20:37:00 -0000
@@ -0,0 +1,13 @@
+--- Makefile~ Tue May 16 19:28:38 2006
++++ Makefile Tue May 16 19:14:24 2006
+@@ -24,6 +24,10 @@
+ -include $(DEP)
+ endif
+
++ifeq ($(PLUGIN_CPU),on)
++override CFLAGS += -DPLUGIN_CPU
++endif
++
+ TARGET := fbpanel
+
+ EXTRAOBJ :=
Index: files/patch-cpu.c
===================================================================
RCS file: files/patch-cpu.c
diff -N files/patch-cpu.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-cpu.c 21 May 2006 20:37:00 -0000
@@ -0,0 +1,92 @@
+--- plugins/cpu.c~ Tue May 16 19:23:18 2006
++++ plugins/cpu.c Tue May 16 19:00:07 2006
+@@ -18,14 +18,24 @@
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+-/*A little bug fixed by Mykola <mykola at 2ka.mipt.ru>:) */
++/*
++ * A little bug fixed by Mykola <mykola at 2ka.mipt.ru> :)
++ * FreeBSD support added by Andreas Wiese <aw at instandbesetzt.net>
++ */
+
+
+ #include <string.h>
+ #include <sys/time.h>
+ #include <time.h>
+-#include <sys/sysinfo.h>
++#ifdef __FreeBSD__
++# include <sys/types.h>
++# include <sys/resource.h>
++# include <sys/sysctl.h>
++#else
++# include <sys/sysinfo.h>
++#endif
+ #include <stdlib.h>
++#include <stdio.h>
+
+ #include "plugin.h"
+ #include "panel.h"
+@@ -60,6 +70,37 @@
+ struct cpu_stat cpu_anterior;
+ } cpu_t;
+
++#ifdef __FreeBSD__
++static void
++get_procstat(unsigned long *u, unsigned long *n, unsigned long *s,
++ unsigned long *i)
++{
++ static int mib[2] = { -1, -1 }, init = 0, j, realhz;
++ long ct[CPUSTATES];
++
++
++ if(init == 0) {
++ struct clockinfo ci;
++ j = sizeof(ci);
++ sysctlbyname("kern.clockrate", &ci, &j, NULL, 0);
++ realhz = ci.stathz ? ci.stathz : ci.hz;
++
++ j = 2;
++ sysctlnametomib("kern.cp_time", mib, &j);
++
++ init = 1;
++ j = sizeof(ct);
++ }
++
++ sysctl(mib, 2, ct, &j, NULL, 0);
++ *u = ct[CP_USER] / realhz;
++ *n = ct[CP_NICE] / realhz;
++ *s = ct[CP_SYS] / realhz;
++ *i = ct[CP_IDLE] / realhz;
++
++ return;
++}
++#endif
+
+ static int
+ cpu_update(cpu_t *c)
+@@ -67,18 +108,24 @@
+ int cpu_u=0, cpu_s=0, cpu_n=0, cpu_i=100;
+ unsigned int i;
+ struct cpu_stat cpu, cpu_r;
++#ifndef __FreeBSD__
+ FILE *stat;
++#endif
+ float total;
+
+ ENTER;
+ if(!c->pixmap)
+ RET(TRUE);
+
++#ifdef __FreeBSD__
++ get_procstat(&cpu.u, &cpu.n, &cpu.s, &cpu.i);
++#else
+ stat = fopen("/proc/stat", "r");
+ if(!stat)
+ RET(TRUE);
+ fscanf(stat, "cpu %lu %lu %lu %lu", &cpu.u, &cpu.n, &cpu.s, &cpu.i);
+ fclose(stat);
++#endif
+
+ cpu_r.u = cpu.u - c->cpu_anterior.u;
+ cpu_r.n = cpu.n - c->cpu_anterior.n;
Index: files/patch-plugin.c
===================================================================
RCS file: files/patch-plugin.c
diff -N files/patch-plugin.c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-plugin.c 21 May 2006 20:37:00 -0000
@@ -0,0 +1,15 @@
+--- plugin.c~ Tue May 16 19:22:41 2006
++++ plugin.c Tue May 16 19:16:29 2006
+@@ -98,7 +98,11 @@
+ #ifdef STATIC_DESKNO
+ REGISTER_PLUGIN_CLASS(deskno_plugin_class, 0);
+ #endif
+-
++
++#if defined(STATIC_CPU) && defined(PLUGIN_CPU)
++ REGISTER_PLUGIN_CLASS(cpu_plugin_class, 0);
++#endif
++
+ RET();
+ }
+
Index: files/patch-plugin.h
===================================================================
RCS file: files/patch-plugin.h
diff -N files/patch-plugin.h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ files/patch-plugin.h 21 May 2006 20:37:00 -0000
@@ -0,0 +1,11 @@
+--- plugin.h~ Tue May 16 19:22:49 2006
++++ plugin.h Tue May 16 19:00:09 2006
+@@ -61,7 +61,7 @@
+ #define STATIC_SPACE
+ #define STATIC_ICONS
+ #define STATIC_DESKNO
++#define STATIC_CPU
+ #endif
+-
+
+ #endif
--- fbpanel-4.3_3.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list