summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Nigbur <pyrania@gentoo.org>2004-01-11 15:16:19 +0000
committerMarkus Nigbur <pyrania@gentoo.org>2004-01-11 15:16:19 +0000
commit75826bff4beb5d86e40d35abb95ea7751a50fb8f (patch)
tree87f5f47d8684ee455a5319eec48c5cd0b957ec10 /x11-wm/fluxbox
parentApplied two important memory leak patches. (diff)
downloadhistorical-75826bff4beb5d86e40d35abb95ea7751a50fb8f.tar.gz
historical-75826bff4beb5d86e40d35abb95ea7751a50fb8f.tar.bz2
historical-75826bff4beb5d86e40d35abb95ea7751a50fb8f.zip
Applied two important memory leak patches.
Diffstat (limited to 'x11-wm/fluxbox')
-rw-r--r--x11-wm/fluxbox/Manifest8
-rw-r--r--x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch101
-rw-r--r--x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch20
-rw-r--r--x11-wm/fluxbox/files/digest-fluxbox-0.9.7-r11
-rw-r--r--x11-wm/fluxbox/fluxbox-0.9.7-r1.ebuild56
5 files changed, 182 insertions, 4 deletions
diff --git a/x11-wm/fluxbox/Manifest b/x11-wm/fluxbox/Manifest
index 0e77db4c0cc4..d0dde667c902 100644
--- a/x11-wm/fluxbox/Manifest
+++ b/x11-wm/fluxbox/Manifest
@@ -1,8 +1,8 @@
MD5 e16077e6f49f640cabe7d96ab3e8f99f fluxbox-0.1.14-r2.ebuild 1551
MD5 2c62e9868bff0c034d5a9886a0c769ca fluxbox-0.9.6.ebuild 2717
-MD5 68f431b79d6564ab599ecc2bfce59be0 fluxbox-0.9.7-r1.ebuild 1362
-MD5 ba942eaf0d309fb9db71f64dfbb0723e ChangeLog 17489
-MD5 62b56c4890e22fc5bee5b9072856cab4 fluxbox-0.9.7.ebuild 1418
+MD5 d082a7313ea1a1f8761245a6d2a7b2c7 fluxbox-0.9.7-r1.ebuild 1464
+MD5 eb214b12eacd20c7f96b537e522c3662 ChangeLog 17716
+MD5 bf08891f125e95a920428fb3e39f9e83 fluxbox-0.9.7.ebuild 1327
MD5 fb91a86bbf58cb4d7e40f9536c319766 metadata.xml 437
MD5 f0a0494829d2f32f6c17073ebb87f60a files/fluxbox-0.1.13-nls.patch 581
MD5 7a8bd89803849aff22030d86ec1e70cf files/digest-fluxbox-0.9.7-r1 65
@@ -21,5 +21,5 @@ MD5 9a521a2ef9c0942ec02b714c3637e789 files/fluxbox-0.1.13-aa2.patch 1365
MD5 96957d6246f0287f85531f6447a077c7 files/fluxbox-0.1.14-menukey.patch 6267
MD5 5f1cedd6893799695fbbc3a19f5c5cff files/fluxbox-0.1.13-openoffice.patch 525
MD5 ddf99954256a3dc12763651bbf63bf3a files/fluxbox-vano-gentoo.patch 1092
-MD5 7424808e017a905bd1caedcc2e754360 files/0.9.7/01_cache-bugfix.patch 2855
+MD5 5fd48d59ff466458c4f8c219b3e3f549 files/0.9.7/01_cache-bugfix.patch 2877
MD5 a3de6c2a3f2fb7d80f4bc0570c8e6cab files/0.9.7/02_iconbar-bugfix.patch 650
diff --git a/x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch b/x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch
new file mode 100644
index 000000000000..8d38e86e6d81
--- /dev/null
+++ b/x11-wm/fluxbox/files/0.9.7/01_cache-bugfix.patch
@@ -0,0 +1,101 @@
+Index: src/FbTk/ImageControl.cc
+===================================================================
+RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/ImageControl.cc,v
+retrieving revision 1.10
+retrieving revision 1.11
+diff -r1.10 -r1.11
+25c25
+< // $Id: 01_cache-bugfix.patch,v 1.1 2004/01/11 15:16:04 pyrania Exp $
+---
+> // $Id: 01_cache-bugfix.patch,v 1.1 2004/01/11 15:16:04 pyrania Exp $
+148a149
+>
+170c171
+< Cache tmp;
+---
+> /* Cache tmp;
+177,182c178,195
+< CacheList::iterator it = cache.find(&tmp);
+< if (it == cache.end()) {
+< return None;
+< } else {
+< (*it)->count++;
+< return (*it)->pixmap;
+---
+> */
+> CacheList::iterator it = cache.begin();
+> CacheList::iterator it_end = cache.end();
+> for (; it != it_end; ++it) {
+> if (((*it)->width == width) &&
+> ((*it)->height == height) &&
+> ((*it)->texture == text.type()) &&
+> ((*it)->pixel1 == text.color().pixel())) {
+> if (text.type() & FbTk::Texture::GRADIENT) {
+> if ((*it)->pixel2 == text.colorTo().pixel()) {
+> (*it)->count++;
+> return (*it)->pixmap;
+> }
+> } else {
+> (*it)->count++;
+> return (*it)->pixmap;
+> }
+> }
+224c237
+< cache.insert(tmp);
+---
+> cache.push_back(tmp);
+246,247c259
+<
+< if (s_timed_cache)
+---
+> if (s_timed_cache) {
+249,251c261,262
+< else if (! (*it)->count)
+< cleanCache();
+<
+---
+> return;
+> }
+253a265,267
+> if ((*it)->count <= 0)
+> cleanCache();
+>
+364a379
+> std::list<CacheList::iterator> deadlist;
+369d383
+<
+371,372d384
+< CacheList::iterator tmp_it = it;
+< ++tmp_it;
+374c386
+< cache.erase(it);
+---
+> deadlist.push_back(it);
+377,379c389
+< it = tmp_it;
+< if (it == it_end) break;
+< }
+---
+> }
+380a391,397
+>
+> std::list<CacheList::iterator>::iterator dead_it = deadlist.begin();
+> std::list<CacheList::iterator>::iterator dead_it_end = deadlist.end();
+> for (; dead_it != dead_it_end; ++dead_it) {
+> cache.erase(*dead_it);
+> }
+>
+Index: src/FbTk/ImageControl.hh
+===================================================================
+RCS file: /cvsroot/fluxbox/fluxbox/src/FbTk/ImageControl.hh,v
+retrieving revision 1.8
+retrieving revision 1.9
+diff -r1.8 -r1.9
+25c25
+< // $Id: 01_cache-bugfix.patch,v 1.1 2004/01/11 15:16:04 pyrania Exp $
+---
+> // $Id: 01_cache-bugfix.patch,v 1.1 2004/01/11 15:16:04 pyrania Exp $
+130c130
+< typedef std::set<Cache *, ltCacheEntry> CacheList;
+---
+> typedef std::list<Cache *> CacheList;
diff --git a/x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch b/x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch
new file mode 100644
index 000000000000..28f053951029
--- /dev/null
+++ b/x11-wm/fluxbox/files/0.9.7/02_iconbar-bugfix.patch
@@ -0,0 +1,20 @@
+Index: src/IconbarTool.cc
+===================================================================
+RCS file: /cvsroot/fluxbox/fluxbox/src/IconbarTool.cc,v
+retrieving revision 1.26
+diff -r1.26 IconbarTool.cc
+383c383
+< void IconbarTool::update(FbTk::Subject *subj) {
+---
+> void IconbarTool::update(FbTk::Subject *subj) {
+385c385,390
+< if (m_screen.isShuttingdown())
+---
+> if (m_screen.isShuttingdown()) {
+> m_screen.clientListSig().detach(this);
+> m_screen.iconListSig().detach(this);
+> m_screen.currentWorkspaceSig().detach(this);
+> if (!m_icon_list.empty())
+> deleteIcons();
+386a392
+> }
diff --git a/x11-wm/fluxbox/files/digest-fluxbox-0.9.7-r1 b/x11-wm/fluxbox/files/digest-fluxbox-0.9.7-r1
new file mode 100644
index 000000000000..3fc2225c3f0d
--- /dev/null
+++ b/x11-wm/fluxbox/files/digest-fluxbox-0.9.7-r1
@@ -0,0 +1 @@
+MD5 43a252b95c63c6be8152e1b021469552 fluxbox-0.9.7.tar.gz 686357
diff --git a/x11-wm/fluxbox/fluxbox-0.9.7-r1.ebuild b/x11-wm/fluxbox/fluxbox-0.9.7-r1.ebuild
new file mode 100644
index 000000000000..266402217ca7
--- /dev/null
+++ b/x11-wm/fluxbox/fluxbox-0.9.7-r1.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-0.9.7-r1.ebuild,v 1.1 2004/01/11 15:16:04 pyrania Exp $
+
+IUSE="nls xinerama truetype kde gnome"
+
+DESCRIPTION="Fluxbox is a lightweight windowmanager for X featuring tabs."
+SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.gz"
+HOMEPAGE="http://www.fluxbox.org"
+
+# Please note that USE="kde gnome" simply adds support for
+# the respective protocols, and does not depend on external libraries.
+DEPEND=">=sys-devel/autoconf-2.52
+ ${RDEPEND}"
+RDEPEND="virtual/x11
+ truetype? ( media-libs/freetype )
+ nls? ( sys-devel/gettext )"
+PROVIDE="virtual/blackbox"
+
+SLOT="0"
+LICENSE="as-is"
+KEYWORDS="x86 sparc hppa"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+ epatch ${FILESDIR}/${PV}/01_cache-bugfix.patch
+ epatch ${FILESDIR}/${PV}/02_iconbar-bugfix.patch
+}
+
+src_compile() {
+ econf \
+ `use_enable nls` \
+ `use_enable xinerama` \
+ `use_enable truetype xft` \
+ `use_enable kde` \
+ `use_enable gnome` \
+ --sysconfdir=/etc/X11/${PN} \
+ ${myconf} || die "configure failed"
+
+ emake || die "make failed"
+}
+
+src_install() {
+ dodir /usr/share/fluxbox
+ make DESTDIR=${D} install || die "make install failed"
+ dodoc README* AUTHORS TODO* COPYING
+}
+
+pkg_postinst() {
+ ewarn
+ ewarn "Please note that this release no longer uses commonbox.eclass"
+ ewarn "and now installs data files in /usr/share/fluxbox."
+ ewarn
+}
+