diff options
author | Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org> | 2009-03-10 13:34:09 +0000 |
---|---|---|
committer | Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org> | 2009-03-10 13:34:09 +0000 |
commit | 1b03a516c6bcbb20e614634059524a17c0ace66e (patch) | |
tree | 977d4146a12e5c513cddb3e5ff9a11972d040f70 | |
parent | Add missing test flag to IUSE. (diff) | |
download | gentoo-2-1b03a516c6bcbb20e614634059524a17c0ace66e.tar.gz gentoo-2-1b03a516c6bcbb20e614634059524a17c0ace66e.tar.bz2 gentoo-2-1b03a516c6bcbb20e614634059524a17c0ace66e.zip |
Applied upstream revision 934640 that fixes upstream bug 186038 and Gentoo bug 261367.
(Portage version: 2.2_rc23/cvs/Linux x86_64)
-rw-r--r-- | kde-base/kdelibs/ChangeLog | 9 | ||||
-rw-r--r-- | kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch | 654 | ||||
-rw-r--r-- | kde-base/kdelibs/kdelibs-4.2.1-r1.ebuild | 245 |
3 files changed, 907 insertions, 1 deletions
diff --git a/kde-base/kdelibs/ChangeLog b/kde-base/kdelibs/ChangeLog index 86aa146d9d91..aa0a0f41e438 100644 --- a/kde-base/kdelibs/ChangeLog +++ b/kde-base/kdelibs/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for kde-base/kdelibs # Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.569 2009/03/08 23:22:16 scarabeus Exp $ +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/ChangeLog,v 1.570 2009/03/10 13:34:09 jmbsvicetto Exp $ + +*kdelibs-4.2.1-r1 (10 Mar 2009) + + 10 Mar 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org> + +files/kdelibs-4.2.1-qt4.5.patch, +kdelibs-4.2.1-r1.ebuild: + Applied upstream revision 934640 that fixes upstream bug 186038 and Gentoo + bug 261367. 08 Mar 2009; Tomas Chvatal <scarabeus@gentoo.org> kdelibs-4.2.1.ebuild: Kdelibs:4.* needs allways webkit. diff --git a/kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch b/kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch new file mode 100644 index 000000000000..f27ed787c309 --- /dev/null +++ b/kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch @@ -0,0 +1,654 @@ +Index: branches/KDE/4.2/kdelibs/kdecore/kernel/kcmdlineargs.cpp +=================================================================== +--- branches/KDE/4.2/kdelibs/kdecore/kernel/kcmdlineargs.cpp (revision 934639) ++++ branches/KDE/4.2/kdelibs/kdecore/kernel/kcmdlineargs.cpp (revision 934640) +@@ -83,13 +83,13 @@ + // Helper classes + // + +-class KCmdLineParsedOptions : public QHash<QString,QString> ++class KCmdLineParsedOptions : public QHash<QByteArray,QByteArray> + { + public: + KCmdLineParsedOptions() { } + }; + +-class KCmdLineParsedArgs : public QList<QString> ++class KCmdLineParsedArgs : public QList<QByteArray> + { + public: + KCmdLineParsedArgs() { } +@@ -112,7 +112,7 @@ + + class KCmdLineOptionsPrivate { + public: +- QStringList names; ++ QList<QByteArray> names; + QList<KLocalizedString> descriptions; + QStringList defaults; + }; +@@ -143,7 +143,7 @@ + const KLocalizedString &description, + const QByteArray &defaultValue) + { +- d->names.append(QString::fromUtf8(name)); ++ d->names.append(name); + d->descriptions.append(description); + d->defaults.append(QString::fromUtf8(defaultValue)); + return *this; +@@ -171,7 +171,7 @@ + char **argv; // The original argv + bool parsed : 1; // Whether we have parsed the arguments since calling init + bool ignoreUnknown : 1; // Ignore unknown options and arguments +- QString mCwd; // Current working directory. Important for KUnqiueApp! ++ QByteArray mCwd; // Current working directory. Important for KUnqiueApp! + KCmdLineArgs::StdCmdLineArgs mStdargs; + + KCmdLineOptions qt_options; +@@ -220,15 +220,15 @@ + * + * +4 - no more options follow // !fork + */ +- static int findOption(const KCmdLineOptions &options, QString &opt, +- QString &opt_name, QString &def, bool &enabled); ++ static int findOption(const KCmdLineOptions &options, QByteArray &opt, ++ QByteArray &opt_name, QString &def, bool &enabled); + + /** + * @internal + * + * Checks what to do with a single option + */ +- static void findOption(const QString &optv, const QString &_opt, ++ static void findOption(const QByteArray &optv, const QByteArray &_opt, + int &i, bool _enabled, bool &moreOptions); + + /** +@@ -246,7 +246,7 @@ + * + * @param id The name of the options to be removed. + */ +- static void removeArgs(const QString &id); ++ static void removeArgs(const QByteArray &id); + }; + + K_GLOBAL_STATIC(KCmdLineArgsStatic, s) +@@ -336,7 +336,7 @@ + { + friend class KCmdLineArgsStatic; + public: +- KCmdLineArgsPrivate(const KCmdLineOptions &_options, const KLocalizedString &_name, const QString &_id) ++ KCmdLineArgsPrivate(const KCmdLineOptions &_options, const KLocalizedString &_name, const QByteArray &_id) + : options(_options) + , name(_name) + , id(_id) +@@ -351,7 +351,7 @@ + } + const KCmdLineOptions options; + const KLocalizedString name; +- const QString id; ++ const QByteArray id; + KCmdLineParsedOptions *parsedOptionList; + KCmdLineParsedArgs *parsedArgList; + bool isQt; +@@ -361,21 +361,21 @@ + * + * Set a boolean option + */ +- void setOption(const QString &option, bool enabled); ++ void setOption(const QByteArray &option, bool enabled); + + /** + * @internal + * + * Set a string option + */ +- void setOption(const QString &option, const QString &value); ++ void setOption(const QByteArray &option, const QByteArray &value); + + /** + * @internal + * + * Add an argument + */ +- void addArgument(const QString &argument); ++ void addArgument(const QByteArray &argument); + + /** + * @internal +@@ -469,13 +469,13 @@ + + s->about = _about; + s->parsed = false; +- s->mCwd = QDir::currentPath(); ++ s->mCwd = QDir::currentPath().toLocal8Bit(); //currentPath() uses fromLocal8Bit internally apparently + addStdCmdLineOptions(stdargs); + } + + QString KCmdLineArgs::cwd() + { +- return s->mCwd; ++ return QString::fromLocal8Bit(s->mCwd); + } + + QString KCmdLineArgs::appName() +@@ -499,14 +499,11 @@ + + void + KCmdLineArgs::addCmdLineOptions( const KCmdLineOptions &options, const KLocalizedString &name, +- const QByteArray &_id, const QByteArray &_afterId) ++ const QByteArray &id, const QByteArray &afterId) + { + if (!s->argsList) + s->argsList = new KCmdLineArgsList; + +- QString id = QString::fromUtf8(_id); +- QString afterId = QString::fromUtf8(_afterId); +- + int pos = s->argsList->count(); + // To make sure that the named options come before unnamed. + if (pos > 0 && !id.isEmpty() && s->argsList->last()->d->name.isEmpty()) +@@ -527,7 +524,7 @@ + + Q_ASSERT( s->parsed == false ); // You must add _ALL_ cmd line options + // before accessing the arguments! +- s->argsList->insert(pos, new KCmdLineArgs(options, name, id.toUtf8())); ++ s->argsList->insert(pos, new KCmdLineArgs(options, name, id)); + } + + void +@@ -540,8 +537,7 @@ + s->removeArgs("qt"); + s->removeArgs("kde"); + +- QByteArray qCwd = QFile::encodeName(s->mCwd); +- ds << qCwd; ++ ds << s->mCwd; + + uint count = s->argsList ? s->argsList->count() : 0; + ds << count; +@@ -579,16 +575,15 @@ + QByteArray qCwd; + ds >> qCwd; + +- s->mCwd = QFile::decodeName(qCwd); //FIXME: Is this proper decoding? ++ s->mCwd = qCwd; + + uint count; + ds >> count; + + while(count--) + { +- QByteArray idRaw; +- ds >> idRaw; +- QString id = idRaw; //FIXME: What about decoding? ++ QByteArray id; ++ ds >> id; + Q_ASSERT( s->argsList ); + for(args = s->argsList->begin(); args != s->argsList->end(); ++args) + { +@@ -602,9 +597,8 @@ + s->parsed = true; + } + +-KCmdLineArgs *KCmdLineArgs::parsedArgs(const QByteArray &_id) ++KCmdLineArgs *KCmdLineArgs::parsedArgs(const QByteArray &id) + { +- QString id = QString::fromUtf8(_id); + if (!s->argsList) + return 0; + KCmdLineArgsList::Iterator args = s->argsList->begin(); +@@ -622,7 +616,7 @@ + return 0; + } + +-void KCmdLineArgsStatic::removeArgs(const QString &id) ++void KCmdLineArgsStatic::removeArgs(const QByteArray &id) + { + if (!s->argsList) + return; +@@ -646,8 +640,8 @@ + } + + int +-KCmdLineArgsStatic::findOption(const KCmdLineOptions &options, QString &opt, +- QString &opt_name, QString &def, bool &enabled) ++KCmdLineArgsStatic::findOption(const KCmdLineOptions &options, QByteArray &opt, ++ QByteArray &opt_name, QString &def, bool &enabled) + { + int result; + bool inverse; +@@ -686,7 +680,7 @@ + i++; + if (i >= options.d->names.size()) + return result+0; +- QString nextOption = options.d->names[i]; ++ QByteArray nextOption = options.d->names[i]; + int p = nextOption.indexOf(' '); + if (p > 0) + nextOption = nextOption.left(p); +@@ -717,14 +711,14 @@ + } + + void +-KCmdLineArgsStatic::findOption(const QString &optv, const QString &_opt, ++KCmdLineArgsStatic::findOption(const QByteArray &optv, const QByteArray &_opt, + int &i, bool _enabled, bool &moreOptions) + { + KCmdLineArgsList::Iterator args = s->argsList->begin(); +- QString opt = _opt; +- QString opt_name; ++ QByteArray opt = _opt; ++ QByteArray opt_name; + QString def; +- QString argument; ++ QByteArray argument; + int j = opt.indexOf('='); + if (j != -1) + { +@@ -753,7 +747,7 @@ + int p = 1; + while (true) + { +- QString singleCharOption = " "; ++ QByteArray singleCharOption = " "; + singleCharOption[0] = optv[p]; + args = s->argsList->begin(); + while (args != s->argsList->end()) +@@ -800,7 +794,7 @@ + return; + #endif + KCmdLineArgs::enable_i18n(); +- KCmdLineArgs::usageError( i18n("Unknown option '%1'.", _opt)); ++ KCmdLineArgs::usageError( i18n("Unknown option '%1'.", QString::fromLocal8Bit(_opt))); + } + + if ((result & 4) != 0) +@@ -820,7 +814,7 @@ + return; + #endif + KCmdLineArgs::enable_i18n(); +- KCmdLineArgs::usageError( i18n("Unknown option '%1'.", _opt)); ++ KCmdLineArgs::usageError( i18n("Unknown option '%1'.", QString::fromLocal8Bit(_opt))); + } + if (argument.isEmpty()) + { +@@ -828,9 +822,9 @@ + if (i >= s->argc) + { + KCmdLineArgs::enable_i18n(); +- KCmdLineArgs::usageError( i18nc("@info:shell %1 is cmdoption name","'%1' missing.", opt_name)); ++ KCmdLineArgs::usageError( i18nc("@info:shell %1 is cmdoption name","'%1' missing.", QString::fromLocal8Bit(opt_name))); + } +- argument = s->decodeInput(s->argv[i]); ++ argument = s->argv[i]; + } + (*args)->d->setOption(opt, argument); + } +@@ -849,16 +843,10 @@ + KCmdLineArgs *appOptions = s->argsList->last(); + if (appOptions->d->id.isEmpty()) + { +- const KCmdLineOptions &option = appOptions->d->options; +- for (int i = 0; i < option.d->names.size(); i++) ++ foreach(const QByteArray& name, appOptions->d->options.d->names) + { +- if (option.d->names[i].startsWith('+')) +- allowArgs = true; +- if ( option.d->names[i].startsWith("!+") ) +- { +- allowArgs = true; +- everythingAfterArgIsArgs = true; +- } ++ everythingAfterArgIsArgs = everythingAfterArgIsArgs || name.startsWith("!+"); ++ allowArgs = allowArgs || name.startsWith('+') || everythingAfterArgIsArgs; + } + } + for(int i = 1; i < s->argc; i++) +@@ -869,8 +857,8 @@ + if ((s->argv[i][0] == '-') && s->argv[i][1] && inOptions) + { + bool enabled = true; +- QString orig = decodeInput(s->argv[i]); +- QString option = orig.mid(1); ++ QByteArray orig = s->argv[i]; ++ QByteArray option = orig.mid(1); + if (option.startsWith('-')) + { + option = option.mid(1); +@@ -887,7 +875,7 @@ + } + else if (option.startsWith("help-")) + { +- KCmdLineArgs::usage(option.mid(5).toUtf8()); ++ KCmdLineArgs::usage(option.mid(5)); + } + else if ((option == "version") || (option == "v")) + { +@@ -924,9 +912,8 @@ + { + if (s->about->bugAddress().isEmpty() || s->about->bugAddress() == "submit@bugs.kde.org" ) + s->printQ( i18n( "Please use http://bugs.kde.org to report bugs.\n" ) ); +- else { ++ else + s->printQ( i18n( "Please report bugs to %1.\n" , s->about->bugAddress()) ); +- } + } + else + { +@@ -955,7 +942,7 @@ + } + else + { +- appOptions->d->addArgument(s->decodeInput(s->argv[i])); ++ appOptions->d->addArgument(s->argv[i]); + if (everythingAfterArgIsArgs) + inOptions = false; + } +@@ -1009,7 +996,7 @@ + if (!(s->mStdargs & KCmdLineArgs::CmdLineArgQt)) + { + s_qt_argv = new char*[2]; +- s_qt_argv[0] = qstrdup(s->encodeOutput(appName())); ++ s_qt_argv[0] = qstrdup(s->argc?s->argv[0]:""); + s_qt_argv[1] = 0; + + return s_qt_argv; +@@ -1026,12 +1013,13 @@ + exit(255); + } + +- s_qt_argv = new char*[ args->count() + 2 ]; +- s_qt_argv[0] = qstrdup(s->encodeOutput(appName())); ++ int count=args->count(); ++ s_qt_argv = new char*[ count + 2 ]; ++ s_qt_argv[0] = qstrdup(s->argc?s->argv[0]:""); + int i = 0; +- for(; i < args->count(); i++) ++ for(; i < count; i++) + { +- s_qt_argv[i+1] = qstrdup(s->encodeOutput(args->arg(i))); ++ s_qt_argv[i+1] = qstrdup(args->d->parsedArgList->at(i)); + } + s_qt_argv[i+1] = 0; + +@@ -1110,7 +1098,7 @@ + const KCmdLineOptions &option = appOptions->d->options; + for (int i = 0; i < option.d->names.size(); i++) + { +- QString opt_name = option.d->names[i]; ++ QByteArray opt_name = option.d->names[i]; + if (opt_name.startsWith('+')) + usage = usage + (opt_name.mid(1)) + ' '; + else if ( opt_name.startsWith("!+") ) +@@ -1129,7 +1117,7 @@ + { + if (!(*args)->d->name.isEmpty() && !(*args)->d->id.isEmpty()) + { +- QString option = QString("--help-%1").arg((*args)->d->id); ++ QString option = QString("--help-%1").arg(QString::fromLatin1((*args)->d->id)); + QString desc = i18n("Show %1 specific options", (*args)->d->name.toString()); + + s->printQ(optionFormatString.arg(option, -25).arg(desc)); +@@ -1169,7 +1157,7 @@ + while (args != s->argsList->end()) + { + const KCmdLineOptions &option = (*args)->d->options; +- QString opt; ++ QByteArray opt; + + for (int i = 0; i < option.d->names.size(); i++) + { +@@ -1214,7 +1202,7 @@ + description = dl.first(); + dl.erase( dl.begin() ); + } +- QString name = option.d->names[i]; ++ QByteArray name = option.d->names[i]; + if (name.startsWith('!')) + name = name.mid(1); + +@@ -1229,7 +1217,7 @@ + name = name.mid(1); + if (name.startsWith('[') && name.endsWith(']')) + name = name.mid(1, name.length()-2); +- s->printQ(optionFormatString.arg(name, -25).arg(description)); ++ s->printQ(optionFormatString.arg(QString::fromLocal8Bit(name), -25).arg(description)); + } + else + { +@@ -1259,7 +1247,7 @@ + s->printQ(optionFormatStringDef.arg(QString( opt ), -25) + .arg(description, option.d->defaults[i])); + } +- opt = ""; ++ opt.clear(); + } + } + for(QStringList::Iterator it = dl.begin(); +@@ -1309,24 +1297,21 @@ + void + KCmdLineArgs::setCwd( const QByteArray &cwd ) + { +- s->mCwd = QString::fromUtf8(cwd); ++ s->mCwd = cwd; + } + + void + KCmdLineArgs::clear() + { +- delete d->parsedArgList; +- d->parsedArgList = 0; +- delete d->parsedOptionList; +- d->parsedOptionList = 0; ++ delete d->parsedArgList; d->parsedArgList = 0; ++ delete d->parsedOptionList; d->parsedOptionList = 0; + } + + void + KCmdLineArgs::reset() + { + if ( s->argsList ) { +- delete s->argsList; +- s->argsList = 0; ++ delete s->argsList; s->argsList = 0; + } + s->parsed = false; + } +@@ -1356,23 +1341,21 @@ + + if (parsedOptionList->count() == 0) + { +- delete parsedOptionList; +- parsedOptionList = 0; ++ delete parsedOptionList; parsedOptionList = 0; + } + if (parsedArgList->count() == 0) + { +- delete parsedArgList; +- parsedArgList = 0; ++ delete parsedArgList; parsedArgList = 0; + } + } + + void +-KCmdLineArgsPrivate::setOption(const QString &opt, bool enabled) ++KCmdLineArgsPrivate::setOption(const QByteArray &opt, bool enabled) + { + if (isQt) + { + // Qt does it own parsing. +- QString argString = "-"; ++ QByteArray argString = "-"; + if( !enabled ) + argString += "no"; + argString += opt; +@@ -1383,18 +1366,18 @@ + } + + if (enabled) +- parsedOptionList->insert( opt, QString::fromUtf8("t") ); ++ parsedOptionList->insert( opt, "t" ); + else +- parsedOptionList->insert( opt, QString::fromUtf8("f") ); ++ parsedOptionList->insert( opt, "f" ); + } + + void +-KCmdLineArgsPrivate::setOption(const QString &opt, const QString &value) ++KCmdLineArgsPrivate::setOption(const QByteArray &opt, const QByteArray &value) + { + if (isQt) + { + // Qt does it's own parsing. +- QString argString = "-"; ++ QByteArray argString = "-"; + argString += opt; + addArgument(argString); + addArgument(value); +@@ -1403,7 +1386,7 @@ + // Hack coming up! + if (argString == "-display") + { +- setenv(DISPLAY, s->encodeOutput(value).data(), true); ++ setenv(DISPLAY, value.data(), true); + } + #endif + } +@@ -1417,8 +1400,8 @@ + QString + KCmdLineArgs::getOption(const QByteArray &_opt) const + { +- QString opt = QString::fromUtf8(_opt); +- QString value; ++ QByteArray opt = _opt; ++ QByteArray value; + if (d->parsedOptionList) + { + value = d->parsedOptionList->value(opt); +@@ -1427,7 +1410,7 @@ + return value; + + // Look up the default. +- QString opt_name; ++ QByteArray opt_name; + QString def; + bool dummy = true; + int result = s->findOption( d->options, opt, opt_name, def, dummy) & ~4; +@@ -1436,7 +1419,7 @@ + { + fprintf(stderr, "\n\nFAILURE (KCmdLineArgs):\n"); + fprintf(stderr, "Application requests for getOption(\"%s\") but the \"%s\" option\n", +- s->encodeOutput(opt).data(), s->encodeOutput(opt).data()); ++ opt.data(), opt.data()); + fprintf(stderr, "has never been specified via addCmdLineOptions( ... )\n\n"); + + Q_ASSERT( 0 ); +@@ -1446,20 +1429,18 @@ + } + + QStringList +-KCmdLineArgs::getOptionList(const QByteArray &_opt) const ++KCmdLineArgs::getOptionList(const QByteArray &opt) const + { +- QString opt = QString::fromUtf8(_opt); +- + QStringList result; + if (!d->parsedOptionList) + return result; + + while(true) + { +- QString value = d->parsedOptionList->take(opt); ++ QByteArray value = d->parsedOptionList->take(opt); + if (value.isEmpty()) + break; +- result.prepend(value); ++ result.prepend(QString::fromLocal8Bit(value)); + } + + // Reinsert items in dictionary +@@ -1469,7 +1450,7 @@ + // So taking them out and then putting them back is the only way. + Q_FOREACH(const QString &str, result) + { +- d->parsedOptionList->insertMulti(opt, str); ++ d->parsedOptionList->insertMulti(opt, str.toLocal8Bit()); + } + return result; + } +@@ -1478,8 +1459,8 @@ + KCmdLineArgs::isSet(const QByteArray &_opt) const + { + // Look up the default. +- QString opt = QString::fromUtf8(_opt); +- QString opt_name; ++ QByteArray opt = _opt; ++ QByteArray opt_name; + QString def; + int result = 0; + KCmdLineArgsList::Iterator args = s->argsList->begin(); +@@ -1495,14 +1476,14 @@ + { + fprintf(stderr, "\n\nFAILURE (KCmdLineArgs):\n"); + fprintf(stderr, "Application requests for isSet(\"%s\") but the \"%s\" option\n", +- s->encodeOutput(opt).data(), s->encodeOutput(opt).data()); ++ opt.data(), opt.data()); + fprintf(stderr, "has never been specified via addCmdLineOptions( ... )\n\n"); + + Q_ASSERT( 0 ); + exit(255); + } + +- QString value; ++ QByteArray value; + if (d->parsedOptionList) + { + value = d->parsedOptionList->value(opt); +@@ -1513,7 +1494,7 @@ + if (result == 3) + return true; + else +- return (value[0] == 't'); ++ return (value.at(0) == 't'); + } + + if (result == 3) +@@ -1527,9 +1508,7 @@ + int + KCmdLineArgs::count() const + { +- if (!d->parsedArgList) +- return 0; +- return d->parsedArgList->count(); ++ return d->parsedArgList?d->parsedArgList->count():0; + } + + QString +@@ -1545,7 +1524,7 @@ + exit(255); + } + +- return d->parsedArgList->at(n); ++ return QString::fromLocal8Bit(d->parsedArgList->at(n)); + } + + KUrl +@@ -1575,7 +1554,7 @@ + } + + void +-KCmdLineArgsPrivate::addArgument(const QString &argument) ++KCmdLineArgsPrivate::addArgument(const QByteArray &argument) + { + if (!parsedArgList) + parsedArgList = new KCmdLineParsedArgs; +@@ -1594,7 +1573,5 @@ + bool KCmdLineArgs::isTempFileSet() + { + KCmdLineArgs* args = KCmdLineArgs::parsedArgs( "kde-tempfile" ); +- if ( args ) +- return args->isSet( "tempfile" ); +- return false; ++ return args && args->isSet( "tempfile" ); + } diff --git a/kde-base/kdelibs/kdelibs-4.2.1-r1.ebuild b/kde-base/kdelibs/kdelibs-4.2.1-r1.ebuild new file mode 100644 index 000000000000..8561b3d88878 --- /dev/null +++ b/kde-base/kdelibs/kdelibs-4.2.1-r1.ebuild @@ -0,0 +1,245 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/kde-base/kdelibs/kdelibs-4.2.1-r1.ebuild,v 1.1 2009/03/10 13:34:09 jmbsvicetto Exp $ + +EAPI="2" + +CPPUNIT_REQUIRED="optional" +OPENGL_REQUIRED="optional" +WEBKIT_REQUIRED="always" +inherit kde4-base fdo-mime + +DESCRIPTION="KDE libraries needed by all KDE programs." +HOMEPAGE="http://www.kde.org/" + +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86" +IUSE="3dnow acl alsa altivec bindist +bzip2 debug doc fam jpeg2k +kerberos mmx nls openexr +semantic-desktop spell sse sse2 ssl zeroconf" +LICENSE="LGPL-2.1" +RESTRICT="test" + +# Blockers added for !kdeprefix? due to packages from old versions, +# removed in the meanwhile +# kde-base/libplasma +# kde-base/knewsticker +# kde-base/kpercentage +# kde-base/ktnef +COMMONDEPEND=" + !<=kde-base/kdebase-3.5.9-r4 + !<=kde-base/kdebase-startkde-3.5.10 + !<kde-base/kdelibs-3.5.10 + !x11-libs/qt-phonon + !kdeprefix? ( + !kde-base/kitchensync:4.1[-kdeprefix] + !kde-base/knewsticker:4.1[-kdeprefix] + !kde-base/kpercentage:4.1[-kdeprefix] + !kde-base/ktnef:4.1[-kdeprefix] + !kde-base/libplasma[-kdeprefix] + !<=kde-misc/kdnssd-avahi-0.1.2:0 + ) + >=app-misc/strigi-0.6.3[qt4,dbus] + dev-libs/libpcre + dev-libs/libxml2 + dev-libs/libxslt + >=kde-base/automoc-0.9.87 + media-fonts/dejavu + media-libs/fontconfig + media-libs/freetype:2 + media-libs/giflib + media-libs/jpeg + media-libs/libpng + >=media-sound/phonon-4.3.1[xcb] + sys-apps/dbus[X] + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXcursor + x11-libs/libXdmcp + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXft + x11-libs/libXpm + x11-libs/libXrender + x11-libs/libXtst + x11-misc/shared-mime-info + acl? ( + kernel_linux? ( sys-apps/acl ) + ) + alsa? ( media-libs/alsa-lib[midi] ) + fam? ( virtual/fam ) + jpeg2k? ( media-libs/jasper ) + kerberos? ( virtual/krb5 ) + nls? ( virtual/libintl ) + openexr? ( + media-libs/openexr + media-libs/ilmbase + ) + opengl? ( virtual/opengl ) + semantic-desktop? ( >=dev-libs/soprano-2.1.64 ) + spell? ( + app-dicts/aspell-en + app-text/aspell + app-text/enchant + ) + ssl? ( dev-libs/openssl ) + zeroconf? ( + || ( + net-dns/avahi[mdnsresponder-compat] + !bindist? ( net-misc/mDNSResponder ) + ) + ) +" + +DEPEND="${COMMONDEPEND} + sys-devel/gettext + doc? ( app-doc/doxygen ) +" + +RDEPEND="${COMMONDEPEND} + x11-apps/iceauth + x11-apps/rgb +" + +# upstream patches / dist patches +# {FILESDIR}/${P}-qt4.5.patch is upstream revision 934640 +# and fixes upstream bug 186038 and Gentoo bug 261367 +PATCHES=( + "${FILESDIR}/dist/09_disable_debug_messages_if_not_explicitly_enabled.patch" + "${FILESDIR}/dist/20_use_dejavu_as_default_font.patch" + "${FILESDIR}/dist/23_solid_no_double_build.patch" + "${FILESDIR}/${P}-qt4.5.patch" +) + +src_configure() { + if use zeroconf; then + if has_version net-dns/avahi; then + mycmakeargs="${mycmakeargs} -DWITH_Avahi=ON -DWITH_DNSSD=OFF" + elif has_version net-misc/mDNSResponder; then + mycmakeargs="${mycmakeargs} -DWITH_Avahi=OFF -DWITH_DNSSD=ON" + else + die "USE=\"zeroconf\" enabled but neither net-dns/avahi nor net-misc/mDNSResponder were found." + fi + fi + if use kdeprefix; then + HME=".kde${SLOT}" + else + HME=".kde4" + fi + mycmakeargs="${mycmakeargs} + -DWITH_HSPELL=OFF + -DKDE_DEFAULT_HOME=${HME} + $(cmake-utils_has 3dnow X86_3DNOW) + $(cmake-utils_has altivec PPC_ALTIVEC) + $(cmake-utils_has mmx X86_MMX) + $(cmake-utils_has sse X86_SSE) + $(cmake-utils_has sse2 X86_SSE2) + $(cmake-utils_use_with acl ACL) + $(cmake-utils_use_with alsa Alsa) + $(cmake-utils_use_with bzip2 BZip2) + $(cmake-utils_use_with fam FAM) + $(cmake-utils_use_with jpeg2k Jasper) + $(cmake-utils_use_with kerberos GSSAPI) + $(cmake-utils_use_with nls Libintl) + $(cmake-utils_use_with openexr OpenEXR) + $(cmake-utils_use_with opengl OpenGL) + $(cmake-utils_use_with semantic-desktop Soprano) + $(cmake-utils_use_with spell ASPELL) + $(cmake-utils_use_with spell ENCHANT) + $(cmake-utils_use_with ssl OpenSSL) + " + kde4-base_src_configure +} + +src_compile() { + kde4-base_src_compile + + # The building of apidox is not managed anymore by the build system + if use doc; then + einfo "Building API documentation" + cd "${S}"/doc/api/ + ./doxygen.sh "${S}" || die "APIDOX generation failed" + fi +} + +src_install() { + kde4-base_src_install + + if use doc; then + einfo "Installing API documentation. This could take a bit of time." + cd "${S}"/doc/api/ + docinto /HTML/en/kdelibs-apidox + dohtml -r ${P}-apidocs/* || die "Install phase of KDE4 API Documentation failed" + fi + + dodir /etc/env.d + dodir /etc/revdep-rebuild + + # List all the multilib libdirs + local _libdir _libdirs + for _libdir in $(get_all_libdirs); do + _libdirs="${_libdirs}:${PREFIX}/${_libdir}" + done + _libdirs=${_libdirs#:} + + if use kdeprefix; then + cat <<-EOF > "${T}"/43kdepaths-${SLOT} # number goes down with version +PATH="${PREFIX}/bin" +ROOTPATH="${PREFIX}/sbin:${PREFIX}/bin" +LDPATH="${_libdirs}" +MANPATH="${PREFIX}/share/man" +CONFIG_PROTECT="${PREFIX}/share/config ${PREFIX}/env ${PREFIX}/shutdown /usr/share/config" +#KDE_IS_PRELINKED=1 +XDG_DATA_DIRS="/usr/share:${PREFIX}/share:/usr/local/share" +COLON_SEPARATED="XDG_DATA_DIRS" +EOF + doenvd "${T}"/43kdepaths-${SLOT} + + # make sure 'source /etc/profile' doesn't hose the PATH + dodir /etc/profile.d + cat <<-'EOF' > "${D}"/etc/profile.d/44kdereorderpaths-${SLOT}.sh +if [ -n "${KDEDIR}" ]; then + export PATH=${KDEDIR}/bin:$(echo ${PATH} | sed "s#${KDEDIR}/s\?bin:##g") + export ROOTPATH=${KDEDIR}/sbin:${KDEDIR}/bin:$(echo ${PATH} | sed "s#${KDEDIR}/s\?bin:##g") +fi +EOF + + cat <<-EOF > "${D}/etc/revdep-rebuild/50-kde-${SLOT}" +SEARCH_DIRS="${PREFIX}/bin ${PREFIX}/lib*" +EOF + else # Much simpler for the FHS compliant -kdeprefix install + cat <<-EOF > "${T}"/43kdepaths # number goes down with version +CONFIG_PROTECT="/usr/share/config" +#KDE_IS_PRELINKED=1 +XDG_DATA_DIRS="/usr/share:/usr/local/share" +COLON_SEPARATED="XDG_DATA_DIRS" + EOF + doenvd "${T}"/43kdepaths + fi + # Ensure that the correct permissions are set on ${PREFIX}/share/config + fperms 755 "${PREFIX}"/share/config +} + +pkg_postinst() { + fdo-mime_mime_database_update + if use zeroconf; then + echo + elog "To make zeroconf support available in KDE make sure that the 'mdnsd' daemon" + elog "is running. Make sure also that multicast dns lookups are enabled by editing" + elog "the 'hosts:' line in /etc/nsswitch.conf to include 'mdns', e.g.:" + elog " hosts: files mdns dns" + echo + fi + elog "Your homedir is set to "'${HOME}'"/${HME}" + elog + elog "If you experience weird application behavior (missing texts, etc.) run as root:" + elog "# chmod 755 -R /usr/share/config $PREFIX/share/config" + + kde4-base_pkg_postinst +} + +pkg_postrm() { + fdo-mime_mime_database_update + + kde4-base_pkg_postrm +} |