{"thread":{"id":"5131","subject":"[PATCH 4/5] autoconf: Double check for IPv6 support","startedAt":"2006-08-04T21:28:11Z","lastAt":"2006-08-04T21:43:59Z","messageCount":6,"participants":["Jakub Narebski"],"isPatch":true,"patchVersion":1,"patchTotal":5},"messages":[{"id":"24756","messageId":"200608042328.12607.jnareb@gmail.com","threadId":"5131","inReplyTo":"200608042333.19011.jnareb@gmail.com","subject":"[PATCH 2/5] autoconf: Set NEEDS_LIBICONV unconditionally if there is no iconv in libc","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-04T21:28:11Z","receivedAt":"2006-08-04T21:28:11Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Signed-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n configure.ac |    3 +--\n 1 files changed, 1 insertions(+), 2 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 5926f3c..61c9fa3 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -172,8 +172,7 @@ AC_CHECK_LIB([expat], [XML_ParserCreate]\n #\n # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).\n AC_CHECK_LIB([c], [iconv],[],\n-[AC_CHECK_LIB([iconv],[iconv],\n- [GIT_CONF_APPEND_LINE(NEEDS_LIBICONV=YesPlease)],[])])\n+[GIT_CONF_APPEND_LINE(NEEDS_LIBICONV=YesPlease)])\n #\n # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,\n # Patrick Mauritz).\n-- \n1.4.1.1\n"},{"id":"24759","messageId":"200608042328.58539.jnareb@gmail.com","threadId":"5131","inReplyTo":"200608042333.19011.jnareb@gmail.com","subject":"[PATCH 3/5] autoconf: Fix NEEDS_SSL_WITH_CRYPTO detection","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-04T21:28:58Z","receivedAt":"2006-08-04T21:28:58Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":">From 7829f2f76c429594602d845168841d378d269fba Mon Sep 17 00:00:00 2001\nFrom: Junio C Hamano <junkio@cox.net>\nDate: Fri, 4 Aug 2006 13:06:33 -0700\nSubject: [PATCH 3/5] autoconf: Fix NEEDS_SSL_WITH_CRYPTO detection\n\nNEEDS_SSL_WITH_CRYPTO means you cannot just say \"-lcrypto\" to\nuse SHA1 stuff, but need to say \"-lcrypto -lssl\", so the test\nshould say \"if we can get away with -lcrypto, we are happy,\notherwise if we need -lssl, then say NEEDS_SSL_WITH_CRYPTO,\notherwise we cannot use OpenSSL so say NO_OPENSSL\", or something\nlike that.\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n configure.ac |    4 ++--\n 1 files changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 61c9fa3..a49bd1f 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -154,8 +154,8 @@ AC_MSG_NOTICE([CHECKS for libraries])\n #\n # Define NO_OPENSSL environment variable if you do not have OpenSSL.\n # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).\n-AC_CHECK_LIB([ssl], [SHA1_Init],[],\n-[AC_CHECK_LIB([crypto], [SHA1_Init],\n+AC_CHECK_LIB([crypto], [SHA1_Init],[],\n+[AC_CHECK_LIB([ssl], [SHA1_Init],\n  [GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=YesPlease)],\n  [GIT_CONF_APPEND_LINE(NO_OPENSSL=YesPlease)])])\n #\n-- \n1.4.1.1\n"},{"id":"24758","messageId":"200608042329.29254.jnareb@gmail.com","threadId":"5131","inReplyTo":"200608042333.19011.jnareb@gmail.com","subject":"[PATCH 1/5] autoconf: typofix to detect SHA1_Init in -lcrypto","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-04T21:29:28Z","receivedAt":"2006-08-04T21:29:28Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":">From 15951e524df655d12b2bc42b1cf0a4be39fc3278 Mon Sep 17 00:00:00 2001\nFrom: Junio C Hamano <junkio@cox.net>\nDate: Fri, 4 Aug 2006 22:17:35 +0200\nSubject: [PATCH 1/5] autoconf: typofix to detect SHA1_Init in -lcrypto\n\nSigned-off-by: Junio C Hamano <junkio@cox.net>\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n configure.ac |    2 +-\n 1 files changed, 1 insertions(+), 1 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 76bfa9d..5926f3c 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -155,7 +155,7 @@ #\n # Define NO_OPENSSL environment variable if you do not have OpenSSL.\n # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl \n(Darwin).\n AC_CHECK_LIB([ssl], [SHA1_Init],[],\n-[AC_CHECK_LIB([crypto], [SHA1_INIT],\n+[AC_CHECK_LIB([crypto], [SHA1_Init],\n  [GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=YesPlease)],\n  [GIT_CONF_APPEND_LINE(NO_OPENSSL=YesPlease)])])\n #\n-- \n1.4.1.1\n"},{"id":"24755","messageId":"200608042330.57413.jnareb@gmail.com","threadId":"5131","inReplyTo":"200608042333.19011.jnareb@gmail.com","subject":"[PATCH 4/5] autoconf: Double check for IPv6 support","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-04T21:30:56Z","receivedAt":"2006-08-04T21:30:56Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Check for IPv6 support, first by checking if \"struct addrinfo\" exists,\nthen by checking if there is getaddrinfo() in standard libraries.\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n configure.ac |   13 +++++++++++--\n 1 files changed, 11 insertions(+), 2 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex a49bd1f..6557bd2 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -204,6 +204,13 @@ AC_CHECK_TYPE(struct sockaddr_storage,[]\n [GIT_CONF_APPEND_LINE(NO_SOCKADDR_STORAGE=YesPlease)],\n [#include <netinet/in.h>])\n #\n+# Define NO_IPV6 if you lack IPv6 support and getaddrinfo().\n+AC_CHECK_TYPE(struct addrinfo,[],\n+[GIT_CONF_APPEND_LINE(NO_IPV6=YesPlease)],\n+[#include <sys/types.h>\n+#include <sys/socket.h>\n+#include <netdb.h>])\n+#\n # Define NO_C99_FORMAT if your formatted IO functions (printf/scanf et.al.)\n # do not support the 'size specifiers' introduced by C99, namely ll, hh,\n # j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t).\n@@ -242,14 +249,16 @@ # Define NO_SETENV if you don't have set\n AC_CHECK_FUNC(setenv,[],\n [GIT_CONF_APPEND_LINE(NO_SETENV=YesPlease)])\n #\n+# Define NO_IPV6 if you lack IPv6 support and getaddrinfo().\n+AC_CHECK_FUNC(getaddrinfo,[],\n+[GIT_CONF_APPEND_LINE(NO_IPV6=YesPlease)])\n+#\n # Define NO_MMAP if you want to avoid mmap.\n AC_FUNC_MMAP\n if test $ac_cv_func_mmap_fixed_mapped != yes; then\n \tGIT_CONF_APPEND_LINE(NO_MMAP=YesPlease)\n fi\n #\n-# Define NO_IPV6 if you lack IPv6 support and getaddrinfo().\n-#\n # Define NO_ICONV if your libc does not properly support iconv.\n \n \n-- \n1.4.1.1\n"},{"id":"24757","messageId":"200608042333.19011.jnareb@gmail.com","threadId":"5131","inReplyTo":null,"subject":"[PATCH 0/5] autoconf: Fixes and improvements (was: What's in git.git)","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-04T21:33:18Z","receivedAt":"2006-08-04T21:33:18Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"Junio C Hamano wrote:\n\n> (1) configure misdetects NO_OPENSSL.  The relevant parts are:\n>\n>         checking for SHA1_Init in -lssl... no\n>         checking for SHA1_INIT in -lcrypto... no\n>\n>     but I've been building git on Cygwin without NO_OPENSSL (eh,\n>     that's double negation -- what I mean is I've been building\n>     git with -lssl just fine).  I think the function to check in\n>     -lcrypto should be SHA1_Init, not SHA1_INIT (trivial patch\n>     attached at the end).\n\nShould be corrected by patches 1 and 3 by Junio C Hamano.\nI had just not understood meaning of NEEDS_SSL_WITH_CRYPTO \nvariable.\n\n> (2) NO_STRLCPY is detected to be available by configure.  I\n>     think we should update the default in Makefile.\n\nNot adressed.\n\n> (3) NEEDS_LIBICONV is found to be unnecessary by configure, but\n>     the link fails like this without it:\n>\n>         builtin-mailinfo.o: In function `convert_to_utf8':\n>         /git/builtin-mailinfo.c:539: undefined reference to\n> `_libiconv_open' /git/builtin-mailinfo.c:560: undefined reference to\n> `_libiconv' /git/builtin-mailinfo.c:561: undefined reference to\n> `_libiconv_close' collect2: ld returned 1 exit status\n\nCheck if patch 2 corrects this error. Patch 5 does the same as patch 2 \nfor NEEDS_SOCKET due to cleanup during making this change.\n\n> (4) NO_IPV6 is not detected yet -- you should be able to detect\n>     this by checking for \"struct addrinfo\".  The compilation\n>     fails like this on Cygwin:\n>\n>         connect.c: In function `git_tcp_connect_sock':\n>         connect.c:361: error: storage size of 'hints' isn't known\n\nPatch 4 adresses this. Perhas one of the checks can be dropped (leaving \neasier or faster one).\n\n> (Z) When configure detects some NO_XXX is unneeded, currently\n>     there is no way for generated config.mak.autogen to override\n>     the default set in Makefile.  For example, NO_STRLCPY is set\n>     by Makefile, and the included config.mak.autogen does not\n>     say anything about it even though it knows strlcpy is\n>     usable.  It might be better to explicitly undef unneeded\n>     NO_XXX in config.mak.autogen?\n\nPatch 5 tries to address this. Additionally it can be easily seen what \nwas detested... but it is somewhat harder to see which variables are \nset among unset ones.\n\n-- \nJakub Narebski\nPoland\n"},{"id":"24760","messageId":"200608042343.59450.jnareb@gmail.com","threadId":"5131","inReplyTo":"200608042333.19011.jnareb@gmail.com","subject":"[PATCH 5/5] autoconf: Unset NO_STH and NEED_STH when it is detected not needed","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-08-04T21:43:59Z","receivedAt":"2006-08-04T21:43:59Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"When configure detects some NO_XXX or NEEDS_XXX is unneeded, unset\nthis variable (actually set it to empty string).  This allow\nautodetection to override the default set in Makefile.\n\nSuggested-by: Junio C Hamano <junkio@cox.net>\n\nSigned-off-by: Jakub Narebski <jnareb@gmail.com>\n---\n configure.ac |   49 +++++++++++++++++++++++++++++++++----------------\n 1 files changed, 33 insertions(+), 16 deletions(-)\n\ndiff --git a/configure.ac b/configure.ac\nindex 6557bd2..74984e1 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -154,31 +154,36 @@ AC_MSG_NOTICE([CHECKS for libraries])\n #\n # Define NO_OPENSSL environment variable if you do not have OpenSSL.\n # Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).\n-AC_CHECK_LIB([crypto], [SHA1_Init],[],\n+AC_CHECK_LIB([crypto], [SHA1_Init],\n+[GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=)],\n [AC_CHECK_LIB([ssl], [SHA1_Init],\n- [GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=YesPlease)],\n+ [GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=YesPlease)\n+  GIT_CONF_APPEND_LINE(NEEDS_SSL_WITH_CRYPTO=)],\n  [GIT_CONF_APPEND_LINE(NO_OPENSSL=YesPlease)])])\n #\n # Define NO_CURL if you do not have curl installed.  git-http-pull and\n # git-http-push are not built, and you cannot use http:// and https://\n # transports.\n-AC_CHECK_LIB([curl], [curl_global_init],[],\n+AC_CHECK_LIB([curl], [curl_global_init],\n+[GIT_CONF_APPEND_LINE(NO_CURL=)],\n [GIT_CONF_APPEND_LINE(NO_CURL=YesPlease)])\n #\n # Define NO_EXPAT if you do not have expat installed.  git-http-push is\n # not built, and you cannot push using http:// and https:// transports.\n-AC_CHECK_LIB([expat], [XML_ParserCreate],[],\n+AC_CHECK_LIB([expat], [XML_ParserCreate],\n+[GIT_CONF_APPEND_LINE(NO_EXPAT=)],\n [GIT_CONF_APPEND_LINE(NO_EXPAT=YesPlease)])\n #\n # Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).\n-AC_CHECK_LIB([c], [iconv],[],\n+AC_CHECK_LIB([c], [iconv],\n+[GIT_CONF_APPEND_LINE(NEEDS_LIBICONV=)],\n [GIT_CONF_APPEND_LINE(NEEDS_LIBICONV=YesPlease)])\n #\n # Define NEEDS_SOCKET if linking with libc is not enough (SunOS,\n # Patrick Mauritz).\n-AC_CHECK_LIB([c], [socket],[],\n-[AC_CHECK_LIB([socket],[socket],\n- [GIT_CONF_APPEND_LINE(NEEDS_SOCKET=YesPlease)],[])])\n+AC_CHECK_LIB([c], [socket],\n+[GIT_CONF_APPEND_LINE(NEEDS_SOCKET=)],\n+[GIT_CONF_APPEND_LINE(NEEDS_SOCKET=YesPlease)])\n \n \n ## Checks for header files.\n@@ -188,24 +193,28 @@ ## Checks for typedefs, structures, and \n AC_MSG_NOTICE([CHECKS for typedefs, structures, and compiler characteristics])\n #\n # Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent.\n-AC_CHECK_MEMBER(struct dirent.d_ino,[],\n+AC_CHECK_MEMBER(struct dirent.d_ino,\n+[GIT_CONF_APPEND_LINE(NO_D_INO_IN_DIRENT=)],\n [GIT_CONF_APPEND_LINE(NO_D_INO_IN_DIRENT=YesPlease)],\n [#include <dirent.h>])\n #\n # Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks\n # d_type in struct dirent (latest Cygwin -- will be fixed soonish).\n-AC_CHECK_MEMBER(struct dirent.d_type,[],\n+AC_CHECK_MEMBER(struct dirent.d_type,\n+[GIT_CONF_APPEND_LINE(NO_D_TYPE_IN_DIRENT=)],\n [GIT_CONF_APPEND_LINE(NO_D_TYPE_IN_DIRENT=YesPlease)],\n [#include <dirent.h>])\n #\n # Define NO_SOCKADDR_STORAGE if your platform does not have struct\n # sockaddr_storage.\n-AC_CHECK_TYPE(struct sockaddr_storage,[],\n+AC_CHECK_TYPE(struct sockaddr_storage,\n+[GIT_CONF_APPEND_LINE(NO_SOCKADDR_STORAGE=)],\n [GIT_CONF_APPEND_LINE(NO_SOCKADDR_STORAGE=YesPlease)],\n [#include <netinet/in.h>])\n #\n # Define NO_IPV6 if you lack IPv6 support and getaddrinfo().\n-AC_CHECK_TYPE(struct addrinfo,[],\n+AC_CHECK_TYPE(struct addrinfo,\n+[GIT_CONF_APPEND_LINE(NO_IPV6=)],\n [GIT_CONF_APPEND_LINE(NO_IPV6=YesPlease)],\n [#include <sys/types.h>\n #include <sys/socket.h>\n@@ -230,6 +239,8 @@ AC_RUN_IFELSE(\n ])\n if test $ac_cv_c_c99_format = no; then\n \tGIT_CONF_APPEND_LINE(NO_C99_FORMAT=YesPlease)\n+else\n+\tGIT_CONF_APPEND_LINE(NO_C99_FORMAT=)\n fi\n \n \n@@ -238,25 +249,31 @@ ## (in default C library and libraries c\n AC_MSG_NOTICE([CHECKS for library functions])\n #\n # Define NO_STRCASESTR if you don't have strcasestr.\n-AC_CHECK_FUNC(strcasestr,[],\n+AC_CHECK_FUNC(strcasestr,\n+[GIT_CONF_APPEND_LINE(NO_STRCASESTR=)],\n [GIT_CONF_APPEND_LINE(NO_STRCASESTR=YesPlease)])\n #\n # Define NO_STRLCPY if you don't have strlcpy.\n-AC_CHECK_FUNC(strlcpy,[],\n+AC_CHECK_FUNC(strlcpy,\n+[GIT_CONF_APPEND_LINE(NO_STRLCPY=)],\n [GIT_CONF_APPEND_LINE(NO_STRLCPY=YesPlease)])\n #\n # Define NO_SETENV if you don't have setenv in the C library.\n-AC_CHECK_FUNC(setenv,[],\n+AC_CHECK_FUNC(setenv,\n+[GIT_CONF_APPEND_LINE(NO_SETENV=)],\n [GIT_CONF_APPEND_LINE(NO_SETENV=YesPlease)])\n #\n # Define NO_IPV6 if you lack IPv6 support and getaddrinfo().\n-AC_CHECK_FUNC(getaddrinfo,[],\n+AC_CHECK_FUNC(getaddrinfo,\n+[GIT_CONF_APPEND_LINE(NO_IPV6=)],\n [GIT_CONF_APPEND_LINE(NO_IPV6=YesPlease)])\n #\n # Define NO_MMAP if you want to avoid mmap.\n AC_FUNC_MMAP\n if test $ac_cv_func_mmap_fixed_mapped != yes; then\n \tGIT_CONF_APPEND_LINE(NO_MMAP=YesPlease)\n+else\n+\tGIT_CONF_APPEND_LINE(NO_MMAP=)\n fi\n #\n # Define NO_ICONV if your libc does not properly support iconv.\n-- \n1.4.1.1\n"}]}