diff options
author | Tobias Heinlein <keytoaster@gentoo.org> | 2008-05-05 15:11:46 +0000 |
---|---|---|
committer | Tobias Heinlein <keytoaster@gentoo.org> | 2008-05-05 15:11:46 +0000 |
commit | 208086c6aba5c5801b52d4248012be5432ad6511 (patch) | |
tree | 752e92fa841a45a1a567c1b9f4aecd83ef9727bc /kde-base | |
parent | Version bump wrt #220159 (diff) | |
download | gentoo-2-208086c6aba5c5801b52d4248012be5432ad6511.tar.gz gentoo-2-208086c6aba5c5801b52d4248012be5432ad6511.tar.bz2 gentoo-2-208086c6aba5c5801b52d4248012be5432ad6511.zip |
Adding patch to fix khtml crashes, bug #219970
(Portage version: 2.1.5_rc6)
Diffstat (limited to 'kde-base')
-rw-r--r-- | kde-base/kdelibs/ChangeLog | 8 | ||||
-rw-r--r-- | kde-base/kdelibs/files/kdelibs-3.5.9-bug_219970_khtml.patch | 90 | ||||
-rw-r--r-- | kde-base/kdelibs/kdelibs-3.5.9-r4.ebuild | 214 |
3 files changed, 311 insertions, 1 deletions
diff --git a/kde-base/kdelibs/ChangeLog b/kde-base/kdelibs/ChangeLog index a29a7118ad59..a8778dd70fdc 100644 --- a/kde-base/kdelibs/ChangeLog +++ b/kde-base/kdelibs/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for kde-base/kdelibs # Copyright 2002-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.525 2008/04/28 14:10:31 ingmar Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.526 2008/05/05 15:11:45 keytoaster Exp $ + +*kdelibs-3.5.9-r4 (05 May 2008) + + 05 May 2008; Tobias Heinlein <keytoaster@gentoo.org> + +files/kdelibs-3.5.9-bug_219970_khtml.patch, +kdelibs-3.5.9-r4.ebuild: + Adding patch to fix khtml crashes, bug #219970 *kdelibs-4.0.3-r1 (28 Apr 2008) diff --git a/kde-base/kdelibs/files/kdelibs-3.5.9-bug_219970_khtml.patch b/kde-base/kdelibs/files/kdelibs-3.5.9-bug_219970_khtml.patch new file mode 100644 index 000000000000..003446d595ee --- /dev/null +++ b/kde-base/kdelibs/files/kdelibs-3.5.9-bug_219970_khtml.patch @@ -0,0 +1,90 @@ +--- khtml/rendering/render_container.cpp.orig 2008-05-03 09:22:01.000000000 +0200 ++++ khtml/rendering/render_container.cpp 2008-05-03 09:22:47.000000000 +0200 +@@ -79,6 +79,8 @@ + kdDebug( 6040 ) << this << ": " << renderName() << "(RenderObject)::addChild( " << newChild << ": " << + newChild->renderName() << ", " << (beforeChild ? beforeChild->renderName() : "0") << " )" << endl; + #endif ++ // protect ourselves from deletion ++ setDoNotDelete(true); + + bool needsTable = false; + +@@ -159,6 +161,8 @@ + static_cast<RenderText*>(newChild)->setText(textToTransform, true); + } + newChild->attach(); ++ ++ setDoNotDelete(false); + } + + RenderObject* RenderContainer::removeChildNode(RenderObject* oldChild) +@@ -545,7 +549,7 @@ + RenderObject *next = child->nextSibling(); + + if ( child->isRenderBlock() && child->isAnonymousBlock() && !child->continuation() && +- !child->childrenInline() && !child->isTableCell() ) { ++ !child->childrenInline() && !child->isTableCell() && !child->doNotDelete()) { + RenderObject *firstAnChild = child->firstChild(); + RenderObject *lastAnChild = child->lastChild(); + if ( firstAnChild ) { +@@ -560,17 +564,21 @@ + child->previousSibling()->setNextSibling( firstAnChild ); + if ( child->nextSibling() ) + child->nextSibling()->setPreviousSibling( lastAnChild ); ++ if ( child == firstChild() ) ++ m_first = firstAnChild; ++ if ( child == lastChild() ) ++ m_last = lastAnChild; + } else { + if ( child->previousSibling() ) + child->previousSibling()->setNextSibling( child->nextSibling() ); + if ( child->nextSibling() ) + child->nextSibling()->setPreviousSibling( child->previousSibling() ); +- +- } + if ( child == firstChild() ) +- m_first = firstAnChild; ++ m_first = child->nextSibling(); + if ( child == lastChild() ) +- m_last = lastAnChild; ++ m_last = child->previousSibling(); ++ } ++ + child->setParent( 0 ); + child->setPreviousSibling( 0 ); + child->setNextSibling( 0 ); +--- khtml/rendering/render_object.cpp.orig 2008-05-03 09:22:40.000000000 +0200 ++++ khtml/rendering/render_object.cpp 2008-05-03 09:22:47.000000000 +0200 +@@ -178,7 +178,8 @@ + m_isRoot( false ), + m_afterPageBreak( false ), + m_needsPageClear( false ), +- m_containsPageBreak( false ) ++ m_containsPageBreak( false ), ++ m_doNotDelete(false) + { + assert( node ); + if (node->getDocument()->documentElement() == node) setIsRoot(true); +--- khtml/rendering/render_object.h.orig 2008-05-03 09:22:04.000000000 +0200 ++++ khtml/rendering/render_object.h 2008-05-03 09:22:47.000000000 +0200 +@@ -754,6 +754,9 @@ + virtual void deleteInlineBoxes(RenderArena* arena=0) {(void)arena;} + virtual void detach( ); + ++ void setDoNotDelete(bool b) { m_doNotDelete = b; } ++ bool doNotDelete() const { return m_doNotDelete; } ++ + const QFont &font(bool firstLine) const { + return style( firstLine )->font(); + } +@@ -835,7 +838,9 @@ + bool m_needsPageClear : 1; + bool m_containsPageBreak : 1; + +- // ### we have 16 + 24 bits. Cut 8 and save 32 ++ bool m_doNotDelete : 1; // This object should not be auto-deleted ++ ++ // ### we have 16 + 27 bits. + + + void arenaDelete(RenderArena *arena, void *objectBase); diff --git a/kde-base/kdelibs/kdelibs-3.5.9-r4.ebuild b/kde-base/kdelibs/kdelibs-3.5.9-r4.ebuild new file mode 100644 index 000000000000..1bf7a6aed4e7 --- /dev/null +++ b/kde-base/kdelibs/kdelibs-3.5.9-r4.ebuild @@ -0,0 +1,214 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/kdelibs-3.5.9-r4.ebuild,v 1.1 2008/05/05 15:11:45 keytoaster Exp $ + +EAPI="1" +inherit kde flag-o-matic eutils multilib +set-kdedir 3.5 + +DESCRIPTION="KDE libraries needed by all KDE programs." +HOMEPAGE="http://www.kde.org/" +SRC_URI="mirror://kde/stable/${PV}/src/${P}.tar.bz2 + mirror://gentoo/kdelibs-3.5-patchset-14.tar.bz2 + mirror://gentoo/kde-3.5.9-seli-xinerama.tar.bz2" + +LICENSE="GPL-2 LGPL-2" +SLOT="3.5" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +IUSE="acl alsa arts bindist branding cups doc jpeg2k kerberos legacyssl utempter openexr spell tiff + avahi kernel_linux fam lua kdehiddenvisibility" + +# Added aspell-en as dependency to work around bug 131512. +# Made openssl and zeroconf mandatory dependencies, see bug #172972 and #175984 +RDEPEND=" + arts? ( >=kde-base/arts-3.5.5 ) + app-arch/bzip2 + >=dev-libs/openssl-0.9.7d + >=dev-libs/libxslt-1.1.16 + >=dev-libs/libxml2-2.6.6 + >=dev-libs/libpcre-6.6 + media-libs/fontconfig + >=media-libs/freetype-2 + media-libs/libart_lgpl + net-dns/libidn + >=x11-libs/qt-3.3.3:3 + acl? ( kernel_linux? ( sys-apps/acl ) ) + alsa? ( media-libs/alsa-lib ) + cups? ( >=net-print/cups-1.1.19 ) + tiff? ( media-libs/tiff ) + kerberos? ( virtual/krb5 ) + jpeg2k? ( media-libs/jasper ) + openexr? ( >=media-libs/openexr-1.2.2-r2 ) + !avahi? ( !bindist? ( net-misc/mDNSResponder !kde-misc/kdnssd-avahi ) ) + fam? ( virtual/fam ) + virtual/ghostscript + utempter? ( sys-libs/libutempter ) + !kde-base/kde-env + lua? ( dev-lang/lua ) + spell? ( >=app-text/aspell-0.60.5 >=app-dicts/aspell-en-6.0.0 ) + >=sys-apps/portage-2.1.2.11 + !kde-base/ksync" + +DEPEND="${RDEPEND} + doc? ( app-doc/doxygen ) + sys-devel/gettext" + +RDEPEND="${RDEPEND} + x11-apps/rgb + x11-apps/iceauth" + +PDEPEND="avahi? ( kde-misc/kdnssd-avahi ) + bindist? ( kde-misc/kdnssd-avahi )" + +# Testing code is rather broken and merely for developer purposes, so disable it. +RESTRICT="test" + +pkg_setup() { + if use legacyssl ; then + echo "" + elog "You have the legacyssl use flag enabled, which fixes issues with some broken" + elog "sites, but breaks others instead. It is strongly discouraged to use it." + elog "For more information, see bug #128922." + echo "" + fi + + if ! use utempter ; then + echo "" + elog "On some setups, which rely on the correct update of utmp records, not using" + elog "utempter might not update them correctly. If you experience unexpected" + elog "behaviour, try to rebuild kde-base/kdelibs with utempter use-flag enabled." + echo "" + fi + + if use alsa && ! built_with_use --missing true media-libs/alsa-lib midi; then + eerror "The alsa USE flag in this package enables ALSA support" + eerror "for libkmid, KDE midi library." + eerror "For this reason, you have to merge media-libs/alsa-lib" + eerror "with the midi USE flag enabled, or disable alsa USE flag" + eerror "for this package." + die "Missing midi USE flag on media-libs/alsa-lib" + fi +} + +src_unpack() { + kde_src_unpack + + if use legacyssl ; then + # This patch won't be included upstream, see bug #128922. + epatch "${WORKDIR}/patches/kdelibs_3.5.4-kssl-3des.patch" + fi + + if use utempter ; then + # Bug #135818 is the eternal reference. + epatch "${WORKDIR}/patches/kdelibs-3.5_libutempter.patch" + fi + + if use branding ; then + # Add "(Gentoo)" to khtml user agent. + epatch "${WORKDIR}/patches/kdelibs_3.5-cattlebrand.diff" + fi + + # Xinerama patch by Lubos Lunak. + # http://ktown.kde.org/~seli/xinerama/ + epatch "${WORKDIR}/${PN}-xinerama.patch" + + # Fixes bug 212749 (upstream bug 158069) + epatch "${FILESDIR}/${P}-cursor.patch" + + # Fixes bug 203433 (upstream bug 125206) + epatch "${FILESDIR}/${P}-bug_203433_khtml.patch" + + # Security bug 218933 + epatch "${FILESDIR}/${PN}-3.5.8-kinit-CVE-2008-1671.patch" + + # Fixes bug 219970 (upstream bug 150006) + epatch "${FILESDIR}/${P}-bug_219970_khtml.patch" +} + +src_compile() { + rm -f "${S}/configure" + + myconf="--with-distribution=Gentoo --disable-fast-malloc + --with-libart --with-libidn --with-ssl + --without-hspell + $(use_enable fam libfam) $(use_enable kernel_linux dnotify) + $(use_with acl) $(use_with alsa) + $(use_with arts) $(use_enable cups) + $(use_with kerberos gssapi) $(use_with tiff) + $(use_with jpeg2k jasper) $(use_with openexr) + $(use_with utempter) $(use_with lua) + $(use_enable kernel_linux sendfile) --enable-mitshm + $(use_with spell aspell)" + + if use avahi || use bindist ; then + myconf="${myconf} --disable-dnssd" + else + myconf="${myconf} --enable-dnssd" + fi + + if has_version x11-apps/rgb; then + myconf="${myconf} --with-rgbfile=/usr/share/X11/rgb.txt" + fi + + # fix bug 58179, bug 85593 + # kdelibs-3.4.0 needed -fno-gcse; 3.4.1 needs -mminimal-toc; this needs a + # closer look... - corsair + use ppc64 && append-flags "-mminimal-toc" + + # work around bug #120858, gcc 3.4.x -Os miscompilation + use x86 && replace-flags "-Os" "-O2" # see bug #120858 + + replace-flags "-O3" "-O2" # see bug #148180 + + kde_src_compile + + if use doc; then + emake apidox || die + fi +} + +src_install() { + kde_src_install + + if use doc; then + emake DESTDIR="${D}" install-apidox || die + fi + + # Needed to create lib -> lib64 symlink for amd64 2005.0 profile + if [ "${SYMLINK_LIB}" = "yes" ]; then + dosym $(get_abi_LIBDIR ${DEFAULT_ABI}) ${KDEDIR}/lib + fi + + # Get rid of the disabled version of the kdnsd libraries + if use avahi || use bindist ; then + rm -rf "${D}/${PREFIX}"/$(get_libdir)/libkdnssd.* + fi + + dodir /etc/env.d + + # List all the multilib libdirs + local libdirs + for libdir in $(get_all_libdirs); do + libdirs="${libdirs}:${PREFIX}/${libdir}" + done + + # Please note that the KDE install path has to be the last value in KDEDIRS. + cat <<EOF > "${D}"/etc/env.d/45kdepaths-${SLOT} # number goes down with version upgrade +PATH=${PREFIX}/bin +ROOTPATH=${PREFIX}/sbin:${PREFIX}/bin +LDPATH=${libdirs:1} +MANPATH=${PREFIX}/share/man +CONFIG_PROTECT="${PREFIX}/share/config ${PREFIX}/env ${PREFIX}/shutdown /usr/share/config" +KDEDIRS="/usr:/usr/local:${PREFIX}" +#KDE_IS_PRELINKED=1 +XDG_DATA_DIRS="/usr/share:${PREFIX}/share:/usr/local/share" +COLON_SEPARATED="XDG_DATA_DIRS" +EOF + + # Make sure the target for the revdep-rebuild stuff exists. Fixes bug 184441. + dodir /etc/revdep-rebuild + +cat <<EOF > "${D}"/etc/revdep-rebuild/50-kde3 +SEARCH_DIRS="${PREFIX}/bin ${PREFIX}/lib*" +EOF +} |