diff --git a/0001-Add-KConfigGui-setSessionConfig.patch b/0001-Add-KConfigGui-setSessionConfig.patch deleted file mode 100644 index 7389d06..0000000 --- a/0001-Add-KConfigGui-setSessionConfig.patch +++ /dev/null @@ -1,127 +0,0 @@ -From ceb84f777b217c4a25c0e2356ddab372fae6f562 Mon Sep 17 00:00:00 2001 -From: Stefan Becker -Date: Sat, 9 May 2015 17:16:27 +0300 -Subject: [PATCH] Add KConfigGui::setSessionConfig() - -When the application receives a saveState signal it needs to replace the -current KConfig object with a new one based on the QSessionManager -information. Add a new interface that accepts the new session id and key. - -BUG: 346768 -REVIEW: 123705 ---- - src/gui/kconfiggui.cpp | 41 ++++++++++++++++++++++++++++++++--------- - src/gui/kconfiggui.h | 17 +++++++++++++++-- - 2 files changed, 47 insertions(+), 11 deletions(-) - -diff --git a/src/gui/kconfiggui.cpp b/src/gui/kconfiggui.cpp -index 0048c60..67b6009 100644 ---- a/src/gui/kconfiggui.cpp -+++ b/src/gui/kconfiggui.cpp -@@ -25,28 +25,51 @@ - - #include - -+static QString configName(const QString &id, const QString &key) -+{ -+ return(QLatin1String("session/") + QGuiApplication::applicationName() + -+ QLatin1Char('_') + id + -+ QLatin1Char('_') + key); -+} -+ - static KConfig *s_sessionConfig = Q_NULLPTR; - - KConfig *KConfigGui::sessionConfig() - { -- if (!s_sessionConfig) { // create an instance specific config object -- s_sessionConfig = new KConfig(sessionConfigName(), KConfig::SimpleConfig); -+#ifdef QT_NO_SESSIONMANAGER -+#error QT_NO_SESSIONMANAGER was set, this will not compile. Reconfigure Qt with Session management support. -+#endif -+ if (!hasSessionConfig()) { -+ // create the default instance specific config object -+ // from applications' -session command line parameter -+ s_sessionConfig = new KConfig(configName(qApp->sessionId(), -+ qApp->sessionKey()), -+ KConfig::SimpleConfig); - } -+ - return s_sessionConfig; - } - -+void KConfigGui::setSessionConfig(const QString &id, const QString &key) -+{ -+ if (hasSessionConfig()) { -+ delete s_sessionConfig; -+ s_sessionConfig = Q_NULLPTR; -+ } -+ -+ // create a new instance specific config object from supplied id & key -+ s_sessionConfig = new KConfig(configName(id, key), -+ KConfig::SimpleConfig); -+} -+ - bool KConfigGui::hasSessionConfig() - { - return s_sessionConfig != Q_NULLPTR; - } - -+#ifndef KDE_NO_DEPRECATED - QString KConfigGui::sessionConfigName() - { --#ifdef QT_NO_SESSIONMANAGER --#error QT_NO_SESSIONMANAGER was set, this will not compile. Reconfigure Qt with Session management support. --#endif -- const QString sessionKey = qApp->sessionKey(); -- const QString sessionId = qApp->sessionId(); -- return QString(QLatin1String("session/%1_%2_%3")).arg(QGuiApplication::applicationName()).arg(sessionId).arg(sessionKey); -+ return sessionConfig()->name(); - } -- -+#endif -diff --git a/src/gui/kconfiggui.h b/src/gui/kconfiggui.h -index 173400f..fe1f820 100644 ---- a/src/gui/kconfiggui.h -+++ b/src/gui/kconfiggui.h -@@ -31,7 +31,7 @@ class KConfig; - namespace KConfigGui - { - /** -- * Returns the application session config object. -+ * Returns the current application session config object. - * - * @return A pointer to the application's instance specific - * KConfig object. -@@ -40,6 +40,16 @@ namespace KConfigGui - KCONFIGGUI_EXPORT KConfig *sessionConfig(); - - /** -+ * Replaces the current application session config object. -+ * -+ * @param id new session id -+ * @param key new session key -+ * -+ * @since 5.11 -+ */ -+KCONFIGGUI_EXPORT void setSessionConfig(const QString &id, const QString &key); -+ -+/** - * Indicates if a session config has been created for that application - * (ie. if sessionConfig() got called at least once) - * -@@ -51,8 +61,11 @@ KCONFIGGUI_EXPORT bool hasSessionConfig(); - * Returns the name of the application session - * - * @return the application session name -+ * @deprecated since 5.11, use sessionConfig()->name() - */ --KCONFIGGUI_EXPORT QString sessionConfigName(); -+#ifndef KDE_NO_DEPRECATED -+KCONFIGGUI_DEPRECATED QString sessionConfigName(); -+#endif - } - - #endif // KCONFIGGUI_H --- -2.4.0 - diff --git a/0003-fix-missing-export.patch b/0003-fix-missing-export.patch deleted file mode 100644 index 71d09b1..0000000 --- a/0003-fix-missing-export.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 661d03d14aa2342e0542b49da4b440954c9654eb Mon Sep 17 00:00:00 2001 -From: David Faure -Date: Tue, 12 May 2015 12:48:55 +0200 -Subject: [PATCH 3/3] fix missing export - ---- - src/gui/kconfiggui.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/gui/kconfiggui.h b/src/gui/kconfiggui.h -index fe1f820..813ab64 100644 ---- a/src/gui/kconfiggui.h -+++ b/src/gui/kconfiggui.h -@@ -64,7 +64,7 @@ KCONFIGGUI_EXPORT bool hasSessionConfig(); - * @deprecated since 5.11, use sessionConfig()->name() - */ - #ifndef KDE_NO_DEPRECATED --KCONFIGGUI_DEPRECATED QString sessionConfigName(); -+KCONFIGGUI_DEPRECATED_EXPORT QString sessionConfigName(); - #endif - } - --- -2.4.0 - diff --git a/kconfig-5.12.0-fullpath.patch b/kconfig-5.12.0-fullpath.patch new file mode 100644 index 0000000..6f3e20f --- /dev/null +++ b/kconfig-5.12.0-fullpath.patch @@ -0,0 +1,12 @@ +diff -up kconfig-5.12.0/src/core/CMakeLists.txt.fullpath kconfig-5.12.0/src/core/CMakeLists.txt +--- kconfig-5.12.0/src/core/CMakeLists.txt.fullpath 2015-07-05 03:54:35.000000000 -0500 ++++ kconfig-5.12.0/src/core/CMakeLists.txt 2015-07-09 13:13:53.978827068 -0500 +@@ -21,7 +21,7 @@ add_library(KF5::ConfigCore ALIAS KF5Con + + target_compile_definitions(KF5ConfigCore + PRIVATE +- KCONF_UPDATE_INSTALL_LOCATION="${CMAKE_INSTALL_PREFIX}/${KDE_INSTALL_LIBEXECDIR_KF5}/$" ++ KCONF_UPDATE_INSTALL_LOCATION="${KDE_INSTALL_LIBEXECDIR_KF5}/$" + ) + + target_include_directories(KF5ConfigCore INTERFACE "$") diff --git a/kf5-kconfig.spec b/kf5-kconfig.spec index d897e13..67b9597 100644 --- a/kf5-kconfig.spec +++ b/kf5-kconfig.spec @@ -19,8 +19,12 @@ Source0: http://download.kde.org/%{stable}/frameworks/%{versiondir}/%{fra ## upstream patches +## upstreamable patches +# assume KDE_INSTALL_LIBEXECDIR_KF5 is a full (not relative to CMAKE_INSTALL_PREFIX) path +Patch50: kconfig-5.12.0-fullpath.patch + BuildRequires: kf5-rpm-macros -BuildRequires: extra-cmake-modules +BuildRequires: extra-cmake-modules >= %{versiondir} BuildRequires: qt5-qtbase-devel BuildRequires: qt5-qttools-devel @@ -89,9 +93,9 @@ make install/fast DESTDIR=%{buildroot} -C %{_target_platform} %files core -f kconfig5_qt.lang %{_kf5_bindir}/kreadconfig5 %{_kf5_bindir}/kwriteconfig5 -%{_kf5_bindir}/kconfig_compiler_kf5 %{_kf5_libdir}/libKF5ConfigCore.so.* -%{_kf5_libexecdir}/kconf_update/ +%{_kf5_libexecdir}/kconfig_compiler_kf5 +%{_kf5_libexecdir}/kconf_update %post gui -p /sbin/ldconfig %postun gui -p /sbin/ldconfig