Subject: krb5-config
To: None <tech-pkg@netbsd.org>
From: Mark Davies <mark@mcs.vuw.ac.nz>
List: tech-pkg
Date: 01/20/2006 16:13:34
Many configure scripts, when testing for kerberos/gssapi support, try to run 
"krb5-config" and often don't fall back to trying to find libraries/headers 
themselves (or do it in way that doesn't work on some platforms).  This isn't 
a problem when using the heimdal or mit-krb5 packages as they both provide a 
"krb5-config" but the NetBSD built-in heimdal doesn't so below are patches to 
create one for the built to use if we are using built-in and it doesn't 
already exist.

Comments?

cheers
mark

Index: builtin.mk
===================================================================
RCS file: /src/cvs/netbsd/pkgsrc/security/heimdal/builtin.mk,v
retrieving revision 1.6
diff -u -r1.6 builtin.mk
--- builtin.mk	26 Oct 2005 15:12:45 -0000	1.6
+++ builtin.mk	10 Jan 2006 01:19:25 -0000
@@ -104,4 +104,16 @@
 MAKE_ENV+=	KRB5_CONFIG=${KRB5_CONFIG:Q}
 .  endif
 
+.  if !empty(USE_BUILTIN.heimdal:M[yY][eE][sS]) && !exists(${SH_KRB5_CONFIG})
+BUILDLINK_TARGETS+=	fake-krb5-config
+
+fake-krb5-config:
+	${_PKG_SILENT}${_PKG_DEBUG} \
+	src=../../security/heimdal/files/krb5-config \
+        dst=${BUILDLINK_DIR}/bin/krb5-config; \
+	${SED} -e s/@HEIMDAL_VERSION@/${BUILTIN_VERSION.heimdal}/ \
+	    $${src} >$${dst}; \
+	${CHMOD} a+x $${dst}
+.  endif
+
 .endif	# CHECK_BUILTIN.heimdal
--- /dev/null	2006-01-20 15:03:46.000000000 +1300
+++ files/krb5-config	2006-01-10 14:19:06.000000000 +1300
@@ -0,0 +1,106 @@
+#!/bin/sh
+# $Heimdal: krb5-config.in,v 1.9 2002/09/09 22:29:06 joda Exp $
+
+do_libs=no
+do_cflags=no
+do_usage=no
+print_prefix=no
+print_exec_prefix=no
+library=krb5
+
+if test $# -eq 0; then
+  do_usage=yes
+  usage_exit=1
+fi
+
+for i in $*; do
+  case $i in
+  --help)
+    do_usage=yes
+    usage_exit=0
+    ;;
+  --version)
+    echo "heimdal @HEIMDAL_VERSION@"
+    exit 0
+    ;;
+  --prefix=*)
+    prefix=`echo $i | sed 's/^--prefix=//'`
+    ;;
+  --prefix)
+    print_prefix=yes
+    ;;
+  --exec-prefix=*)
+    exec_prefix=`echo $i | sed 's/^--exec-prefix=//'`
+    ;;
+  --exec-prefix)
+    print_exec_prefix=yes
+    ;;
+  --libs)
+    do_libs=yes
+    ;;
+  --cflags)
+    do_cflags=yes
+    ;;
+  krb5)
+    library=krb5
+    ;;
+  gssapi)
+    library=gssapi
+    ;;
+  kadm-client)
+    library=kadm-client
+    ;;
+  kadm-server)
+    library=kadm-server
+    ;;
+  *)
+    echo "unknown option: $i"
+    exit 1
+    ;;
+  esac
+done
+
+if test "$do_usage" = "yes"; then
+    echo "usage: $0 [options] [libraries]"
+    echo "options: [--prefix[=dir]] [--exec-prefix[=dir]] [--libs] 
[--cflags]"
+    echo "libraries: krb5 gssapi kadm-client kadm-server"
+    exit $usage_exit
+fi
+
+if test "$prefix" = ""; then
+  prefix=/usr
+fi
+if test "$exec_prefix" = ""; then
+  exec_prefix=/usr
+fi
+
+if test "$print_prefix" = "yes"; then
+    echo $prefix
+fi
+
+if test "$print_exec_prefix" = "yes"; then
+    echo $exec_prefix
+fi
+
+if test "$do_libs" = "yes"; then
+    lib_flags="-L/usr/lib"
+    case $library in
+    gssapi)
+	lib_flags="$lib_flags -lgssapi"
+	;;
+    kadm-client)
+	lib_flags="$lib_flags -lkadm5clnt"
+	;;
+    kadm-server)
+	lib_flags="$lib_flags -lkadm5srv"
+	;;
+    esac
+    lib_flags="$lib_flags -lkrb5 -lasn1 -ldes -lroken"
+    lib_flags="$lib_flags -lcrypto -lcom_err"
+    echo $lib_flags
+fi
+if test "$do_cflags" = "yes"; then
+    echo "-I/usr/include/gssapi -I/usr/include/krb5"
+fi
+
+exit 0