Date: Tue, 9 Nov 2010 10:55:40 +0100 (CET) From: Joerg Pulz <Joerg.Pulz@frm2.tum.de> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/152071: security/cyrus-sasl2: fix GSSAPI when using heimdal from ports Message-ID: <201011090955.oA99teIr033325@hades.admin.frm2> Resent-Message-ID: <201011091000.oA9A0Ngb042019@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 152071 >Category: ports >Synopsis: security/cyrus-sasl2: fix GSSAPI when using heimdal from ports >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Tue Nov 09 10:00:22 UTC 2010 >Closed-Date: >Last-Modified: >Originator: Joerg Pulz >Release: FreeBSD 8.0-STABLE amd64 >Organization: TU-Munchen / FRM II >Environment: System: FreeBSD hades.admin.frm2 8.0-STABLE FreeBSD 8.0-STABLE #2: Thu Jan 21 12:42:55 CET 2010 root@hades.admin.frm2:/usr/obj/usr/src/sys/GENERIC amd64 >Description: Enable the configure tests for GSS_C_NT_HOSTBASED_SERVICE and GSS_C_NT_USER_NAME if --with-gss_impl=heimdal is used. Currently the tests are only done for CyberSafe gss implementation. After the update of security/heimdal to version 1.4, one gets unresolved symbol "gss_nt_service_name" errors when dlopening lib/sasl2/libgssapiv2.so.2 which is linked against the ports libraries. The relevant code block is in plugins/gssapi.c : #ifndef HAVE_GSS_C_NT_HOSTBASED_SERVICE extern gss_OID gss_nt_service_name; #define GSS_C_NT_HOSTBASED_SERVICE gss_nt_service_name #endif The attached patch resolves the above mentioned problem. As both base heimdal and security/heimdal provide GSS_C_NT_HOSTBASED_SERVICE and GSS_C_NT_USER_NAME it will work with both. >How-To-Repeat: >Fix: --- security__cyrus-sasl2.diff begins here --- --- files/patch-configure.orig 2006-05-19 22:45:36.000000000 +0200 +++ files/patch-configure 2010-11-09 10:33:21.000000000 +0100 @@ -1,7 +1,5 @@ -Index: configure -diff -u configure.orig configure ---- configure.orig Fri May 19 04:30:13 2006 -+++ configure Sat May 20 04:04:39 2006 +--- configure.orig 2009-05-07 16:24:25.000000000 +0200 ++++ configure 2010-11-09 10:26:27.000000000 +0100 @@ -1586,6 +1586,7 @@ fi echo "$as_me:$LINENO: result: yes" >&5 @@ -10,7 +8,7 @@ test "$program_prefix" != NONE && program_transform_name="s,^,$program_prefix,;$program_transform_name" # Use a double $ so make ignores it. -@@ -5125,7 +5126,7 @@ +@@ -5147,7 +5148,7 @@ fi saved_LIBS=$LIBS @@ -19,7 +17,7 @@ do LIBS="$saved_LIBS -l$dbname" cat >conftest.$ac_ext <<_ACEOF -@@ -5135,6 +5136,7 @@ +@@ -5157,6 +5158,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @@ -27,7 +25,7 @@ #include <db.h> int main () -@@ -5882,7 +5884,7 @@ +@@ -5904,7 +5906,7 @@ fi saved_LIBS=$LIBS @@ -36,7 +34,7 @@ do LIBS="$saved_LIBS -l$dbname" cat >conftest.$ac_ext <<_ACEOF -@@ -5892,6 +5894,7 @@ +@@ -5914,6 +5916,7 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ @@ -44,7 +42,7 @@ #include <db.h> int main () -@@ -7193,6 +7196,8 @@ +@@ -7215,6 +7218,8 @@ SASLAUTHD_TRUE='#' SASLAUTHD_FALSE= fi @@ -53,7 +51,7 @@ echo "$as_me:$LINENO: checking if I should include saslauthd" >&5 echo $ECHO_N "checking if I should include saslauthd... $ECHO_C" >&6 -@@ -10650,7 +10655,7 @@ +@@ -10672,7 +10677,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS @@ -62,7 +60,7 @@ cat >conftest.$ac_ext <<_ACEOF #line $LINENO "configure" /* confdefs.h. */ -@@ -11060,7 +11065,7 @@ +@@ -11082,7 +11087,7 @@ GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_LIBS $gssapi_dir/libgssapi_krb5.a $gssapi_dir/libkrb5.a $gssapi_dir/libk5crypto.a $gssapi_dir/libcom_err.a ${K5SUPSTATIC}" elif test "$gss_impl" = "heimdal"; then CPPFLAGS="$CPPFLAGS -DKRB5_HEIMDAL" @@ -71,7 +69,25 @@ GSSAPIBASE_STATIC_LIBS="$GSSAPIBASE_STATIC_LIBS $gssapi_dir/libgssapi.a $gssapi_dir/libkrb5.a $gssapi_dir/libasn1.a $gssapi_dir/libroken.a $gssapi_dir/libcom_err.a ${LIB_CRYPT}" elif test "$gss_impl" = "cybersafe03"; then # Version of CyberSafe with two libraries -@@ -11898,7 +11903,7 @@ +@@ -11119,7 +11124,7 @@ + # in gssapi\rfckrb5.h + # + if test "$gssapi" != "no"; then +- if test "$gss_impl" = "cybersafe" -o "$gss_impl" = "cybersafe03"; then ++ if test "$gss_impl" = "cybersafe" -o "$gss_impl" = "cybersafe03" -o "$gss_impl" = "heimdal"; then + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + /* confdefs.h. */ +@@ -11190,7 +11195,7 @@ + + fi + +- if test "$gss_impl" = "cybersafe" -o "$gss_impl" = "cybersafe03"; then ++ if test "$gss_impl" = "cybersafe" -o "$gss_impl" = "cybersafe03" -o "$gss_impl" = "heimdal"; then + cat >conftest.$ac_ext <<_ACEOF + #line $LINENO "configure" + /* confdefs.h. */ +@@ -11920,7 +11925,7 @@ echo $ECHO_N "(cached) $ECHO_C" >&6 else ac_check_lib_save_LIBS=$LIBS --- security__cyrus-sasl2.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201011090955.oA99teIr033325>