rev 18292 - in trunk/packages/kdelibs/debian: . patches
Modestas Vainius
modax at alioth.debian.org
Mon Jun 7 22:22:39 UTC 2010
Author: modax
Date: 2010-06-07 22:22:31 +0000 (Mon, 07 Jun 2010)
New Revision: 18292
Modified:
trunk/packages/kdelibs/debian/changelog
trunk/packages/kdelibs/debian/patches/10_make_libkdeinit4_private.diff
Log:
* Improve 10_make_libkdeinit4_private.diff patch:
- fix kpluginloader.cpp:findLibraryInternal() to find moved libkdeinit4_*s.
This should reenable kxkb flag in lock dialog (Closes: #584870);
- set R(UN)PATH for kdeinit executables only when LIBKDEINIT_INSTALL_DIR is
not in implicit link directory list;
- extend absolute exe path resolution to libkdeinit4_*s in the kdeinit4
daemon.
Modified: trunk/packages/kdelibs/debian/changelog
===================================================================
--- trunk/packages/kdelibs/debian/changelog 2010-06-07 16:27:36 UTC (rev 18291)
+++ trunk/packages/kdelibs/debian/changelog 2010-06-07 22:22:31 UTC (rev 18292)
@@ -1,3 +1,15 @@
+kde4libs (4:4.4.4-2~pre1) UNRELEASED; urgency=low
+
+ * Improve 10_make_libkdeinit4_private.diff patch:
+ - fix kpluginloader.cpp:findLibraryInternal() to find moved libkdeinit4_*s.
+ This should reenable kxkb flag in lock dialog (Closes: #584870);
+ - set R(UN)PATH for kdeinit executables only when LIBKDEINIT_INSTALL_DIR is
+ not in implicit link directory list;
+ - extend absolute exe path resolution to libkdeinit4_*s in the kdeinit4
+ daemon.
+
+ -- Modestas Vainius <modax at debian.org> Mon, 07 Jun 2010 20:58:22 +0300
+
kde4libs (4:4.4.4-1) unstable; urgency=low
* New upstream release.
Modified: trunk/packages/kdelibs/debian/patches/10_make_libkdeinit4_private.diff
===================================================================
--- trunk/packages/kdelibs/debian/patches/10_make_libkdeinit4_private.diff 2010-06-07 16:27:36 UTC (rev 18291)
+++ trunk/packages/kdelibs/debian/patches/10_make_libkdeinit4_private.diff 2010-06-07 22:22:31 UTC (rev 18292)
@@ -12,7 +12,12 @@
order for proper RUNPATH to be set on the generated kdeinit executables. However,
CDBS kde.mk and debhelper kde addon/buildsystem enable this flag by default and
hence call dh_movelibkdeinit.
+ .
+ The patch also adds support for "kdeinit" resource type to KDE Platform
+ libraries.
Forwarded: no
+Origin: vendor
+Last-Update: 2010-06-07
--- a/CreateKDELibsDependenciesFile.cmake
+++ b/CreateKDELibsDependenciesFile.cmake
@@ -44,35 +49,158 @@
_set_fancy(HTML_INSTALL_DIR "${SHARE_INSTALL_PREFIX}/doc/HTML" "The HTML install dir for documentation")
--- a/cmake/modules/KDE4Macros.cmake
+++ b/cmake/modules/KDE4Macros.cmake
-@@ -758,6 +758,14 @@ macro (KDE4_ADD_KDEINIT_EXECUTABLE _targ
+@@ -758,6 +758,17 @@ macro (KDE4_ADD_KDEINIT_EXECUTABLE _targ
set_target_properties(kdeinit_${_target_NAME} PROPERTIES OUTPUT_NAME kdeinit4_${_target_NAME})
kde4_add_executable(${_target_NAME} "${_nogui}" ${CMAKE_CURRENT_BINARY_DIR}/${_target_NAME}_dummy.cpp)
-+ if (UNIX AND ENABLE_LIBKDEINIT_RUNPATH AND NOT (${LIBKDEINIT_INSTALL_DIR} STREQUAL ${LIB_INSTALL_DIR}))
-+ if (CMAKE_SKIP_RPATH)
-+ set_target_properties(${_target_NAME} PROPERTIES LINK_FLAGS "-Wl,--enable-new-dtags,-rpath,'${LIBKDEINIT_INSTALL_DIR}'")
-+ else (CMAKE_SKIP_RPATH)
-+ set_target_properties(${_target_NAME} PROPERTIES INSTALL_RPATH "${LIBKDEINIT_INSTALL_DIR}"
-+ LINK_FLAGS "-Wl,--enable-new-dtags")
-+ endif (CMAKE_SKIP_RPATH)
-+ endif (UNIX AND ENABLE_LIBKDEINIT_RUNPATH AND NOT (${LIBKDEINIT_INSTALL_DIR} STREQUAL ${LIB_INSTALL_DIR}))
++ if (UNIX AND ENABLE_LIBKDEINIT_RUNPATH)
++ list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIBKDEINIT_INSTALL_DIR}" _isSystemKdeinitDir)
++ if("${_isSystemKdeinitDir}" STREQUAL "-1")
++ if (CMAKE_SKIP_RPATH)
++ set_target_properties(${_target_NAME} PROPERTIES LINK_FLAGS "-Wl,--enable-new-dtags,-rpath,'${LIBKDEINIT_INSTALL_DIR}'")
++ else (CMAKE_SKIP_RPATH)
++ set_target_properties(${_target_NAME} PROPERTIES INSTALL_RPATH "${LIBKDEINIT_INSTALL_DIR}"
++ LINK_FLAGS "-Wl,--enable-new-dtags")
++ endif (CMAKE_SKIP_RPATH)
++ endif("${_isSystemKdeinitDir}" STREQUAL "-1")
++ endif (UNIX AND ENABLE_LIBKDEINIT_RUNPATH)
target_link_libraries(${_target_NAME} kdeinit_${_target_NAME})
endif(WIN32)
--- a/kinit/CMakeLists.txt
+++ b/kinit/CMakeLists.txt
-@@ -54,6 +54,14 @@ endif(Q_WS_X11)
+@@ -54,6 +54,17 @@ endif(Q_WS_X11)
install(TARGETS kdeinit4 ${INSTALL_TARGETS_DEFAULT_ARGS} )
-+if (UNIX AND NOT (${LIBKDEINIT_INSTALL_DIR} STREQUAL ${LIB_INSTALL_DIR}))
++if (UNIX)
++ list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIBKDEINIT_INSTALL_DIR}" _isSystemKdeinitDir)
++ if("${_isSystemKdeinitDir}" STREQUAL "-1")
+ if (CMAKE_SKIP_RPATH)
+ set_target_properties(kdeinit4 PROPERTIES LINK_FLAGS "-Wl,--enable-new-dtags,-rpath,'${LIBKDEINIT_INSTALL_DIR}'")
+ else (CMAKE_SKIP_RPATH)
+ set_target_properties(kdeinit4 PROPERTIES INSTALL_RPATH "${LIBKDEINIT_INSTALL_DIR}"
+ LINK_FLAGS "-Wl,--enable-new-dtags")
+ endif (CMAKE_SKIP_RPATH)
-+endif (UNIX AND NOT (${LIBKDEINIT_INSTALL_DIR} STREQUAL ${LIB_INSTALL_DIR}))
++ endif("${_isSystemKdeinitDir}" STREQUAL "-1")
++endif (UNIX)
########### kwrapper4 ###############
if (WIN32)
set(kwrapper_SRCS kwrapper_win.cpp )
+--- a/config-prefix.h.cmake
++++ b/config-prefix.h.cmake
+@@ -12,6 +12,7 @@
+ #define __KDE_EXECPREFIX "NONE"
+
+ #define LIBEXEC_INSTALL_DIR "${LIBEXEC_INSTALL_DIR}"
++#define LIBKDEINIT_INSTALL_DIR "${LIBKDEINIT_INSTALL_DIR}"
+ #define DATA_INSTALL_DIR "${DATA_INSTALL_DIR}"
+ #define LIB_INSTALL_DIR "${LIB_INSTALL_DIR}"
+ #define INCLUDE_INSTALL_DIR "${INCLUDE_INSTALL_DIR}"
+--- a/kdecore/kde-config.cpp
++++ b/kdecore/kde-config.cpp
+@@ -144,6 +144,7 @@ int main(int argc, char **argv)
+ "html", I18N_NOOP("HTML documentation"),
+ "icon", I18N_NOOP("Icons"),
+ "kcfg", I18N_NOOP("Configuration description files"),
++ "kdeinit", I18N_NOOP("kdeinit shared executables (resource added by Debian)"),
+ "lib", I18N_NOOP("Libraries"),
+ "include", I18N_NOOP("Includes/Headers"),
+ "locale", I18N_NOOP("Translation files for KLocale"),
+--- a/kdecore/kernel/kstandarddirs.cpp
++++ b/kdecore/kernel/kstandarddirs.cpp
+@@ -157,6 +157,8 @@ xdgconf-menu
+ menus
+ xdgconf-autostart
+ autostart
++kdeinit
++%lib
+ */
+
+ static const char types_string[] =
+@@ -211,6 +213,8 @@ static const char types_string[] =
+ "menus\0"
+ "xdgconf-autostart\0"
+ "autostart\0"
++ "kdeinit\0"
++ "%lib\0"
+ "\0";
+
+ static const int types_indices[] = {
+@@ -220,7 +224,7 @@ static const int types_indices[] = {
+ 248, 258, 275, 285, 301, 305, 309, 316,
+ 326, 336, 354, 359, 377, 387, 403, 416,
+ 429, 442, 448, 463, 471, 484, 504, 217,
+- 517, 530, 536, 554, -1
++ 517, 530, 536, 554, 564, 572, -1
+ };
+
+ static int tokenize( QStringList& token, const QString& str,
+--- a/kdecore/kernel/kstandarddirs_unix.cpp
++++ b/kdecore/kernel/kstandarddirs_unix.cpp
+@@ -39,6 +39,8 @@ QString KStandardDirs::installPath(const
+ return QString::fromLatin1(KCFG_INSTALL_DIR "/");
+ if (strcmp("kdedir", type) == 0)
+ return QString::fromLatin1(KDEDIR "/");
++ if (strcmp("kdeinit", type) == 0)
++ return QString::fromLatin1(LIBKDEINIT_INSTALL_DIR "/");
+ break;
+ case 'd':
+ if (strcmp("data", type) == 0)
+--- a/kdecore/kernel/kstandarddirs_win.cpp
++++ b/kdecore/kernel/kstandarddirs_win.cpp
+@@ -47,6 +47,8 @@ QString KStandardDirs::installPath(const
+ return share() + QLatin1String("config.kcfg/");
+ if (strcmp("kdedir", type) == 0)
+ return prefix();
++ if (strcmp("kdeinit", type) == 0)
++ return prefix() + QString::fromLatin1("lib" KDELIBSUFF "/");
+ break;
+ case 'd':
+ if (strcmp("data", type) == 0)
+--- a/kdecore/util/kpluginloader.cpp
++++ b/kdecore/util/kpluginloader.cpp
+@@ -112,6 +112,13 @@ QString findLibraryInternal(const QStrin
+ libname = fileinfo.path() + QLatin1String("/lib") + fileinfo.fileName();
+ #endif
+
++ if (kdeinit) {
++ libfile = cData.dirs()->findResource("kdeinit", libname);
++ if (!libfile.isEmpty()) {
++ return libfile;
++ }
++ }
++
+ libfile = cData.dirs()->findResource("lib", libname);
+ if (!libfile.isEmpty()) {
+ if (!kdeinit) {
+--- a/kinit/kinit.cpp
++++ b/kinit/kinit.cpp
+@@ -492,11 +492,23 @@ static pid_t launch(int argc, const char
+ // try to match an absolute path to an executable binary (either in bin/ or in libexec/)
+ // to a kdeinit module in the same prefix
+ if( lib.contains( QLatin1String( "/lib" KDELIBSUFF "/kde4/libexec/" ))) {
+- libpath = QString( lib ).replace( QLatin1String( "/lib" KDELIBSUFF "/kde4/libexec/" ),
+- QLatin1String("/lib" KDELIBSUFF "/libkdeinit4_")) + QLatin1String(".so");
++ if ( lib.contains(KStandardDirs::installPath( "libexec" ))) {
++ libpath = QString( lib ).replace( KStandardDirs::installPath( "libexec" ),
++ KStandardDirs::installPath( "kdeinit" )) + QLatin1String(".so");
++ }
++ if (libpath.isEmpty() || !QFile::exists( libpath )) {
++ libpath = QString( lib ).replace( QLatin1String( "/lib" KDELIBSUFF "/kde4/libexec/" ),
++ QLatin1String("/lib" KDELIBSUFF "/libkdeinit4_")) + QLatin1String(".so");
++ }
+ } else if( lib.contains( QLatin1String( "/bin/" ))) {
+- libpath = QString( lib ).replace( QLatin1String( "/bin/" ),
+- QLatin1String("/lib" KDELIBSUFF "/libkdeinit4_")) + QLatin1String(".so");
++ if ( lib.contains(KStandardDirs::installPath( "exe" )) ) {
++ libpath = QString( lib ).replace( KStandardDirs::installPath( "exe" ),
++ KStandardDirs::installPath( "kdeinit" )) + QLatin1String(".so");
++ }
++ if (libpath.isEmpty() || !QFile::exists( libpath )) {
++ libpath = QString( lib ).replace( QLatin1String( "/bin/" ),
++ QLatin1String("/lib" KDELIBSUFF "/libkdeinit4_")) + QLatin1String(".so");
++ }
+ }
+ // Don't confuse the user with "Could not load libkdeinit4_foo.so" if it doesn't exist
+ if (!QFile::exists(libpath)) {
More information about the pkg-kde-commits
mailing list