diff --git a/kdelibs-4.0.2-no-cache-kdeglobals-paths.patch b/kdelibs-4.0.2-no-cache-kdeglobals-paths.patch new file mode 100644 index 0000000..5132537 --- /dev/null +++ b/kdelibs-4.0.2-no-cache-kdeglobals-paths.patch @@ -0,0 +1,77 @@ +diff -ur kdelibs-4.0.2/kdecore/config/kconfig.cpp kdelibs-4.0.2-no-cache-kdeglobals-paths/kdecore/config/kconfig.cpp +--- kdelibs-4.0.2/kdecore/config/kconfig.cpp 2008-01-05 01:00:39.000000000 +0100 ++++ kdelibs-4.0.2-no-cache-kdeglobals-paths/kdecore/config/kconfig.cpp 2008-03-09 23:58:41.000000000 +0100 +@@ -60,12 +60,6 @@ + { + sGlobalFileName = componentData.dirs()->saveLocation("config") + + QString::fromLatin1("kdeglobals"); +- if (wantGlobals()) { +- const KStandardDirs *const dirs = componentData.dirs(); +- foreach(const QString& dir, dirs->findAllResources("config", QLatin1String("kdeglobals")) + +- dirs->findAllResources("config", QLatin1String("system.kdeglobals"))) +- globalFiles.push_front(dir); +- } + const QString etc_kderc = + #ifdef Q_WS_WIN + QFile::decodeName( QByteArray(::getenv("WINDIR")) + "\\kde4rc" ); +@@ -75,15 +69,11 @@ + KEntryMap tmp; + // first entry is always /etc/kderc or empty if cannot read + if (KStandardDirs::checkAccess(etc_kderc, R_OK)) { +- if (!globalFiles.contains(etc_kderc)) +- globalFiles.push_front(etc_kderc); +- + if (!mappingsRegistered) { + KSharedPtr backend = KConfigBackend::create(componentData, etc_kderc, QLatin1String("INI")); + backend->parseConfig( "en_US", tmp, KConfigBackend::ParseDefaults); + } + } else { +- globalFiles.push_front(QString()); + mappingsRegistered = true; + } + +@@ -372,10 +362,31 @@ + + void KConfigPrivate::parseGlobalFiles() + { ++ QStringList globalFiles; ++ ++ if (wantGlobals()) { ++ const KStandardDirs *const dirs = componentData.dirs(); ++ foreach(const QString& dir, dirs->findAllResources("config", QLatin1String("kdeglobals")) + ++ dirs->findAllResources("config", QLatin1String("system.kdeglobals"))) ++ globalFiles.push_front(dir); ++ } ++ const QString etc_kderc = ++#ifdef Q_WS_WIN ++ QFile::decodeName( QByteArray(::getenv("WINDIR")) + "\\kde4rc" ); ++#else ++ QLatin1String("/etc/kde4rc"); ++#endif ++ KEntryMap tmp; ++ // first entry is always /etc/kderc or empty if cannot read ++ if (KStandardDirs::checkAccess(etc_kderc, R_OK)) { ++ if (!globalFiles.contains(etc_kderc)) ++ globalFiles.push_front(etc_kderc); ++ } else { ++ globalFiles.push_front(QString()); ++ } ++ + // qDebug() << "parsing global files" << globalFiles; + +- // TODO: can we cache the values in etc_kderc / other global files +- // on a per-application basis? + const QByteArray utf8Locale = locale.toUtf8(); + foreach(const QString& file, globalFiles) { + KConfigBackend::ParseOptions parseOpts = KConfigBackend::ParseGlobal|KConfigBackend::ParseExpansions; +diff -ur kdelibs-4.0.2/kdecore/config/kconfig_p.h kdelibs-4.0.2-no-cache-kdeglobals-paths/kdecore/config/kconfig_p.h +--- kdelibs-4.0.2/kdecore/config/kconfig_p.h 2008-01-05 01:00:39.000000000 +0100 ++++ kdelibs-4.0.2-no-cache-kdeglobals-paths/kdecore/config/kconfig_p.h 2008-03-09 23:50:26.000000000 +0100 +@@ -82,7 +82,6 @@ + + KEntryMap entryMap; + QString backendType; +- QStringList globalFiles; + QStack extraFiles; + + QString locale; diff --git a/kdelibs.spec b/kdelibs.spec index cf8f332..fb1c89a 100644 --- a/kdelibs.spec +++ b/kdelibs.spec @@ -3,7 +3,7 @@ Summary: K Desktop Environment 4 - Libraries Version: 4.0.2 -Release: 8%{?dist} +Release: 9%{?dist} %if 0%{?fedora} > 8 Name: kdelibs @@ -65,6 +65,9 @@ Patch7: kdelibs-4.0.1-dcop-servicetype.patch Patch8: kdelibs-4.0.2-install-all-css.patch # add Fedora/V-R to KHTML UA string Patch9: kdelibs-4.0.2-branding.patch +# don't cache kdeglobals paths because they change after profile directories +# are loaded from kde4rc +Patch10: kdelibs-4.0.2-no-cache-kdeglobals-paths.patch # upstream patches Patch100: kdelibs-4.0.x-kio.patch @@ -178,6 +181,7 @@ format for easy browsing. %patch8 -p1 -b .all-css %patch9 -p1 -b .branding sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanager.cpp +%patch10 -p1 -b .no-cache-kdeglobals-paths # upstream patches %patch100 -p1 -b .kio @@ -332,6 +336,9 @@ rm -rf %{buildroot} %changelog +* Mon Mar 10 2008 Kevin Kofler 4.0.2-9 +- fix kdeglobals not being found in profile (e.g. kde-settings) directory + * Fri Mar 07 2008 Rex Dieter 4.0.2-8 - touchup KDE_DISTRIBUTION_TEXT - add Fedora/V-R to KHTML UA string (thanks caillon)