summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaleb Tennis <caleb@gentoo.org>2004-08-06 15:08:20 +0000
committerCaleb Tennis <caleb@gentoo.org>2004-08-06 15:08:20 +0000
commit3c193b47c0789d4fbdade2d018dd09568c103205 (patch)
tree70c1416196283e5812114d5e9419190c66d55931 /kde-base
parent~amd64 (Manifest recommit) (diff)
downloadgentoo-2-3c193b47c0789d4fbdade2d018dd09568c103205.tar.gz
gentoo-2-3c193b47c0789d4fbdade2d018dd09568c103205.tar.bz2
gentoo-2-3c193b47c0789d4fbdade2d018dd09568c103205.zip
Remove _beta1, add _rc1, add 3.2.3-r1 with some security fixes
Diffstat (limited to 'kde-base')
-rw-r--r--kde-base/kdelibs/ChangeLog18
-rw-r--r--kde-base/kdelibs/Manifest9
-rw-r--r--kde-base/kdelibs/files/digest-kdelibs-3.2.3-r11
-rw-r--r--kde-base/kdelibs/files/digest-kdelibs-3.3.0_beta11
-rw-r--r--kde-base/kdelibs/files/digest-kdelibs-3.3.0_rc11
-rw-r--r--kde-base/kdelibs/files/post-3.2.3-kdelibs-dcopserver.patch185
-rw-r--r--kde-base/kdelibs/files/post-3.2.3-kdelibs-htmlframes.patch429
-rw-r--r--kde-base/kdelibs/files/post-3.2.3-kdelibs-kcookiejar.patch163
-rw-r--r--kde-base/kdelibs/files/post-3.2.3-kdelibs-kstandarddirs.patch38
-rw-r--r--kde-base/kdelibs/kdelibs-3.2.3-r1.ebuild93
-rw-r--r--kde-base/kdelibs/kdelibs-3.3.0_rc1.ebuild (renamed from kde-base/kdelibs/kdelibs-3.3.0_beta1.ebuild)32
11 files changed, 959 insertions, 11 deletions
diff --git a/kde-base/kdelibs/ChangeLog b/kde-base/kdelibs/ChangeLog
index da5f0ef314d7..b5515b94f73d 100644
--- a/kde-base/kdelibs/ChangeLog
+++ b/kde-base/kdelibs/ChangeLog
@@ -1,6 +1,22 @@
# ChangeLog for kde-base/kdelibs
# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.149 2004/07/26 18:28:57 caleb Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.150 2004/08/06 15:08:20 caleb Exp $
+
+*kdelibs-3.3.0_rc1 (06 Aug 2004)
+
+ 06 Aug 2004; Caleb Tennis <caleb@gentoo.org> kdelibs-3.3.0_rc1.ebuild:
+ New _rc1, minor dep differences from _beta2.
+
+*kdelibs-3.2.3-r1 (06 Aug 2004)
+
+ 06 Aug 2004; Caleb Tennis <caleb@gentoo.org> kdelibs-3.2.3-r1.ebuild,
+ kdelibs-3.3.0_beta1.ebuild, files/post-3.2.3-kdelibs-dcopserver.patch,
+ files/post-3.2.3-kdelibs-htmlframes.patch,
+ files/post-3.2.3-kdelibs-kcookiejar.patch,
+ files/post-3.2.3-kdelibs-kstandarddirs.patch:
+ Add a new _rc1.
+ Remove the _beta1.
+ Add a 3.2.3-r1 which incorporates some security fixes.
26 Jul 2004; Caleb Tennis <caleb@gentoo.org> kdelibs-3.3.0_beta2.ebuild:
add dep to libidn. Maybe this can be use flagged later, but it's such a small
diff --git a/kde-base/kdelibs/Manifest b/kde-base/kdelibs/Manifest
index fd5e8ca0ed50..00a92d7bfb04 100644
--- a/kde-base/kdelibs/Manifest
+++ b/kde-base/kdelibs/Manifest
@@ -1,5 +1,8 @@
MD5 a74e166857a08d60de91dc809334e091 kdelibs-3.3.0_beta1.ebuild 2454
+MD5 8300f994bfbba9ffd747b2a8eb3e3a11 kdelibs-3.2.3-r1.ebuild 2758
+MD5 73e528d90d2bc86db8684eccf11007bb kdelibs-3.3.0_rc1.ebuild 2844
MD5 2f58e1c51efb89082af89b80505983be kdelibs-3.2.0.ebuild 2404
+MD5 0046c691fa833b2ff8d7eac15312a68b post-3.2.3-kdelibs-dcopserver.patch 4751
MD5 8ae427fb79ac0bded83e551819b42719 kdelibs-3.2.2.ebuild 2495
MD5 0259c3f239449f381dde6ee6a4619312 kdelibs-3.1.5-r1.ebuild 2056
MD5 b707cac51f1876562c5dc8552788d09f kdelibs-3.2.2-r1.ebuild 2611
@@ -8,19 +11,25 @@ MD5 bdbfa9147fb7f9dcb231ab624515d0c9 kdelibs-3.2.1.ebuild 2418
MD5 0f0199c8ac44e5e9bf7acca24ce18578 kdelibs-3.2.3.ebuild 2452
MD5 69e63cc67553ae6b37960c4c7b0e7437 ChangeLog 23529
MD5 14889ab75f97d76e58b0c1154e7683a9 metadata.xml 161
+MD5 9dc1a96064aa68e07411d8c98828df89 files/post-3.2.3-kdelibs-dcopserver.patch 4810
MD5 52e0e955204a77781505d33b9a3c341d files/post-3.2.2-kdelibs-ktelnetservice.patch 974
MD5 285676023bab94666dfec728231cfcd1 files/kdelibs-3.2.2-su.cpp.diff 383
+MD5 0a190a8cc12f6e4e8ade6470b726b486 files/post-3.2.3-kdelibs-kcookiejar.patch 6298
MD5 58daf143839865233492a463061c4194 files/digest-kdelibs-3.3.0_beta1 69
MD5 948208805447d9e9f84325f61f921a82 files/digest-kdelibs-3.3.0_beta2 69
+MD5 119cc73926dceafff9107b5f916277ee files/post-3.2.3-kdelibs-htmlframes.patch 15435
MD5 3f21fc4e8ddbf79459bfa8f2df1a5e15 files/animated-gif-fix.patch 317
MD5 ee0b53e6fbaea17ae3543638dc09ca34 files/digest-kdelibs-3.2.0 68
MD5 2c0a17ac5767265af5bcfb2f892f66ec files/digest-kdelibs-3.2.1 68
MD5 6176dc207f5ba91edee9b04ab111afe5 files/digest-kdelibs-3.2.2 68
MD5 57b3bdaa9934d84f320c1aa40a56afe4 files/digest-kdelibs-3.2.3 68
+MD5 345ce2e01cfdfa4754c47894c0271dcc files/post-3.2.3-kdelibs-kstandarddirs.patch 1417
MD5 41d30ba8cf8d36ad3caebeedb1ddfd0e files/kdelibs-3.1.5-kjs-alphaev6-gcc3-workaround.patch 477
+MD5 8d232acefc5349654fc11c70a16fda22 files/digest-kdelibs-3.3.0_rc1 72
MD5 7cebc1abb3141287db618486fd679b32 files/post-3.2.2-kdelibs-kapplication.patch 882
MD5 76ef4c7d472a5e3659219ee223f12cb5 files/qt-3.3-printfix.patch 333
MD5 bde52aa0bba055c4f678540ec20bfe5a files/post-3.1.5-kdelibs-ktelnetservice.patch 968
MD5 8fea98dc672d5c85b217bcb8bcec9214 files/post-3.1.5-kdelibs-kapplication.patch 653
MD5 1e53bd5071cc4fe6ba67fda7252a1cf2 files/digest-kdelibs-3.1.5-r1 68
MD5 6176dc207f5ba91edee9b04ab111afe5 files/digest-kdelibs-3.2.2-r1 68
+MD5 57b3bdaa9934d84f320c1aa40a56afe4 files/digest-kdelibs-3.2.3-r1 68
diff --git a/kde-base/kdelibs/files/digest-kdelibs-3.2.3-r1 b/kde-base/kdelibs/files/digest-kdelibs-3.2.3-r1
new file mode 100644
index 000000000000..ab94bd8ba7fd
--- /dev/null
+++ b/kde-base/kdelibs/files/digest-kdelibs-3.2.3-r1
@@ -0,0 +1 @@
+MD5 d9d1c4bd2016a96f156b491ca908dc16 kdelibs-3.2.3.tar.bz2 12737024
diff --git a/kde-base/kdelibs/files/digest-kdelibs-3.3.0_beta1 b/kde-base/kdelibs/files/digest-kdelibs-3.3.0_beta1
deleted file mode 100644
index 1f28ba85fb58..000000000000
--- a/kde-base/kdelibs/files/digest-kdelibs-3.3.0_beta1
+++ /dev/null
@@ -1 +0,0 @@
-MD5 2d8eadb6ff2e15c57b4462872deb67b3 kdelibs-3.2.91.tar.bz2 15711175
diff --git a/kde-base/kdelibs/files/digest-kdelibs-3.3.0_rc1 b/kde-base/kdelibs/files/digest-kdelibs-3.3.0_rc1
new file mode 100644
index 000000000000..f7e59b95be15
--- /dev/null
+++ b/kde-base/kdelibs/files/digest-kdelibs-3.3.0_rc1
@@ -0,0 +1 @@
+MD5 c8b0834b1becc2c9ee6bd74ef7ef8139 kdelibs-3.3.0-rc1.tar.bz2 15762224
diff --git a/kde-base/kdelibs/files/post-3.2.3-kdelibs-dcopserver.patch b/kde-base/kdelibs/files/post-3.2.3-kdelibs-dcopserver.patch
new file mode 100644
index 000000000000..0dc5fb43f44e
--- /dev/null
+++ b/kde-base/kdelibs/files/post-3.2.3-kdelibs-dcopserver.patch
@@ -0,0 +1,185 @@
+Index: dcopserver.cpp
+===================================================================
+RCS file: /home/kde/kdelibs/dcop/dcopserver.cpp,v
+retrieving revision 1.160.2.3
+diff -u -p -r1.160.2.3 dcopserver.cpp
+--- dcopserver.cpp 30 Apr 2004 15:00:08 -0000 1.160.2.3
++++ dcopserver.cpp 26 Jul 2004 09:03:06 -0000
+@@ -443,35 +443,78 @@ write_iceauth (FILE *addfp, IceAuthDataE
+ fprintf (addfp, "\n");
+ }
+
++#ifndef HAVE_MKSTEMPS
++#include <string.h>
++#include <strings.h>
+
+-#ifndef HAVE_MKSTEMP
+-static char *unique_filename (const char *path, const char *prefix)
+-#else
+-static char *unique_filename (const char *path, const char *prefix, int *pFd)
+-#endif
++/* this is based on code taken from the GNU libc, distributed under the LGPL license */
++
++/* Generate a unique temporary file name from TEMPLATE.
++
++ TEMPLATE has the form:
++
++ <path>/ccXXXXXX<suffix>
++
++ SUFFIX_LEN tells us how long <suffix> is (it can be zero length).
++
++ The last six characters of TEMPLATE before <suffix> must be "XXXXXX";
++ they are replaced with a string that makes the filename unique.
++
++ Returns a file descriptor open on the file for reading and writing. */
++
++int mkstemps (char* _template, int suffix_len)
+ {
+-#ifndef HAVE_MKSTEMP
+-#ifndef X_NOT_POSIX
+- return ((char *) tempnam (path, prefix));
+-#else
+- char tempFile[PATH_MAX];
+- char *tmp;
++ static const char letters[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
++ char *XXXXXX;
++ int len;
++ int count;
++ int value;
++
++ len = strlen (_template);
++
++ if ((int) len < 6 + suffix_len || strncmp (&_template[len - 6 - suffix_len], "XXXXXX", 6))
++ return -1;
++
++ XXXXXX = &_template[len - 6 - suffix_len];
++
++ value = rand();
++ for (count = 0; count < 256; ++count)
++ {
++ int v = value;
++ int fd;
++
++ /* Fill in the random bits. */
++ XXXXXX[0] = letters[v % 62];
++ v /= 62;
++ XXXXXX[1] = letters[v % 62];
++ v /= 62;
++ XXXXXX[2] = letters[v % 62];
++ v /= 62;
++ XXXXXX[3] = letters[v % 62];
++ v /= 62;
++ XXXXXX[4] = letters[v % 62];
++ v /= 62;
++ XXXXXX[5] = letters[v % 62];
++
++ fd = open (_template, O_RDWR|O_CREAT|O_EXCL, 0600);
++ if (fd >= 0)
++ /* The file does not exist. */
++ return fd;
++
++ /* This is a random value. It is only necessary that the next
++ TMP_MAX values generated by adding 7777 to VALUE are different
++ with (module 2^32). */
++ value += 7777;
++ }
++ /* We return the null string if we can't find a unique file name. */
++ _template[0] = '\0';
++ return -1;
++}
+
+- snprintf (tempFile, PATH_MAX, "%s/%sXXXXXX", path, prefix);
+- tmp = (char *) mktemp (tempFile);
+- if (tmp)
+- {
+- char *ptr = (char *) malloc (strlen (tmp) + 1);
+- if (ptr != NULL)
+- {
+- strcpy (ptr, tmp);
+- }
+- return (ptr);
+- }
+- else
+- return (NULL);
+ #endif
+-#else
++
++static char *unique_filename (const char *path, const char *prefix, int *pFd)
++{
+ char tempFile[PATH_MAX];
+ char *ptr;
+
+@@ -480,43 +523,10 @@ static char *unique_filename (const char
+ if (ptr != NULL)
+ {
+ strcpy(ptr, tempFile);
+- *pFd = mkstemp(ptr);
++ *pFd = mkstemps(ptr, 0);
+ }
+ return ptr;
+-#endif
+-}
+-
+-#if 0
+-Status SetAuthentication_local (int count, IceListenObj *listenObjs)
+-{
+- int i;
+- for (i = 0; i < count; i ++) {
+- char *prot = IceGetListenConnectionString(listenObjs[i]);
+- if (!prot) continue;
+- char *host = strchr(prot, '/');
+- char *sock = 0;
+- if (host) {
+- *host=0;
+- host++;
+- sock = strchr(host, ':');
+- if (sock) {
+- *sock = 0;
+- sock++;
+- }
+- }
+-#ifndef NDEBUG
+- qDebug("DCOPServer: SetAProc_loc: conn %d, prot=%s, file=%s",
+- (unsigned)i, prot, sock);
+-#endif
+- if (sock && !strcmp(prot, "local")) {
+- chmod(sock, 0700);
+- }
+- IceSetHostBasedAuthProc (listenObjs[i], HostBasedAuthProc);
+- free(prot);
+- }
+- return 1;
+ }
+-#endif
+
+ #define MAGIC_COOKIE_LEN 16
+
+@@ -529,28 +539,19 @@ SetAuthentication (int count, IceListenO
+ int original_umask;
+ int i;
+ QCString command;
+-#ifdef HAVE_MKSTEMP
+ int fd;
+-#endif
+
+ original_umask = umask (0077); /* disallow non-owner access */
+
+ path = getenv ("DCOP_SAVE_DIR");
+ if (!path)
+ path = "/tmp";
+-#ifndef HAVE_MKSTEMP
+- if ((addAuthFile = unique_filename (path, "dcop")) == NULL)
+- goto bad;
+
+- if (!(addfp = fopen (addAuthFile, "w")))
+- goto bad;
+-#else
+ if ((addAuthFile = unique_filename (path, "dcop", &fd)) == NULL)
+ goto bad;
+
+ if (!(addfp = fdopen(fd, "wb")))
+ goto bad;
+-#endif
+
+ if ((*_authDataEntries = static_cast<IceAuthDataEntry *>(malloc (count * 2 * sizeof (IceAuthDataEntry)))) == NULL)
+ goto bad;
diff --git a/kde-base/kdelibs/files/post-3.2.3-kdelibs-htmlframes.patch b/kde-base/kdelibs/files/post-3.2.3-kdelibs-htmlframes.patch
new file mode 100644
index 000000000000..ee204eba2174
--- /dev/null
+++ b/kde-base/kdelibs/files/post-3.2.3-kdelibs-htmlframes.patch
@@ -0,0 +1,429 @@
+--- khtml/khtml_ext.cpp 24 Apr 2004 08:20:46 -0000 1.85.2.2
++++ khtml/khtml_ext.cpp 3 Aug 2004 14:36:43 -0000
+@@ -646,6 +646,19 @@ bool KHTMLPartBrowserHostExtension::open
+ return m_part->openURLInFrame( url, urlArgs );
+ }
+
++void KHTMLPartBrowserHostExtension::virtual_hook( int id, void *data )
++{
++ if (id == VIRTUAL_FIND_FRAME_PARENT)
++ {
++ FindFrameParentParams *param = static_cast<FindFrameParentParams*>(data);
++ KHTMLPart *parentPart = m_part->findFrameParent(param->callingPart, param->frame);
++ if (parentPart)
++ param->parent = parentPart->browserHostExtension();
++ return;
++ }
++ BrowserHostExtension::virtual_hook( id, data );
++}
++
+ // BCI: remove in KDE 4
+ KHTMLZoomFactorAction::KHTMLZoomFactorAction( KHTMLPart *part, bool direction, const QString &text, const QString &icon, const QObject *receiver, const char *slot, QObject *parent, const char *name )
+ : KAction( text, icon, 0, receiver, slot, parent, name )
+Index: khtml/khtml_ext.h
+===================================================================
+RCS file: /home/kde/kdelibs/khtml/khtml_ext.h,v
+retrieving revision 1.26.2.1
+diff -u -p -r1.26.2.1 khtml_ext.h
+--- khtml/khtml_ext.h 29 Feb 2004 15:27:43 -0000 1.26.2.1
++++ khtml/khtml_ext.h 3 Aug 2004 14:36:43 -0000
+@@ -98,6 +98,9 @@ public:
+ virtual const QPtrList<KParts::ReadOnlyPart> frames() const;
+
+ virtual bool openURLInFrame( const KURL &url, const KParts::URLArgs &urlArgs );
++
++protected:
++ virtual void virtual_hook( int id, void* data );
+ private:
+ KHTMLPart *m_part;
+ };
+Index: khtml/khtml_part.cpp
+===================================================================
+RCS file: /home/kde/kdelibs/khtml/khtml_part.cpp,v
+retrieving revision 1.959.2.20
+diff -u -p -r1.959.2.20 khtml_part.cpp
+--- khtml/khtml_part.cpp 29 Jun 2004 09:08:16 -0000 1.959.2.20
++++ khtml/khtml_part.cpp 3 Aug 2004 14:36:46 -0000
+@@ -757,12 +757,16 @@ DOM::Document KHTMLPart::document() cons
+ return d->m_doc;
+ }
+
+-
+ KParts::BrowserExtension *KHTMLPart::browserExtension() const
+ {
+ return d->m_extension;
+ }
+
++KParts::BrowserHostExtension *KHTMLPart::browserHostExtension() const
++{
++ return d->m_hostExtension;
++}
++
+ KHTMLView *KHTMLPart::view() const
+ {
+ return d->m_view;
+@@ -880,29 +884,18 @@ QVariant KHTMLPart::crossFrameExecuteScr
+ // we always allow these
+ }
+ else {
+- while (destpart->parentPart())
+- destpart = destpart->parentPart();
+- destpart = destpart->findFrame(target);
+-
++ destpart = findFrame(target);
+ if (!destpart)
+- destpart = this; // ### doesn't make sense, does it?
++ destpart = this;
+ }
+
+ // easy way out?
+ if (destpart == this)
+ return executeScript(DOM::Node(), script);
+
+-
+ // now compare the domains
+- if (!destpart->htmlDocument().isNull() &&
+- !htmlDocument().isNull()) {
+- DOM::DOMString actDomain = htmlDocument().domain();
+- DOM::DOMString destDomain = destpart->htmlDocument().domain();
+-
+- if (actDomain == destDomain)
+- return destpart->executeScript(DOM::Node(), script);
+- }
+-
++ if (destpart->checkFrameAccess(this))
++ return destpart->executeScript(DOM::Node(), script);
+
+ // eww, something went wrong. better execute it in our frame
+ return executeScript(DOM::Node(), script);
+@@ -3358,7 +3351,7 @@ void KHTMLPart::urlSelected( const QStri
+ if ( hasTarget )
+ {
+ // unknown frame names should open in a new window.
+- khtml::ChildFrame *frame = recursiveFrameRequest( cURL, args, false );
++ khtml::ChildFrame *frame = recursiveFrameRequest( this, cURL, args, false );
+ if ( frame )
+ {
+ args.metaData()["referrer"] = d->m_referrer;
+@@ -4364,6 +4357,7 @@ void KHTMLPart::slotChildDocCreated()
+ void KHTMLPart::slotChildURLRequest( const KURL &url, const KParts::URLArgs &args )
+ {
+ khtml::ChildFrame *child = frame( sender()->parent() );
++ KHTMLPart *callingHtmlPart = const_cast<KHTMLPart *>(dynamic_cast<const KHTMLPart *>(sender()));
+
+ // TODO: handle child target correctly! currently the script are always executed fur the parent
+ QString urlStr = url.url();
+@@ -4395,7 +4389,7 @@ void KHTMLPart::slotChildURLRequest( con
+ }
+ else if ( frameName != QString::fromLatin1( "_self" ) )
+ {
+- khtml::ChildFrame *_frame = recursiveFrameRequest( url, args );
++ khtml::ChildFrame *_frame = recursiveFrameRequest( callingHtmlPart, url, args );
+
+ if ( !_frame )
+ {
+@@ -4437,46 +4431,92 @@ khtml::ChildFrame *KHTMLPart::frame( con
+ return 0L;
+ }
+
+-//#define DEBUG_FINDFRAME
++//#define DEBUG_FINDFRAME
+
+-KHTMLPart *KHTMLPart::findFrame( const QString &f )
++bool KHTMLPart::checkFrameAccess(KHTMLPart *callingHtmlPart)
+ {
++ if (callingHtmlPart == this)
++ return true; // trivial
++
++ if (htmlDocument().isNull()) {
+ #ifdef DEBUG_FINDFRAME
+- kdDebug(6050) << "KHTMLPart::findFrame '" << f << "'" << endl;
+- FrameIt it2 = d->m_frames.begin();
+- FrameIt end = d->m_frames.end();
+- for (; it2 != end; ++it2 )
+- kdDebug(6050) << " - having frame '" << (*it2).m_name << "'" << endl;
++ kdDebug(6050) << "KHTMLPart::checkFrameAccess: Empty part " << this << " URL = " << m_url << endl;
+ #endif
+- // ### http://www.w3.org/TR/html4/appendix/notes.html#notes-frames
+- ConstFrameIt it = d->m_frames.find( f );
+- if ( it == d->m_frames.end() )
+- {
++ return false; // we are empty?
++ }
++
++ // now compare the domains
++ if (callingHtmlPart && !callingHtmlPart->htmlDocument().isNull() &&
++ !htmlDocument().isNull()) {
++ DOM::DOMString actDomain = callingHtmlPart->htmlDocument().domain();
++ DOM::DOMString destDomain = htmlDocument().domain();
++
+ #ifdef DEBUG_FINDFRAME
+- kdDebug(6050) << "KHTMLPart::findFrame frame " << f << " not found" << endl;
++ kdDebug(6050) << "KHTMLPart::checkFrameAccess: actDomain = '" << actDomain.string() << "' destDomain = '" << destDomain.string() << "'" << endl;
+ #endif
+- return 0L;
++
++ if (actDomain == destDomain)
++ return true;
+ }
+- else {
+- KParts::ReadOnlyPart *p = (*it).m_part;
+- if ( p && p->inherits( "KHTMLPart" ))
+- {
+ #ifdef DEBUG_FINDFRAME
+- kdDebug(6050) << "KHTMLPart::findFrame frame " << f << " is a KHTMLPart, ok" << endl;
++ else
++ {
++ kdDebug(6050) << "KHTMLPart::checkFrameAccess: Unknown part/domain " << callingHtmlPart << " tries to access part " << this << endl;
++ }
+ #endif
+- return (KHTMLPart*)p;
+- }
+- else
+- {
++ return false;
++}
++
++KHTMLPart *
++KHTMLPart::findFrameParent( KParts::ReadOnlyPart *callingPart, const QString &f, khtml::ChildFrame **childFrame )
++{
+ #ifdef DEBUG_FINDFRAME
+- if (p)
+- kdWarning() << "KHTMLPart::findFrame frame " << f << " found but isn't a KHTMLPart ! " << p->className() << endl;
+- else
+- kdWarning() << "KHTMLPart::findFrame frame " << f << " found but m_part=0L" << endl;
++ kdDebug(6050) << "KHTMLPart::findFrameParent: this = " << this << " URL = " << m_url << " findFrameParent( " << f << " )" << endl;
++#endif
++ // Check access
++ KHTMLPart *callingHtmlPart = dynamic_cast<KHTMLPart *>(callingPart);
++
++ if (!checkFrameAccess(callingHtmlPart))
++ return 0;
++
++ FrameIt it = d->m_frames.find( f );
++ FrameIt end = d->m_frames.end();
++ if ( it != end )
++ {
++#ifdef DEBUG_FINDFRAME
++ kdDebug(6050) << "KHTMLPart::findFrameParent: FOUND!" << endl;
+ #endif
+- return 0L;
++ if (childFrame)
++ *childFrame = &(*it);
++ return this;
++ }
++
++ it = d->m_frames.begin();
++ for (; it != end; ++it )
++ {
++ KParts::ReadOnlyPart *p = (*it).m_part;
++ if ( p && p->inherits( "KHTMLPart" ))
++ {
++ KHTMLPart *frameParent = static_cast<KHTMLPart*>(p)->findFrameParent(callingPart, f, childFrame);
++ if (frameParent)
++ return frameParent;
+ }
+ }
++ return 0;
++}
++
++
++KHTMLPart *KHTMLPart::findFrame( const QString &f )
++{
++ khtml::ChildFrame *childFrame;
++ KHTMLPart *parentFrame = findFrameParent(this, f, &childFrame);
++ if (parentFrame)
++ {
++ KParts::ReadOnlyPart *p = childFrame->m_part;
++ if ( p && p->inherits( "KHTMLPart" ))
++ return static_cast<KHTMLPart *>(p);
++ }
++ return 0;
+ }
+
+ KParts::ReadOnlyPart *KHTMLPart::currentFrame() const
+@@ -4514,37 +4554,29 @@ KHTMLPart *KHTMLPart::parentPart()
+ return (KHTMLPart *)parent();
+ }
+
+-khtml::ChildFrame *KHTMLPart::recursiveFrameRequest( const KURL &url, const KParts::URLArgs &args,
+- bool callParent )
++khtml::ChildFrame *KHTMLPart::recursiveFrameRequest( KHTMLPart *callingHtmlPart, const KURL &url,
++ const KParts::URLArgs &args, bool callParent )
+ {
+- FrameIt it = d->m_frames.find( args.frameName );
+-
+- if ( it != d->m_frames.end() )
+- return &(*it);
+-
+- it = d->m_frames.begin();
+- FrameIt end = d->m_frames.end();
+- for (; it != end; ++it )
+- if ( (*it).m_part && (*it).m_part->inherits( "KHTMLPart" ) )
+- {
+- KHTMLPart *childPart = (KHTMLPart *)(KParts::ReadOnlyPart *)(*it).m_part;
+-
+- khtml::ChildFrame *res = childPart->recursiveFrameRequest( url, args, false );
+- if ( !res )
+- continue;
+-
+- childPart->requestObject( res, url, args );
+- return 0L;
+- }
++#ifdef DEBUG_FINDFRAME
++ kdDebug( 6050 ) << "KHTMLPart::recursiveFrameRequest this = " << this << ", frame = " << args.frameName << ", url = " << url << endl;
++#endif
++ khtml::ChildFrame *childFrame;
++ KHTMLPart *childPart = findFrameParent(callingHtmlPart, args.frameName, &childFrame);
++ if (childPart)
++ {
++ if (childPart == this)
++ return childFrame;
++
++ childPart->requestObject( childFrame, url, args );
++ return 0;
++ }
+
+ if ( parentPart() && callParent )
+ {
+- khtml::ChildFrame *res = parentPart()->recursiveFrameRequest( url, args );
++ khtml::ChildFrame *res = parentPart()->recursiveFrameRequest( callingHtmlPart, url, args, callParent );
+
+- if ( res )
+- parentPart()->requestObject( res, url, args );
+-
+- return 0L;
++ if ( res )
++ parentPart()->requestObject( res, url, args );
+ }
+
+ return 0L;
+@@ -4552,7 +4584,7 @@ khtml::ChildFrame *KHTMLPart::recursiveF
+
+ void KHTMLPart::saveState( QDataStream &stream )
+ {
+- kdDebug( 6050 ) << "KHTMLPart::saveState saving URL " << m_url.url() << endl;
++ kdDebug( 6050 ) << "KHTMLPart::saveState this = " << this << " saving URL " << m_url.url() << endl;
+
+ stream << m_url << (Q_INT32)d->m_view->contentsX() << (Q_INT32)d->m_view->contentsY()
+ << (Q_INT32) d->m_view->contentsWidth() << (Q_INT32) d->m_view->contentsHeight() << (Q_INT32) d->m_view->marginWidth() << (Q_INT32) d->m_view->marginHeight();
+Index: khtml/khtml_part.h
+===================================================================
+RCS file: /home/kde/kdelibs/khtml/khtml_part.h,v
+retrieving revision 1.248.2.5
+diff -u -p -r1.248.2.5 khtml_part.h
+--- khtml/khtml_part.h 29 Jun 2004 09:08:16 -0000 1.248.2.5
++++ khtml/khtml_part.h 3 Aug 2004 14:36:47 -0000
+@@ -287,6 +287,7 @@ public:
+ */
+ KParts::BrowserExtension *browserExtension() const;
+ KParts::LiveConnectExtension *liveConnectExtension( const khtml::RenderPart *) const;
++ KParts::BrowserHostExtension *browserHostExtension() const;
+
+ /**
+ * Returns a pointer to the HTML document's view.
+@@ -812,6 +813,16 @@ public:
+ KHTMLPart *findFrame( const QString &f );
+
+ /**
++ * @internal
++ * Recursively finds the part containing the frame with name @p f
++ * and checks if it is accessible by @p callingPart
++ * Returns 0L if no suitable frame can't be found.
++ * Returns parent part if a suitable frame was found and
++ * frame info in @p *childFrame
++ */
++ KHTMLPart *findFrameParent( KParts::ReadOnlyPart *callingPart, const QString &f, khtml::ChildFrame **childFrame=0 );
++
++ /**
+ * Return the current frame (the one that has focus)
+ * Not necessarily a direct child of ours, framesets can be nested.
+ * Returns "this" if this part isn't a frameset.
+@@ -1376,6 +1387,8 @@ private:
+
+ bool restoreURL( const KURL &url );
+ void emitSelectionChanged();
++ // Returns whether callingHtmlPart may access this part
++ bool checkFrameAccess(KHTMLPart *callingHtmlPart);
+ bool openURLInFrame( const KURL &url, const KParts::URLArgs &urlArgs );
+ void startAutoScroll();
+ void stopAutoScroll();
+@@ -1434,7 +1447,7 @@ private:
+ DOM::DocumentImpl *xmlDocImpl() const;
+ khtml::ChildFrame *frame( const QObject *obj );
+
+- khtml::ChildFrame *recursiveFrameRequest( const KURL &url, const KParts::URLArgs &args, bool callParent = true );
++ khtml::ChildFrame *recursiveFrameRequest( KHTMLPart *callingHtmlPart, const KURL &url, const KParts::URLArgs &args, bool callParent = true );
+
+ bool checkLinkSecurity( const KURL &linkURL,const QString &message = QString::null, const QString &button = QString::null );
+ QVariant executeScript( const QString& filename, int baseLine, const DOM::Node &n, const QString& script );
+Index: kparts/browserextension.cpp
+===================================================================
+RCS file: /home/kde/kdelibs/kparts/browserextension.cpp,v
+retrieving revision 1.60.2.1
+diff -u -p -r1.60.2.1 browserextension.cpp
+--- kparts/browserextension.cpp 10 Apr 2004 15:08:49 -0000 1.60.2.1
++++ kparts/browserextension.cpp 3 Aug 2004 14:36:48 -0000
+@@ -636,6 +636,17 @@ BrowserHostExtension *BrowserHostExtensi
+ void BrowserExtension::virtual_hook( int, void* )
+ { /*BASE::virtual_hook( id, data );*/ }
+
++BrowserHostExtension *
++BrowserHostExtension::findFrameParent(KParts::ReadOnlyPart *callingPart, const QString &frame)
++{
++ FindFrameParentParams param;
++ param.parent = 0;
++ param.callingPart = callingPart;
++ param.frame = frame;
++ virtual_hook(VIRTUAL_FIND_FRAME_PARENT, &param);
++ return param.parent;
++}
++
+ void BrowserHostExtension::virtual_hook( int, void* )
+ { /*BASE::virtual_hook( id, data );*/ }
+
+Index: kparts/browserextension.h
+===================================================================
+RCS file: /home/kde/kdelibs/kparts/browserextension.h,v
+retrieving revision 1.110
+diff -u -p -r1.110 browserextension.h
+--- kparts/browserextension.h 26 Sep 2003 07:13:13 -0000 1.110
++++ kparts/browserextension.h 3 Aug 2004 14:36:48 -0000
+@@ -671,10 +671,16 @@ public:
+ *
+ * Note that this method does not query the child objects recursively.
+ */
+-
+ virtual const QPtrList<KParts::ReadOnlyPart> frames() const;
+
+ /**
++ * @internal
++ * Returns the part that contains @p frame and that may be accessed
++ * by @p callingPart
++ */
++ BrowserHostExtension *findFrameParent(KParts::ReadOnlyPart *callingPart, const QString &frame);
++
++ /**
+ * Opens the given url in a hosted child frame. The frame name is specified in the
+ * frameName variable in the urlArgs argument structure (see KParts::URLArgs ) .
+ */
+@@ -687,6 +693,19 @@ public:
+ static BrowserHostExtension *childObject( QObject *obj );
+
+ protected:
++ /** This 'enum' along with the structure below is NOT part of the public API.
++ * It's going to disappear in KDE 4.0 and is likely to change inbetween.
++ *
++ * @internal
++ */
++ enum { VIRTUAL_FIND_FRAME_PARENT = 0x10 };
++ struct FindFrameParentParams
++ {
++ BrowserHostExtension *parent;
++ KParts::ReadOnlyPart *callingPart;
++ QString frame;
++ };
++
+ virtual void virtual_hook( int id, void* data );
+ private:
+ class BrowserHostExtensionPrivate;
diff --git a/kde-base/kdelibs/files/post-3.2.3-kdelibs-kcookiejar.patch b/kde-base/kdelibs/files/post-3.2.3-kdelibs-kcookiejar.patch
new file mode 100644
index 000000000000..5b5c80cabd55
--- /dev/null
+++ b/kde-base/kdelibs/files/post-3.2.3-kdelibs-kcookiejar.patch
@@ -0,0 +1,163 @@
+Index: kioslave/http/kcookiejar/Makefile.am
+===================================================================
+RCS file: /home/kde/kdelibs/kioslave/http/kcookiejar/Makefile.am,v
+retrieving revision 1.21
+retrieving revision 1.22
+diff -u -p -r1.21 -r1.22
+--- kioslave/http/kcookiejar/Makefile.am 29 Jun 2003 18:13:35 -0000 1.21
++++ kioslave/http/kcookiejar/Makefile.am 20 Jul 2004 15:29:24 -0000 1.22
+@@ -26,3 +26,6 @@ kdeddir = $(kde_servicesdir)/kded
+ update_DATA = kcookiescfg.upd
+ updatedir = $(kde_datadir)/kconf_update
+
++cookie_DATA = domain_info
++cookiedir = $(kde_datadir)/khtml
++
+Index: kioslave/http/kcookiejar/kcookiejar.cpp
+===================================================================
+RCS file: /home/kde/kdelibs/kioslave/http/kcookiejar/kcookiejar.cpp,v
+retrieving revision 1.116
+retrieving revision 1.117
+diff -u -p -r1.116 -r1.117
+--- kioslave/http/kcookiejar/kcookiejar.cpp 19 Jul 2004 10:16:22 -0000 1.116
++++ kioslave/http/kcookiejar/kcookiejar.cpp 20 Jul 2004 15:29:24 -0000 1.117
+@@ -244,6 +244,14 @@ KCookieJar::KCookieJar()
+ m_globalAdvice = KCookieDunno;
+ m_configChanged = false;
+ m_cookiesChanged = false;
++
++ KConfig cfg("khtml/domain_info", true, false, "data");
++ QStringList countries = cfg.readListEntry("twoLevelTLD");
++ for(QStringList::ConstIterator it = countries.begin();
++ it != countries.end(); ++it)
++ {
++ m_twoLevelTLD.replace(*it, (int *) 1);
++ }
+ }
+
+ //
+@@ -528,14 +536,14 @@ static const char * parseNameValue(const
+
+ }
+
+-static void stripDomain(const QString &_fqdn, QString &_domain)
++void KCookieJar::stripDomain(const QString &_fqdn, QString &_domain)
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(_fqdn, domains);
++ extractDomains(_fqdn, domains);
+ _domain = domains[0];
+ }
+
+-static QString stripDomain( KHttpCookiePtr cookiePtr)
++QString KCookieJar::stripDomain( KHttpCookiePtr cookiePtr)
+ {
+ QString domain; // We file the cookie under this domain.
+ if (cookiePtr->domain().isEmpty())
+@@ -620,6 +628,13 @@ void KCookieJar::extractDomains(const QS
+ {
+ if (partList.count() == 1)
+ break; // We only have a TLD left.
++
++ if ((partList.count() == 2) && (m_twoLevelTLD[partList[1].lower()]))
++ {
++ // This domain uses two-level TLDs in the form xxxx.yy
++ break;
++ }
++
+ if ((partList.count() == 2) && (partList[1].length() == 2))
+ {
+ // If this is a TLD, we should stop. (e.g. co.uk)
+@@ -634,14 +649,6 @@ void KCookieJar::extractDomains(const QS
+ break;
+ }
+
+- // The .name domain uses <name>.<surname>.name
+- // Although the TLD is striclty speaking .name, for our purpose
+- // it should be <surname>.name since people should not be able
+- // to set cookies for everyone with the same surname.
+- // Matches <surname>.name
+- if ((partList.count() == 2)&& (partList[1].lower() == L1("name")))
+- break;
+-
+ QString domain = partList.join(L1("."));
+ _domains.append('.' + domain);
+ _domains.append(domain);
+Index: kioslave/http/kcookiejar/kcookiejar.h
+===================================================================
+RCS file: /home/kde/kdelibs/kioslave/http/kcookiejar/kcookiejar.h,v
+retrieving revision 1.33
+retrieving revision 1.34
+diff -u -p -r1.33 -r1.34
+--- kioslave/http/kcookiejar/kcookiejar.h 22 Nov 2003 16:50:45 -0000 1.33
++++ kioslave/http/kcookiejar/kcookiejar.h 20 Jul 2004 15:29:24 -0000 1.34
+@@ -306,8 +306,8 @@ public:
+ /**
+ * Returns a list of domains (_domainList) relevant for this host.
+ */
+- static void extractDomains(const QString &_fqdn,
+- QStringList &_domainList);
++ void extractDomains(const QString &_fqdn,
++ QStringList &_domainList);
+
+ static QString adviceToStr(KCookieAdvice _advice);
+ static KCookieAdvice strToAdvice(const QString &_str);
+@@ -329,11 +329,15 @@ public:
+ */
+ void setShowCookieDetails (bool value) { m_showCookieDetails = value; }
+
++protected:
++ void stripDomain(const QString &_fqdn, QString &_domain);
++ QString stripDomain( KHttpCookiePtr cookiePtr);
+
+ protected:
+ QStringList m_domainList;
+ KCookieAdvice m_globalAdvice;
+ QDict<KHttpCookieList> m_cookieDomains;
++ QDict<int> m_twoLevelTLD;
+
+ bool m_configChanged;
+ bool m_cookiesChanged;
+Index: kioslave/http/kcookiejar/kcookieserver.cpp
+===================================================================
+RCS file: /home/kde/kdelibs/kioslave/http/kcookiejar/kcookieserver.cpp,v
+retrieving revision 1.50
+retrieving revision 1.51
+diff -u -p -r1.50 -r1.51
+--- kioslave/http/kcookiejar/kcookieserver.cpp 9 Jun 2003 10:56:42 -0000 1.50
++++ kioslave/http/kcookiejar/kcookieserver.cpp 20 Jul 2004 15:29:24 -0000 1.51
+@@ -131,7 +131,7 @@ bool KCookieServer::cookiesPending( cons
+ if (!KCookieJar::parseURL(url, fqdn, path))
+ return false;
+
+- KCookieJar::extractDomains( fqdn, domains );
++ mCookieJar->extractDomains( fqdn, domains );
+ for( KHttpCookie *cookie = mPendingCookies->first();
+ cookie != 0L;
+ cookie = mPendingCookies->next())
+@@ -557,7 +557,7 @@ KCookieServer::setDomainAdvice(QString u
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ mCookieJar->setDomainAdvice(domains[0],
+ KCookieJar::strToAdvice(advice));
+ }
+@@ -573,7 +573,7 @@ KCookieServer::getDomainAdvice(QString u
+ if (KCookieJar::parseURL(url, fqdn, dummy))
+ {
+ QStringList domains;
+- KCookieJar::extractDomains(fqdn, domains);
++ mCookieJar->extractDomains(fqdn, domains);
+ advice = mCookieJar->getDomainAdvice(domains[0]);
+ }
+ return KCookieJar::adviceToStr(advice);
+Index: kioslave/http/kcookiejar/domain_info
+===================================================================
+RCS file: domain_info
+diff -N domain_info
+--- /dev/null 1 Jan 1970 00:00:00 -0000
++++ kioslave/http/kcookiejar/domain_info 20 Jul 2004 15:29:24 -0000 1.1
+@@ -0,0 +1 @@
++twoLevelTLD=name,ai,au,bd,bh,ck,eg,et,fk,il,in,kh,kr,mk,mt,na,np,nz,pg,pk,qa,sa,sb,sg,sv,ua,ug,uk,uy,vn,za,zw
diff --git a/kde-base/kdelibs/files/post-3.2.3-kdelibs-kstandarddirs.patch b/kde-base/kdelibs/files/post-3.2.3-kdelibs-kstandarddirs.patch
new file mode 100644
index 000000000000..30d6bd10edbe
--- /dev/null
+++ b/kde-base/kdelibs/files/post-3.2.3-kdelibs-kstandarddirs.patch
@@ -0,0 +1,38 @@
+Index: kstandarddirs.cpp
+===================================================================
+RCS file: /home/kde/kdelibs/kdecore/kstandarddirs.cpp,v
+retrieving revision 1.168.2.3
+retrieving revision 1.168.2.4
+diff -u -p -r1.168.2.3 -r1.168.2.4
+--- kdecore/kstandarddirs.cpp 8 Jun 2004 09:27:57 -0000 1.168.2.3
++++ kdecore/kstandarddirs.cpp 26 Jun 2004 14:42:16 -0000 1.168.2.4
+@@ -651,7 +651,28 @@ void KStandardDirs::createSpecialResourc
+ char link[1024];
+ link[1023] = 0;
+ int result = readlink(QFile::encodeName(dir).data(), link, 1023);
+- if ((result == -1) && (errno == ENOENT))
++ bool relink = (result == -1) && (errno == ENOENT);
++ if ((result > 0) && (link[0] == '/'))
++ {
++ link[result] = 0;
++ struct stat stat_buf;
++ int res = lstat(link, &stat_buf);
++ if ((res == -1) && (errno == ENOENT))
++ {
++ relink = true;
++ }
++ else if ((res == -1) || (!S_ISDIR(stat_buf.st_mode)))
++ {
++ fprintf(stderr, "Error: \"%s\" is not a directory.\n", link);
++ relink = true;
++ }
++ else if (stat_buf.st_uid != getuid())
++ {
++ fprintf(stderr, "Error: \"%s\" is owned by uid %d instead of uid %d.\n", link, stat_buf.st_uid, getuid());
++ relink = true;
++ }
++ }
++ if (relink)
+ {
+ QString srv = findExe(QString::fromLatin1("lnusertemp"), KDEDIR+QString::fromLatin1("/bin"));
+ if (srv.isEmpty())
diff --git a/kde-base/kdelibs/kdelibs-3.2.3-r1.ebuild b/kde-base/kdelibs/kdelibs-3.2.3-r1.ebuild
new file mode 100644
index 000000000000..f9a4cdd6154b
--- /dev/null
+++ b/kde-base/kdelibs/kdelibs-3.2.3-r1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/kdelibs-3.2.3-r1.ebuild,v 1.1 2004/08/06 15:08:20 caleb Exp $
+
+inherit kde eutils
+
+need-autoconf 2.5
+set-kdedir ${PV}
+
+DESCRIPTION="KDE libraries needed by all kde programs"
+HOMEPAGE="http//www.kde.org/"
+SRC_URI="mirror://kde/stable/${PV}/src/${PN}-${PV}.tar.bz2"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="3.2"
+KEYWORDS="x86 ~ppc ~sparc ~mips ~alpha hppa amd64 ~ia64"
+IUSE="alsa cups ipv6 ssl doc ldap"
+
+# kde.eclass has kdelibs in DEPEND, and we can't have that in here.
+# so we recreate the entire DEPEND from scratch.
+DEPEND=">=sys-devel/autoconf-2.58
+ >=sys-devel/automake-1.8
+ >=app-arch/bzip2-1.0.2
+ >=dev-libs/libxslt-1.0.31
+ >=dev-libs/libxml2-2.5.8
+ >=dev-libs/libpcre-3.9
+ ssl? ( >=dev-libs/openssl-0.9.6k )
+ alsa? ( media-libs/alsa-lib virtual/alsa )
+ cups? ( >=net-print/cups-1.1.19 )
+ ldap? ( >=net-nds/openldap-2.0.25 )
+ media-libs/tiff
+ >=app-admin/fam-2.6.10
+ virtual/ghostscript
+ media-libs/libart_lgpl
+ sys-devel/gettext
+ ~kde-base/arts-1.2.3
+ >=x11-libs/qt-3.2.3"
+RDEPEND="${DEPEND}
+ app-text/sgml-common
+ cups? ( net-print/cups )
+ doc? ( app-doc/doxygen )
+ dev-lang/python"
+
+src_unpack() {
+ kde_src_unpack
+ epatch ${FILESDIR}/post-3.2.3-kdelibs-kcookiejar.patch
+ epatch ${FILESDIR}/post-3.2.3-kdelibs-kstandarddirs.patch
+ epatch ${FILESDIR}/post-3.2.3-kdelibs-htmlframes.patch
+ cd ${S}/dcop && patch -p0 < ${FILESDIR}/post-3.2.3-kdelibs-dcopserver.patch
+}
+
+src_compile() {
+ kde_src_compile myconf
+
+ myconf="$myconf --with-distribution=Gentoo --enable-libfam --enable-dnotify"
+ myconf="$myconf `use_with alsa` `use_enable cups`"
+
+ use ipv6 || myconf="$myconf --with-ipv6-lookup=no"
+ use ssl && myconf="$myconf --with-ssl-dir=/usr" || myconf="$myconf --without-ssl"
+ use alsa && myconf="$myconf --with-alsa" || myconf="$myconf --without-alsa"
+ use cups && myconf="$myconf --enable-cups" || myconf="$myconf --disable-cups"
+
+ use x86 && myconf="$myconf --enable-fast-malloc=full"
+
+ kde_src_compile configure make
+
+ use doc && make apidox
+}
+
+src_install() {
+ kde_src_install
+ dohtml *.html
+
+ if use doc ; then
+ einfo "Copying API documentation..."
+ dodir ${KDEDIR}/share/doc/HTML/en/kdelibs-apidocs
+ cp -r ${S}/apidocs/* ${D}/$KDEDIR/share/doc/HTML/en/kdelibs-apidocs
+ else
+ rm -r ${D}/$KDEDIR/share/doc/HTML/en/kdelibs-apidocs
+ fi
+
+ # needed to fix lib64 issues on amd64, see bug #45669
+ use amd64 && ln -s ${KDEDIR}/lib ${D}/${KDEDIR}/lib64
+
+}
+
+pkg_postinst() {
+ if use doc ; then
+ rm $KDEDIR/share/doc/HTML/en/kdelibs-apidocs/common
+ ln -sf $KDEDIR/share/doc/HTML/en/common \
+ $KDEDIR/share/doc/HTML/en/kdelibs-apidocs/common
+ fi
+}
diff --git a/kde-base/kdelibs/kdelibs-3.3.0_beta1.ebuild b/kde-base/kdelibs/kdelibs-3.3.0_rc1.ebuild
index cb880c869663..41ba37fbaa9d 100644
--- a/kde-base/kdelibs/kdelibs-3.3.0_beta1.ebuild
+++ b/kde-base/kdelibs/kdelibs-3.3.0_rc1.ebuild
@@ -1,12 +1,12 @@
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/kdelibs-3.3.0_beta1.ebuild,v 1.1 2004/07/08 22:23:30 caleb Exp $
+# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/kdelibs-3.3.0_rc1.ebuild,v 1.1 2004/08/06 15:08:20 caleb Exp $
inherit kde eutils
set-kdedir 3.3
-MY_PV=3.2.91
-S=${WORKDIR}/${PN}-${MY_PV}
+MY_PV=3.3.0-rc1
+S=${WORKDIR}/${PN}-${MY_PV/-rc1//}
DESCRIPTION="KDE libraries needed by all kde programs"
HOMEPAGE="http//www.kde.org/"
@@ -15,7 +15,7 @@ SRC_URI="mirror://kde/unstable/${MY_PV}/src/${PN}-${MY_PV}.tar.bz2"
LICENSE="GPL-2 LGPL-2"
SLOT="3.3"
KEYWORDS="~x86 ~amd64"
-IUSE="alsa cups ipv6 ssl doc ldap"
+IUSE="alsa arts cups doc ipv6 ldap ssl tiff"
# kde.eclass has kdelibs in DEPEND, and we can't have that in here.
# so we recreate the entire DEPEND from scratch.
@@ -27,20 +27,20 @@ DEPEND=">=sys-devel/autoconf-2.58
>=dev-libs/libpcre-4.2
ssl? ( >=dev-libs/openssl-0.9.7d )
alsa? ( media-libs/alsa-lib virtual/alsa )
+ arts? ( ~kde-base/arts-1.3.0_rc1 )
cups? ( >=net-print/cups-1.1.19 )
ldap? ( >=net-nds/openldap-2.1.26 )
- media-libs/tiff
+ tiff? ( media-libs/tiff )
>=app-admin/fam-2.7.0
virtual/ghostscript
media-libs/libart_lgpl
+ net-dns/libidn
sys-devel/gettext
- ~kde-base/arts-1.3.0_beta1
>=x11-libs/qt-3.3.2"
RDEPEND="${DEPEND}
app-text/sgml-common
cups? ( net-print/cups )
- doc? ( app-doc/doxygen )
- dev-lang/python"
+ doc? ( app-doc/doxygen )"
src_unpack() {
kde_src_unpack
@@ -50,7 +50,7 @@ src_compile() {
kde_src_compile myconf
myconf="$myconf --with-distribution=Gentoo --enable-libfam --enable-dnotify"
- myconf="$myconf `use_with alsa` `use_enable cups`"
+ myconf="$myconf `use_with alsa` `use_enable cups` `use_with arts`"
use ipv6 || myconf="$myconf --with-ipv6-lookup=no"
use ssl && myconf="$myconf --with-ssl-dir=/usr" || myconf="$myconf --without-ssl"
@@ -79,6 +79,20 @@ src_install() {
# needed to fix lib64 issues on amd64, see bug #45669
use amd64 && ln -s ${KDEDIR}/lib ${D}/${KDEDIR}/lib64
+
+ if ! use arts ; then
+
+ dodir /etc/env.d
+
+ echo "PATH=${PREFIX}/bin
+ROOTPATH=${PREFIX}/sbin:${PREFIX}/bin
+LDPATH=${PREFIX}/lib
+CONFIG_PROTECT=${PREFIX}/share/config" > ${D}/etc/env.d/47kdepaths-3.3.0 # number goes down with version upgrade
+
+ echo "KDEDIR=$PREFIX" > ${D}/etc/env.d/58kdedir-3.3.0 # number goes up with version upgrade
+
+ fi
+
}
pkg_postinst() {