summaryrefslogtreecommitdiff
path: root/recipes/matchbox-panel
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/matchbox-panel')
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.8.1/automake-lossage.patch20
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.8.1/make-batteryapp-less-strict.patch13
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.8.1/more-automake-lossage.patch10
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.8.3/make-batteryapp-less-strict.patch13
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.8.3/wifi-location.patch54
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.1/allow-100-per-cent-battery.patch30
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.1/no_time_support.patch77
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.2/add_hostap.patch24
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.2/kernel2.6.patch226
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.2/mb-applet-battery-repaint.patch43
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-allow-disabling-menu-panel.patch33
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-multi-category-matching.patch32
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch195
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-battery-repaint-093.patch32
-rw-r--r--recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-system-monitor-crash.patch85
-rw-r--r--recipes/matchbox-panel/matchbox-panel.inc19
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.8.1.bb19
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.8.3.bb19
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.8.bb14
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.9.1.bb26
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.9.2.bb13
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.9.3.bb5
-rw-r--r--recipes/matchbox-panel/matchbox-panel_0.9.bb15
-rw-r--r--recipes/matchbox-panel/matchbox-panel_svn.bb7
24 files changed, 1024 insertions, 0 deletions
diff --git a/recipes/matchbox-panel/matchbox-panel-0.8.1/automake-lossage.patch b/recipes/matchbox-panel/matchbox-panel-0.8.1/automake-lossage.patch
new file mode 100644
index 0000000000..b8a8613779
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.8.1/automake-lossage.patch
@@ -0,0 +1,20 @@
+diff -urNa matchbox-panel-0.8.1/applets/Makefile.am matchbox-panel-0.8.1-patched/applets/Makefile.am
+--- matchbox-panel-0.8.1/applets/Makefile.am 2004-02-07 12:48:56.000000000 -0500
++++ matchbox-panel-0.8.1-patched/applets/Makefile.am 2004-06-15 21:15:30.000000000 -0400
+@@ -12,10 +12,12 @@
+ bin_PROGRAMS = \
+ mb-applet-clock mb-applet-menu-launcher mb-applet-wireless \
+ mb-applet-launcher mb-applet-system-monitor mb-applet-battery
+-
+- mb_applet_battery_SOURCES = mb-applet-battery.c
+- mb_applet_battery_LDADD = $(LIBMB_LIBS) $(SN_LIBS) -lapm
+-
++mb_applet_battery_SOURCES = mb-applet-battery.c
++mb_applet_battery_OBJECTS = mb-applet-battery.$(OBJEXT)
++mb_applet_battery_LDADD = $(LIBMB_LIBS) $(SN_LIBS) -lapm
++mb-applet-battery$(EXEEXT): $(mb_applet_battery_OBJECTS)
++ @rm -f mb-applet-battery$(EXEEXT)
++ $(LINK) $(mb_applet_battery_LDFLAGS) $(mb_applet_battery_OBJECTS) $(mb_applet_battery_LDADD) $(LIBS)
+ else
+ bin_PROGRAMS = \
+ mb-applet-clock mb-applet-menu-launcher mb-applet-wireless \
diff --git a/recipes/matchbox-panel/matchbox-panel-0.8.1/make-batteryapp-less-strict.patch b/recipes/matchbox-panel/matchbox-panel-0.8.1/make-batteryapp-less-strict.patch
new file mode 100644
index 0000000000..45bff32b9a
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.8.1/make-batteryapp-less-strict.patch
@@ -0,0 +1,13 @@
+diff -urNd ../matchbox-panel-0.8.1-r4/matchbox-panel-0.8.1/applets/mb-applet-battery.c matchbox-panel-0.8.1/applets/mb-applet-battery.c
+--- ../matchbox-panel-0.8.1-r4/matchbox-panel-0.8.1/applets/mb-applet-battery.c 2004-02-25 22:58:09.000000000 +0000
++++ matchbox-panel-0.8.1/applets/mb-applet-battery.c 2004-09-16 12:17:58.000000000 +0100
+@@ -385,8 +385,7 @@
+ sprintf(tray_msg, _("AC Connected\nFully charged.\n"));
+ } else {
+ if (apm_vals[PERCENTAGE] > 0
+- && apm_vals[PERCENTAGE] < 100
+- && apm_vals[TIME_LEFT] > 0)
++ && apm_vals[PERCENTAGE] < 100)
+ {
+ sprintf(tray_msg,
+ _("Battery Power\nJuice %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]);
diff --git a/recipes/matchbox-panel/matchbox-panel-0.8.1/more-automake-lossage.patch b/recipes/matchbox-panel/matchbox-panel-0.8.1/more-automake-lossage.patch
new file mode 100644
index 0000000000..48959e0bf4
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.8.1/more-automake-lossage.patch
@@ -0,0 +1,10 @@
+--- matchbox-panel-0.8.1/applets/Makefile.am.old 2004-07-03 11:37:03.000000000 +0100
++++ matchbox-panel-0.8.1/applets/Makefile.am 2004-07-03 11:37:07.000000000 +0100
+@@ -13,7 +13,6 @@
+ mb-applet-clock mb-applet-menu-launcher mb-applet-wireless \
+ mb-applet-launcher mb-applet-system-monitor mb-applet-battery
+ mb_applet_battery_SOURCES = mb-applet-battery.c
+-mb_applet_battery_OBJECTS = mb-applet-battery.$(OBJEXT)
+ mb_applet_battery_LDADD = $(LIBMB_LIBS) $(SN_LIBS) -lapm
+ mb-applet-battery$(EXEEXT): $(mb_applet_battery_OBJECTS)
+ @rm -f mb-applet-battery$(EXEEXT)
diff --git a/recipes/matchbox-panel/matchbox-panel-0.8.3/make-batteryapp-less-strict.patch b/recipes/matchbox-panel/matchbox-panel-0.8.3/make-batteryapp-less-strict.patch
new file mode 100644
index 0000000000..45bff32b9a
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.8.3/make-batteryapp-less-strict.patch
@@ -0,0 +1,13 @@
+diff -urNd ../matchbox-panel-0.8.1-r4/matchbox-panel-0.8.1/applets/mb-applet-battery.c matchbox-panel-0.8.1/applets/mb-applet-battery.c
+--- ../matchbox-panel-0.8.1-r4/matchbox-panel-0.8.1/applets/mb-applet-battery.c 2004-02-25 22:58:09.000000000 +0000
++++ matchbox-panel-0.8.1/applets/mb-applet-battery.c 2004-09-16 12:17:58.000000000 +0100
+@@ -385,8 +385,7 @@
+ sprintf(tray_msg, _("AC Connected\nFully charged.\n"));
+ } else {
+ if (apm_vals[PERCENTAGE] > 0
+- && apm_vals[PERCENTAGE] < 100
+- && apm_vals[TIME_LEFT] > 0)
++ && apm_vals[PERCENTAGE] < 100)
+ {
+ sprintf(tray_msg,
+ _("Battery Power\nJuice %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]);
diff --git a/recipes/matchbox-panel/matchbox-panel-0.8.3/wifi-location.patch b/recipes/matchbox-panel/matchbox-panel-0.8.3/wifi-location.patch
new file mode 100644
index 0000000000..930db66dc9
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.8.3/wifi-location.patch
@@ -0,0 +1,54 @@
+--- matchbox-panel-0.8.1/src/panel.c Mon Oct 25 00:15:53 2004
++++ matchbox-panel-0.8.1/src/panel.c Tue Oct 26 21:40:56 2004
+@@ -813,6 +813,7 @@
+ int app_origin_dist = 0;
+ char *cmd_str = NULL;
+ MBPanelApp *new_papp = NULL;
++ Bool from_session = False;
+
+ util_get_command_str_from_win(panel, win, &cmd_str); /* cmd_str freed l8r */
+
+@@ -820,9 +821,10 @@
+ {
+ app_origin_dist = panel->session_init_offset;
+ session_preexisting_clear_current(panel);
++ from_session = True;
+ }
+
+- new_papp = panel_app_new(panel, win, cmd_str);
++ new_papp = panel_app_new(panel, win, cmd_str, from_session);
+
+ if (new_papp)
+ {
+--- matchbox-panel-0.8.1/src/panel_app.c Mon Oct 25 00:15:53 2004
++++ matchbox-panel-0.8.1/src/panel_app.c Tue Oct 26 21:39:28 2004
+@@ -239,7 +239,7 @@
+ }
+
+ MBPanelApp *
+-panel_app_new(MBPanel *panel, Window win, char *cmd_str)
++panel_app_new(MBPanel *panel, Window win, char *cmd_str, Bool from_session)
+ {
+ MBPanelApp *papp;
+ XWindowAttributes attr;
+@@ -261,7 +261,7 @@
+ papp->w = attr.width;
+ papp->h = attr.height;
+
+- if (session_preexisting_restarting(panel) && !panel->session_run_first_time)
++ if (session_preexisting_restarting(panel) && !panel->session_run_first_time && from_session)
+ {
+ if (panel->session_cur_gravity == PAPP_GRAVITY_START)
+ add_at_start = True;
+--- matchbox-panel-0.8.1/src/panel_app.h Tue Feb 3 15:11:25 2004
++++ matchbox-panel-0.8.1/src/panel_app.h Tue Oct 26 21:42:07 2004
+@@ -61,7 +61,8 @@
+
+ MBPanelApp* panel_app_new(MBPanel *panel,
+ Window win,
+- char *cmd );
++ char *cmd,
++ Bool from_session);
+
+ void panel_app_handle_configure_request(MBPanel *panel,
+ XConfigureRequestEvent *ev);
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.1/allow-100-per-cent-battery.patch b/recipes/matchbox-panel/matchbox-panel-0.9.1/allow-100-per-cent-battery.patch
new file mode 100644
index 0000000000..f66763f8cf
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.1/allow-100-per-cent-battery.patch
@@ -0,0 +1,30 @@
+Index: matchbox-panel-0.9.1/applets/mb-applet-battery.c
+===================================================================
+--- matchbox-panel-0.9.1.orig/applets/mb-applet-battery.c 2005-01-21 15:28:14.000000000 +0000
++++ matchbox-panel-0.9.1/applets/mb-applet-battery.c 2005-02-16 14:26:03.000000000 +0000
+@@ -230,7 +230,7 @@
+ printf("bar: %ix%i +%i+%i (%i)\n", bar_width, bar_height, bar_x, bar_y, mb_pixbuf_img_get_width(img_backing) );
+ */
+
+- if (apm_vals[PERCENTAGE] <= 0 || apm_vals[PERCENTAGE] > 99)
++ if (apm_vals[PERCENTAGE] <= 0 || apm_vals[PERCENTAGE] > 100)
+ {
+ r = 0x66; g = 0xff; b = 0x33; ac_power = True;
+ apm_vals[PERCENTAGE] = -1;
+@@ -378,14 +378,14 @@
+ if (apm_vals[AC_POWER] == AC_LINE_STATUS_ON)
+ {
+ if (apm_vals[PERCENTAGE] > 0
+- && apm_vals[PERCENTAGE] < 100 )
++ && apm_vals[PERCENTAGE] <= 100 )
+ sprintf(tray_msg, _("AC Connected\nCharging: %.2i %%\n")
+ , apm_vals[PERCENTAGE]);
+ else
+ sprintf(tray_msg, _("AC Connected\nFully charged.\n"));
+ } else {
+ if (apm_vals[PERCENTAGE] > 0
+- && apm_vals[PERCENTAGE] < 100
++ && apm_vals[PERCENTAGE] <= 100
+ /* && apm_vals[TIME_LEFT] > 0 Less strict */)
+ {
+ sprintf(tray_msg,
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.1/no_time_support.patch b/recipes/matchbox-panel/matchbox-panel-0.9.1/no_time_support.patch
new file mode 100644
index 0000000000..d97afabf5b
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.1/no_time_support.patch
@@ -0,0 +1,77 @@
+Index: matchbox-panel-0.9.1/applets/mb-applet-battery.c
+===================================================================
+--- matchbox-panel-0.9.1.orig/applets/mb-applet-battery.c 2005-02-16 14:29:16.000000000 +0000
++++ matchbox-panel-0.9.1/applets/mb-applet-battery.c 2005-02-16 16:45:55.000000000 +0000
+@@ -273,24 +273,28 @@
+ mb_pixbuf_img_plot_pixel(pb, img_backing, x, y, r, g, b);
+ }
+
+- /* Bubble alerts */
+- if ((time_left_idx > 0)
+- && !ac_power
+- && apm_vals[PERCENTAGE] > 0
+- /* && apm_vals[TIME_LEFT] > 0 XXX Less strict */
+- && (apm_vals[TIME_LEFT] < time_left_alerts[time_left_idx]))
++ /*dont do this if time values arent supported by this bios*/
++ if (apm_vals[TIME_LEFT] > 0 )
+ {
+- char tray_msg[256];
+- sprintf(tray_msg,
+- _("Battery power very low !\n\nTime Left: %.2i minutes"),
+- time_left_alerts[time_left_idx]);
+- mb_tray_app_tray_send_message(app, tray_msg, 0);
+- time_left_idx--;
+- }
+- else if (time_left_idx < 4
+- && apm_vals[TIME_LEFT] > time_left_alerts[time_left_idx+1])
+- {
+- time_left_idx++;
++ /* Bubble alerts */
++ if ((time_left_idx > 0)
++ && !ac_power
++ && apm_vals[PERCENTAGE] > 0
++ /* && apm_vals[TIME_LEFT] > 0 XXX Less strict */
++ && (apm_vals[TIME_LEFT] < time_left_alerts[time_left_idx]))
++ {
++ char tray_msg[256];
++ sprintf(tray_msg,
++ _("Battery power very low !\n\nTime Left: %.2i minutes"),
++ time_left_alerts[time_left_idx]);
++ mb_tray_app_tray_send_message(app, tray_msg, 0);
++ time_left_idx--;
++ }
++ else if (time_left_idx < 4
++ && apm_vals[TIME_LEFT] > time_left_alerts[time_left_idx+1])
++ {
++ time_left_idx++;
++ }
+ }
+
+ mb_pixbuf_img_render_to_drawable(pb, img_backing, drw, 0, 0);
+@@ -385,12 +389,20 @@
+ sprintf(tray_msg, _("AC Connected\nFully charged.\n"));
+ } else {
+ if (apm_vals[PERCENTAGE] > 0
+- && apm_vals[PERCENTAGE] <= 100
+- /* && apm_vals[TIME_LEFT] > 0 Less strict */)
+- {
+- sprintf(tray_msg,
+- _("Battery Power\nJuice %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]);
+- }
++ && apm_vals[PERCENTAGE] <= 100 )
++ {
++ if (apm_vals[TIME_LEFT] > 0 )
++ {
++ sprintf(tray_msg,
++ _("Battery Power\nJuice %.2i %%\nTime left: %.2i mins\n"), apm_vals[PERCENTAGE], apm_vals[TIME_LEFT]);
++ }
++ else
++ {
++ sprintf(tray_msg,
++ _("Battery Power\nJuice %.2i %%\n"), apm_vals[PERCENTAGE]);
++ }
++
++ }
+ else sprintf(tray_msg, _("Battery Power\n Device read error.\n"));
+ }
+ mb_tray_app_tray_send_message(app, tray_msg, 5000);
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/add_hostap.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/add_hostap.patch
new file mode 100644
index 0000000000..94cc08364b
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/add_hostap.patch
@@ -0,0 +1,24 @@
+--- matchbox-panel-0.9.2/applets/mb-applet-wireless.c.old 2005-04-05 19:55:39.000000000 +0200
++++ matchbox-panel-0.9.2/applets/mb-applet-wireless.c 2005-12-17 14:00:01.000000000 +0100
+@@ -354,8 +354,19 @@
+ if (Mwd.iface != NULL)
+ return 0;
+
+- /* mark first found as one to monitor */
+- Mwd.iface = strdup(ifname);
++ if(iw_get_range_info(Wfd, ifname, &(WInfo.range)) >= 0)
++ WInfo.has_range = 1;
++
++ if (iw_get_stats(Wfd, ifname,
++ &(WInfo.stats),
++ &(WInfo.range), WInfo.has_range) >= 0)
++ {
++ Mwd.iface = strdup(ifname);
++ }
++ else
++ {
++ Mwd.iface = "wlan0";
++ }
+
+ return 0;
+ }
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/kernel2.6.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/kernel2.6.patch
new file mode 100644
index 0000000000..f849c8a41e
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/kernel2.6.patch
@@ -0,0 +1,226 @@
+--- matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c.old 2005-03-20 18:43:31.000000000 +0100
++++ matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c 2005-12-21 10:24:18.000000000 +0100
+@@ -37,6 +37,11 @@
+ # define _(text) (text)
+ #endif
+
++#include <linux/version.h>
++#ifndef KERNEL_VERSION
++#define KERNEL_VERSION(a,b,c) (((a) << 16) | ((b) << 8) | (c))
++#endif
++
+ #ifdef MB_HAVE_PNG
+ #define IMG_EXT "png"
+ #else
+@@ -112,71 +117,148 @@
+
+ int system_memory(void)
+ {
+- u_int64_t my_mem_used, my_mem_max;
+- u_int64_t my_swap_max;
+-
+- static int mem_delay = 0;
+- FILE *mem;
+- static u_int64_t total, used, mfree, shared, buffers, cached,
+- cache_total, cache_used;
+-
+- /* put this in permanent storage instead of stack */
+- static char not_needed[2048];
+-
+- if (mem_delay-- <= 0) {
+- if ((mem = fopen("/proc/meminfo", "r")) == NULL)
+- {
+- fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/meminfo. Exiting.\n");
+- exit(1);
+- }
+-
+-
+-
+- fgets(not_needed, 2048, mem);
+-
+- /*
+- total: used: free: shared: buffers: cached:
+- */
+-
+- fscanf(mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &total, &used, &mfree,
+- &shared, &buffers, &cached);
+-
+- fscanf(mem, "%*s %Ld %Ld", &cache_total, &cache_used);
+-
+- fclose(mem);
+- mem_delay = 25;
+-
+- /* calculate it */
+- my_mem_max = total;
+- my_swap_max = cache_total;
+-
+- my_mem_used = cache_used + used - cached - buffers;
+-
+- /* No swap on ipaq
+- if (my_mem_used > my_mem_max) {
+- my_swap_used = my_mem_used - my_mem_max;
+- my_mem_used = my_mem_max;
+- } else {
+- my_swap_used = 0;
+- }
+- */
+-
+- msd.mem_used = my_mem_used;
+- msd.mem_max = my_mem_max;
+- //msd.swap_used = my_swap_used;
+- //msd.swap_max = my_swap_max;
+-
+- msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
+- //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max;
+-
+- /* memory info changed - update things */
+- return 1;
+- }
+- /* nothing new */
+- return 0;
++ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
++ u_int64_t total, mfree, buffers, cached, used, shared,
++ cache_total, cache_free, cache_used;
++
++ u_int64_t my_mem_used, my_mem_max;
++ u_int64_t my_swap_max;
++
++ static int mem_delay = 0;
++ FILE *mem;
++
++ /* put this in permanent storage instead of stack */
++ static char not_needed[2048];
++
++ if (mem_delay-- <= 0) {
++ if ((mem = fopen("/proc/meminfo", "r")) == NULL) {
++ fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/meminfo. Exiting.\n");
++ exit(1);
++ }
++
++ fgets(not_needed, 2048, mem);
++
++ rewind (mem);
++
++ fscanf (mem, "%*s %Ld %*s", &total);
++ fscanf (mem, "%*s %Ld %*s", &mfree);
++ fscanf (mem, "%*s %Ld %*s", &buffers);
++ fscanf (mem, "%*s %Ld %*s", &cached);
++ fscanf (mem, "%*s %Ld %*s", &shared);
++ fscanf (mem, "%*s %Ld %*s", &used);
++ fscanf (mem, "%*s %*Ld %*s");
++ fscanf (mem, "%*s %*Ld %*s");
++ fscanf (mem, "%*s %*Ld %*s");
++ fscanf (mem, "%*s %*Ld %*s");
++ fscanf (mem, "%*s %*Ld %*s");
++ fscanf (mem, "%*s %Ld %*s", &cache_total);
++ fscanf (mem, "%*s %Ld %*s", &cache_free);
++
++ fclose (mem);
++
++ total = total * 1024;
++ mfree = mfree * 1024;
++ buffers = buffers * 1024;
++ cached = cached * 1024;
++ used = used * 1024;
++ shared = shared * 1024;
++ cache_total = cache_total * 1024;
++ cache_used = cache_total - (cache_free * 1024);
++
++ mem_delay = 25;
++
++ /* calculate it */
++ my_mem_max = total;
++ my_swap_max = cache_total;
++
++ my_mem_used = cache_used + used - cached - buffers;
++
++ /* No swap on ipaq
++ if (my_mem_used > my_mem_max) {
++ my_swap_used = my_mem_used - my_mem_max;
++ my_mem_used = my_mem_max;
++ } else {
++ my_swap_used = 0;
++ }
++ */
++
++ msd.mem_used = my_mem_used;
++ msd.mem_max = my_mem_max;
++ //msd.swap_used = my_swap_used;
++ //msd.swap_max = my_swap_max;
++
++ msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
++ //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max;
++
++ /* memory info changed - update things */
++ return 1;
++ }
++ /* nothing new */
++ return 0;
++ #else
++ static u_int64_t total, used, mfree, shared, buffers, cached,
++ cache_total, cache_used;
++
++ u_int64_t my_mem_used, my_mem_max;
++ u_int64_t my_swap_max;
++
++ static int mem_delay = 0;
++ FILE *mem;
++
++ /* put this in permanent storage instead of stack */
++ static char not_needed[2048];
++
++ if (mem_delay-- <= 0) {
++ if ((mem = fopen("/proc/meminfo", "r")) == NULL) {
++ fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/meminfo. Exiting.\n");
++ exit(1);
++ }
++
++ fgets(not_needed, 2048, mem);
++
++ /*
++ total: used: free: shared: buffers: cached:
++ */
++ fscanf(mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &total, &used, &mfree,
++ &shared, &buffers, &cached);
++
++ fscanf(mem, "%*s %Ld %Ld", &cache_total, &cache_used);
++
++ fclose(mem);
++
++ mem_delay = 25;
++
++ /* calculate it */
++ my_mem_max = total;
++ my_swap_max = cache_total;
++
++ my_mem_used = cache_used + used - cached - buffers;
++
++ /* No swap on ipaq
++ if (my_mem_used > my_mem_max) {
++ my_swap_used = my_mem_used - my_mem_max;
++ my_mem_used = my_mem_max;
++ } else {
++ my_swap_used = 0;
++ }
++ */
++
++ msd.mem_used = my_mem_used;
++ msd.mem_max = my_mem_max;
++ //msd.swap_used = my_swap_used;
++ //msd.swap_max = my_swap_max;
++
++ msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
++ //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max;
++
++ /* memory info changed - update things */
++ return 1;
++ }
++ /* nothing new */
++ return 0;
++ #endif
+ }
+
+-
+ void
+ paint_callback (MBTrayApp *app, Drawable drw )
+ {
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-applet-battery-repaint.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-applet-battery-repaint.patch
new file mode 100644
index 0000000000..7d5c53f165
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-applet-battery-repaint.patch
@@ -0,0 +1,43 @@
+--- matchbox-panel-0.9.2/applets/mb-applet-battery.c.orig 2005-04-06 22:20:45.000000000 +0200
++++ matchbox-panel-0.9.2/applets/mb-applet-battery.c 2006-02-01 01:21:17.000000000 +0100
+@@ -200,23 +200,12 @@
+ void
+ paint_callback (MBTrayApp *app, Drawable drw )
+ {
+-
+-
+ int power_pixels = 0;
+ unsigned char r = 0, g = 0, b = 0;
+ int x, y;
+ int bar_width, bar_height, bar_x, bar_y;
+
+ MBPixbufImage *img_backing = NULL;
+-
+-
+-
+-
+- while (!read_apm(apm_vals))
+- usleep(50000L);
+-
+- if (last_percentage == apm_vals[PERCENTAGE] && last_ac == apm_vals[AC_POWER])
+- return;
+
+ img_backing = mb_tray_app_get_background (app, pb);
+
+@@ -409,10 +398,12 @@
+
+ }
+
+-void
+-timeout_callback ( MBTrayApp *app )
+-{
+- mb_tray_app_repaint (app);
++void timeout_callback (MBTrayApp *app) {
++ while (!read_apm(apm_vals))
++ usleep(50000L);
++
++ if (last_percentage != apm_vals[PERCENTAGE] || last_ac != apm_vals[AC_POWER])
++ mb_tray_app_repaint (app);
+ }
+
+ void
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-allow-disabling-menu-panel.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-allow-disabling-menu-panel.patch
new file mode 100644
index 0000000000..fb1a021c31
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-allow-disabling-menu-panel.patch
@@ -0,0 +1,33 @@
+--- matchbox-panel-0.9.2.multi/applets/mb-applet-menu-launcher.c 2006-02-16 00:43:28.000000000 +0100
++++ matchbox-panel-0.9.2/applets/mb-applet-menu-launcher.c 2006-02-17 20:25:14.000000000 +0100
+@@ -392,7 +392,8 @@
+ FILE *fp;
+ char *buf;
+ int len;
+- MBMenuMenu *menu_panel;
++ MBMenuMenu *menu_panel = NULL;
++ char *menu_panel_disabled = getenv ("MB_MENU_PANEL_DISABLED");
+ char *tmp_path = NULL, *tmp_path2 = NULL ;
+
+ char vfolder_path_root[512];
+@@ -453,8 +454,8 @@
+
+ }
+
+- menu_panel = mb_menu_add_path(app_data->mbmenu, "Utilities/Panel" , NULL, MBMENU_NO_SORT );
+-
++ if (!menu_panel_disabled)
++ menu_panel = mb_menu_add_path(app_data->mbmenu, "Utilities/Panel" , NULL, MBMENU_NO_SORT );
+
+ tmp_path = mb_dot_desktop_icon_get_full_path (app_data->theme_name,
+ 16,
+@@ -620,6 +621,9 @@
+ && !strcmp(mb_dotdesktop_get(dd, "Type"),
+ "PanelApp"))
+ {
++ if (menu_panel_disabled)
++ continue;
++
+ m = menu_panel;
+ }
+
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-multi-category-matching.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-multi-category-matching.patch
new file mode 100644
index 0000000000..3bd5d915b5
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/mb-panel-multi-category-matching.patch
@@ -0,0 +1,32 @@
+--- matchbox-panel-0.9.2/applets/mb-applet-menu-launcher.c 2005-04-06 22:13:00.000000000 +0200
++++ matchbox-panel-0.9.2.new/applets/mb-applet-menu-launcher.c 2006-02-16 00:43:28.000000000 +0100
+@@ -566,7 +566,28 @@
+ {
+ fallback = menu_lookup[i].item;
+ }
+- if (strstr(category,
++ if (strstr(menu_lookup[i].match_str, ";"))
++ {
++ char *s;
++ char *match_str = menu_lookup[i].match_str;
++
++ while (s = strstr(match_str, ";"))
++ {
++ size_t len = s - match_str;
++ char *tok = (char *) malloc (sizeof (char) * (len + 1));
++
++ strncpy (tok, match_str, len);
++ tok[len] = 0;
++ match_str = s + 1;
++
++ if (strstr (category, tok))
++ {
++ m = menu_lookup[i].item;
++ }
++ free (tok);
++ }
++ }
++ else if (strstr(category,
+ menu_lookup[i].match_str))
+ {
+ m = menu_lookup[i].item;
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch b/recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch
new file mode 100644
index 0000000000..51c141db03
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch
@@ -0,0 +1,195 @@
+--- matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c.orig 2006-02-07 20:08:09.000000000 +0200
++++ matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c 2006-02-07 20:53:20.000000000 +0200
+@@ -37,6 +37,7 @@
+ # define _(text) (text)
+ #endif
+
++
+ #ifdef MB_HAVE_PNG
+ #define IMG_EXT "png"
+ #else
+@@ -66,8 +67,30 @@
+ MBPixbufImage *ImgIcon = NULL, *ImgIconScaled = NULL, *ImgGraph = NULL;
+
+ int GraphHeight = 0, GraphWidth = 0;
+-
+ char *ThemeName;
++static int kernelver = 0;
++
++/* returns 1 if the kernel version is 2.6, 0 otherwise */
++int kernel_version(void)
++{
++ float v_nr=0;
++ FILE *version;
++
++ if ((version = fopen("/proc/version", "r")) == NULL)
++ {
++ fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/version. Exiting\n");
++ exit(1);
++ }
++ fscanf(version, "%*s %*s %f", &v_nr);
++ fclose(version);
++
++ if (v_nr > 2.5)
++ return 1;
++ else
++ return 0;
++}
++
++
+
+ /* returns current CPU load in percent, 0 to 100 */
+ int system_cpu(void)
+@@ -112,71 +135,86 @@
+
+ int system_memory(void)
+ {
+- u_int64_t my_mem_used, my_mem_max;
+- u_int64_t my_swap_max;
+-
+- static int mem_delay = 0;
+- FILE *mem;
+- static u_int64_t total, used, mfree, shared, buffers, cached,
+- cache_total, cache_used;
+-
+- /* put this in permanent storage instead of stack */
+- static char not_needed[2048];
+-
+- if (mem_delay-- <= 0) {
+- if ((mem = fopen("/proc/meminfo", "r")) == NULL)
++ u_int64_t total, mfree, buffers, cached, used, shared,
++ cache_total, cache_free, cache_used, uneeded = 0;
++
++ u_int64_t my_mem_used, my_mem_max;
++ u_int64_t my_swap_max;
++
++ static int mem_delay = 0;
++ FILE *mem;
++
++ /* put this in permanent storage instead of stack */
++ static char not_needed[2048];
++
++ if (mem_delay-- <= 0)
++ {
++ if ((mem = fopen("/proc/meminfo", "r")) == NULL)
+ {
+ fprintf(stderr, "mb-applet-system-monitor: failed to open /proc/meminfo. Exiting.\n");
+ exit(1);
+- }
+-
+-
+-
+- fgets(not_needed, 2048, mem);
+-
+- /*
+- total: used: free: shared: buffers: cached:
+- */
+-
+- fscanf(mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &total, &used, &mfree,
+- &shared, &buffers, &cached);
+-
+- fscanf(mem, "%*s %Ld %Ld", &cache_total, &cache_used);
+-
+- fclose(mem);
+- mem_delay = 25;
+-
+- /* calculate it */
+- my_mem_max = total;
+- my_swap_max = cache_total;
+-
+- my_mem_used = cache_used + used - cached - buffers;
+-
+- /* No swap on ipaq
+- if (my_mem_used > my_mem_max) {
+- my_swap_used = my_mem_used - my_mem_max;
+- my_mem_used = my_mem_max;
+- } else {
+- my_swap_used = 0;
+ }
+- */
+-
+- msd.mem_used = my_mem_used;
+- msd.mem_max = my_mem_max;
+- //msd.swap_used = my_swap_used;
+- //msd.swap_max = my_swap_max;
++
++ fgets(not_needed, 2048, mem);
+
+- msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
+- //msd.swap_percent = (100 * msd.swap_used) / msd.swap_max;
++/*if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)*/
+
+- /* memory info changed - update things */
+- return 1;
+- }
+- /* nothing new */
+- return 0;
++ if(kernelver)
++ {
++ rewind (mem);
++
++ fscanf (mem, "%*s %Ld %*s", &total);
++ fscanf (mem, "%*s %Ld %*s", &mfree);
++ fscanf (mem, "%*s %Ld %*s", &buffers);
++ fscanf (mem, "%*s %Ld %*s", &cached);
++ fscanf (mem, "%*s %Ld %*s", &shared);
++ fscanf (mem, "%*s %Ld %*s", &used);
++ fscanf (mem, "%*s %Ld %*s", &uneeded);
++ fscanf (mem, "%*s %Ld %*s", &uneeded);
++ fscanf (mem, "%*s %Ld %*s", &uneeded);
++ fscanf (mem, "%*s %Ld %*s", &uneeded);
++ fscanf (mem, "%*s %Ld %*s", &uneeded);
++ fscanf (mem, "%*s %Ld %*s", &cache_total);
++ fscanf (mem, "%*s %Ld %*s", &cache_free);
++
++ total = total * 1024;
++ mfree = mfree * 1024;
++ buffers = buffers * 1024;
++ cached = cached * 1024;
++ used = used * 1024;
++ shared = shared * 1024;
++ cache_total = cache_total * 1024;
++ cache_used = cache_total - (cache_free * 1024);
++ }
++else
++ {
++ /*
++ total: used: free: shared: buffers: cached:
++ */
++ fscanf(mem, "%*s %Ld %Ld %Ld %Ld %Ld %Ld", &total, &used, &mfree,
++ &shared, &buffers, &cached);
++ fscanf(mem, "%*s %Ld %Ld", &cache_total, &cache_used);
++ }
++
++ fclose(mem);
++
++ mem_delay = 25;
++
++ /* calculate it */
++ my_mem_max = total;
++ my_swap_max = cache_total;
++ my_mem_used = cache_used + used - cached - buffers;
++ msd.mem_used = my_mem_used;
++ msd.mem_max = my_mem_max;
++ msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
++
++ /* memory info changed - update things */
++ return 1;
++ }
++ /* nothing new */
++ return 0;
+ }
+
+-
+ void
+ paint_callback (MBTrayApp *app, Drawable drw )
+ {
+@@ -340,6 +378,8 @@
+ &argc,
+ &argv );
+
++ kernelver = kernel_version();
++
+ msd.samples = 16;
+
+ if (msd.load) {
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-battery-repaint-093.patch b/recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-battery-repaint-093.patch
new file mode 100644
index 0000000000..22cc56e56a
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-battery-repaint-093.patch
@@ -0,0 +1,32 @@
+--- matchbox-panel-0.9.3/applets/mb-applet-battery.c.orig 2006-04-05 12:28:01.883215416 +0200
++++ matchbox-panel-0.9.3/applets/mb-applet-battery.c 2006-04-05 12:29:14.973104064 +0200
+@@ -374,12 +374,6 @@
+
+ MBPixbufImage *img_backing = NULL;
+
+- while (!read_apm(apm_vals))
+- usleep(50000L);
+-
+- if (last_percentage == apm_vals[PERCENTAGE] && last_ac == apm_vals[AC_POWER])
+- return;
+-
+ img_backing = mb_tray_app_get_background (app, pb);
+
+ /* we assume width = height */
+@@ -571,10 +565,12 @@
+
+ }
+
+-void
+-timeout_callback ( MBTrayApp *app )
+-{
+- mb_tray_app_repaint (app);
++void timeout_callback (MBTrayApp *app) {
++ while (!read_apm(apm_vals))
++ usleep(50000L);
++
++ if (last_percentage != apm_vals[PERCENTAGE] || last_ac != apm_vals[AC_POWER])
++ mb_tray_app_repaint (app);
+ }
+
+ void
diff --git a/recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-system-monitor-crash.patch b/recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-system-monitor-crash.patch
new file mode 100644
index 0000000000..8773003b34
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel-0.9.3/mb-applet-system-monitor-crash.patch
@@ -0,0 +1,85 @@
+Program received signal SIGSEGV, Segmentation fault.
+0x4002dfbc in mb_pixbuf_img_plot_pixel (pb=<value optimized out>, img=0x1ba40, x=22,
+ y=-434, r=255 'ÿ', g=0 '\0', b=0 '\0') at mbpixbuf.c:2087
+(gdb) bt
+#0 0x4002dfbc in mb_pixbuf_img_plot_pixel (pb=<value optimized out>, img=0x1ba40, x=22,
+ y=-434, r=255 'ÿ', g=0 '\0', b=0 '\0') at mbpixbuf.c:2087
+#1 0x0000966c in paint_callback (app=<value optimized out>, drw=46137348)
+ at mb-applet-system-monitor.c:272
+#2 0x4002b8f6 in handle_expose (mb=0x1ba40, event=<value optimized out>) at mbtray.c:820
+#3 0x4002b922 in mb_tray_app_repaint (mb=0x1ba40) at mbtray.c:833
+#4 0x00008fd4 in timeout_callback (app=0x1ba40) at mb-applet-system-monitor.c:347
+#5 0x4002c580 in mb_tray_app_main (mb=0x14008) at mbtray.c:302
+#6 0x00009878 in main (argc=1, argv=0xbecf1ca4) at mb-applet-system-monitor.c:410
+(gdb) up
+(gdb) print membox_h
+$1 = 20
+(gdb) print mem_pixels
+$2 = 18798069
+(gdb) print memsize
+$3 = 1597228901
+(gdb) print msd
+$4 = {loadIndex = 15, samples = 16, load = 0x18a90, total = 0x18b18,
+ mem_used = 18446744073706139648, mem_max = 63750144, swap_used = 0, swap_max = 0,
+ swap_percent = 0, mem_percent = 1597228901}
+
+Huh, mem_used doesn't look good!
+
+root@zaurus:~# printf %lx\\n -18446744073706139648
+341000
+
+Well, it's negative. The algorithm is a bit stange.
+
+root@zaurus:~# cat /proc/meminfo
+MemTotal: 62256 kB
+MemFree: 8504 kB
+Buffers: 1508 kB
+Cached: 24692 kB
+SwapCached: 8604 kB
+Active: 22632 kB
+Inactive: 21344 kB
+SwapTotal: 131064 kB
+SwapFree: 72060 kB
+Dirty: 0 kB
+Writeback: 0 kB
+AnonPages: 12636 kB
+Mapped: 5532 kB
+Slab: 4300 kB
+SReclaimable: 1456 kB
+SUnreclaim: 2844 kB
+PageTables: 1116 kB
+NFS_Unstable: 0 kB
+Bounce: 0 kB
+WritebackTmp: 0 kB
+CommitLimit: 162192 kB
+Committed_AS: 81568 kB
+VmallocTotal: 581632 kB
+VmallocUsed: 9112 kB
+VmallocChunk: 565244 kB
+
+Now let's compute what's happening:
+
+cache_used = cache_total - cache_free;
+my_mem_used = cache_used + used - cached - buffers;
+12636 - 5532 + 8604 - 24692 - 1508 = -10492
+ ======
+
+Well, I don't know, how to compute a really used memory, but I could at
+least sanitize the value. Here you are:
+
+Index: matchbox-panel-0.9.3/applets/mb-applet-system-monitor.c
+===================================================================
+--- matchbox-panel-0.9.3/applets/mb-applet-system-monitor.c 2006-02-07 22:19:12.000000000 +0000
++++ matchbox-panel-0.9.3/applets/mb-applet-system-monitor.c 2009-02-21 13:19:41.000000000 +0000
+@@ -195,6 +195,11 @@
+ my_mem_max = total;
+ my_swap_max = cache_total;
+ my_mem_used = cache_used + used - cached - buffers;
++ /* Ugly hack! Fix mem-used algorithm is needed. */
++ if (my_mem_used < 0)
++ my_mem_used = 0;
++ if (my_mem_used > my_mem_max)
++ my_mem_used = my_mem_max;
+ msd.mem_used = my_mem_used;
+ msd.mem_max = my_mem_max;
+ msd.mem_percent = (100 * msd.mem_used) / msd.mem_max;
diff --git a/recipes/matchbox-panel/matchbox-panel.inc b/recipes/matchbox-panel/matchbox-panel.inc
new file mode 100644
index 0000000000..d81d38b285
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel.inc
@@ -0,0 +1,19 @@
+DESCRIPTION = "Matchbox Window Manager Panel"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxpm apmd startup-notification virtual/kernel wireless-tools"
+SECTION = "x11/wm"
+
+PR = "r3"
+
+inherit autotools pkgconfig gettext
+
+CFLAGS += "-D_GNU_SOURCE"
+
+EXTRA_OECONF = " --enable-startup-notification --enable-dnotify "
+EXTRA_OECONF_append = '${@base_conditional("GUI_MACHINE_CLASS", "bigscreen", "", " --enable-small-icons ", d)}'
+PACKAGE_ARCH = "${MACHINE}"
+
+FILES_${PN} = "${bindir}/* \
+ ${datadir}/applications \
+ ${datadir}/pixmaps"
+
diff --git a/recipes/matchbox-panel/matchbox-panel_0.8.1.bb b/recipes/matchbox-panel/matchbox-panel_0.8.1.bb
new file mode 100644
index 0000000000..f6600bdbcd
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.8.1.bb
@@ -0,0 +1,19 @@
+SECTION = "x11/utils"
+PR = "r4"
+DESCRIPTION = "Matchbox panel"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxpm apmd startup-notification virtual/kernel"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-panel/0.8/matchbox-panel-${PV}.tar.bz2 \
+ file://automake-lossage.patch;patch=1 \
+ file://more-automake-lossage.patch;patch=1 \
+ file://make-batteryapp-less-strict.patch;patch=1"
+S = "${WORKDIR}/matchbox-panel-${PV}"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF = "--enable-startup-notification --enable-dnotify --enable-small-icons"
+
+FILES_${PN} = "${bindir} \
+ ${datadir}/applications \
+ ${datadir}/pixmaps"
diff --git a/recipes/matchbox-panel/matchbox-panel_0.8.3.bb b/recipes/matchbox-panel/matchbox-panel_0.8.3.bb
new file mode 100644
index 0000000000..f15d16f39a
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.8.3.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Matchbox Window Manager Panel"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxpm apmd startup-notification virtual/kernel"
+SECTION = "x11/wm"
+PR = "r1"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-panel/0.8/matchbox-panel-${PV}.tar.bz2 \
+ file://make-batteryapp-less-strict.patch;patch=1 \
+ file://wifi-location.patch;patch=1"
+S = "${WORKDIR}/matchbox-panel-${PV}"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF = "--enable-startup-notification --enable-dnotify --enable-small-icons"
+
+FILES_${PN} = "${bindir} \
+ ${datadir}/applications \
+ ${datadir}/pixmaps"
+
diff --git a/recipes/matchbox-panel/matchbox-panel_0.8.bb b/recipes/matchbox-panel/matchbox-panel_0.8.bb
new file mode 100644
index 0000000000..a02dff7c41
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.8.bb
@@ -0,0 +1,14 @@
+SECTION = "x11/utils"
+DESCRIPTION = "Matchbox panel"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxpm"
+RDEPENDS = "libmatchbox matchbox-common"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/matchbox-panel/${PV}/matchbox-panel-${PV}.tar.bz2"
+S = "${WORKDIR}/matchbox-panel-${PV}"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF = "--enable-small-icons"
+# --enable-dnotify
+# --enable-startup-notification
diff --git a/recipes/matchbox-panel/matchbox-panel_0.9.1.bb b/recipes/matchbox-panel/matchbox-panel_0.9.1.bb
new file mode 100644
index 0000000000..3a10e1938d
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.9.1.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Matchbox Window Manager Panel"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxpm apmd startup-notification virtual/kernel"
+SECTION = "x11/wm"
+PR = "r2"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/0.9/${PN}-${PV}.tar.gz \
+ file://allow-100-per-cent-battery.patch;patch=1 \
+ file://no_time_support.patch;patch=1"
+
+inherit autotools pkgconfig gettext
+
+CFLAGS += "-D_GNU_SOURCE"
+
+EXTRA_OECONF = "--enable-startup-notification --enable-dnotify"
+EXTRA_OECONF_append_h3600 = " --enable-small-icons "
+EXTRA_OECONF_append_h3900 = " --enable-small-icons "
+EXTRA_OECONF_append_collie = " --enable-small-icons "
+EXTRA_OECONF_append_poodle = " --enable-small-icons "
+EXTRA_OECONF_append_ramses = " --enable-small-icons "
+
+
+FILES_${PN} = "${bindir} \
+ ${datadir}/applications \
+ ${datadir}/pixmaps"
+
diff --git a/recipes/matchbox-panel/matchbox-panel_0.9.2.bb b/recipes/matchbox-panel/matchbox-panel_0.9.2.bb
new file mode 100644
index 0000000000..42957a4fa8
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.9.2.bb
@@ -0,0 +1,13 @@
+require matchbox-panel.inc
+
+PR ="r12"
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/0.9/${PN}-${PV}.tar.gz \
+ file://add_hostap.patch;patch=1 \
+ http://handhelds.org/~pb/mb-panel-0.9.2-polling.patch;patch=1 \
+ http://handhelds.org/~pb/mb-panel-0.9.2-msgcancel.patch;patch=1 \
+ file://mb-applet-battery-repaint.patch;patch=1 \
+ file://mb-panel-multi-category-matching.patch;patch=1 \
+ file://mb-panel-allow-disabling-menu-panel.patch;patch=1 \
+ file://system-monitor-crash-fix.patch;patch=1 "
+
+
diff --git a/recipes/matchbox-panel/matchbox-panel_0.9.3.bb b/recipes/matchbox-panel/matchbox-panel_0.9.3.bb
new file mode 100644
index 0000000000..555912260e
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.9.3.bb
@@ -0,0 +1,5 @@
+require matchbox-panel.inc
+PR ="r4"
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/0.9/${PN}-${PV}.tar.gz \
+ file://mb-applet-battery-repaint-093.patch;patch=1 \
+ file://mb-applet-system-monitor-crash.patch;patch=1"
diff --git a/recipes/matchbox-panel/matchbox-panel_0.9.bb b/recipes/matchbox-panel/matchbox-panel_0.9.bb
new file mode 100644
index 0000000000..4f0a8a6b00
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_0.9.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Matchbox Window Manager Panel"
+LICENSE = "GPL"
+DEPENDS = "libmatchbox virtual/libx11 libxext libxpm apmd startup-notification virtual/kernel"
+SECTION = "x11/wm"
+
+SRC_URI = "http://projects.o-hand.com/matchbox/sources/${PN}/${PV}/${PN}-${PV}.tar.gz"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF = "--enable-startup-notification --enable-dnotify --enable-small-icons"
+
+FILES_${PN} = "${bindir} \
+ ${datadir}/applications \
+ ${datadir}/pixmaps"
+
diff --git a/recipes/matchbox-panel/matchbox-panel_svn.bb b/recipes/matchbox-panel/matchbox-panel_svn.bb
new file mode 100644
index 0000000000..e7fb3e6439
--- /dev/null
+++ b/recipes/matchbox-panel/matchbox-panel_svn.bb
@@ -0,0 +1,7 @@
+require matchbox-panel.inc
+PV = "0.9.2+svnr${SRCREV}"
+DEFAULT_PREFERENCE = "-1"
+
+SRC_URI = "svn://svn.o-hand.com/repos/matchbox/trunk;module=${PN};proto=http"
+
+S = "${WORKDIR}/${PN}"