diff options
author | Bernard Cafarelli <voyageur@gentoo.org> | 2012-02-27 14:58:33 +0000 |
---|---|---|
committer | Bernard Cafarelli <voyageur@gentoo.org> | 2012-02-27 14:58:33 +0000 |
commit | b5b6002ab45e9d83ec37595178dfd77e878848f4 (patch) | |
tree | 48654f0ba6e89bbf22b142a74427459851e5b721 /x11-plugins/wmfire | |
parent | Restricting pypy (diff) | |
download | gentoo-2-b5b6002ab45e9d83ec37595178dfd77e878848f4.tar.gz gentoo-2-b5b6002ab45e9d83ec37595178dfd77e878848f4.tar.bz2 gentoo-2-b5b6002ab45e9d83ec37595178dfd77e878848f4.zip |
Fix display for SMP systems, report and patch by wbk in bug #404323
(Portage version: 2.2.0_alpha89/cvs/Linux x86_64)
Diffstat (limited to 'x11-plugins/wmfire')
-rw-r--r-- | x11-plugins/wmfire/ChangeLog | 10 | ||||
-rw-r--r-- | x11-plugins/wmfire/files/wmfire-1.2.4-lastprocessor_SMP.patch | 130 | ||||
-rw-r--r-- | x11-plugins/wmfire/wmfire-1.2.4-r2.ebuild (renamed from x11-plugins/wmfire/wmfire-1.2.4.ebuild) | 10 |
3 files changed, 144 insertions, 6 deletions
diff --git a/x11-plugins/wmfire/ChangeLog b/x11-plugins/wmfire/ChangeLog index 81b2241ec933..6def55028bf1 100644 --- a/x11-plugins/wmfire/ChangeLog +++ b/x11-plugins/wmfire/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for x11-plugins/wmfire -# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/x11-plugins/wmfire/ChangeLog,v 1.19 2011/12/26 12:34:27 maekke Exp $ +# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/x11-plugins/wmfire/ChangeLog,v 1.20 2012/02/27 14:58:33 voyageur Exp $ + +*wmfire-1.2.4-r2 (27 Feb 2012) + + 27 Feb 2012; Bernard Cafarelli <voyageur@gentoo.org> -wmfire-1.2.4.ebuild, + +wmfire-1.2.4-r2.ebuild, +files/wmfire-1.2.4-lastprocessor_SMP.patch: + Fix display for SMP systems, report and patch by wbk in bug #404323 26 Dec 2011; Markus Meier <maekke@gentoo.org> wmfire-1.2.4-r1.ebuild: x86 stable, bug #394081 diff --git a/x11-plugins/wmfire/files/wmfire-1.2.4-lastprocessor_SMP.patch b/x11-plugins/wmfire/files/wmfire-1.2.4-lastprocessor_SMP.patch new file mode 100644 index 000000000000..2b389fecdd68 --- /dev/null +++ b/x11-plugins/wmfire/files/wmfire-1.2.4-lastprocessor_SMP.patch @@ -0,0 +1,130 @@ +--- wmfire-1.2.4/src/wmfire.c.orig 2005-12-04 11:39:16.000000000 +0100 ++++ wmfire-1.2.4/src/wmfire.c 2012-02-27 15:48:05.136807354 +0100 +@@ -63,6 +63,10 @@ + #define FIRE_NET 3 + #define FIRE_FILE 4 + ++/* wbk 20120220 - cleaning up "next cpu" logic */ ++#define CPU_AV -1 /* needs to be 1st CPU - 1 */ ++#define CPU_NEXT -2 /* arbitrary but must be < CPU_AV */ ++ + #define NET_SPD_PPP 56 + #define NET_SPD_ETH 100 + +@@ -104,7 +108,8 @@ + int update_mem(); + int update_net(); + int update_file(); +-int change_cpu(int); ++void change_cpu(int); ++int more_cpus(); + void change_flame(int); + GdkCursor *setup_cursor(); + void burn_spot(int, int, int); +@@ -130,8 +135,7 @@ + + int monitor = FIRE_CPU; + int load = 100; +-int cpu_av = 1; +-int cpu_id = 0; ++int cpu_id = CPU_AV; /* wbk - special value instead of separate flag */ + int cpu_nice = 1; + char net_dev[16] = "ppp0"; + int net_spd = 0; +@@ -224,8 +228,15 @@ + next = 0; + + if (!lock) { +- if (monitor == FIRE_CPU && change_cpu(-1)) +- monitor = FIRE_MEM; ++ if (monitor == FIRE_CPU) ++ { ++ /* First, check if we have more CPU's to monitor. If none, * ++ * move along to FIRE_MEM. Regardless, after this check, we * ++ * call change_cpu() to increment or reset CPU number. */ ++ if (!more_cpus()) ++ monitor = FIRE_MEM; ++ change_cpu(CPU_NEXT); ++ } + else if (monitor == FIRE_MEM) + monitor = FIRE_NET; + else if (monitor == FIRE_NET) +@@ -285,7 +296,7 @@ + + glibtop_get_cpu(&cpu); + +- if (cpu_av) { ++ if (cpu_id == CPU_AV) { + if (cpu_nice) + load = cpu.user + cpu.nice + cpu.sys; + else +@@ -383,30 +394,46 @@ + /* Change CPU monitor */ + /******************************************/ + +-int ++void + change_cpu(int which) + { +- glibtop_cpu cpu; ++ /* wbk 20120221 - Changed return type to void. Use more_cpus() * ++ * for tests instead. Mixing test logic with changing the CPU * ++ * was causing CPU's to be skipped in calling function. */ + ++ /* wbk - Even though we never use the cpu struct, I think this * ++ * call may be necessary to set up glibtop_global_server? */ ++ glibtop_cpu cpu; + glibtop_get_cpu(&cpu); + + /* This should work, but I have a lonely uniprocessor system */ ++ /* wbk - tested with a quad core. */ + +- if (which >= 0) { ++ if (which != CPU_NEXT) /* was run with command-line CPU specifier */ + cpu_id = which; +- cpu_av = 0; +- } else { +- cpu_id++; +- cpu_av = 0; +- } ++ else /* negative value "special case" for which */ ++ cpu_id++; + +- if (cpu_id >= glibtop_global_server->ncpu || cpu_id >= GLIBTOP_NCPU) { +- cpu_id = 0; +- cpu_av = 1; +- return 1; +- } ++ /* Since we already incremented cpu_id, we are comparing a * ++ * 1-index with 0-index value essentially. But since GLIBTOP_NCPU * ++ * is 1-indexed, keep >= for it. (a bit of an oversimplification: * ++ * cpu_id is still definitely regarded as 0-indexed elsewhere. We * ++ * index an array with it later, so this is important) */ ++ if (cpu_id > glibtop_global_server->ncpu || cpu_id >= GLIBTOP_NCPU) ++ cpu_id = CPU_AV; + +- return 0; ++ return; ++} ++ ++int ++more_cpus() ++{ ++ /* returns positive if next CPU would be valid, Negative if * ++ * already monitoring highest-numbered CPU or if more cores than * ++ * glibtop supports. */ ++ int next_cpu = cpu_id + 1; ++ return !(next_cpu > glibtop_global_server->ncpu ++ || next_cpu >= GLIBTOP_NCPU); + } + + /******************************************/ +@@ -494,7 +521,7 @@ + if (proximity++ > 100) { + + if (monitor == FIRE_CPU) { +- if (cpu_av) { ++ if (cpu_id == CPU_AV) { + /* Horizontal bar for average cpu */ + memset(&bm.cmap[27 * XMAX + 20], 255, 16); + memset(&bm.cmap[28 * XMAX + 20], 255, 16); diff --git a/x11-plugins/wmfire/wmfire-1.2.4.ebuild b/x11-plugins/wmfire/wmfire-1.2.4-r2.ebuild index 3d428c317fe8..60ec02426128 100644 --- a/x11-plugins/wmfire/wmfire-1.2.4.ebuild +++ b/x11-plugins/wmfire/wmfire-1.2.4-r2.ebuild @@ -1,8 +1,8 @@ -# Copyright 1999-2011 Gentoo Foundation +# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/x11-plugins/wmfire/wmfire-1.2.4.ebuild,v 1.2 2011/03/28 14:43:30 nirbheek Exp $ +# $Header: /var/cvsroot/gentoo-x86/x11-plugins/wmfire/wmfire-1.2.4-r2.ebuild,v 1.1 2012/02/27 14:58:33 voyageur Exp $ -EAPI=2 +EAPI=4 inherit autotools eutils DESCRIPTION="Load monitoring dockapp displaying dancing flame." @@ -25,6 +25,8 @@ DEPEND="${RDEPEND} src_prepare() { epatch "${FILESDIR}"/${PN}-1.2.3-stringh.patch + epatch "${FILESDIR}"/${P}-no_display.patch + epatch "${FILESDIR}"/${P}-lastprocessor_SMP.patch eautoreconf } @@ -35,6 +37,6 @@ src_configure() { } src_install() { - emake DESTDIR="${D}" install || die + emake DESTDIR="${D}" install dodoc ALL_I_GET_IS_A_GREY_BOX AUTHORS ChangeLog NEWS README } |