[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdebase/workspace/kdm
From:       Oswald Buddenhagen <ossi () kde ! org>
Date:       2007-10-27 13:12:35
Message-ID: 1193490755.780462.5676.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 729942 by ossi:

install kdm_config, kdm_greet and krootimage into libexec_dir


 M  +29 -0     ConfigureChecks.cmake  
 M  +29 -6     backend/dm.c  
 M  +7 -1      backend/dm.h  
 M  +8 -1      backend/process.c  
 M  +3 -0      config-kdm.h.cmake  
 M  +3 -3      kfrontend/CMakeLists.txt  


--- trunk/KDE/kdebase/workspace/kdm/ConfigureChecks.cmake #729941:729942
@@ -179,3 +179,32 @@
 	set(KDM_DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:${XBINDIR}:/usr/games")
 	set(KDM_DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:${XBINDIR}")
 endif (dont_add_xbin)
+
+set(KDM_LIBEXEC_STRIP 0)
+if (NOT LIBEXEC_INSTALL_DIR STREQUAL "${BIN_INSTALL_DIR}")
+    STRING(LENGTH "${BIN_INSTALL_DIR}" bidl)
+    STRING(LENGTH "${LIBEXEC_INSTALL_DIR}" lxidl)
+    set(ips "${CMAKE_INSTALL_PREFIX}/")
+    STRING(LENGTH "${ips}" ipsl)
+    set(inip 1)
+    if (bild LESS ${ipsl} OR lxild LESS ${ipsl})
+        set(inip)
+    else (bild LESS ${ipsl} OR lxild LESS ${ipsl})
+        STRING(SUBSTRING "${BIN_INSTALL_DIR}" 0 ${ipsl} bpr)
+        STRING(SUBSTRING "${LIBEXEC_INSTALL_DIR}" 0 ${ipsl} lpr)
+        if (NOT bpr STREQUAL "${lpr}")
+            set(inip)
+        endif (NOT bpr STREQUAL "${lpr}")
+    endif (bild LESS ${ipsl} OR lxild LESS ${ipsl})
+    if (NOT inip)
+        set(KDM_LIBEXEC_STRIP -1)
+        set(KDM_LIBEXEC_SUFFIX "${LIBEXEC_INSTALL_DIR}")
+    else (NOT inip)
+        MATH(EXPR bsfxl "${bidl} - ${ipsl}")
+        STRING(SUBSTRING "${BIN_INSTALL_DIR}" ${ipsl} ${bsfxl} bsfx)
+        STRING(REPLACE "/" ";" bsfxl "${bsfx}")
+        LIST(LENGTH bsfxl KDM_LIBEXEC_STRIP)
+        MATH(EXPR klxsfxl "${lxidl} - ${ipsl}")
+        STRING(SUBSTRING "${LIBEXEC_INSTALL_DIR}" ${ipsl} ${klxsfxl} KDM_LIBEXEC_SUFFIX)
+    endif (NOT inip)
+endif (NOT LIBEXEC_INSTALL_DIR STREQUAL "${BIN_INSTALL_DIR}")
--- trunk/KDE/kdebase/workspace/kdm/backend/dm.c #729941:729942
@@ -74,7 +74,13 @@
 
 time_t now;
 
-char *prog, *progpath;
+#if KDM_LIBEXEC_STRIP != -1
+char *progpath;
+#endif
+#if KDM_LIBEXEC_STRIP
+char *progname;
+#endif
+char *prog;
 
 int
 main( int argc, char **argv )
@@ -96,11 +102,15 @@
 	if (fcntl( 2, F_GETFD ) < 0)
 		dup2( 0, 2 );
 
+#if KDM_LIBEXEC_STRIP == -1
+	prog = strrchr( argv[0], '/' );
+	progname = prog = prog ? prog + 1 : argv[0];
+#else
 	if (argv[0][0] == '/') {
 		if (!strDup( &progpath, argv[0] ))
 			panic( "Out of memory" );
 	} else
-#ifdef __linux__
+# ifdef __linux__
 	{
 		/* note that this will resolve symlinks ... */
 		int len;
@@ -110,10 +120,10 @@
 		if (!strNDup( &progpath, fullpath, len ))
 			panic( "Out of memory" );
 	}
-#else
-# if 0
+# else
+#  if 0
 		panic( "Must be invoked with full path specification" );
-# else
+#  else
 	{
 		char directory[PATH_MAX+1];
 		if (!getcwd( directory, sizeof(directory) ))
@@ -152,9 +162,22 @@
 				panic( "Out of memory" );
 		}
 	}
+#  endif
 # endif
+	prog = strrchr( progpath, '/' ) + 1;
+# if KDM_LIBEXEC_STRIP
+	for (progname = pt = prog, fd = 0; fd < KDM_LIBEXEC_STRIP + 1; fd++) {
+		for (;;) {
+			pt--;
+			if (pt == progpath)
+				panic( "Executable is obviously located outside BINDIR" );
+			if (*pt == '/')
+				break;
+		}
+	}
+	*pt = 0;
+# endif
 #endif
-	prog = strrchr( progpath, '/' ) + 1;
 
 #if !defined(HAVE_SETPROCTITLE) && !defined(NOXDMTITLE)
 	title = argv[0];
--- trunk/KDE/kdebase/workspace/kdm/backend/dm.h #729941:729942
@@ -361,7 +361,13 @@
 void becomeDaemon( void );
 
 /* in dm.c */
-extern char *prog, *progpath;
+#if KDM_LIBEXEC_STRIP != -1
+extern char *progpath;
+#endif
+#if KDM_LIBEXEC_STRIP
+extern char *progname;
+#endif
+extern char *prog;
 extern time_t now;
 extern SdRec sdRec;
 void startDisplay( struct display *d );
--- trunk/KDE/kdebase/workspace/kdm/backend/process.c #729941:729942
@@ -493,7 +493,14 @@
 			free( cname );
 		return -1;
 	}
-	if (!strApp( margv, progpath, what, (char *)0 )) {
+#if KDM_LIBEXEC_STRIP == -1
+	if (!strApp( margv, KDM_LIBEXEC_SUFFIX, progname, what, (char *)0 ))
+#elif KDM_LIBEXEC_STRIP == 0
+	if (!strApp( margv, progpath, what, (char *)0 ))
+#else
+	if (!strApp( margv, progpath, "/" KDM_LIBEXEC_SUFFIX, progname, what, (char *)0 ))
+#endif
+	{
 		free( margv );
 		if (cname)
 			free( cname );
--- trunk/KDE/kdebase/workspace/kdm/config-kdm.h.cmake #729941:729942
@@ -121,3 +121,6 @@
 #cmakedefine KDM_DEF_USER_PATH "${KDM_DEF_USER_PATH}"
 #cmakedefine KDM_DEF_SYSTEM_PATH "${KDM_DEF_SYSTEM_PATH}"
 
+/* Parameters to get from bindir to libexecdir */
+#cmakedefine KDM_LIBEXEC_STRIP ${KDM_LIBEXEC_STRIP}
+#cmakedefine KDM_LIBEXEC_SUFFIX "${KDM_LIBEXEC_SUFFIX}/"
--- trunk/KDE/kdebase/workspace/kdm/kfrontend/CMakeLists.txt #729941:729942
@@ -77,21 +77,21 @@
   target_link_libraries(kdm_greet ${KDE4_KPTY_LIBS})
 endif (WITH_KDM_XCONSOLE)
 
-install(TARGETS kdm_greet DESTINATION ${BIN_INSTALL_DIR})
+install(TARGETS kdm_greet DESTINATION ${LIBEXEC_INSTALL_DIR})
 
 set(kdm_config_SRCS kdm_config.c)
 macro_add_file_dependencies(kdm_config.c ${confci})
 kde4_add_executable(kdm_config NOGUI ${kdm_config_SRCS})
 macro_add_compile_flags(kdm_config -U_REENTRANT)
 target_link_libraries(kdm_config ${SOCKET_LIBRARIES} ${RESOLV_LIBRARIES} ${POSIX4_LIBRARIES})
-install(TARGETS kdm_config DESTINATION ${BIN_INSTALL_DIR})
+install(TARGETS kdm_config DESTINATION ${LIBEXEC_INSTALL_DIR})
 
 set(krootimage_SRCS krootimage.cpp krootimage.h ${backgroundlib_SRCS})
 kde4_add_executable(krootimage ${krootimage_SRCS})
 # needs qt3support for q3ptrvector in background/bgrender.cpp
 target_link_libraries(krootimage ${KDE4_KDE3SUPPORT_LIBS} ${KDE4_KIO_LIBS} ${QT_QTCORE_LIBRARY}
 ${QT_QTGUI_LIBRARY} ${QT_QT3SUPPORT_LIBRARY} ${BLITZ_LIBRARIES})
-install(TARGETS krootimage DESTINATION ${BIN_INSTALL_DIR})
+install(TARGETS krootimage DESTINATION ${LIBEXEC_INSTALL_DIR})
 
 set(genkdmconf_SRCS genkdmconf.c)
 macro_add_file_dependencies(genkdmconf.c ${confci})
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic