diff options
author | Ciaran McCreesh <ciaranm@gentoo.org> | 2004-09-06 23:47:12 +0000 |
---|---|---|
committer | Ciaran McCreesh <ciaranm@gentoo.org> | 2004-09-06 23:47:12 +0000 |
commit | 95aaa1b385df4f8fffe073fef83437eb6224aff3 (patch) | |
tree | 323b443279be8a6bd4c76cfbe112f648c5be11e0 /x11-wm | |
parent | Move the patches around, since we're going to end up with lots of them... (Ma... (diff) | |
download | gentoo-2-95aaa1b385df4f8fffe073fef83437eb6224aff3.tar.gz gentoo-2-95aaa1b385df4f8fffe073fef83437eb6224aff3.tar.bz2 gentoo-2-95aaa1b385df4f8fffe073fef83437eb6224aff3.zip |
Backport a couple of crash fixes from upstream -cvs
Diffstat (limited to 'x11-wm')
-rw-r--r-- | x11-wm/fluxbox/ChangeLog | 10 | ||||
-rw-r--r-- | x11-wm/fluxbox/Manifest | 14 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch | 63 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/0.9.10/fluxbox-0.9.10-workspacemenu-crash.patch | 88 | ||||
-rw-r--r-- | x11-wm/fluxbox/files/digest-fluxbox-0.9.10-r2 | 1 | ||||
-rw-r--r-- | x11-wm/fluxbox/fluxbox-0.9.10-r2.ebuild | 69 |
6 files changed, 234 insertions, 11 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..ac86dbe50448 100644 --- a/x11-wm/fluxbox/Manifest +++ b/x11-wm/fluxbox/Manifest @@ -1,21 +1,15 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA1 - MD5 72eaed6596c18b00e8764b9b8d141d94 fluxbox-0.9.8-r1.ebuild 1628 MD5 a372ee49f6deffde6ac0d01bb07ff1cb ChangeLog 22222 MD5 e32e90cae45649a244643d82e3738ab3 fluxbox-0.9.10-r1.ebuild 1823 MD5 fb91a86bbf58cb4d7e40f9536c319766 metadata.xml 437 +MD5 68220efaa60b5085dfaedc6fa654a435 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 ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1.2.4 (GNU/Linux) - -iD8DBQFBPPEALLFUmVNQ7rkRAtS/AJoC/s0XLnrzzWKMh/0KYotJoMTOwwCgiss7 -2Vl7fjE3j4PeQ8G1iDKn4T4= -=ToLf ------END PGP SIGNATURE----- +MD5 71a4dfce6e2832c47b9191caab6e3d35 files/0.9.10/fluxbox-0.9.10-windowmenu-crash.patch 2510 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 +} + |