[PATCH v2 1/3] Support finding Kerberos via pkg-config

list at johnericson.me list at johnericson.me
Wed Jul 7 00:10:33 AEST 2021


From: John Ericson <git at JohnEricson.me>

This makes cross compilation easier.

N.B. the code that is now in the `else` branch should be indented a
level, but this is not done as it made the diff very hard to read. The
indentation will be fixed in a subsequent commit.
---
 configure.ac | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/configure.ac b/configure.ac
index 3a14c2a7..a79be815 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4580,6 +4580,44 @@ AC_ARG_WITH([kerberos5],
 		AC_DEFINE([KRB5], [1], [Define if you want Kerberos 5 support])
 		KRB5_MSG="yes"
 
+		AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no])
+		use_pkgconfig_for_krb5=
+		if test "x$PKGCONFIG" != "xno"; then
+			AC_MSG_CHECKING([if $PKGCONFIG knows about kerberos5])
+			if "$PKGCONFIG" krb5; then
+				AC_MSG_RESULT([yes])
+				use_pkgconfig_for_krb5=yes
+			else
+				AC_MSG_RESULT([no])
+			fi
+		fi
+		if test "x$use_pkgconfig_for_krb5" = "xyes"; then
+			K5CFLAGS=`$PKGCONFIG --cflags krb5`
+			K5LIBS=`$PKGCONFIG --libs krb5`
+			CPPFLAGS="$CPPFLAGS $K5CFLAGS"
+
+			AC_MSG_CHECKING([for gssapi support])
+			if "$PKGCONFIG" krb5-gssapi; then
+				AC_MSG_RESULT([yes])
+				AC_DEFINE([GSSAPI], [1],
+					[Define this if you want GSSAPI
+					support in the version 2 protocol])
+				GSSCFLAGS="`$PKGCONFIG --cflags krb5-gssapi`"
+				GSSLIBS="`$PKGCONFIG --libs krb5-gssapi`"
+				CPPFLAGS="$CPPFLAGS $GSSCFLAGS"
+			else
+				AC_MSG_RESULT([no])
+			fi
+			AC_MSG_CHECKING([whether we are using Heimdal])
+			AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include <krb5.h>
+				]], [[ char *tmp = heimdal_version; ]])],
+				[ AC_MSG_RESULT([yes])
+				AC_DEFINE([HEIMDAL], [1],
+				[Define this if you are using the Heimdal
+				version of Kerberos V5]) ],
+				[AC_MSG_RESULT([no])
+			])
+		else
 		AC_PATH_TOOL([KRB5CONF], [krb5-config],
 			     [$KRB5ROOT/bin/krb5-config],
 			     [$KRB5ROOT/bin:$PATH])
@@ -4655,6 +4693,7 @@ AC_ARG_WITH([kerberos5],
 			AC_CHECK_HEADER([gssapi_krb5.h], ,
 					[ CPPFLAGS="$oldCPP" ])
 
+		fi
 		fi
 		if test -n "${rpath_opt}" ; then
 			LDFLAGS="$LDFLAGS ${rpath_opt}${KRB5ROOT}/lib"
-- 
2.31.1



More information about the openssh-unix-dev mailing list