diff options
author | Caleb Tennis <caleb@gentoo.org> | 2004-08-06 15:08:20 +0000 |
---|---|---|
committer | Caleb Tennis <caleb@gentoo.org> | 2004-08-06 15:08:20 +0000 |
commit | 3c193b47c0789d4fbdade2d018dd09568c103205 (patch) | |
tree | 70c1416196283e5812114d5e9419190c66d55931 /kde-base | |
parent | ~amd64 (Manifest recommit) (diff) | |
download | gentoo-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/ChangeLog | 18 | ||||
-rw-r--r-- | kde-base/kdelibs/Manifest | 9 | ||||
-rw-r--r-- | kde-base/kdelibs/files/digest-kdelibs-3.2.3-r1 | 1 | ||||
-rw-r--r-- | kde-base/kdelibs/files/digest-kdelibs-3.3.0_beta1 | 1 | ||||
-rw-r--r-- | kde-base/kdelibs/files/digest-kdelibs-3.3.0_rc1 | 1 | ||||
-rw-r--r-- | kde-base/kdelibs/files/post-3.2.3-kdelibs-dcopserver.patch | 185 | ||||
-rw-r--r-- | kde-base/kdelibs/files/post-3.2.3-kdelibs-htmlframes.patch | 429 | ||||
-rw-r--r-- | kde-base/kdelibs/files/post-3.2.3-kdelibs-kcookiejar.patch | 163 | ||||
-rw-r--r-- | kde-base/kdelibs/files/post-3.2.3-kdelibs-kstandarddirs.patch | 38 | ||||
-rw-r--r-- | kde-base/kdelibs/kdelibs-3.2.3-r1.ebuild | 93 | ||||
-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, ¶m); ++ 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() { |