Hi Guys 

after 7 weeks of pain, i finally found why kio-slaves from trunk was failling 
on FreeBSD. 
actually is due a cmake test that it is no founding the setproctitle funtion 
on FreeBSD and then not creating the corresponding prepocessor 
HAVE_SETPROCTITLE directive.

so until someone figure out how to fix this cmake issue i make this awful hack 
in kdelibs/kinit/proctitle.cpp that fix the problem ( only for freebsd 
users ;) )

best regards
Manolito

___ 
Pues todo lo que el hombre sembrare, eso tambien segará
Gál. 6:7
---------------------------------------------------------
For whatever a man sows, that he will also reap.
Gal. 6:7
Index: proctitle.cpp
===================================================================
--- proctitle.cpp	(revision 683579)
+++ proctitle.cpp	(working copy)
@@ -27,6 +27,8 @@
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdlib.h>
+#include <sys/types.h>
+#include <unistd.h>
 
 #define PF_ARGV_NONE      0
 #define PF_ARGV_NEW       1
@@ -136,7 +138,7 @@
 
     memset(statbuf, 0, sizeof(statbuf));
 
-#ifdef HAVE_SETPROCTITLE
+// #ifdef HAVE_SETPROCTITLE
 # if __FreeBSD__ >= 4 && !defined(FREEBSD4_0) && !defined(FREEBSD4_1)
     /* FreeBSD's setproctitle() automatically prepends the process name. */
     vsnprintf(statbuf, sizeof(statbuf), fmt, msg);
@@ -152,49 +154,49 @@
 # endif /* FREEBSD4 */
     setproctitle("%s", statbuf);
 
-#else /* HAVE_SETPROCTITLE */
-    /* Manually append the process name for non-setproctitle() platforms. */
-    snprintf(statbuf, sizeof(statbuf), "%s", "kdeinit4: ");
-    vsnprintf(statbuf + strlen(statbuf),
-              sizeof(statbuf) - strlen(statbuf),
-              fmt,
-              msg);
+// #else /* HAVE_SETPROCTITLE */
+//     /* Manually append the process name for non-setproctitle() platforms. */
+//     snprintf(statbuf, sizeof(statbuf), "%s", "kdeinit4: ");
+//     vsnprintf(statbuf + strlen(statbuf),
+//               sizeof(statbuf) - strlen(statbuf),
+//               fmt,
+//               msg);
+// 
+// #endif /* HAVE_SETPROCTITLE */
 
-#endif /* HAVE_SETPROCTITLE */
-
     va_end(msg);
 
-#ifdef HAVE_SETPROCTITLE
+// #ifdef HAVE_SETPROCTITLE
     return;
-#else
-    i = strlen(statbuf);
+// #else
+//     i = strlen(statbuf);
 
-# if PF_ARGV_TYPE == PF_ARGV_NEW
+// # if PF_ARGV_TYPE == PF_ARGV_NEW
     /* We can just replace argv[] arguments.  Nice and easy. */
-    Argv[0] = statbuf;
-    Argv[1] = NULL;
-# endif /* PF_ARGV_NEW */
+//     Argv[0] = statbuf;
+//     Argv[1] = NULL;
+// # endif /* PF_ARGV_NEW */
 
-# if PF_ARGV_TYPE == PF_ARGV_WRITEABLE
+// # if PF_ARGV_TYPE == PF_ARGV_WRITEABLE
     /* We can overwrite individual argv[] arguments.  Semi-nice. */
-    snprintf(Argv[0], maxlen, "%s", statbuf);
-    p = &Argv[0][i];
+//     snprintf(Argv[0], maxlen, "%s", statbuf);
+//     p = &Argv[0][i];
 
-    while ( p < LastArgv ) {
-        *p++ = '\0';
-    }
-    Argv[1] = NULL;
-# endif /* PF_ARGV_WRITEABLE */
+//     while ( p < LastArgv ) {
+//         *p++ = '\0';
+//     }
+//     Argv[1] = NULL;
+// # endif /* PF_ARGV_WRITEABLE */
 
-# if PF_ARGV_TYPE == PF_ARGV_PSTAT
-    pst.pst_command = statbuf;
-    pstat(PSTAT_SETCMD, pst, i, 0, 0);
-# endif /* PF_ARGV_PSTAT */
+// # if PF_ARGV_TYPE == PF_ARGV_PSTAT
+//     pst.pst_command = statbuf;
+//     pstat(PSTAT_SETCMD, pst, i, 0, 0);
+// # endif /* PF_ARGV_PSTAT */
 
-# if PF_ARGV_TYPE == PF_ARGV_PSSTRINGS
-    PS_STRINGS->ps_nargvstr = 1;
-    PS_STRINGS->ps_argvstr = statbuf;
-# endif /* PF_ARGV_PSSTRINGS */
+// # if PF_ARGV_TYPE == PF_ARGV_PSSTRINGS
+//     PS_STRINGS->ps_nargvstr = 1;
+//     PS_STRINGS->ps_argvstr = statbuf;
+// # endif /* PF_ARGV_PSSTRINGS */
 
-#endif /* HAVE_SETPROCTITLE */
+// #endif /* HAVE_SETPROCTITLE */*/
 }
_______________________________________________
kde-freebsd mailing list
kde-freebsd@kde.org
https://mail.kde.org/mailman/listinfo/kde-freebsd

Reply via email to