evolution-data-server-1.3.6.1 & kerberos 5 support
- From: "Joseph E. Sacco, PhD" <joseph_sacco comcast net>
- To: garnome-list <garnome-list gnome org>
- Subject: evolution-data-server-1.3.6.1 & kerberos 5 support
- Date: Sun, 07 Aug 2005 11:01:32 -0400
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;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]