The e-d-s configuration file fails to properly detect KERBEROS 5:

        configure --with-krb5=/usr    ==> KERBEROS 5 not found

The source of the problem is test code within configure that compiles,
but segfaults when run [gcc-3.3.3 & gcc-4.0.1 on PPC]:

% cat krb5_test.c
        
        /* Override any gcc2 internal prototype to avoid an error.  */
        #ifdef __cplusplus
        extern "C"
        #endif
        /* We use char because int might match the return type of a gcc2
           builtin and then its argument prototype would still apply. 
        */
        char krb5_init_context ();
        int
        main ()
        {
        krb5_init_context ();
          ;
          return 0;
        }

% gcc -g -o krb5_test krb5_test.c -lkrb5 -lk5crypto -lcom_err -lgssapi_krb5

% ./krb5_test   ==> segfault

The fix is:

        /* Override any gcc2 internal prototype to avoid an error.  */
        #ifdef __cplusplus
        extern "C"
        #endif
        /* We use char because int might match the return type of a gcc2
           builtin and then its argument prototype would still apply.  */
        char krb5_init_context ();
        struct _krb5_context;
        typedef struct _krb5_context * krb5_context;
        int
        main ()
        {
        krb5_context context;
        krb5_init_context (&context);
          ;
          return 0;
        }

An updated garnome-fixes.diff is attached.


-Joseph


-- 
joseph_sacco [at] comcast [dot] net
--- evolution-data-server-1.3.6.1/configure-    2005-08-07 10:14:26.000000000 
-0400
+++ evolution-data-server-1.3.6.1/configure     2005-08-07 10:29:22.000000000 
-0400
@@ -24744,12 +24744,12 @@
   if test "x$ac_cv_env_NSS_CFLAGS_set" = "xset"; then
        pkg_cv_NSS_CFLAGS=$ac_cv_env_NSS_CFLAGS_value
 elif test -n "$PKG_CONFIG"; then
-       if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"mozilla-nss\" 
>/dev/null 2>&1") >&5
-  ($PKG_CONFIG --exists "mozilla-nss" >/dev/null 2>&1) 2>&5
+       if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"firefox-nss\" 
>/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "firefox-nss" >/dev/null 2>&1) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-               pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "mozilla-nss" 
2>/dev/null`
+               pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "firefox-nss" 
2>/dev/null`
        else
                pkg_failed=yes
        fi
@@ -24767,12 +24767,12 @@
   if test "x$ac_cv_env_NSS_LIBS_set" = "xset"; then
        pkg_cv_NSS_LIBS=$ac_cv_env_NSS_LIBS_value
 elif test -n "$PKG_CONFIG"; then
-       if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"mozilla-nss\" 
>/dev/null 2>&1") >&5
-  ($PKG_CONFIG --exists "mozilla-nss" >/dev/null 2>&1) 2>&5
+       if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"firefox-nss\" 
>/dev/null 2>&1") >&5
+  ($PKG_CONFIG --exists "firefox-nss" >/dev/null 2>&1) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-               pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "mozilla-nss" 2>/dev/null`
+               pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "firefox-nss" 2>/dev/null`
        else
                pkg_failed=yes
        fi
@@ -24784,7 +24784,7 @@
 echo "${ECHO_T}$pkg_cv_NSS_LIBS" >&6
 
 if test $pkg_failed = yes; then
-       NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors 
"mozilla-nss"`
+       NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors 
"firefox-nss"`
        # Put the nasty error message in config.log where it belongs
        echo "$NSS_PKG_ERRORS" 1>&5
 
@@ -24806,8 +24806,8 @@
 
                                msg_smime="yes (Mozilla NSS)"
                        fi
-                       mozilla_nspr="mozilla-nspr"
-                       mozilla_nss="mozilla-nss"
+                       mozilla_nspr="firefox-nspr"
+                       mozilla_nss="firefox-nss"
 
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_NSS 1
@@ -27895,10 +27895,13 @@
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char krb5_init_context ();
+struct _krb5_context;
+typedef struct _krb5_context * krb5_context;
 int
 main ()
 {
-krb5_init_context ();
+krb5_context context;
+krb5_init_context (&context);
   ;
   return 0;
 }
@@ -27946,10 +27949,13 @@
 /* We use char because int might match the return type of a gcc2
    builtin and then its argument prototype would still apply.  */
 char krb5_init_context ();
+struct _krb5_context;
+typedef struct _krb5_context * krb5_context;
 int
 main ()
 {
-krb5_init_context ();
+krb_context context;
+krb5_init_context (&context);
   ;
   return 0;
 }
-- 
garnome-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/garnome-list

Reply via email to