Date: Wednesday, October 9, 2013 @ 16:15:36 Author: spupykin Revision: 98390
upgpkg: fbpanel 6.1-4 upd Added: fbpanel/trunk/battery_fix.patch Modified: fbpanel/trunk/PKGBUILD -------------------+ PKGBUILD | 10 +++- battery_fix.patch | 119 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2013-10-09 13:40:43 UTC (rev 98389) +++ PKGBUILD 2013-10-09 14:15:36 UTC (rev 98390) @@ -2,20 +2,24 @@ # Maintainer: Sergej Pupykin <[email protected]> # Maintainer: Jeff Mickey <[email protected]> # Contributor: Torin Daniel <[email protected]> +# Contributor: Diep Pham Van <[email protected]> pkgname=fbpanel pkgver=6.1 -pkgrel=3 +pkgrel=4 pkgdesc="NetWM compliant desktop panel" arch=('i686' 'x86_64') url="http://fbpanel.sourceforge.net/" depends=('gtk2') license=('GPL') -source=(http://downloads.sourceforge.net/fbpanel/fbpanel-${pkgver}.tbz2) -md5sums=('80ca0c64195b30587cfcb8c2cd9887a0') +source=("http://downloads.sourceforge.net/fbpanel/fbpanel-${pkgver}.tbz2" + "battery_fix.patch") +md5sums=('80ca0c64195b30587cfcb8c2cd9887a0' + 'dc1db8eee1be899725f350eb36793ea4') build() { cd "$srcdir/$pkgname-$pkgver" + patch -p1 <$srcdir/battery_fix.patch ./configure --prefix=/usr echo "LDFLAGSX += -lX11 -lm" >>config.mk make Added: battery_fix.patch =================================================================== --- battery_fix.patch (rev 0) +++ battery_fix.patch 2013-10-09 14:15:36 UTC (rev 98390) @@ -0,0 +1,119 @@ +*** fbpanel-6.1/plugins/battery/os_linux.c~ 2010-04-08 12:35:26.000000000 +0200 +--- fbpanel-6.1/plugins/battery/os_linux.c 2013-07-09 13:13:50.958994816 +0200 +*************** +*** 1,5 **** +--- 1,6 ---- + + #include <string.h> ++ #include <stdlib.h> + #include <ctype.h> + + #define LEN 100 +*************** +*** 120,129 **** + } + + static gboolean + battery_update_os_sys(battery_priv *c) + { + ENTER; +! RET(FALSE); + } + + static gboolean +--- 121,215 ---- + } + + static gboolean ++ read_sys(battery_priv *c, GString *path) ++ { ++ int len, dcap, rcap; ++ gchar *buf; ++ gboolean ret, exist, charging; ++ ++ ENTER; ++ len = path->len; ++ ++ g_string_append(path, "/present"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ exist = atoi(buf); ++ g_free(buf); ++ if (!exist) ++ RET(FALSE); ++ ++ g_string_append(path, "/charge_full_design"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ dcap = atoi(buf); ++ g_free(buf); ++ if (dcap <= 0) ++ RET(FALSE); ++ ++ g_string_append(path, "/charge_now"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ rcap = atoi(buf); ++ g_free(buf); ++ if (rcap <= 0) ++ RET(FALSE); ++ ++ g_string_append(path, "/current_now"); ++ ret = g_file_get_contents(path->str, &buf, 0, NULL); ++ DBG("reading %s %s\n", path->str, ret ? "ok" : "fail"); ++ g_string_truncate(path, len); ++ if (!ret) ++ RET(FALSE); ++ charging = (atoi(buf) <= 0); ++ g_free(buf); ++ ++ c->exist = exist; ++ c->charging = charging; ++ c->level = (int) ((gfloat) rcap * 100 / (gfloat) dcap); ++ RET(TRUE); ++ } ++ ++ static gboolean + battery_update_os_sys(battery_priv *c) + { ++ GString *path; ++ int len; ++ GDir *dir; ++ gboolean ret = FALSE; ++ const gchar *file; ++ + ENTER; +! c->exist = FALSE; +! path = g_string_sized_new(200); +! g_string_append(path, "/sys/class/power_supply"); +! len = path->len; +! if (!(dir = g_dir_open(path->str, 0, NULL))) { +! DBG("can't open dir %s\n", path->str); +! goto out; +! } +! while (!ret && (file = g_dir_read_name(dir))) { +! g_string_append(path, "/"); +! g_string_append(path, file); +! DBG("testing %s\n", path->str); +! ret = g_file_test(path->str, G_FILE_TEST_IS_DIR); +! if (ret) +! ret = read_sys(c, path); +! g_string_truncate(path, len); +! } +! g_dir_close(dir); +! +! out: +! g_string_free(path, TRUE); +! RET(ret); + } + + static gboolean
