$NetBSD: patch-au,v 1.6 2007/02/11 18:39:04 tron Exp $

--- configure.in.orig	2007-02-04 18:59:28.000000000 +0000
+++ configure.in	2007-02-11 16:16:27.000000000 +0000
@@ -24,6 +24,7 @@
 
 rootsbindir="\${SBINDIR}"
 lockdir="\${VARDIR}/locks"
+statedir="\${VARDIR}/locks"
 piddir="\${VARDIR}/locks"
 test "${mandir}" || mandir="\${prefix}/man"
 logfilebase="\${VARDIR}"
@@ -37,7 +38,8 @@
 [  --with-fhs              Use FHS-compliant paths (default=no)],
 [ case "$withval" in
   yes)
-    lockdir="\${VARDIR}/lib/samba"
+    lockdir="\${VARDIR}/run/samba"
+    statedir="\${VARDIR}/lib/samba"
     piddir="\${VARDIR}/run"
     mandir="\${prefix}/share/man"
     logfilebase="\${VARDIR}/log/samba"
@@ -97,6 +99,22 @@
   esac])
 
 #################################################
+# set state directory location
+AC_ARG_WITH(statedir,
+[  --with-statedir=DIR     Where to put state files ($ac_default_prefix/var/locks)],
+[ case "$withval" in
+  yes|no)
+  #
+  # Just in case anybody calls it without argument
+  #
+    AC_MSG_WARN([--with-statedir called without argument - will use default])
+  ;;
+  * )
+    statedir="$withval"
+    ;;
+  esac])
+
+#################################################
 # set pid directory location
 AC_ARG_WITH(piddir,
 [  --with-piddir=DIR       Where to put pid files ($ac_default_prefix/var/locks)],
@@ -229,6 +247,7 @@
 
 AC_SUBST(configdir)
 AC_SUBST(lockdir)
+AC_SUBST(statedir)
 AC_SUBST(piddir)
 AC_SUBST(logfilebase)
 AC_SUBST(privatedir)
@@ -1271,7 +1290,7 @@
 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64)
 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
 AC_CHECK_FUNCS(opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64)
-AC_CHECK_FUNCS(getdents getdents64)
+AC_CHECK_FUNCS(getdents getdents64 getpwent_r)
 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
 AC_CHECK_FUNCS(syslog vsyslog timegm)
 AC_CHECK_FUNCS(setlocale nl_langinfo)
@@ -3420,7 +3439,7 @@
   AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
 
   # Heimdal checks.
-  AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
+  AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, EVP_des_cbc)
   AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
   AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
 
@@ -5287,15 +5306,39 @@
 		NSSSONAMEVERSIONSUFFIX=".2"
 		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
 		;;
-	*freebsd[[5-9]]*)
-		# FreeBSD winbind client is implemented as a wrapper around
-		# the Linux version.
-		NSSSONAMEVERSIONSUFFIX=".1"
-		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
-		    nsswitch/winbind_nss_linux.o"
-		WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
-		WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
+	*freebsd*)
+		case "$UNAME_R" in
+		[5-9]*)
+			# FreeBSD winbind client is implemented as a wrapper
+			# around the Linux version.
+			NSSSONAMEVERSIONSUFFIX=".1"
+			WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
+			    nsswitch/winbind_nss_linux.o"
+			WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
+			WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
+			;;
+		esac
 		;;
+	*netbsd*)
+		case "$UNAME_R" in
+		[3-9]*)
+			# NetBSD winbind client is implemented as a wrapper
+			# around the Linux version. It needs getpwent_r() to
+			# indicate libc's use of the correct nsdispatch API.
+			#
+			if test x"$ac_cv_func_getpwent_r" = x"yes"; then
+				WINBIND_NSS_EXTRA_OBJS=" \
+				    nsswitch/winbind_nss_netbsd.o \
+				    nsswitch/winbind_nss_linux.o"
+				WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
+				WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
+			else
+				HAVE_WINBIND=no
+				winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported"
+			fi
+			;;
+		esac
+  		;;
 	*irix*)
 		# IRIX has differently named shared libraries
 		WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
@@ -5361,6 +5404,11 @@
 
 # Display test results
 
+if test x"$HAVE_WINBIND" = x"no"; then
+	WINBIND_NSS=""
+	WINBIND_WINS_NSS=""
+fi
+
 if test x"$HAVE_WINBIND" = x"yes"; then
         AC_MSG_RESULT(yes)
 	AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
