View | Details | Raw Unified | Return to bug 152338
Collapse All | Expand All

(-)./fbpanel/Makefile (-8 / +16 lines)
Lines 2-30 Link Here
2
# Date created:		Sat Jun 26 13:43:50 CEST 2004
2
# Date created:		Sat Jun 26 13:43:50 CEST 2004
3
# Whom:			Tobias Roth <ports@fsck.ch>
3
# Whom:			Tobias Roth <ports@fsck.ch>
4
#
4
#
5
# $FreeBSD: ports/x11/fbpanel/Makefile,v 1.21 2010/09/28 15:09:34 skreuzer Exp $
5
# $FreeBSD: ports/x11/fbpanel/Makefile,v 1.20 2010/09/28 00:34:12 skreuzer Exp $
6
#
6
#
7
7
8
PORTNAME=	fbpanel
8
PORTNAME=	fbpanel
9
PORTVERSION=	4.12
9
PORTVERSION=	6.1
10
PORTREVISION=	6
11
CATEGORIES=	x11
10
CATEGORIES=	x11
12
MASTER_SITES=	SF
11
MASTER_SITES=	SF
13
EXTRACT_SUFX=	.tgz
12
EXTRACT_SUFX=	.tbz2
14
13
15
MAINTAINER=	corky1951@comcast.net
14
MAINTAINER= 	corky1951@comcast.net
16
COMMENT=	Desktop panel that includes a taskbar, pager, launchbar and more
15
COMMENT=	Desktop panel that includes a taskbar, pager, launchbar and more
17
16
17
BUILD_DEPENDS=	bash:${PORTSDIR}/shells/bash
18
18
USE_XORG=	x11 xmu xpm
19
USE_XORG=	x11 xmu xpm
19
USE_GNOME=	gtk20
20
USE_GNOME=	gtk20
20
HAS_CONFIGURE=	yes
21
HAS_CONFIGURE=	yes
21
CONFIGURE_ARGS+=	--prefix=${PREFIX}
22
USE_GMAKE=	yes
22
USE_GMAKE=	yes
23
23
24
CONFIGURE_ENV+= PREFIX=${PREFIX}
25
24
MAN1=		fbpanel.1
26
MAN1=		fbpanel.1
25
MANCOMPRESSED=	yes
27
MANCOMPRESSED=	no
26
28
27
post-patch:
29
post-patch:
28
	@${REINPLACE_CMD} -e 's|share/man|man|g' ${WRKSRC}/man/Makefile
30
	@${REINPLACE_CMD} -e 's|/bin/bash|${LOCALBASE}/bin/bash|' ${WRKSRC}/configure
31
	@${REINPLACE_CMD} -e 's|/bin/bash|${LOCALBASE}/bin/bash|' ${WRKSRC}/scripts/rfs-pkg-config
32
	@${REINPLACE_CMD} -e 's|/bin/bash|${LOCALBASE}/bin/bash|' ${WRKSRC}/scripts/install.sh
33
	@${REINPLACE_CMD} -e 's|@DATADIR@|${DATADIR}|g' ${WRKSRC}/data/man/${PORTNAME}.1.in
34
35
post-install:
36
	@${INSTALL_MAN} ${WRKSRC}/data/man/${PORTNAME}.1 ${MANPREFIX}/man/man1
29
37
30
.include <bsd.port.mk>
38
.include <bsd.port.mk>
(-)./fbpanel/distinfo (-3 / +2 lines)
Lines 1-3 Link Here
1
MD5 (fbpanel-4.12.tgz) = 12528e7b2936a3548840fe01acaf39f5
1
SHA256 (fbpanel-6.1.tbz2) = e14542cc81ea06e64dd4708546f5fd3f5e01884c3e4617885c7ef22af8cf3965
2
SHA256 (fbpanel-4.12.tgz) = 9f665777df5023e3d3c33598a0f5d81d0b79314b75a128c16c07126ef0fc607f
2
SIZE (fbpanel-6.1.tbz2) = 190266
3
SIZE (fbpanel-4.12.tgz) = 179131
(-)./fbpanel/files/patch-Makefile (-13 lines)
Lines 1-13 Link Here
1
--- Makefile~	Tue May 16 19:28:38 2006
2
+++ Makefile	Tue May 16 19:14:24 2006
3
@@ -24,6 +24,10 @@
4
 -include $(DEP)
5
 endif
6
 
7
+ifeq ($(PLUGIN_CPU),on)
8
+override CFLAGS += -DPLUGIN_CPU
9
+endif
10
+
11
 TARGET := fbpanel
12
 
13
 EXTRAOBJ :=
(-)./fbpanel/files/patch-Makefile.common (-23 lines)
Lines 1-23 Link Here
1
--- Makefile.common.orig	Tue Apr 24 15:45:43 2007
2
+++ Makefile.common	Thu Jun 21 06:58:50 2007
3
@@ -53,7 +53,7 @@
4
 
5
 DEVEL  = 0
6
 CHATTY = $(DEVEL)
7
-STATIC_PLUGINS = 0
8
+STATIC_PLUGINS = 1
9
 #$(warning CHATTY=$(CHATTY) DEVEL=$(DEVEL))
10
 ifeq (1,$(CHATTY))
11
 Q :=
12
@@ -89,10 +89,8 @@
13
 CC      ?= gcc
14
 AR      = ar
15
 LIBS    = $(shell pkg-config --libs glib-2.0 gmodule-2.0 gthread-2.0 gtk+-2.0 gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0) -L/usr/X11R6/lib  -lXmu
16
-INCS2   = $(shell pkg-config --cflags glib-2.0 gmodule-2.0 gthread-2.0 gtk+-2.0 gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0)
17
-INCS   := $(INCS2:-I%=-isystem %)
18
+INCS = $(shell pkg-config --cflags gtk+-2.0 gdk-pixbuf-2.0 gdk-pixbuf-xlib-2.0)
19
 
20
-CFLAGS ?= -O2 -Wall
21
 ifeq (1,$(DEVEL))
22
 override CFLAGS += -g
23
 endif
(-)./fbpanel/files/patch-bg.c (-11 lines)
Lines 1-11 Link Here
1
--- bg.c.orig	Tue Apr 24 15:45:43 2007
2
+++ bg.c	Wed Jun 20 17:02:10 2007
3
@@ -237,7 +237,7 @@
4
     win =  GDK_WINDOW_XWINDOW(widget->window); 
5
     if (!XGetGeometry(bg->dpy, win, &dummy, &x, &y, &width, &height, &border,
6
               &depth)) {
7
-        DBG2("XGetGeometry failed\n");
8
+        DBG("XGetGeometry failed\n");
9
         RET(NULL);
10
     }
11
     XTranslateCoordinates(bg->dpy, win, bg->xroot, 0, 0, &x, &y, &dummy);
(-)./fbpanel/files/patch-configure (+11 lines)
Line 0 Link Here
1
--- ./configure.orig	2010-04-04 02:02:40.000000000 -0700
2
+++ ./configure	2010-11-17 11:11:33.000000000 -0800
3
@@ -324,7 +324,7 @@
4
 add_var target "stab: configure for arch" ""
5
 
6
 # N.B. order is important
7
-add_var prefix "install architecture-independent files" /usr
8
+add_var prefix "install architecture-independent files" '${PREFIX}'
9
 add_var eprefix "install architecture-dependent files" '$prefix'
10
 add_var bindir "user executables" '$eprefix/bin'
11
 add_var sbindir "system executables" '$eprefix/sbin'
(-)./fbpanel/files/patch-cpu.c (-92 lines)
Lines 1-92 Link Here
1
--- plugins/cpu.c~	Tue May 16 19:23:18 2006
2
+++ plugins/cpu.c	Tue May 16 19:00:07 2006
3
@@ -18,14 +18,24 @@
4
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5
  * 
6
  */
7
-/*A little bug fixed by Mykola <mykola@2ka.mipt.ru>:) */
8
+/*
9
+ * A little bug fixed by Mykola <mykola@2ka.mipt.ru> :)
10
+ * FreeBSD support added by Andreas Wiese <aw@instandbesetzt.net>
11
+ */
12
 
13
 
14
 #include <string.h>
15
 #include <sys/time.h>
16
 #include <time.h>
17
-#include <sys/sysinfo.h>
18
+#ifdef __FreeBSD__
19
+# include <sys/types.h>
20
+# include <sys/resource.h>
21
+# include <sys/sysctl.h>
22
+#else
23
+# include <sys/sysinfo.h>
24
+#endif
25
 #include <stdlib.h>
26
+#include <stdio.h>
27
 
28
 #include "plugin.h"
29
 #include "panel.h"
30
@@ -60,6 +70,37 @@
31
     struct cpu_stat cpu_anterior;
32
 } cpu_t;
33
 
34
+#ifdef __FreeBSD__
35
+static void
36
+get_procstat(unsigned long *u, unsigned long *n, unsigned long *s,
37
+    unsigned long *i)
38
+{
39
+    static int mib[2] = { -1, -1 }, init = 0, j, realhz;
40
+    long ct[CPUSTATES];
41
+
42
+
43
+    if(init == 0) {
44
+	struct clockinfo ci;
45
+	j = sizeof(ci);
46
+	sysctlbyname("kern.clockrate", &ci, &j, NULL, 0);
47
+	realhz = ci.stathz ? ci.stathz : ci.hz;
48
+
49
+	j = 2;
50
+	sysctlnametomib("kern.cp_time", mib, &j);
51
+
52
+	init = 1;
53
+	j = sizeof(ct);
54
+    }
55
+
56
+    sysctl(mib, 2, ct, &j, NULL, 0);
57
+    *u = ct[CP_USER] / realhz;
58
+    *n = ct[CP_NICE] / realhz;
59
+    *s = ct[CP_SYS]  / realhz;
60
+    *i = ct[CP_IDLE] / realhz;
61
+
62
+    return;
63
+}
64
+#endif
65
 
66
 static int
67
 cpu_update(cpu_t *c)
68
@@ -67,18 +108,24 @@
69
     int cpu_u=0, cpu_s=0, cpu_n=0, cpu_i=100;
70
     unsigned int i;
71
     struct cpu_stat cpu, cpu_r;
72
+#ifndef __FreeBSD__
73
     FILE *stat;
74
+#endif
75
     float total;
76
     
77
     ENTER;
78
     if(!c->pixmap)
79
         RET(TRUE); 
80
      
81
+#ifdef __FreeBSD__
82
+    get_procstat(&cpu.u, &cpu.n, &cpu.s, &cpu.i);
83
+#else
84
     stat = fopen("/proc/stat", "r");
85
     if(!stat)
86
         RET(TRUE);
87
     fscanf(stat, "cpu %lu %lu %lu %lu", &cpu.u, &cpu.n, &cpu.s, &cpu.i);
88
     fclose(stat);
89
+#endif
90
 
91
     cpu_r.u = cpu.u - c->cpu_anterior.u;
92
     cpu_r.n = cpu.n - c->cpu_anterior.n;
(-)./fbpanel/files/patch-data__config__default.in (+81 lines)
Line 0 Link Here
1
--- ./data/config/default.in.orig	2010-05-12 11:30:00.000000000 -0700
2
+++ ./data/config/default.in	2010-11-17 11:06:07.000000000 -0800
3
@@ -274,44 +274,44 @@
4
     }
5
 }
6
 
7
-Plugin {
8
-    type = mem
9
-    expand = false
10
-    padding = 2
11
-    config {
12
-        ShowSwap = false
13
-    }
14
-}
15
+#Plugin {
16
+#    type = mem
17
+#    expand = false
18
+#    padding = 2
19
+#    config {
20
+#        ShowSwap = false
21
+#    }
22
+#}
23
 
24
-Plugin {
25
-    type = cpu
26
-    config {
27
-        Color = green
28
-    }
29
-}
30
+#Plugin {
31
+#    type = cpu
32
+#    config {
33
+#        Color = green
34
+#    }
35
+#}
36
 
37
-Plugin {
38
-    type = net
39
-    expand = false
40
-    padding = 0
41
-    config {
42
-        #interface = ppp0
43
-        interface = eth0
44
-        # set connection limits to make traffic graph more accurate
45
-        TxLimit = 20
46
-        RxLimit = 190
47
-        TxColor = violet
48
-        RxColor = blue
49
-    }
50
-}
51
+#Plugin {
52
+#    type = net
53
+#    expand = false
54
+#    padding = 0
55
+#    config {
56
+#        #interface = ppp0
57
+#        interface = eth0
58
+#        # set connection limits to make traffic graph more accurate
59
+#        TxLimit = 20
60
+#        RxLimit = 190
61
+#        TxColor = violet
62
+#        RxColor = blue
63
+#    }
64
+#}
65
 
66
 
67
-Plugin {
68
-    type = space
69
-    config {
70
-        size = 10
71
-    }
72
-}
73
+#Plugin {
74
+#    type = space
75
+#    config {
76
+#        size = 10
77
+#    }
78
+#}
79
 
80
 plugin {
81
     type = volume
(-)./fbpanel/files/patch-data__man__fbpanel.1.in (+49 lines)
Line 0 Link Here
1
--- ./data/man/fbpanel.1.in.orig	2009-06-01 07:55:30.000000000 -0700
2
+++ ./data/man/fbpanel.1.in	2010-11-17 11:06:07.000000000 -0800
3
@@ -31,7 +31,7 @@
4
 (see \fBOPTIONS\fR below).
5
 
6
 Most updated info about fbpanel can be found on its home page:
7
-http://fbpanel.sf.net/
8
+http://fbpanel.sourceforge.net/
9
 
10
 .SH OPTIONS
11
 .TP
12
@@ -48,8 +48,8 @@
13
 \-- open configuration dialog
14
 .TP
15
 \fB\--profile <name>\fR 
16
-\-- use specified profile. The profile is loaded from the file ~/.fbpanel/<name>. 
17
-If that fails, fbpanel will load @DATADIR@/<name>. 
18
+\-- use specified profile. The profile is loaded from the file ~/.config/fbpanel/<name>. 
19
+If that fails, fbpanel will load /usr/local/share/fbpanel/<name>. 
20
 No -p option is equivalent to -p default
21
 .TP
22
 \fB\-h\fR 
23
@@ -67,21 +67,21 @@
24
 .SH CUSTOMIZATION
25
 To change default settings, copy profile file to your home directory
26
 .br
27
-      mkdir -p ~/.fbpanel
28
-      cp @DATADIR@/default ~/.fbpanel
29
+      mkdir -p ~/.config/fbpanel
30
+      cp /usr/local/share/fbpanel/default ~/.config/fbpanel
31
 .br
32
 and edit it. Default profile file contains comments and explanation inside,
33
 so it should be easy. For full list of options please visit fbpanel's home page.
34
 
35
 .SH FILES
36
 .TP
37
-@DATADIR@/
38
+/usr/local/share/fbpanel/
39
 Directory with system-wide resources and default settings
40
 .TP
41
-~/.fbpanel/
42
+~/.config/fbpanel/
43
 Directory with the user's private profiles
44
 .TP
45
-~/.fbpanel/default
46
+~/.config/fbpanel/default
47
 The user's default profile.
48
 .SH AUTHOR
49
 fbpanel was written by Anatoly Asviyan <aanatoly@users.sf.net>.
(-)./fbpanel/files/patch-exec__Makefile.in (+10 lines)
Line 0 Link Here
1
--- ./exec/Makefile.in.orig	2010-03-15 02:58:51.000000000 -0700
2
+++ ./exec/Makefile.in	2010-11-17 11:06:07.000000000 -0800
3
@@ -1,6 +1,6 @@
4
 include %%topdir%%/config.mk
5
 
6
-TEXT = make_profile xlogout
7
+TEXT = make_profile
8
 
9
 install :
10
 	$(install) 755 $(LIBEXECDIR)/fbpanel 755 $(TEXT)
(-)./fbpanel/files/patch-exec__make_profile.in (+46 lines)
Line 0 Link Here
1
--- ./exec/make_profile.in.orig	2010-03-24 02:58:10.000000000 -0700
2
+++ ./exec/make_profile.in	2010-11-17 11:06:07.000000000 -0800
3
@@ -1,4 +1,4 @@
4
-#!/bin/bash
5
+#!/bin/sh
6
 
7
 umask 0077
8
 # new profile directory
9
@@ -6,7 +6,7 @@
10
 # old profile directory
11
 opdir=~/.fbpanel
12
 # system profile directory
13
-spdir=%%datadir%%/fbpanel
14
+spdir=%%datadir%%/examples/fbpanel
15
 # if profile name was not set, use  'default'
16
 profile=${1:-default}
17
 
18
@@ -42,24 +42,24 @@
19
 # Creates new profile using system profile as template
20
 # $1 - system profile name
21
 # $2 - destination profile name
22
-function take_system_profile ()
23
+take_system_profile ()
24
 {
25
     [ -r "$spdir/$1" ] || return 1
26
 
27
     local browser terminal filer
28
-    for browser in x-www-browser firefox opera; do
29
+    for browser in firefox firefox35 firefox36 midori opera; do
30
         if which $browser 2> /dev/null > /dev/null; then
31
             opt="$opt -e s/x-www-browser/$browser/"
32
             break
33
         fi
34
     done
35
-    for terminal in x-terminal urxvt gnome-terminal; do
36
+    for terminal in x-terminal Terminal konsole roxterm xterm; do
37
         if which $terminal 2> /dev/null > /dev/null; then
38
             opt="$opt -e s/x-terminal/$terminal/"
39
             break
40
         fi
41
     done
42
-    for filer in x-file-manager thunar pcmanfm rox; do
43
+    for filer in emelfm2 thunar pcmanfm rox konqueror; do
44
         if which $filer 2> /dev/null > /dev/null; then
45
             opt="$opt -e s/x-file-manager/$filer/"
46
             break
(-)./fbpanel/files/patch-gtkbgbox.c (-14 lines)
Lines 1-14 Link Here
1
--- gtkbgbox.c~	Sat Dec 18 17:46:25 2004
2
+++ gtkbgbox.c	Sat Dec 18 17:46:40 2004
3
@@ -310,10 +310,9 @@
4
 static void
5
 gtk_bgbox_set_bg_root(GtkWidget *widget, GtkBgboxPrivate *priv)
6
 {
7
-    priv = GTK_BGBOX_GET_PRIVATE (widget);
8
     GdkRectangle rect;
9
+    priv = GTK_BGBOX_GET_PRIVATE (widget);
10
     
11
-    ENTER;
12
     priv->pixmap = fb_bg_get_xroot_pix_for_win(priv->bg, widget);
13
     if (!priv->pixmap || priv->pixmap ==  GDK_NO_BG) {
14
         priv->bg_type = BG_NONE;
(-)./fbpanel/files/patch-panel__misc.c (+11 lines)
Line 0 Link Here
1
--- ./panel/misc.c.orig	2010-04-28 04:39:31.000000000 -0700
2
+++ ./panel/misc.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -687,7 +687,7 @@
4
 gdk_color_to_RRGGBB(GdkColor *color)
5
 {
6
     static gchar str[10]; // #RRGGBB + \0
7
-    g_sprintf(str, "#%02x%02x%02x",
8
+    g_snprintf(str, sizeof(str), "#%02x%02x%02x",
9
         color->red >> 8, color->green >> 8, color->blue >> 8);
10
     return str;
11
 }
(-)./fbpanel/files/patch-plugin.c (-16 lines)
Lines 1-16 Link Here
1
--- plugin.c~	2007-04-21 14:28:25.000000000 +0300
2
+++ plugin.c	2008-03-19 15:54:08.000000000 +0200
3
@@ -65 +65,5 @@
4
-    
5
+
6
+#ifdef STATIC_TCLOCK
7
+    REGISTER_PLUGIN_CLASS(tclock_plugin_class, 0);
8
+#endif
9
+  
10
@@ -101 +105,5 @@
11
-    
12
+
13
+#if defined(STATIC_CPU) && defined(PLUGIN_CPU)
14
+    REGISTER_PLUGIN_CLASS(cpu_plugin_class, 0);
15
+#endif
16
+
(-)./fbpanel/files/patch-plugin.h (-8 lines)
Lines 1-8 Link Here
1
--- plugin.h~	2007-04-21 14:28:25.000000000 +0300
2
+++ plugin.h	2008-03-19 15:54:10.000000000 +0200
3
@@ -54,0 +55 @@
4
+#define STATIC_TCLOCK
5
@@ -63,0 +65 @@
6
+#define STATIC_CPU
7
@@ -66 +67,0 @@
8
-
(-)./fbpanel/files/patch-plugins__battery__battery.c (+98 lines)
Line 0 Link Here
1
--- ./plugins/battery/battery.c.orig	2010-05-05 04:52:59.000000000 -0700
2
+++ ./plugins/battery/battery.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -1,9 +1,14 @@
4
 #include "misc.h"
5
 #include "../meter/meter.h"
6
-#include <sys/ioctl.h>
7
+//#include <sys/ioctl.h>
8
 #include <sys/types.h>
9
-#include <sys/stat.h>
10
-#include <fcntl.h>
11
+//#include <sys/stat.h>
12
+//#include <fcntl.h>
13
+
14
+#if defined __FreeBSD__
15
+#include <sys/param.h>
16
+#include <sys/sysctl.h>
17
+#endif
18
 
19
 //#define DEBUGPRN
20
 #include "dbg.h"
21
@@ -18,7 +23,7 @@
22
     gboolean exist;
23
 } battery_priv;
24
 
25
-static gboolean battery_update_os(battery_priv *c);
26
+static void battery_update_os(battery_priv *c);
27
 
28
 static gchar *batt_working[] = {
29
     "battery_0",
30
@@ -53,6 +58,59 @@
31
 
32
 #if defined __linux__
33
 #include "os_linux.c"
34
+#elif defined __FreeBSD__
35
+static void
36
+battery_update_os(battery_priv * c)
37
+{
38
+	static int	mib_state[4], mib_life[4], miblen_state, miblen_life, init = 0;
39
+	size_t		len;
40
+	int		state;
41
+	int		life;
42
+
43
+	ENTER;
44
+	if (init == 0) {
45
+		miblen_state = 4;
46
+		if (sysctlnametomib("hw.acpi.battery.state", mib_state, &miblen_state) == -1) {
47
+			c->exist = FALSE;
48
+			RET();
49
+		}
50
+		miblen_life = 4;
51
+		if (sysctlnametomib("hw.acpi.battery.life", mib_life, &miblen_life) == -1) {
52
+			c->exist = FALSE;
53
+			RET();
54
+		}
55
+		init = 1;
56
+	}
57
+	len = sizeof(int);
58
+	if (sysctl(mib_state, miblen_state, &state, &len, NULL, 0) != -1) {
59
+		len = sizeof(int);
60
+		if (sysctl(mib_life, miblen_life, &life, &len, NULL, 0) != -1) {
61
+			switch (state) {
62
+			case 0:
63
+			case 2:/* charging */
64
+				c->exist = TRUE;
65
+				c->charging = TRUE;
66
+				c->level = life;
67
+				break;
68
+			case 1:/* discharging */
69
+			case 4:/* critical */
70
+			case 5:/* low */
71
+				c->exist = TRUE;
72
+				c->charging = FALSE;
73
+				c->level = life;
74
+				break;
75
+			case 7:/* not present */
76
+			default:
77
+				c->exist = FALSE;
78
+				break;
79
+			}
80
+		} else
81
+			c->exist = FALSE;
82
+	} else {
83
+		c->exist = FALSE;
84
+	}
85
+	RET();
86
+}
87
 #else
88
 
89
 static void
90
@@ -79,7 +137,7 @@
91
     } else {
92
         i = batt_na;
93
         gtk_widget_set_tooltip_markup(((plugin_instance *)c)->pwid,
94
-            "Runing on AC\nNo battery found");
95
+            "Running on AC\nNo battery found");
96
     }
97
     k->set_icons(&c->meter, i);
98
     k->set_level(&c->meter, c->level);
(-)./fbpanel/files/patch-plugins__chart__chart.c (+16 lines)
Line 0 Link Here
1
--- ./plugins/chart/chart.c.orig	2010-05-02 02:13:47.000000000 -0700
2
+++ ./plugins/chart/chart.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -24,7 +24,13 @@
4
 #include <string.h>
5
 #include <sys/time.h>
6
 #include <time.h>
7
+#ifdef __FreeBSD__
8
+# include <sys/types.h>
9
+# include <sys/resource.h>
10
+# include <sys/sysctl.h>
11
+#else
12
 #include <sys/sysinfo.h>
13
+#endif
14
 #include <stdlib.h>
15
 
16
 #include "plugin.h"
(-)./fbpanel/files/patch-plugins__cpu__cpu.c (+107 lines)
Line 0 Link Here
1
--- ./plugins/cpu/cpu.c.orig	2010-03-07 00:14:04.000000000 -0800
2
+++ ./plugins/cpu/cpu.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -18,9 +18,20 @@
4
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
5
  *
6
  */
7
-/*A little bug fixed by Mykola <mykola@2ka.mipt.ru>:) */
8
+
9
+/*
10
+ * A little bug fixed by Mykola <mykola@2ka.mipt.ru>:) 
11
+ * FreeBSD support added by Andreas Wiese <aw@instandbesetzt.net>
12
+ */
13
 
14
 
15
+#if defined __FreeBSD__
16
+#include <sys/types.h>
17
+#include <sys/time.h>
18
+#include <sys/resource.h>
19
+#include <sys/sysctl.h>
20
+#include <stdio.h>
21
+#endif
22
 
23
 #include "misc.h"
24
 #include "../chart/chart.h"
25
@@ -29,9 +40,16 @@
26
 #include "dbg.h"
27
 
28
 /* cpu.c */
29
+#if defined __FreeBSD__
30
+struct cpu_stat {
31
+    gulong u, n, s, i; // user, nice, system, idle
32
+};
33
+#else
34
 struct cpu_stat {
35
     gulong u, n, s, i, w; // user, nice, system, idle, wait
36
 };
37
+#endif
38
+
39
 
40
 typedef struct {
41
     chart_priv chart;
42
@@ -84,6 +102,65 @@
43
     RET(TRUE);
44
 
45
 }
46
+#elif defined __FreeBSD__
47
+static int
48
+cpu_get_load(cpu_priv * c)
49
+{
50
+	static int	mib[2] = {-1, -1}, init = 0, j, realhz;
51
+	long		ct[CPUSTATES];
52
+
53
+	gfloat		a      , b;
54
+	struct cpu_stat	cpu, cpu_diff;
55
+	float		total;
56
+	gchar		buf[40];
57
+
58
+	ENTER;
59
+	total = 0;
60
+
61
+	if (init == 0) {
62
+		struct clockinfo ci;
63
+		j = sizeof(ci);
64
+		if (sysctlbyname("kern.clockrate", &ci, &j, NULL, 0) == -1) {
65
+			DBG("Couldn't get kern.clockrate");
66
+			RET(FALSE);
67
+		} else
68
+			realhz = ci.stathz ? ci.stathz : ci.hz;
69
+
70
+		j = 2;
71
+		if (sysctlnametomib("kern.cp_time", mib, &j) == -1) {
72
+			DBG("Couldn't get mib for kern.cp_time");
73
+			RET(FALSE);
74
+		}
75
+		init = 1;
76
+		j = sizeof(ct);
77
+	}
78
+	if (sysctl(mib, 2, ct, &j, NULL, 0) == -1) {
79
+		DBG("Couldn't get cpu stats");
80
+		RET(FALSE);
81
+	}
82
+	cpu.u = ct[CP_USER] / realhz;
83
+	cpu.n = ct[CP_NICE] / realhz;
84
+	cpu.s = ct[CP_SYS] / realhz;
85
+	cpu.i = ct[CP_IDLE] / realhz;
86
+
87
+	cpu_diff.u = cpu.u - c->cpu_prev.u;
88
+	cpu_diff.n = cpu.n - c->cpu_prev.n;
89
+	cpu_diff.s = cpu.s - c->cpu_prev.s;
90
+	cpu_diff.i = cpu.i - c->cpu_prev.i;
91
+	c->cpu_prev = cpu;
92
+
93
+	a = cpu_diff.u + cpu_diff.n + cpu_diff.s;
94
+	b = a + cpu_diff.i;
95
+	total = b ? a / b : 1.0;
96
+
97
+end:
98
+	DBG("total=%f a=%f b=%f\n", total, a, b);
99
+	g_snprintf(buf, sizeof(buf), "<b>Cpu:</b> %d%%", (int)(total * 100));
100
+	gtk_widget_set_tooltip_markup(((plugin_instance *) c)->pwid, buf);
101
+	k->add_tick(&c->chart, &total);
102
+	RET(TRUE);
103
+
104
+}
105
 #else
106
 static int
107
 cpu_get_load(cpu_priv *c)
(-)./fbpanel/files/patch-plugins__deskno__deskno.c (+11 lines)
Line 0 Link Here
1
--- ./plugins/deskno/deskno.c.orig	2010-03-02 05:26:40.000000000 -0800
2
+++ ./plugins/deskno/deskno.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -57,7 +57,7 @@
4
 
5
     ENTER;
6
     dc->deskno = get_net_current_desktop();
7
-    sprintf(buffer, "<b>%d</b>", dc->deskno + 1);
8
+    snprintf(buffer, sizeof(buffer), "<b>%d</b>", dc->deskno + 1);
9
     gtk_label_set_markup(GTK_LABEL(dc->namew), buffer);
10
     RET(TRUE);
11
 }
(-)./fbpanel/files/patch-plugins__mem__mem.c (+127 lines)
Line 0 Link Here
1
--- ./plugins/mem/mem.c.orig	2010-04-28 04:39:31.000000000 -0700
2
+++ ./plugins/mem/mem.c	2010-11-17 11:11:10.000000000 -0800
3
@@ -1,3 +1,6 @@
4
+/* vim:set ts=4 
5
+ * Code for FreeBSD added by Charlie Kester <corky1951@comcast.net>
6
+ */
7
 #include <time.h>
8
 #include <sys/time.h>
9
 #include <sys/types.h>
10
@@ -6,6 +9,11 @@
11
 #include <string.h>
12
 #include <strings.h>
13
 
14
+#if defined __FreeBSD__
15
+#include <sys/sysctl.h>
16
+#include <sys/resource.h>
17
+#include <vm/vm_param.h>
18
+#endif
19
 
20
 #include "panel.h"
21
 #include "misc.h"
22
@@ -112,11 +120,104 @@
23
     stats.swap.total = mt[MT_SwapTotal].val;
24
     stats.swap.used = mt[MT_SwapTotal].val - mt[MT_SwapFree].val;
25
 }
26
+#elif defined __FreeBSD__
27
+
28
+static void
29
+mem_usage()
30
+{
31
+	static unsigned long realmem;
32
+	static int	mib_freecount[4], mib_cachecount[4], mib_inactivecount[4],
33
+			mib_swapinfo[16], init = 0, pagesize;
34
+	static u_int	mib_free_size, mib_cache_size, mib_inactive_size,
35
+			mib_swapinfo_size;
36
+	struct xswdev	xsw;
37
+	long		scale;
38
+	size_t		len;
39
+	int		freecount , cachecount, inactivecount, n;
40
+
41
+
42
+	if (init == 0) {
43
+		//initialize meminfo
44
+		len = sizeof(unsigned long);
45
+		if (sysctlbyname("hw.realmem", &realmem, &len, NULL, 0) == -1) {
46
+			DBG("Can't get hw.realmem");
47
+			return;
48
+		}
49
+		len = sizeof(int);
50
+		if (sysctlbyname("vm.stats.vm.v_page_size", &pagesize, &len, NULL, 0) == -1) {
51
+			DBG("Can't get vm page size");
52
+			return;
53
+		}
54
+		mib_free_size = 4;
55
+		if (sysctlnametomib("vm.stats.vm.v_free_count", mib_freecount, &mib_free_size) == -1) {
56
+			DBG("Can't get mib for mem free stat");
57
+			return;
58
+		}
59
+		mib_cache_size = 4;
60
+		if (sysctlnametomib("vm.stats.vm.v_cache_count", mib_cachecount, &len) == -1) {
61
+			DBG("Can't get mib for cached mem stat");
62
+			return;
63
+		}
64
+		mib_inactive_size = 4;
65
+		if (sysctlnametomib("vm.stats.vm.v_inactive_count", mib_inactivecount, &mib_inactive_size) == -1) {
66
+			DBG("Can't get mib for mem inactive stat");
67
+			return;
68
+		}
69
+		//initialize swapinfo
70
+		mib_swapinfo_size = sizeof(mib_swapinfo) / sizeof(mib_swapinfo[0]);
71
+		if (sysctlnametomib("vm.swap_info", mib_swapinfo, &mib_swapinfo_size) == -1) {
72
+			DBG("Can't get mib for swapinfo");
73
+			return;
74
+		}
75
+		init = 1;
76
+	}
77
+	//get current meminfo
78
+	len = sizeof(int);
79
+	if (sysctl(mib_freecount, mib_free_size, &freecount, &len, NULL, 0) == -1) {
80
+		DBG("Couldn't get mem free stat");
81
+		return;
82
+	}
83
+	if (sysctl(mib_cachecount, mib_cache_size, &cachecount, &len, NULL, 0) == -1) {
84
+		DBG("Couldn't get cached mem stat");
85
+		return;
86
+	}
87
+	if (sysctl(mib_inactivecount, mib_inactive_size, &inactivecount, &len, NULL, 0) == -1) {
88
+		DBG("Couldn't get inactive mem stat");
89
+		return;
90
+	}
91
+	//save in kilobytes(same as /proc/meminfo)
92
+	stats.mem.total = realmem / 1024;
93
+	//For FreeBSD, there doesn't seem to be any firm consensus on the meaning of "memory used".
94
+	//Some utils count only wired memory as used, while others also include active and inactive memory.
95
+	//
96
+	//The 'top' utility doesn't bother to calculate "memory used" at all, but simply reports the values for 
97
+	//active, inactive, wired, cached, and free.  Unfortunately we can't follow that sensible approach here.
98
+	//
99
+	//The calculation below reflects the interpretation used by the sysinfo and freebsd_memory utils.
100
+	stats.mem.used = (realmem - pagesize * (freecount + cachecount + inactivecount)) / 1024;
101
+
102
+	//get swapinfo
103
+	scale = pagesize / 1024;
104
+	for (n = 0;; ++n) {
105
+		mib_swapinfo[mib_swapinfo_size] = n;
106
+		len = sizeof xsw;
107
+		if (sysctl(mib_swapinfo, mib_swapinfo_size + 1, &xsw, &len, 0, 0) == -1) {
108
+			// not necessarily an error!
109
+			break;
110
+		}
111
+		if (xsw.xsw_version != XSWDEV_VERSION) {
112
+			DBG("XSW version mismatch");
113
+			break;
114
+		}
115
+		stats.swap.total += xsw.xsw_nblks * scale;
116
+		stats.swap.used += xsw.xsw_used * scale;
117
+	}
118
+}
119
 #else
120
 static void
121
 mem_usage()
122
 {
123
-   
124
+
125
 }
126
 #endif
127
 
(-)./fbpanel/files/patch-plugins__net__net.c (+198 lines)
Line 0 Link Here
1
--- ./plugins/net/net.c.orig	2010-03-07 00:14:04.000000000 -0800
2
+++ ./plugins/net/net.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -19,10 +19,23 @@
4
  * 
5
  */
6
 /*A little bug fixed by Mykola <mykola@2ka.mipt.ru>:) */
7
+/* FreeBSD code borrowed from patches to the lxpanel port */
8
 
9
 
10
 
11
 #include "../chart/chart.h"
12
+
13
+#ifdef __FreeBSD__
14
+#include <sys/types.h>
15
+#include <sys/param.h>
16
+#include <sys/socket.h>
17
+#include <sys/ioctl.h>
18
+#include <ifaddrs.h>
19
+#include <net/if.h>
20
+#include <net/if_media.h>
21
+#include <net/if_var.h>
22
+#endif
23
+
24
 #include <stdlib.h>
25
 #include <string.h>
26
 
27
@@ -102,6 +115,171 @@
28
     RET(TRUE);
29
 
30
 }
31
+#elif defined __FreeBSD__
32
+static inline	gboolean
33
+parse_stats(char *buf,
34
+	    int prx_idx,
35
+	    int ptx_idx,
36
+	    gulong * in_packets,
37
+	    gulong * out_packets,
38
+	    int brx_idx,
39
+	    int btx_idx,
40
+	    gulong * in_bytes,
41
+	    gulong * out_bytes)
42
+{
43
+	char           *p;
44
+	int		i;
45
+
46
+	p = strtok(buf, " \t\n");
47
+	for (i = 0; p; i++, p = strtok(NULL, " \t\n")) {
48
+		if (i == prx_idx)
49
+			*in_packets = g_ascii_strtoull(p, NULL, 10);
50
+		if (i == ptx_idx)
51
+			*out_packets = g_ascii_strtoull(p, NULL, 10);
52
+		if (i == brx_idx)
53
+			*in_bytes = g_ascii_strtoull(p, NULL, 10);
54
+		if (i == btx_idx)
55
+			*out_bytes = g_ascii_strtoull(p, NULL, 10);
56
+	}
57
+
58
+	if (i <= prx_idx || i <= ptx_idx || i <= brx_idx || i <= btx_idx)
59
+		return FALSE;
60
+
61
+	return TRUE;
62
+}
63
+
64
+static inline void
65
+parse_header(char *buf,
66
+	     int *prx_idx,
67
+	     int *ptx_idx,
68
+	     int *brx_idx,
69
+	     int *btx_idx)
70
+{
71
+	char           *p;
72
+	int		i;
73
+
74
+	*prx_idx = *ptx_idx = -1;
75
+	*brx_idx = *btx_idx = -1;
76
+
77
+	p = strtok(buf, " \n\t");
78
+	for (i = 0; p; i++, p = strtok(NULL, " \t\n")) {
79
+		if (!strcmp(p, "Ipkts")) {
80
+			*prx_idx = i;
81
+		} else if (!strcmp(p, "Ibytes")) {
82
+			*brx_idx = i;
83
+		} else if (!strcmp(p, "Opkts")) {
84
+			*ptx_idx = i;
85
+		} else if (!strcmp(p, "Obytes")) {
86
+			*btx_idx = i;
87
+		}
88
+	}
89
+}
90
+static int
91
+net_get_load(net_priv * c)
92
+{
93
+	struct net_stat	net, net_diff;
94
+	float		total[2];
95
+	GError         *error;
96
+	char           *command_line;
97
+	char          **argv;
98
+	char           *error_message = NULL;
99
+	int		pipe_out;
100
+	gulong		in_packets = -1;
101
+	gulong		out_packets = -1;
102
+	gulong		in_bytes = -1;
103
+	gulong		out_bytes = -1;
104
+	char		tooltip[256];
105
+
106
+	ENTER;
107
+	error = NULL;
108
+	command_line = g_strdup_printf("/usr/bin/netstat -n -I %s -b -f inet", c->iface);
109
+	DBG(command_line);
110
+	if (!g_shell_parse_argv(command_line, NULL, &argv, &error)) {
111
+		error_message = g_strdup_printf("Could not parse command line '%s': %s",
112
+						command_line,
113
+						error->message);
114
+		DBG(error_message);
115
+		g_error_free(error);
116
+		g_free(command_line);
117
+		RET(0);
118
+	}
119
+	g_free(command_line);
120
+
121
+	error = NULL;
122
+	if (g_spawn_async_with_pipes(NULL,
123
+				     argv,
124
+				     NULL,
125
+				     0,
126
+				     NULL,
127
+				     NULL,
128
+				     NULL,
129
+				     NULL,
130
+				     &pipe_out,
131
+				     NULL,
132
+				     &error)) {
133
+		GIOChannel     *channel;
134
+		char           *buf;
135
+		int		prx_idx   , ptx_idx;
136
+		int		brx_idx   , btx_idx;
137
+
138
+		channel = g_io_channel_unix_new(pipe_out);
139
+
140
+		g_io_channel_read_line(channel, &buf, NULL, NULL, NULL);
141
+		parse_header(buf, &prx_idx, &ptx_idx, &brx_idx, &btx_idx);
142
+		g_free(buf);
143
+
144
+		if (prx_idx == -1 || ptx_idx == -1 ||
145
+		    brx_idx == -1 || btx_idx == -1) {
146
+			error_message = g_strdup("Could not parse 'netstat' output. Unknown format");
147
+			DBG(error_message);
148
+			goto error_shutdown;
149
+		}
150
+		g_io_channel_read_line(channel, &buf, NULL, NULL, NULL);
151
+
152
+		if (!parse_stats(buf,
153
+				 prx_idx, ptx_idx, &in_packets, &out_packets,
154
+				 brx_idx, btx_idx, &in_bytes, &out_bytes)) {
155
+			error_message = g_strdup_printf("Could not parse interface statistics from '%s'. "
156
+							"prx_idx = %d; ptx_idx = %d; brx_idx = %d; btx_idx = %d;",
157
+				   buf, prx_idx, ptx_idx, brx_idx, btx_idx);
158
+			DBG(error_message);
159
+			goto error_shutdown;
160
+		} else if (in_packets == -1 || out_packets == -1 || in_bytes == -1 || out_bytes == -1) {
161
+			error_message = g_strdup_printf("Could not obtain information on interface '%s' from netstat",
162
+							c->iface);
163
+			DBG(error_message);
164
+			goto error_shutdown;
165
+		}
166
+		net.tx = out_bytes;
167
+		net.rx = in_bytes;
168
+
169
+		net_diff.tx = ((net.tx - c->net_prev.tx) >> 10) / CHECK_PERIOD;
170
+		net_diff.rx = ((net.rx - c->net_prev.rx) >> 10) / CHECK_PERIOD;
171
+
172
+		c->net_prev = net;
173
+		total[0] = (float)(net_diff.tx) / c->max;
174
+		total[1] = (float)(net_diff.rx) / c->max;
175
+		DBG("%f %ul %ul\n", total, net_diff.tx, net_diff.rx);
176
+		k->add_tick(&c->chart, total);
177
+		g_snprintf(tooltip, sizeof(tooltip), "<b>%s:</b>\nD %lu Kbs, U %lu Kbs",
178
+			   c->iface, net_diff.rx, net_diff.tx);
179
+		gtk_widget_set_tooltip_markup(((plugin_instance *) c)->pwid, tooltip);
180
+
181
+error_shutdown:
182
+		g_free(buf);
183
+		g_io_channel_unref(channel);
184
+		close(pipe_out);
185
+	} else {
186
+		error_message = g_strdup_printf("Error running /usr/bin/netstat for '%s': %s",
187
+						c->iface, error->message);
188
+		g_error_free(error);
189
+	}
190
+
191
+	g_strfreev(argv);
192
+
193
+	RET(TRUE);
194
+
195
+}
196
 #else
197
 
198
 static int
(-)./fbpanel/files/patch-plugins__volume__volume.c (+13 lines)
Line 0 Link Here
1
--- ./plugins/volume/volume.c.orig	2010-05-02 02:13:47.000000000 -0700
2
+++ ./plugins/volume/volume.c	2010-11-17 11:06:07.000000000 -0800
3
@@ -11,6 +11,10 @@
4
 #include <fcntl.h>
5
 #if defined __linux__
6
 #include <linux/soundcard.h>
7
+#else
8
+#if defined __FreeBSD__
9
+#include <sys/soundcard.h>
10
+#endif
11
 #endif
12
 
13
 //#define DEBUGPRN
(-)./fbpanel/files/patch-scripts__endianess.sh (+22 lines)
Line 0 Link Here
1
--- ./scripts/endianess.sh.orig	2009-06-01 07:55:28.000000000 -0700
2
+++ ./scripts/endianess.sh	2010-11-17 11:06:07.000000000 -0800
3
@@ -1,16 +1,13 @@
4
-#!/bin/bash
5
+#!/bin/sh
6
 
7
 # When cross compiling, you may put cross compiler directory 
8
 # in PATH before native gcc (aka spoofing), or you may set CC 
9
 # to exact name of cross compiler:
10
 #    CC=/opt/ppc_gcc/bin/gcc endianess
11
 
12
-# x86 and friends are considerd LITTLE endian, all others are BIG
13
-a=`${CC:-gcc} -v 2>&1 | grep Target`
14
-[ $? -ne 0 ] && exit 1
15
-#echo $a
16
+a=`sysctl -n hw.byteorder`
17
 
18
-if [ "${a/86/}" != "$a" ]; then
19
+if [ "${a}" == "1234" ]; then	
20
     echo LITTLE
21
 else
22
     echo BIG
(-)./fbpanel/pkg-descr (-1 / +7 lines)
Lines 7-12 Link Here
7
  o show desktop - button to iconify or shade all windows 
7
  o show desktop - button to iconify or shade all windows 
8
  o image        - display an image
8
  o image        - display an image
9
  o clock        - show the current time and/or date
9
  o clock        - show the current time and/or date
10
  o sytem tray   - tray for XEMBED icons (aka docklets)
10
  o system tray  - tray for XEMBED icons (aka docklets)
11
  o cpu monitor
12
  o network monitor
13
  o memory monitor
14
  o battery monitor
15
  o volume control
16
  o general monitor - display output of configured command in a panel
11
17
12
WWW: http://fbpanel.sourceforge.net/
18
WWW: http://fbpanel.sourceforge.net/
(-)./fbpanel/pkg-plist (-19 / +47 lines)
Lines 1-26 Link Here
1
bin/fbpanel
1
bin/fbpanel
2
lib/fbpanel/battery.so
3
lib/fbpanel/chart.so
4
lib/fbpanel/cpu.so
5
lib/fbpanel/dclock.so
6
lib/fbpanel/deskno.so
7
lib/fbpanel/deskno2.so
8
lib/fbpanel/genmon.so
9
lib/fbpanel/icons.so
10
lib/fbpanel/image.so
11
lib/fbpanel/launchbar.so
12
lib/fbpanel/mem.so
13
lib/fbpanel/menu.so
14
lib/fbpanel/meter.so
15
lib/fbpanel/net.so
16
lib/fbpanel/pager.so
17
lib/fbpanel/separator.so
18
lib/fbpanel/space.so
19
lib/fbpanel/taskbar.so
20
lib/fbpanel/tclock.so
21
lib/fbpanel/tray.so
22
lib/fbpanel/volume.so
23
lib/fbpanel/wincmd.so
24
libexec/fbpanel/make_profile
2
%%DATADIR%%/default
25
%%DATADIR%%/default
3
%%DATADIR%%/images/bottom-left.xpm
26
%%DATADIR%%/images/battery_0.png
4
%%DATADIR%%/images/bottom-right.xpm
27
%%DATADIR%%/images/battery_1.png
28
%%DATADIR%%/images/battery_2.png
29
%%DATADIR%%/images/battery_3.png
30
%%DATADIR%%/images/battery_4.png
31
%%DATADIR%%/images/battery_5.png
32
%%DATADIR%%/images/battery_6.png
33
%%DATADIR%%/images/battery_7.png
34
%%DATADIR%%/images/battery_8.png
35
%%DATADIR%%/images/battery_charging_0.png
36
%%DATADIR%%/images/battery_charging_1.png
37
%%DATADIR%%/images/battery_charging_2.png
38
%%DATADIR%%/images/battery_charging_3.png
39
%%DATADIR%%/images/battery_charging_4.png
40
%%DATADIR%%/images/battery_charging_5.png
41
%%DATADIR%%/images/battery_charging_6.png
42
%%DATADIR%%/images/battery_charging_7.png
43
%%DATADIR%%/images/battery_charging_8.png
44
%%DATADIR%%/images/battery_na.png
5
%%DATADIR%%/images/dclock_glyphs.png
45
%%DATADIR%%/images/dclock_glyphs.png
6
%%DATADIR%%/images/default.xpm
46
%%DATADIR%%/images/default.xpm
7
%%DATADIR%%/images/gnome-applications.png
47
%%DATADIR%%/images/gnome-session-halt.png
8
%%DATADIR%%/images/gnome-devel.svg
48
%%DATADIR%%/images/gnome-session-reboot.png
9
%%DATADIR%%/images/gnome-emacs.svg
49
%%DATADIR%%/images/logo.png
10
%%DATADIR%%/images/gnome-fs-desktop.svg
11
%%DATADIR%%/images/gnome-fs-home.svg
12
%%DATADIR%%/images/gnome-globe.svg
13
%%DATADIR%%/images/gnome-graphics.png
14
%%DATADIR%%/images/gnome-joystick.svg
15
%%DATADIR%%/images/gnome-multimedia.svg
16
%%DATADIR%%/images/gnome-settings.svg
17
%%DATADIR%%/images/gnome-system.png
18
%%DATADIR%%/images/gnome-util.svg
19
%%DATADIR%%/images/gnome_terminal.svg
20
%%DATADIR%%/images/mozilla-firefox.svg
21
%%DATADIR%%/images/star.png
22
%%DATADIR%%/images/top-left.xpm
23
%%DATADIR%%/images/top-right.xpm
24
%%DATADIR%%/pager
50
%%DATADIR%%/pager
25
@dirrm %%DATADIR%%/images
51
@dirrm %%DATADIR%%/images
26
@dirrm %%DATADIR%%
52
@dirrm %%DATADIR%%
53
@dirrm libexec/fbpanel
54
@dirrm lib/fbpanel

Return to bug 152338