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