diff --git a/kf5-ki18n.spec b/kf5-ki18n.spec index ae9dd61..2305456 100644 --- a/kf5-ki18n.spec +++ b/kf5-ki18n.spec @@ -3,7 +3,7 @@ Name: kf5-%{framework} Version: 4.100.0 -Release: 2%{?dist} +Release: 3%{?dist} Summary: KDE Frameworks 5 Tier 1 addon for localization License: LGPLv2+ @@ -14,6 +14,8 @@ URL: http://www.kde.org #Source0: %{name}-%{version}-%{snapshot}git.tar.bz2 Source0: http://download.kde.org/unstable/frameworks/%{version}/%{framework}-%{version}.tar.xz +Patch0: ki18n-plugin-install-dir.patch + BuildRequires: perl BuildRequires: kf5-rpm-macros @@ -39,6 +41,8 @@ developing applications that use %{name}. %prep %setup -q -n %{framework}-%{version} +%patch0 -p1 -b .pluginInstallDir + %build mkdir -p %{_target_platform} pushd %{_target_platform} @@ -70,6 +74,9 @@ make %{?_smp_mflags} -C %{_target_platform} %{_kf5_archdatadir}/mkspecs/modules/qt_KI18n.pri %changelog +* Mon Jun 09 2014 Daniel Vrátil - 4.100.0-2 +- add upstream patch to fix plugins installation destination + * Sun Jun 08 2014 Fedora Release Engineering - 4.100.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild diff --git a/ki18n-plugin-install-dir.patch b/ki18n-plugin-install-dir.patch new file mode 100644 index 0000000..e83ad62 --- /dev/null +++ b/ki18n-plugin-install-dir.patch @@ -0,0 +1,76 @@ +From: Alex Merry +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 + #include + #include ++#include + #include + #include + #include +@@ -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(); +