Add upstream patch to fix plugin installation destination

epel8
Dan Vrátil 11 years ago
parent 49633f8f2b
commit a7eed17952

@ -3,7 +3,7 @@
Name: kf5-%{framework} Name: kf5-%{framework}
Version: 4.100.0 Version: 4.100.0
Release: 2%{?dist} Release: 3%{?dist}
Summary: KDE Frameworks 5 Tier 1 addon for localization Summary: KDE Frameworks 5 Tier 1 addon for localization
License: LGPLv2+ License: LGPLv2+
@ -14,6 +14,8 @@ URL: http://www.kde.org
#Source0: %{name}-%{version}-%{snapshot}git.tar.bz2 #Source0: %{name}-%{version}-%{snapshot}git.tar.bz2
Source0: http://download.kde.org/unstable/frameworks/%{version}/%{framework}-%{version}.tar.xz Source0: http://download.kde.org/unstable/frameworks/%{version}/%{framework}-%{version}.tar.xz
Patch0: ki18n-plugin-install-dir.patch
BuildRequires: perl BuildRequires: perl
BuildRequires: kf5-rpm-macros BuildRequires: kf5-rpm-macros
@ -39,6 +41,8 @@ developing applications that use %{name}.
%prep %prep
%setup -q -n %{framework}-%{version} %setup -q -n %{framework}-%{version}
%patch0 -p1 -b .pluginInstallDir
%build %build
mkdir -p %{_target_platform} mkdir -p %{_target_platform}
pushd %{_target_platform} pushd %{_target_platform}
@ -70,6 +74,9 @@ make %{?_smp_mflags} -C %{_target_platform}
%{_kf5_archdatadir}/mkspecs/modules/qt_KI18n.pri %{_kf5_archdatadir}/mkspecs/modules/qt_KI18n.pri
%changelog %changelog
* Mon Jun 09 2014 Daniel Vrátil <dvratil@redhat.com> - 4.100.0-2
- add upstream patch to fix plugins installation destination
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.100.0-2 * Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 4.100.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild

@ -0,0 +1,76 @@
From: Alex Merry <alex.merry@kde.org>
Date: Mon, 02 Jun 2014 22:00:26 +0000
Subject: Put transcript plugin in kf5 subdir and simplify search logic
X-Git-Url: http://quickgit.kde.org/?p=ki18n.git&a=commitdiff&h=8bb821a959fa71c405a1e94bc73aa20920254122
---
Put transcript plugin in kf5 subdir and simplify search logic
Putting the plugin in a versioned subdirectory ensures there will not be
any coinstallability issues with KF6 if it is Qt5-based. Using
QPluginLoader to find the plugin makes for simpler, more reliable code.
REVIEW: 118486
---
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -46,10 +46,9 @@
)
add_library(ktranscript MODULE ${ktranscript_LIB_SRCS})
generate_export_header(ktranscript BASE_NAME KTranscript)
-set_target_properties(ktranscript PROPERTIES PREFIX "") # remove lib prefix
target_link_libraries(ktranscript PRIVATE Qt5::Script Qt5::Core)
-install(TARGETS ktranscript DESTINATION ${PLUGIN_INSTALL_DIR})
+install(TARGETS ktranscript DESTINATION ${PLUGIN_INSTALL_DIR}/kf5)
include(ECMGeneratePriFile)
--- a/src/klocalizedstring.cpp
+++ b/src/klocalizedstring.cpp
@@ -31,6 +31,7 @@
#include <QFile>
#include <QFileInfo>
#include <QLibrary>
+#include <QPluginLoader>
#include <QDir>
#include <QCoreApplication>
#include <qstandardpaths.h>
@@ -1362,29 +1363,14 @@
s->loadTranscriptCalled = true;
s->ktrs = NULL; // null indicates that Transcript is not available
-#if 0
- // FIXME: Automatic plugin path resolution does not work at the moment,
- // so search manually through library paths.
- QString pluginPathNoExt = QLatin1String("kf5/ktranscript");
-#else
- QString pluginPathNoExt;
- QStringList nameFilters;
- QString pluginName = QLatin1String("ktranscript");
- nameFilters.append(pluginName + QLatin1String(".*"));
- foreach (const QString &dirPath, QCoreApplication::libraryPaths()) {
- QString dirPathKf = dirPath + QLatin1Char('/');
- if (!QDir(dirPathKf).entryList(nameFilters).isEmpty()) {
- pluginPathNoExt = dirPathKf + QLatin1Char('/') + pluginName;
- break;
- }
- }
- if (pluginPathNoExt.isEmpty()) {
+ // QPluginLoader is just used to find the plugin
+ QPluginLoader loader(QStringLiteral("kf5/ktranscript"));
+ if (loader.fileName().isEmpty()) {
qWarning() << QString::fromLatin1("Cannot find Transcript plugin.");
return;
}
-#endif
-
- QLibrary lib(pluginPathNoExt);
+
+ QLibrary lib(loader.fileName());
if (!lib.load()) {
qWarning() << QString::fromLatin1("Cannot load Transcript plugin:")
<< lib.errorString();
Loading…
Cancel
Save