summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobias Heinlein <keytoaster@gentoo.org>2008-05-05 15:11:46 +0000
committerTobias Heinlein <keytoaster@gentoo.org>2008-05-05 15:11:46 +0000
commit208086c6aba5c5801b52d4248012be5432ad6511 (patch)
tree752e92fa841a45a1a567c1b9f4aecd83ef9727bc /kde-base
parentVersion bump wrt #220159 (diff)
downloadgentoo-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/ChangeLog8
-rw-r--r--kde-base/kdelibs/files/kdelibs-3.5.9-bug_219970_khtml.patch90
-rw-r--r--kde-base/kdelibs/kdelibs-3.5.9-r4.ebuild214
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
+}