packages/matchbox-panel/matchbox-panel_0.9.2.bb
authorPhilippe De Swert <philippedeswert@scarlet.be>
Sat, 4 Feb 2006 22:56:15 +0000 (22:56 +0000)
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>
Sat, 4 Feb 2006 22:56:15 +0000 (22:56 +0000)
* add usage of system-monitot-crash-fix.patch
* bump release to r7
packages/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch
* patch that fixes the segfaulting of the system monitor
* based on matchbox svn (04/02/2006)

packages/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch [new file with mode: 0644]
packages/matchbox-panel/matchbox-panel_0.9.2.bb

diff --git a/packages/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch b/packages/matchbox-panel/matchbox-panel-0.9.2/system-monitor-crash-fix.patch
new file mode 100644 (file)
index 0000000..c9a49fb
--- /dev/null
@@ -0,0 +1,161 @@
+--- matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c.orig       2006-02-04 19:22:55.000000000 +0200
++++ matchbox-panel-0.9.2/applets/mb-applet-system-monitor.c    2006-02-04 18:18:21.000000000 +0200
+@@ -37,6 +37,16 @@
+ # define _(text) (text)
+ #endif
++#ifdef HAVE_LINUX_VER_H
++#include <linux/version.h>
++#else
++#define LINUX_VERSION_CODE 0
++#endif
++
++#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 +122,83 @@
+ 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;
+-
+-      /* memory info changed - update things */
+-      return 1;
+-      }
+-    /* nothing new */
+-    return 0;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
++    
++      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);
++      
++#endif
++      
++      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 )
+ {
index 0b7df29..d0c208c 100644 (file)
@@ -1,10 +1,10 @@
 include matchbox-panel.inc
 
-PR="r6"
+PR="r7"
 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://kernel2.6.patch;patch=1"
+          file://system-monitor-crash-fix.patch;patch=1 "