* Fri Mar 11 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.6.1-4

- use upstream patch for #682300 (kde#267770), my previous one didn't work
This commit is contained in:
Kevin Kofler 2011-03-11 21:21:46 +01:00
parent 314b6a4ab6
commit 91b310e667
2 changed files with 50 additions and 31 deletions

View File

@ -1,27 +1,43 @@
diff -ur kdelibs-4.6.1/kdeui/kernel/kapplication.cpp kdelibs-4.6.1-kde#267770/kdeui/kernel/kapplication.cpp
--- kdelibs-4.6.1/kdeui/kernel/kapplication.cpp 2011-02-25 23:00:34.000000000 +0100
+++ kdelibs-4.6.1-kde#267770/kdeui/kernel/kapplication.cpp 2011-03-11 03:05:11.000000000 +0100
@@ -466,6 +466,23 @@
From 6eed9cd36808e77a18acf554bb5753978906c1aa Mon Sep 17 00:00:00 2001
From: David Faure <faure@kde.org>
Date: Fri, 11 Mar 2011 21:01:24 +0100
Subject: [PATCH] Add paths to qt plugins (from kstandarddirs) before qapp is created.
Necessary for apps started through d-bus activation, so that the kde widget
style is loaded.
FIXED-IN: 4.6.2
BUG: 267770
---
kdecore/kernel/kcomponentdata.cpp | 2 +-
kdeui/kernel/kapplication.cpp | 2 ++
2 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/kdecore/kernel/kcomponentdata.cpp b/kdecore/kernel/kcomponentdata.cpp
index 38bda18..933623a 100644
--- a/kdecore/kernel/kcomponentdata.cpp
+++ b/kdecore/kernel/kcomponentdata.cpp
@@ -144,7 +144,7 @@ void KComponentDataPrivate::lazyInit(const KComponentData &component)
}
// the first KComponentData sets the KDE Qt plugin paths
- if (QCoreApplication::instance() && dirs && kdeLibraryPathsAdded != KdeLibraryPathsAddedDone) {
+ if (dirs && kdeLibraryPathsAdded != KdeLibraryPathsAddedDone) {
kdeLibraryPathsAdded = KdeLibraryPathsAddedDone;
const QStringList &plugins = dirs->resourceDirs("qtplugins");
QStringList::ConstIterator it = plugins.begin();
diff --git a/kdeui/kernel/kapplication.cpp b/kdeui/kernel/kapplication.cpp
index 1403601..8ec47ca 100644
--- a/kdeui/kernel/kapplication.cpp
+++ b/kdeui/kernel/kapplication.cpp
@@ -407,6 +407,8 @@ KApplication::KApplication(Display *display, int& argc, char** argv, const QByte
void KApplicationPrivate::preqapplicationhack()
{
preread_app_startup_id();
+
+ KGlobal::config(); // initialize qt plugin path (see KComponentDataPrivate::lazyInit)
}
KApplication::KApp = q;
+ // ensure the KDE Qt plugins are found
+ // (QT_PLUGIN_PATH is not set in all situations.)
+ QStringList pluginPaths = KGlobal::dirs()->resourceDirs("qtplugins");
+
+ // reverse plugin paths because QCoreApplication::addLibraryPath prepends
+ QStringList pluginPathsReversed;
+ foreach (const QString &pluginPath, pluginPaths)
+ pluginPathsReversed.prepend(pluginPath);
+
+ foreach (const QString &pluginPath, pluginPathsReversed) {
+ // prevent duplicates
+ QCoreApplication::removeLibraryPath(pluginPath);
+
+ // add the path (to the front)
+ QCoreApplication::addLibraryPath(pluginPath);
+ }
+
// make sure the clipboard is created before setting the window icon (bug 209263)
if(GUIenabled)
(void) QApplication::clipboard();
int KApplication::xioErrhandler( Display* dpy )
--
1.7.1

View File

@ -16,7 +16,7 @@
Summary: KDE Libraries
Version: 4.6.1
Release: 3%{?dist}
Release: 4%{?dist}
Name: kdelibs
Epoch: 6
@ -83,9 +83,6 @@ Patch24: kdelibs-4.3.1-drkonq.patch
# paths (like /usr/lib64) already! With this, we can drop
# -DCMAKE_SKIP_RPATH:BOOL=ON (finally)
Patch27: kdelibs-4.5.80-no_rpath.patch
# set the plugin path in KApplication, don't rely on QT_PLUGIN_PATH being set
# fixes kpackagekitsmarticon not getting themed (#682300, kde#267770)
Patch28: kdelibs-4.6.1-kde#267770.patch
## upstreamable
# add gpg2 support to knewstuff, rough first try s/gpg/gpg2/
@ -96,6 +93,9 @@ Patch50: kdelibs-4.5.1-knewstuff_gpg2.patch
## upstream
# https://projects.kde.org/projects/kde/kdelibs/repository/revisions/51707e7154082b549216b8a8ecde73505302fadc
Patch100: kdelibs-4.6.1-dirlister.patch
# set the plugin path in kdelibs, don't rely on QT_PLUGIN_PATH being set
# fixes kpackagekitsmarticon not getting themed (#682300, kde#267770)
Patch101: kdelibs-4.6.1-kde#267770.patch
## security fix
# Not Upstreamed? why not ? -- Rex
@ -275,13 +275,13 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch24 -p1 -b .drkonq
%endif
%patch27 -p1 -b .no_rpath
%patch28 -p1 -b .kde#267770
# upstreamable patches
%patch50 -p1 -b .knewstuff_gpg2
# upstream patches
%patch100 -p1 -b .dirlister
%patch101 -p1 -b .kde#267770
# security fix
%patch200 -p1 -b .CVE-2009-2702
@ -537,6 +537,9 @@ rm -rf %{buildroot}
%changelog
* Fri Mar 11 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.6.1-4
- use upstream patch for #682300 (kde#267770), my previous one didn't work
* Fri Mar 11 2011 Kevin Kofler <Kevin@tigcc.ticalc.org> - 4.6.1-3
- set the plugin path in KApplication, don't rely on QT_PLUGIN_PATH being set,
fixes kpackagekitsmarticon not getting themed (#682300, kde#267770)