1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-04 22:33:27 +00:00
freebsd-ports/security/ssh/files/patch-be
Torsten Blum 62e8b86072 Checfor OSVERSION _or_ USE_INET6 when deciding if IPv6 support should
be added. This is done to support the build on pre 4.0 machines with
the KAME IPv6 stack installed. It has been verified to build+work
with both 4.0 and 3.4+kame.

Org. patch Submitted By: Munechika SUMIKAWA <sumikawa@ebina.hitachi.co.jp>
2000-02-12 19:27:40 +00:00

408 lines
10 KiB
Plaintext

*** 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 <sys/types.h>
+ #include <sys/socket.h>
+ 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 <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,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 <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 (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)