summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>2009-03-10 13:34:09 +0000
committerJorge Manuel B. S. Vicetto <jmbsvicetto@gentoo.org>2009-03-10 13:34:09 +0000
commit1b03a516c6bcbb20e614634059524a17c0ace66e (patch)
tree977d4146a12e5c513cddb3e5ff9a11972d040f70 /kde-base/kdelibs
parentAdd missing test flag to IUSE. (diff)
downloadgentoo-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)
Diffstat (limited to 'kde-base/kdelibs')
-rw-r--r--kde-base/kdelibs/ChangeLog9
-rw-r--r--kde-base/kdelibs/files/kdelibs-4.2.1-qt4.5.patch654
-rw-r--r--kde-base/kdelibs/kdelibs-4.2.1-r1.ebuild245
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
+}