2000-04-21 06:18:48 +00:00
|
|
|
--- configure.in.orig Wed May 12 04:20:02 1999
|
2000-04-21 06:21:46 +00:00
|
|
|
+++ configure.in Wed Apr 19 01:02:34 2000
|
2000-04-21 06:18:48 +00:00
|
|
|
@@ -30,8 +30,140 @@
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_PROG_CC
|
|
|
|
+AC_PROG_CPP
|
|
|
|
AC_ISC_POSIX
|
|
|
|
|
|
|
|
+AC_MSG_CHECKING([whether to enable ipv6])
|
|
|
|
+AC_ARG_ENABLE(ipv6,
|
|
|
|
+[ --enable-ipv6 Enable ipv6 (with ipv4) support
|
|
|
|
+ --disable-ipv6 Disable ipv6 support],
|
|
|
|
+[ case "$enableval" in
|
|
|
|
+ no)
|
|
|
|
+ AC_MSG_RESULT(no)
|
|
|
|
+ ipv6=no
|
|
|
|
+ ;;
|
|
|
|
+ *) AC_MSG_RESULT(yes)
|
|
|
|
+ AC_DEFINE(ENABLE_IPV6)
|
|
|
|
+ ipv6=yes
|
|
|
|
+ ;;
|
|
|
|
+ esac ],
|
|
|
|
+
|
|
|
|
+ AC_TRY_RUN([ /* AF_INET6 avalable check */
|
|
|
|
+#include <sys/types.h>
|
|
|
|
+#include <sys/socket.h>
|
|
|
|
+main()
|
|
|
|
+{
|
|
|
|
+ if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
2000-01-14 19:37:39 +00:00
|
|
|
+ exit(1);
|
2000-04-21 06:18:48 +00:00
|
|
|
+ else
|
|
|
|
+ exit(0);
|
|
|
|
+}
|
|
|
|
+],
|
|
|
|
+ AC_MSG_RESULT(yes)
|
|
|
|
+ AC_DEFINE(ENABLE_IPV6)
|
|
|
|
+ ipv6=yes,
|
|
|
|
+ AC_MSG_RESULT(no)
|
|
|
|
+ ipv6=no,
|
|
|
|
+ AC_MSG_RESULT(no)
|
|
|
|
+ ipv6=no
|
|
|
|
+))
|
|
|
|
+
|
|
|
|
+ipv6type=unknown
|
|
|
|
+ipv6lib=none
|
|
|
|
+
|
|
|
|
+if test "$ipv6" = "yes"; then
|
|
|
|
+ AC_MSG_CHECKING([ipv6 stack type])
|
|
|
|
+ for i in inria kame linux toshiba v6d zeta; do
|
|
|
|
+ case $i in
|
|
|
|
+ inria)
|
|
|
|
+ dnl http://www.kame.net/
|
|
|
|
+ AC_EGREP_CPP(yes, [dnl
|
|
|
|
+#include <netinet/in.h>
|
|
|
|
+#ifdef IPV6_INRIA_VERSION
|
|
|
|
+yes
|
|
|
|
+#endif],
|
|
|
|
+ [ipv6type=$i;
|
|
|
|
+ CPPFLAGS="-DINET6 $CPPFLAGS"])
|
|
|
|
+ ;;
|
|
|
|
+ kame)
|
|
|
|
+ dnl http://www.kame.net/
|
|
|
|
+ AC_EGREP_CPP(yes, [dnl
|
|
|
|
+#include <netinet/in.h>
|
|
|
|
+#ifdef __KAME__
|
|
|
|
+yes
|
|
|
|
+#endif],
|
|
|
|
+ [ipv6type=$i;
|
|
|
|
+ CPPFLAGS="-DINET6 $CPPFLAGS"])
|
|
|
|
+ ;;
|
|
|
|
+ linux)
|
|
|
|
+ dnl http://www.v6.linux.or.jp/
|
|
|
|
+ if test -d /usr/inet6; then
|
|
|
|
+ ipv6type=$i
|
|
|
|
+ ipv6lib=inet6
|
|
|
|
+ ipv6libdir=/usr/inet6/lib
|
|
|
|
+ CPPFLAGS="-DINET6 -I/usr/inet6/include $CPPFLAGS"
|
|
|
|
+ fi
|
|
|
|
+ ;;
|
|
|
|
+ toshiba)
|
|
|
|
+ AC_EGREP_CPP(yes, [dnl
|
|
|
|
+#include <sys/param.h>
|
|
|
|
+#ifdef _TOSHIBA_INET6
|
|
|
|
+yes
|
|
|
|
+#endif],
|
|
|
|
+ [ipv6type=$i;
|
|
|
|
+ ipv6lib=inet6;
|
|
|
|
+ ipv6libdir=/usr/local/v6/lib;
|
|
|
|
+ CPPFLAGS="-DINET6 $CPPFLAGS"])
|
|
|
|
+ ;;
|
|
|
|
+ v6d)
|
|
|
|
+ AC_EGREP_CPP(yes, [dnl
|
|
|
|
+#include </usr/local/v6/include/sys/v6config.h>
|
|
|
|
+#ifdef __V6D__
|
|
|
|
+yes
|
|
|
|
+#endif],
|
|
|
|
+ [ipv6type=$i;
|
|
|
|
+ ipv6lib=v6;
|
|
|
|
+ ipv6libdir=/usr/local/v6/lib;
|
|
|
|
+ CPPFLAGS="-I/usr/local/v6/include $CPPFLAGS"])
|
|
|
|
+ ;;
|
|
|
|
+ zeta)
|
|
|
|
+ AC_EGREP_CPP(yes, [dnl
|
|
|
|
+#include <sys/param.h>
|
|
|
|
+#ifdef _ZETA_MINAMI_INET6
|
|
|
|
+yes
|
|
|
|
+#endif],
|
|
|
|
+ [ipv6type=$i;
|
|
|
|
+ ipv6lib=inet6;
|
|
|
|
+ ipv6libdir=/usr/local/v6/lib;
|
|
|
|
+ CPPFLAGS="-DINET6 $CPPFLAGS"])
|
|
|
|
+ ;;
|
|
|
|
+ esac
|
|
|
|
+ if test "$ipv6type" != "unknown"; then
|
|
|
|
+ break
|
|
|
|
+ fi
|
|
|
|
+ done
|
|
|
|
+ AC_MSG_RESULT($ipv6type)
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+if test "$ipv6" = "yes" -a -f /usr/local/v6/lib/libinet6.a; then
|
|
|
|
+ ac_inet6_LDFLAGS="inet6"
|
|
|
|
+ ipv6libdir=/usr/local/v6/lib
|
|
|
|
+ LDFLAGS="$LDFLAGS -L/usr/local/v6/lib"
|
|
|
|
+ AC_CHECK_LIB(inet6, getaddrinfo, , ipv6lib="$ac_inet6_LDFLAGS")
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
|
|
|
|
+ if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
|
|
|
|
+ LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
|
|
|
|
+ else
|
|
|
|
+ echo 'Fatal: no $ipv6lib library found. cannot continue.'
|
|
|
|
+ echo "You need to fetch lib$ipv6lib.a from appropriate"
|
|
|
|
+ echo 'ipv6 kit and compile beforehand.'
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
AC_DEFINE_UNQUOTED(HOSTTYPE, "$host")
|
|
|
|
|
|
|
|
case "$host" in
|
|
|
|
@@ -313,7 +445,7 @@
|
|
|
|
|
|
|
|
# Socket pairs appear to be broken on several systems. I don't know exactly
|
|
|
|
# where, so I'll use pipes everywhere for now.
|
|
|
|
-AC_DEFINE(USE_PIPES)
|
|
|
|
+# AC_DEFINE(USE_PIPES)
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([that the compiler works])
|
|
|
|
AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
|
|
|
|
@@ -369,7 +501,7 @@
|
|
|
|
|
|
|
|
AC_HEADER_STDC
|
|
|
|
AC_HEADER_SYS_WAIT
|
|
|
|
-AC_CHECK_HEADERS(unistd.h rusage.h sys/time.h lastlog.h utmp.h shadow.h)
|
|
|
|
+AC_CHECK_HEADERS(unistd.h rusage.h sys/time.h lastlog.h login_cap.h utmp.h shadow.h)
|
|
|
|
AC_CHECK_HEADERS(sgtty.h sys/select.h sys/ioctl.h machine/endian.h)
|
|
|
|
AC_CHECK_HEADERS(paths.h usersec.h utime.h netinet/in_systm.h)
|
|
|
|
AC_CHECK_HEADERS(netinet/in_system.h netinet/ip.h netinet/tcp.h ulimit.h)
|
|
|
|
@@ -399,6 +531,16 @@
|
|
|
|
[ AC_DEFINE(HAVE_INCOMPATIBLE_SIGINFO)
|
|
|
|
AC_MSG_RESULT(yes)] , AC_MSG_RESULT(no))
|
|
|
|
|
|
|
|
+AC_MSG_CHECKING([whether sys/socket.h have struct sockaddr_storage])
|
|
|
|
+AC_EGREP_HEADER(sockaddr_storage, sys/socket.h,
|
|
|
|
+ [ AC_DEFINE(HAVE_SOCKADDR_STORAGE) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
|
|
|
|
+AC_MSG_CHECKING([whether sys/socket.h have __ss_family])
|
|
|
|
+AC_EGREP_HEADER(__ss_family, sys/socket.h,
|
|
|
|
+ [ AC_DEFINE(HAVE_NEW_SS_FAMILY) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
|
|
|
|
+AC_MSG_CHECKING([whether sys/socket.h have sa_len])
|
|
|
|
+AC_EGREP_HEADER(sa_len, sys/socket.h,
|
|
|
|
+ [ AC_DEFINE(HAVE_SOCKADDR_LEN) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
|
|
|
|
+
|
|
|
|
AC_CHECK_LIB(c, crypt, [true], AC_CHECK_LIB(crypt, crypt))
|
|
|
|
AC_CHECK_LIB(sec, getspnam)
|
|
|
|
AC_CHECK_LIB(seq, get_process_stats)
|
|
|
|
@@ -436,6 +578,107 @@
|
|
|
|
|
|
|
|
AC_REPLACE_FUNCS(strerror memmove remove random putenv crypt socketpair snprintf)
|
|
|
|
|
|
|
|
+AC_MSG_CHECKING(getaddrinfo bug)
|
|
|
|
+AC_TRY_RUN([
|
|
|
|
+#include <sys/types.h>
|
|
|
|
+#include <netdb.h>
|
|
|
|
+#include <string.h>
|
|
|
|
+#include <sys/socket.h>
|
|
|
|
+#include <netinet/in.h>
|
|
|
|
+
|
|
|
|
+main()
|
|
|
|
+{
|
|
|
|
+ int passive, gaierr, inet4 = 0, inet6 = 0;
|
|
|
|
+ struct addrinfo hints, *ai, *aitop;
|
|
|
|
+ char straddr[INET6_ADDRSTRLEN], strport[16];
|
|
|
|
+
|
|
|
|
+ for (passive = 0; passive <= 1; passive++) {
|
|
|
|
+ memset(&hints, 0, sizeof(hints));
|
|
|
|
+ hints.ai_family = AF_UNSPEC;
|
|
|
|
+ hints.ai_flags = passive ? AI_PASSIVE : 0;
|
|
|
|
+ hints.ai_socktype = SOCK_STREAM;
|
|
|
|
+ if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
|
|
|
|
+ (void)gai_strerror(gaierr);
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ for (ai = aitop; ai; ai = ai->ai_next) {
|
|
|
|
+ if (ai->ai_addr == NULL ||
|
|
|
|
+ ai->ai_addrlen == 0 ||
|
|
|
|
+ getnameinfo(ai->ai_addr, ai->ai_addrlen,
|
|
|
|
+ straddr, sizeof(straddr), strport, sizeof(strport),
|
|
|
|
+ NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ if (strcmp(strport, "54321") != 0) {
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ switch (ai->ai_family) {
|
|
|
|
+ case AF_INET:
|
|
|
|
+ if (passive) {
|
|
|
|
+ if (strcmp(straddr, "0.0.0.0") != 0) {
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (strcmp(straddr, "127.0.0.1") != 0) {
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ inet4++;
|
|
|
|
+ break;
|
|
|
|
+ case AF_INET6:
|
|
|
|
+ if (passive) {
|
|
|
|
+ if (strcmp(straddr, "::") != 0) {
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ if (strcmp(straddr, "::1") != 0) {
|
|
|
|
+ goto bad;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ inet6++;
|
|
|
|
+ break;
|
|
|
|
+ case AF_UNSPEC:
|
|
|
|
+ goto bad;
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ /* another family support? */
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (!(inet4 == 0 || inet4 == 2))
|
|
|
|
+ goto bad;
|
|
|
|
+ if (!(inet6 == 0 || inet6 == 2))
|
|
|
|
+ goto bad;
|
|
|
|
+
|
|
|
|
+ if (aitop)
|
|
|
|
+ freeaddrinfo(aitop);
|
|
|
|
+ exit(0);
|
|
|
|
+
|
|
|
|
+ bad:
|
|
|
|
+ if (aitop)
|
|
|
|
+ freeaddrinfo(aitop);
|
|
|
|
+ exit(1);
|
|
|
|
+}
|
|
|
|
+],
|
|
|
|
+AC_MSG_RESULT(good)
|
|
|
|
+buggygetaddrinfo=no,
|
|
|
|
+AC_MSG_RESULT(buggy)
|
|
|
|
+buggygetaddrinfo=yes,
|
|
|
|
+AC_MSG_RESULT(buggy)
|
|
|
|
+buggygetaddrinfo=yes)
|
|
|
|
+
|
|
|
|
+if test "$buggygetaddrinfo" = "yes"; then
|
|
|
|
+ if test "$ipv6" = "yes"; then
|
|
|
|
+ echo 'Fatal: You must get working getaddrinfo() function.'
|
|
|
|
+ echo ' or you can specify "--disable-ipv6"'.
|
|
|
|
+ exit 1
|
|
|
|
+ else
|
|
|
|
+ AC_REPLACE_FUNCS(getaddrinfo getnameinfo)
|
|
|
|
+ fi
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
AC_PROG_LN_S
|
|
|
|
AC_PROG_INSTALL
|
|
|
|
AC_CHECK_PROG(AR, ar, ar, echo)
|
|
|
|
@@ -932,7 +1175,11 @@
|
|
|
|
AC_DEFINE(KRB5)
|
|
|
|
KERBEROS_ROOT="$with_kerberos5"
|
|
|
|
KERBEROS_INCS="-I${KERBEROS_ROOT}/include"
|
|
|
|
- KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
|
2000-04-21 06:21:46 +00:00
|
|
|
+ if test -f ${KERBEROS_ROOT}/lib/libk5crypto.a ; then
|
2000-04-21 06:18:48 +00:00
|
|
|
+ KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
|
|
|
|
+ else
|
|
|
|
+ KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
|
|
|
|
+ fi
|
|
|
|
AC_CHECK_LIB(ndbm, dbm_open, KERBEROS_LIBS="$KERBEROS_LIBS -lndbm")
|
|
|
|
KERBEROS_OBJS="auth-kerberos.o"
|
|
|
|
;;
|
|
|
|
@@ -1123,6 +1370,7 @@
|
|
|
|
AC_DEFINE(Rdup2,SOCKSdup2)
|
|
|
|
AC_DEFINE(Rfclose,SOCKSfclose)
|
|
|
|
AC_DEFINE(Rgethostbyname,SOCKSgethostbyname)
|
|
|
|
+ AC_DEFINE(Rgetaddrinfo,SOCKSgetaddrinfo)
|
|
|
|
fi
|
|
|
|
|
|
|
|
AC_MSG_CHECKING(whether to use rsaref)
|
|
|
|
@@ -1252,6 +1500,38 @@
|
|
|
|
AC_DEFINE(ENABLE_TCP_NODELAY)
|
|
|
|
)
|
|
|
|
|
|
|
|
+AC_MSG_CHECKING(whether to enable another port try support)
|
|
|
|
+AC_ARG_ENABLE(another-port-try,
|
|
|
|
+[ --enable-another-port-try Enable another port try support (default)
|
|
|
|
+ --disable-another-port-try Disable another port try support],
|
|
|
|
+[ case "$enableval" in
|
|
|
|
+ no)
|
|
|
|
+ AC_MSG_RESULT(no)
|
|
|
|
+ ;;
|
|
|
|
+ *) AC_MSG_RESULT(yes)
|
|
|
|
+ AC_DEFINE(ENABLE_ANOTHER_PORT_TRY)
|
|
|
|
+ ;;
|
|
|
|
+ esac ],
|
|
|
|
+ AC_MSG_RESULT(yes)
|
|
|
|
+ AC_DEFINE(ENABLE_ANOTHER_PORT_TRY)
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+AC_MSG_CHECKING(whether to enable logging auth info support)
|
|
|
|
+AC_ARG_ENABLE(log-auth,
|
|
|
|
+[ --enable-log-auth Enable logging auth info support (default)
|
|
|
|
+ --disable-log-auth Disable logging auth info support],
|
|
|
|
+[ case "$enableval" in
|
|
|
|
+ no)
|
|
|
|
+ AC_MSG_RESULT(no)
|
|
|
|
+ ;;
|
|
|
|
+ *) AC_MSG_RESULT(yes)
|
|
|
|
+ AC_DEFINE(ENABLE_LOG_AUTH)
|
|
|
|
+ ;;
|
|
|
|
+ esac ],
|
|
|
|
+ AC_MSG_RESULT(yes)
|
|
|
|
+ AC_DEFINE(ENABLE_LOG_AUTH)
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
AC_MSG_CHECKING(whether to enable SO_LINGER)
|
|
|
|
AC_ARG_ENABLE(so-linger,
|
|
|
|
[ --enable-so-linger Enable setting SO_LINGER socket option],
|
|
|
|
@@ -1311,6 +1591,8 @@
|
|
|
|
AC_DEFINE(SCP_ALL_STATISTICS_ENABLED)
|
|
|
|
)
|
|
|
|
|
|
|
|
+CFLAGS="$CPPFLAGS $CFLAGS"
|
|
|
|
+
|
|
|
|
# We include this here only to make it visible in --help; this is only used
|
|
|
|
# in the gmp subdirectory.
|
|
|
|
AC_ARG_ENABLE(asm,
|
|
|
|
@@ -1324,7 +1606,7 @@
|
|
|
|
fi
|
|
|
|
AC_MSG_RESULT($PIDDIR)
|
|
|
|
|
|
|
|
-AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2)
|
|
|
|
+#AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2)
|
|
|
|
|
|
|
|
AC_ARG_PROGRAM
|
|
|
|
|
|
|
|
@@ -1336,4 +1618,4 @@
|
|
|
|
AC_SUBST(SSHDCONFOBJS)
|
|
|
|
AC_SUBST(SSHINSTALLMODE)
|
|
|
|
|
|
|
|
-AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 zlib-1.0.4/Makefile)
|
|
|
|
+AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 make-ssh-known-hosts.pl)
|