summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCiaran McCreesh <ciaranm@gentoo.org>2004-09-06 23:47:12 +0000
committerCiaran McCreesh <ciaranm@gentoo.org>2004-09-06 23:47:12 +0000
commit33eb9e4ab632937afc74d5ce7b6c435f01e7228c (patch)
tree59aea6c4d0d0203c0e70416f81e67f95af62eab5 /x11-wm/fluxbox
parentMove the patches around, since we're going to end up with lots of them... (diff)
downloadhistorical-33eb9e4ab632937afc74d5ce7b6c435f01e7228c.tar.gz
historical-33eb9e4ab632937afc74d5ce7b6c435f01e7228c.tar.bz2
historical-33eb9e4ab632937afc74d5ce7b6c435f01e7228c.zip
Backport a couple of crash fixes from upstream -cvs
Diffstat (limited to 'x11-wm/fluxbox')
-rw-r--r--x11-wm/fluxbox/ChangeLog10
-rw-r--r--x11-wm/fluxbox/Manifest12
-rw-r--r--x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch63
-rw-r--r--x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch88
-rw-r--r--x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r21
-rw-r--r--x11-wm/fluxbox/fluxbox-0.9.10-r2.ebuild69
6 files changed, 238 insertions, 5 deletions
diff --git a/x11-wm/fluxbox/ChangeLog b/x11-wm/fluxbox/ChangeLog
index 841934ed65b6..39c39c7bed77 100644
--- a/x11-wm/fluxbox/ChangeLog
+++ b/x11-wm/fluxbox/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for x11-wm/fluxbox
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.118 2004/09/06 23:24:22 ciaranm Exp $
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/ChangeLog,v 1.119 2004/09/06 23:47:12 ciaranm Exp $
+
+*fluxbox-0.9.10-r2 (07 Sep 2004)
+
+ 07 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org>
+ +files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch,
+ +files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch,
+ +fluxbox-0.9.10-r2.ebuild:
+ Backport a couple of crash fixes from upstream -cvs
07 Sep 2004; Ciaran McCreesh <ciaranm@gentoo.org>
-files/fluxbox-0.9.10.amd64_fix.patch,
diff --git a/x11-wm/fluxbox/Manifest b/x11-wm/fluxbox/Manifest
index 10eedbf0a954..1347c076e675 100644
--- a/x11-wm/fluxbox/Manifest
+++ b/x11-wm/fluxbox/Manifest
@@ -2,20 +2,24 @@
Hash: SHA1
MD5 72eaed6596c18b00e8764b9b8d141d94 fluxbox-0.9.8-r1.ebuild 1628
-MD5 a372ee49f6deffde6ac0d01bb07ff1cb ChangeLog 22222
+MD5 98f10baea47e66745864e9698ebcc8a2 ChangeLog 22505
MD5 e32e90cae45649a244643d82e3738ab3 fluxbox-0.9.10-r1.ebuild 1823
MD5 fb91a86bbf58cb4d7e40f9536c319766 metadata.xml 437
+MD5 c1e52dbcaa8020405ce9b6f8ad05c0a4 fluxbox-0.9.10-r2.ebuild 1999
MD5 010fb64778d2657638b423bd53e90e58 fluxbox-0.9.9.ebuild 1695
MD5 c11d6a60aaece3dd919a1802a23ecc7a files/digest-fluxbox-0.9.8-r1 65
MD5 c4565cd7f88b9897ccb504eef29fa8f3 files/digest-fluxbox-0.9.10-r1 67
+MD5 c4565cd7f88b9897ccb504eef29fa8f3 files/digest-fluxbox-0.9.10-r2 67
MD5 cde8982304ad765c60a68874325d66fb files/digest-fluxbox-0.9.9 65
MD5 4bafaa2a6712efa9f0c040b6072c8169 files/fluxbox-0.9.9-gcc3.4.patch 527
MD5 133c9b57600834dedcdbca2ed789327d files/fluxbox.desktop 202
+MD5 33fa4c925ae4fe1b5797673a4508c548 files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch 2616
MD5 ee36523cd5cf3281d0261244260840c9 files/0.9.10/fluxbox-0.9.10-amd64-font-fix.patch 774
+MD5 71a4dfce6e2832c47b9191caab6e3d35 files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch 2510
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)
-iD8DBQFBPPEALLFUmVNQ7rkRAtS/AJoC/s0XLnrzzWKMh/0KYotJoMTOwwCgiss7
-2Vl7fjE3j4PeQ8G1iDKn4T4=
-=ToLf
+iD8DBQFBPPZcLLFUmVNQ7rkRAqLIAJ9kInb6QXdCFEZ90JgtUm4/YapUlACgtz6q
+yhVFF5ZcpoBRPOl4vrmPqlM=
+=8292
-----END PGP SIGNATURE-----
diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch
new file mode 100644
index 000000000000..55c6d0a9f978
--- /dev/null
+++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch
@@ -0,0 +1,63 @@
+Index: src/Remember.cc
+===================================================================
+RCS file: /cvsroot/fluxbox/fluxbox/src/Remember.cc,v
+retrieving revision 1.39
+retrieving revision 1.42
+diff -u -r1.39 -r1.42
+--- src/Remember.cc 10 Aug 2004 18:35:05 -0000 1.39
++++ src/Remember.cc 4 Sep 2004 04:54:38 -0000 1.42
+@@ -79,14 +79,19 @@
+ m_win(fbwin), m_attrib(attrib) {}
+
+ bool isSelected() const {
+- return m_remember.isRemembered(m_win.winClient(), m_attrib);
++ if (m_win.numClients()) // ensure it HAS clients
++ return m_remember.isRemembered(m_win.winClient(), m_attrib);
++ else
++ return false;
+ }
+
+ bool isEnabled() const {
+ if (m_attrib != Remember::REM_JUMPWORKSPACE)
+ return true;
+- else
++ else if (m_win.numClients())
+ return (m_remember.isRemembered(m_win.winClient(), Remember::REM_WORKSPACE));
++ else
++ return false;
+ }
+
+ void click(int button, int time) {
+@@ -291,8 +296,10 @@
+ }
+
+ row++;
+- if (line[0] == '#')
+- continue; //the line is commented
++ FbTk::StringUtil::removeFirstWhitespace(line);
++ FbTk::StringUtil::removeTrailingWhitespace(line);
++ if (line.size() == 0 || line[0] == '#')
++ continue; //the line is commented or blank
+ int parse_pos = 0, err = 0;
+ string str_key, str_option, str_label;
+ err = FbTk::StringUtil::getStringBetween(str_key,
+@@ -333,7 +340,7 @@
+ } else if (str_label == "NORMAL") {
+ l = Fluxbox::instance()->getNormalLayer();
+ } else if (str_label == "TOP") {
+- l = Fluxbox::instance()->getNormalLayer();
++ l = Fluxbox::instance()->getTopLayer();
+ } else if (str_label == "DOCK") {
+ l = Fluxbox::instance()->getDockLayer();
+ } else if (str_label == "ABOVEDOCK") {
+@@ -454,7 +461,9 @@
+ std::list<ClientPattern *> grouped_pats;
+ while (getline(apps_file, line) && ! apps_file.eof()) {
+ row++;
+- if (line[0] == '#')
++ FbTk::StringUtil::removeFirstWhitespace(line);
++ FbTk::StringUtil::removeTrailingWhitespace(line);
++ if (line.size() == 0 || line[0] == '#')
+ continue;
+ string key;
+ int err=0;
diff --git a/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch
new file mode 100644
index 000000000000..03207cc656b4
--- /dev/null
+++ b/x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch
@@ -0,0 +1,88 @@
+Index: src/Screen.cc
+===================================================================
+RCS file: /cvsroot/fluxbox/fluxbox/src/Screen.cc,v
+retrieving revision 1.286
+retrieving revision 1.288
+diff -u -r1.286 -r1.288
+--- src/Screen.cc 30 Aug 2004 11:33:23 -0000 1.286
++++ src/Screen.cc 6 Sep 2004 13:17:56 -0000 1.288
+@@ -407,11 +407,17 @@
+ }
+
+ BScreen::~BScreen() {
++
+ if (! managed)
+ return;
+-
++
+ if (m_rootmenu.get() != 0)
+ m_rootmenu->removeAll();
++
++ // Since workspacemenu holds client list menus (from workspace)
++ // we need to destroy it before we destroy workspaces
++ m_workspacemenu.reset(0);
++
+
+ if (geom_pixmap != None)
+ imageControl().removeImage(geom_pixmap);
+@@ -651,7 +657,7 @@
+ const Workspace::Windows::iterator win_it_end = (*w_it)->windowList().end();
+ for (; win_it != win_it_end; ++win_it) {
+ if (*win_it != except)
+- (*win_it)->menu().hide();
++ (*win_it)->menu().hide();
+ }
+ }
+ }
+@@ -772,7 +778,12 @@
+ if (w == 0)
+ return;
+
++ // make sure we have a unique list
++ if (find(getIconList().begin(), getIconList().end(), w) != getIconList().end())
++ return;
++
+ m_icon_list.push_back(w);
++
+ // notify listeners
+ m_iconlist_sig.notify();
+ }
+@@ -782,20 +793,28 @@
+ if (w == 0)
+ return;
+
+- Icons::iterator erase_it = remove_if(m_icon_list.begin(),
+- m_icon_list.end(),
++ Icons::iterator erase_it = remove_if(getIconList().begin(),
++ getIconList().end(),
+ bind2nd(equal_to<FluxboxWindow *>(), w));
+- if (erase_it != m_icon_list.end())
+- m_icon_list.erase(erase_it);
+-
+- m_iconlist_sig.notify();
++ // no need to send iconlist signal if we didn't
++ // change the iconlist
++ if (erase_it != m_icon_list.end()) {
++ getIconList().erase(erase_it);
++ m_iconlist_sig.notify();
++ }
+ }
+
+ void BScreen::removeWindow(FluxboxWindow *win) {
+- if (win->isIconic())
+- removeIcon(win);
+- else
+- getWorkspace(win->workspaceNumber())->removeWindow(win, false);
++#ifdef DEBUG
++ cerr<<"BScreen::removeWindow("<<win<<")"<<endl;
++#endif // DEBUG
++ // extra precaution, if for some reason, the
++ // icon list should be out of sync
++ removeIcon(win);
++ // remove from workspace
++ Workspace *space = getWorkspace(win->workspaceNumber());
++ if (space != 0)
++ space->removeWindow(win, false);
+ }
+
+
diff --git a/x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r2 b/x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r2
new file mode 100644
index 000000000000..102f1b571a9e
--- /dev/null
+++ b/x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r2
@@ -0,0 +1 @@
+MD5 7a04a21960b8bc364bcc002389008989 fluxbox-0.9.10.tar.bz2 556030
diff --git a/x11-wm/fluxbox/fluxbox-0.9.10-r2.ebuild b/x11-wm/fluxbox/fluxbox-0.9.10-r2.ebuild
new file mode 100644
index 000000000000..14eb129e6d37
--- /dev/null
+++ b/x11-wm/fluxbox/fluxbox-0.9.10-r2.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/x11-wm/fluxbox/fluxbox-0.9.10-r2.ebuild,v 1.1 2004/09/06 23:47:12 ciaranm Exp $
+
+inherit eutils
+
+IUSE="nls xinerama truetype kde gnome"
+
+DESCRIPTION="Fluxbox is a lightweight windowmanager for X featuring tabs."
+SRC_URI="mirror://sourceforge/fluxbox/${P}.tar.bz2"
+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. They do, however,
+# make the binary a fair bit bigger, so we don't want to turn them on unless
+# the user actually wants them.
+
+RDEPEND="virtual/x11
+ truetype? ( media-libs/freetype )
+ nls? ( sys-devel/gettext )"
+DEPEND=">=sys-devel/autoconf-2.52
+ ${RDEPEND}"
+PROVIDE="virtual/blackbox"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~x86 ~ppc ~sparc ~amd64 ~alpha ~hppa ~ia64 ~mips ~ppc64 ~macos"
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ # Fix crashy badness on amd64. Upstream sanctioned this, so we'll
+ # apply it to everyone...
+ epatch ${FILESDIR}/${PV}/${PN}-${PV}-amd64-font-fix.patch
+
+ # Other crash fixes. Pulled from -cvs upstream.
+ epatch ${FILESDIR}/${PV}/${PN}-${PV}-windowmenu-crash.patch
+ epatch ${FILESDIR}/${PV}/${PN}-${PV}-workspacemenu-crash.patch
+}
+
+src_compile() {
+ export PKG_CONFIG_PATH=/usr/X11R6/lib/pkgconfig:/usr/lib/pkgconfig
+ 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
+
+ dodir /usr/share/xsessions
+ insinto /usr/share/xsessions
+ doins ${FILESDIR}/${PN}.desktop
+
+ dodir /etc/X11/Sessions
+ echo "/usr/bin/startfluxbox" > ${D}/etc/X11/Sessions/fluxbox
+ fperms a+x /etc/X11/Sessions/fluxbox
+}
+