*** configure.in.orig Wed May 12 13:20:02 1999 --- configure.in Sat Feb 12 15:32:11 2000 *************** *** 30,37 **** --- 30,169 ---- 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 + #include + main() + { + if (socket(AF_INET6, SOCK_STREAM, 0) < 0) + exit(1); + 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 + #ifdef IPV6_INRIA_VERSION + yes + #endif], + [ipv6type=$i; + CPPFLAGS="-DINET6 $CPPFLAGS"]) + ;; + kame) + dnl http://www.kame.net/ + AC_EGREP_CPP(yes, [dnl + #include + #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 + #ifdef _TOSHIBA_INET6 + yes + #endif], + [ipv6type=$i; + ipv6lib=inet6; + ipv6libdir=/usr/local/v6/lib; + CPPFLAGS="-DINET6 $CPPFLAGS"]) + ;; + v6d) + AC_EGREP_CPP(yes, [dnl + #include + #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 + #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,319 **** # 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_MSG_CHECKING([that the compiler works]) AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], --- 445,451 ---- # 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_MSG_CHECKING([that the compiler works]) AC_TRY_RUN([ main(int ac, char **av) { return 0; } ], *************** *** 369,375 **** 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(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) --- 501,507 ---- AC_HEADER_STDC AC_HEADER_SYS_WAIT ! 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,404 **** --- 531,546 ---- [ 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,441 **** --- 578,682 ---- AC_REPLACE_FUNCS(strerror memmove remove random putenv crypt socketpair snprintf) + AC_MSG_CHECKING(getaddrinfo bug) + AC_TRY_RUN([ + #include + #include + #include + #include + #include + + 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 (inet6 != 2 || inet4 != 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,938 **** 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" AC_CHECK_LIB(ndbm, dbm_open, KERBEROS_LIBS="$KERBEROS_LIBS -lndbm") KERBEROS_OBJS="auth-kerberos.o" ;; --- 1173,1183 ---- AC_DEFINE(KRB5) KERBEROS_ROOT="$with_kerberos5" KERBEROS_INCS="-I${KERBEROS_ROOT}/include" ! if [ -f ${KERBEROS_ROOT}/lib/libk5crypto.a ]; then ! 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" ;; *************** *** 1252,1257 **** --- 1497,1534 ---- 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,1316 **** --- 1588,1595 ---- 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,1330 **** fi AC_MSG_RESULT($PIDDIR) ! AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2) AC_ARG_PROGRAM --- 1603,1609 ---- fi AC_MSG_RESULT($PIDDIR) ! #AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2) AC_ARG_PROGRAM *************** *** 1336,1339 **** AC_SUBST(SSHDCONFOBJS) AC_SUBST(SSHINSTALLMODE) ! AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 zlib-1.0.4/Makefile) --- 1615,1618 ---- AC_SUBST(SSHDCONFOBJS) AC_SUBST(SSHINSTALLMODE) ! AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 make-ssh-known-hosts.pl)