From: Seonah Moon Date: Thu, 12 Apr 2018 07:48:50 +0000 (+0900) Subject: Update version to 7.59.0 X-Git-Tag: accepted/tizen/unified/20180426.062426~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=bda6f264bdcc6f0d337836cda66fe8251eb6c83f;hp=-c;p=platform%2Fupstream%2Fcurl.git Update version to 7.59.0 Change-Id: Icc20991f769dcde22844d141a47ccba887002b52 --- bda6f264bdcc6f0d337836cda66fe8251eb6c83f diff --combined configure.ac index c0ec6df,798fa5f..c261f49 mode 100644,100755..100755 --- a/configure.ac +++ b/configure.ac @@@ -5,7 -5,7 +5,7 @@@ # | (__| |_| | _ <| |___ # \___|\___/|_| \_\_____| # - # Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. + # Copyright (C) 1998 - 2018, Daniel Stenberg, , et al. # # This software is licensed as described in the file COPYING, which # you should have received as part of this distribution. The terms @@@ -31,12 -31,12 +31,12 @@@ XC_OVR_ZZ6 CURL_OVERRIDE_AUTOCONF dnl configure script copyright - AC_COPYRIGHT([Copyright (c) 1998 - 2016 Daniel Stenberg, + AC_COPYRIGHT([Copyright (c) 1998 - 2017 Daniel Stenberg, This configure script may be copied, distributed and modified under the terms of the curl license; see COPYING for more details]) AC_CONFIG_SRCDIR([lib/urldata.h]) - AC_CONFIG_HEADERS(lib/curl_config.h include/curl/curlbuild.h) + AC_CONFIG_HEADERS(lib/curl_config.h) AC_CONFIG_MACRO_DIR([m4]) AM_MAINTAINER_MODE m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) @@@ -120,14 -120,16 +120,16 @@@ AC_SUBST([AR] AC_SUBST(libext) - dnl Remove non-configure distributed curlbuild.h - if test -f ${srcdir}/include/curl/curlbuild.h; then - rm -f ${srcdir}/include/curl/curlbuild.h - fi - dnl figure out the libcurl version - CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)"/\1/p' ${srcdir}/include/curl/curlver.h` + CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)".*/\1/p' ${srcdir}/include/curl/curlver.h` XC_CHECK_PROG_CC + + dnl Check if gcc is being used before adding AX_CODE_COVERAGE + AS_IF([ test "$GCC" = "yes" ], [AX_CODE_COVERAGE], + # not using GCC so pass a test below - CODE_COVERAGE_ENABLED_TRUE is not zero length + CODE_COVERAGE_ENABLED_TRUE='#' + ) + XC_AUTOMAKE AC_MSG_CHECKING([curl version]) AC_MSG_RESULT($CURLVERSION) @@@ -136,7 -138,7 +138,7 @@@ AC_SUBST(CURLVERSION dnl dnl we extract the numerical version for curl-config only - VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\(.*\)/\1/p' ${srcdir}/include/curl/curlver.h` + VERSIONNUM=`$SED -ne 's/^#define LIBCURL_VERSION_NUM 0x\([0-9A-Fa-f]*\).*/\1/p' ${srcdir}/include/curl/curlver.h` AC_SUBST(VERSIONNUM) dnl Solaris pkgadd support definitions @@@ -152,6 -154,7 +154,7 @@@ dnl initialize all the info variable curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )" curl_ssh_msg="no (--with-libssh2)" curl_zlib_msg="no (--with-zlib)" + curl_brotli_msg="no (--with-brotli)" curl_gss_msg="no (--with-gssapi)" curl_tls_srp_msg="no (--enable-tls-srp)" curl_res_msg="default (--enable-ares / --enable-threaded-resolver)" @@@ -169,7 -172,7 +172,7 @@@ curl_verbose_msg="enabled (--disable-ve curl_mtlnk_msg="no (--with-libmetalink)" curl_psl_msg="no (--with-libpsl)" - init_ssl_msg=${curl_ssl_msg} + ssl_backends= dnl dnl Save some initial values the user might have provided @@@ -187,9 -190,6 +190,6 @@@ AC_DEFINE_UNQUOTED(OS, "${host}", [cpu- dnl Checks for programs. - dnl Our curl_off_t internal and external configure settings - CURL_CONFIGURE_CURL_OFF_T - dnl This defines _ALL_SOURCE for AIX CURL_CHECK_AIX_ALL_SOURCE @@@ -358,6 -358,7 +358,7 @@@ esa CURL_CHECK_WIN32_LARGEFILE CURL_MAC_CFLAGS + CURL_SUPPORTS_BUILTIN_AVAILABLE dnl ************************************************************ dnl switch off particular protocols @@@ -370,6 -371,7 +371,7 @@@ AC_HELP_STRING([--disable-http],[Disabl no) AC_MSG_RESULT(no) AC_DEFINE(CURL_DISABLE_HTTP, 1, [to disable HTTP]) + disable_http="yes" AC_MSG_WARN([disable HTTP disables FTP over proxy and RTSP]) AC_SUBST(CURL_DISABLE_HTTP, [1]) AC_DEFINE(CURL_DISABLE_RTSP, 1, [to disable RTSP]) @@@ -893,17 -895,16 +895,16 @@@ els OPT_ZLIB="" fi - CURL_CHECK_PKGCONFIG(zlib) - - if test "$PKGCONFIG" != "no" ; then - LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS" - LDFLAGS="`$PKGCONFIG --libs-only-L zlib` $LDFLAGS" - CPPFLAGS="`$PKGCONFIG --cflags-only-I zlib` $CPPFLAGS" - OPT_ZLIB="" - HAVE_LIBZ="1" - fi - if test -z "$OPT_ZLIB" ; then + CURL_CHECK_PKGCONFIG(zlib) + + if test "$PKGCONFIG" != "no" ; then + LIBS="`$PKGCONFIG --libs-only-l zlib` $LIBS" + LDFLAGS="$LDFLAGS `$PKGCONFIG --libs-only-L zlib`" + CPPFLAGS="$CPPFLAGS `$PKGCONFIG --cflags-only-I zlib`" + OPT_ZLIB="" + HAVE_LIBZ="1" + fi if test -z "$HAVE_LIBZ"; then @@@ -982,6 -983,94 +983,94 @@@ AM_CONDITIONAL(HAVE_LIBZ, test x"$AMFIX AC_SUBST(ZLIB_LIBS) dnl ********************************************************************** + dnl Check for the presence of BROTLI decoder libraries and headers + dnl ********************************************************************** + + dnl Brotli project home page: https://github.com/google/brotli + + dnl Default to compiler & linker defaults for BROTLI files & libraries. + OPT_BROTLI=off + AC_ARG_WITH(brotli,dnl + AC_HELP_STRING([--with-brotli=PATH],[Where to look for brotli, PATH points to the BROTLI installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) + AC_HELP_STRING([--without-brotli], [disable BROTLI]), + OPT_BROTLI=$withval) + + if test X"$OPT_BROTLI" != Xno; then + dnl backup the pre-brotli variables + CLEANLDFLAGS="$LDFLAGS" + CLEANCPPFLAGS="$CPPFLAGS" + CLEANLIBS="$LIBS" + + case "$OPT_BROTLI" in + yes) + dnl --with-brotli (without path) used + CURL_CHECK_PKGCONFIG(libbrotlidec) + + if test "$PKGCONFIG" != "no" ; then + LIB_BROTLI=`$PKGCONFIG --libs-only-l libbrotlidec` + LD_BROTLI=`$PKGCONFIG --libs-only-L libbrotlidec` + CPP_BROTLI=`$PKGCONFIG --cflags-only-I libbrotlidec` + version=`$PKGCONFIG --modversion libbrotlidec` + DIR_BROTLI=`echo $LD_BROTLI | $SED -e 's/-L//'` + fi + + ;; + off) + dnl no --with-brotli option given, just check default places + ;; + *) + dnl use the given --with-brotli spot + PREFIX_BROTLI=$OPT_BROTLI + ;; + esac + + dnl if given with a prefix, we set -L and -I based on that + if test -n "$PREFIX_BROTLI"; then + LIB_BROTLI="-lbrotlidec" + LD_BROTLI=-L${PREFIX_BROTLI}/lib$libsuff + CPP_BROTLI=-I${PREFIX_BROTLI}/include + DIR_BROTLI=${PREFIX_BROTLI}/lib$libsuff + fi + + LDFLAGS="$LDFLAGS $LD_BROTLI" + CPPFLAGS="$CPPFLAGS $CPP_BROTLI" + LIBS="$LIB_BROTLI $LIBS" + + AC_CHECK_LIB(brotlidec, BrotliDecoderDecompress) + + AC_CHECK_HEADERS(brotli/decode.h, + curl_brotli_msg="enabled (libbrotlidec)" + HAVE_BROTLI=1 + AC_DEFINE(HAVE_BROTLI, 1, [if BROTLI is in use]) + AC_SUBST(HAVE_BROTLI, [1]) + ) + + if test X"$OPT_BROTLI" != Xoff && + test "$HAVE_BROTLI" != "1"; then + AC_MSG_ERROR([BROTLI libs and/or directories were not found where specified!]) + fi + + if test "$HAVE_BROTLI" = "1"; then + if test -n "$DIR_BROTLI"; then + dnl when the brotli shared libs were found in a path that the run-time + dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH + dnl to prevent further configure tests to fail due to this + + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_BROTLI" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $DIR_BROTLI to LD_LIBRARY_PATH]) + fi + fi + else + dnl no brotli, revert back to clean variables + LDFLAGS=$CLEANLDFLAGS + CPPFLAGS=$CLEANCPPFLAGS + LIBS=$CLEANLIBS + fi + fi + + dnl ********************************************************************** dnl Check for LDAP dnl ********************************************************************** @@@ -1123,6 -1212,9 +1212,9 @@@ if test "$ipv6" = yes; the #include #else #include + #if defined (__TANDEM) + # include + #endif #endif] , struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes) if test "$have_sin6_scope_id" = yes; then @@@ -1340,6 -1432,41 +1432,41 @@@ els CPPFLAGS="$save_CPPFLAGS" fi + build_libstubgss=no + if test x"$want_gss" = "xyes"; then + build_libstubgss=yes + fi + + AM_CONDITIONAL(BUILD_STUB_GSS, test "x$build_libstubgss" = "xyes") + + dnl ------------------------------------------------------------- + dnl parse --with-default-ssl-backend so it can be validated below + dnl ------------------------------------------------------------- + + DEFAULT_SSL_BACKEND=no + VALID_DEFAULT_SSL_BACKEND= + AC_ARG_WITH(default-ssl-backend, + AC_HELP_STRING([--with-default-ssl-backend=NAME],[Use NAME as default SSL backend]) + AC_HELP_STRING([--without-default-ssl-backend],[Use implicit default SSL backend]), + [DEFAULT_SSL_BACKEND=$withval]) + case "$DEFAULT_SSL_BACKEND" in + no) + dnl --without-default-ssl-backend option used + ;; + default|yes) + dnl --with-default-ssl-backend option used without name + AC_MSG_ERROR([The name of the default SSL backend is required.]) + ;; + *) + dnl --with-default-ssl-backend option used with name + AC_SUBST(DEFAULT_SSL_BACKEND) + dnl needs to be validated below + VALID_DEFAULT_SSL_BACKEND=no + ;; + esac + + dnl ********************************************************************** + dnl ------------------------------------------------- dnl check winssl option before other SSL libraries dnl ------------------------------------------------- @@@ -1351,13 -1478,15 +1478,15 @@@ AC_HELP_STRING([--without-winssl], [dis OPT_WINSSL=$withval) AC_MSG_CHECKING([whether to enable Windows native SSL/TLS (Windows native builds only)]) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_WINSSL" != xno; then + ssl_msg= if test "x$OPT_WINSSL" != "xno" && test "x$curl_cv_native_windows" = "xyes"; then AC_MSG_RESULT(yes) AC_DEFINE(USE_SCHANNEL, 1, [to enable Windows native SSL/TLS support]) AC_SUBST(USE_SCHANNEL, [1]) - curl_ssl_msg="enabled (Windows-native)" + ssl_msg="Windows-native" + test schannel != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes WINSSL_ENABLED=1 # --with-winssl implies --enable-sspi AC_DEFINE(USE_WINDOWS_SSPI, 1, [to enable SSPI support]) @@@ -1367,6 -1496,7 +1496,7 @@@ else AC_MSG_RESULT(no) fi + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" else AC_MSG_RESULT(no) fi @@@ -1378,18 -1508,20 +1508,20 @@@ AC_HELP_STRING([--without-darwinssl], [ OPT_DARWINSSL=$withval) AC_MSG_CHECKING([whether to enable Apple OS native SSL/TLS]) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_DARWINSSL" != xno; then if test "x$OPT_DARWINSSL" != "xno" && test -d "/System/Library/Frameworks/Security.framework"; then AC_MSG_RESULT(yes) AC_DEFINE(USE_DARWINSSL, 1, [to enable Apple OS native SSL/TLS support]) AC_SUBST(USE_DARWINSSL, [1]) - curl_ssl_msg="enabled (Apple OS-native)" + ssl_msg="Apple OS-native" + test darwinssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes DARWINSSL_ENABLED=1 LDFLAGS="$LDFLAGS -framework CoreFoundation -framework Security" else AC_MSG_RESULT(no) fi + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" else AC_MSG_RESULT(no) fi @@@ -1407,7 -1539,10 +1539,10 @@@ AC_HELP_STRING([--with-ssl=PATH],[Wher AC_HELP_STRING([--without-ssl], [disable OpenSSL]), OPT_SSL=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then + if test -z "$ssl_backends" -o "x$OPT_SSL" != xno && + test X"$OPT_SSL" != Xno; then + ssl_msg= + dnl backup the pre-ssl variables CLEANLDFLAGS="$LDFLAGS" CLEANCPPFLAGS="$CPPFLAGS" @@@ -1518,52 -1653,50 +1653,50 @@@ AC_CHECK_LIB(crypto, HMAC_Init_ex,[ HAVECRYPTO="yes" LIBS="-lcrypto $LIBS"], [ - LDFLAGS="$CLEANLDFLAGS" - CPPFLAGS="$CLEANCPPFLAGS" - LIBS="$CLEANLIBS" - ]) - ]) - - if test X"$HAVECRYPTO" = X"yes"; then - AC_MSG_CHECKING([OpenSSL linking without -ldl]) - saved_libs=$LIBS - AC_TRY_LINK( - [ - #include - ], - [ - SSLeay_add_all_algorithms(); - ], - [ - AC_MSG_RESULT(yes) - LIBS="$saved_libs" - ], - [ - AC_MSG_RESULT(no) - AC_MSG_CHECKING([OpenSSL linking with -ldl]) - LIBS="-ldl $LIBS" - AC_TRY_LINK( - [ - #include - ], - [ - SSLeay_add_all_algorithms(); - ], - [ - AC_MSG_RESULT(yes) - LIBS="$saved_libs -ldl" - ], - [ - AC_MSG_RESULT(no) - LIBS="$saved_libs" - ] - ) + dnl still no, but what about with -ldl? + AC_MSG_CHECKING([OpenSSL linking with -ldl]) + LIBS="$LIBS -ldl" + AC_TRY_LINK( + [ + #include + ], + [ + ERR_clear_error(); + ], + [ + AC_MSG_RESULT(yes) + HAVECRYPTO="yes" + ], + [ + AC_MSG_RESULT(no) + dnl ok, so what about bouth -ldl and -lpthread? + + AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread]) + LIBS="$LIBS -lpthread" + AC_TRY_LINK( + [ + #include + ], + [ + ERR_clear_error(); + ], + [ + AC_MSG_RESULT(yes) + HAVECRYPTO="yes" + ], + [ + AC_MSG_RESULT(no) + LDFLAGS="$CLEANLDFLAGS" + CPPFLAGS="$CLEANCPPFLAGS" + LIBS="$CLEANLIBS" + + ]) - ] - ) + ]) - fi + ]) + ]) if test X"$HAVECRYPTO" = X"yes"; then dnl This is only reasonable to do if crypto actually is there: check for @@@ -1590,7 -1723,8 +1723,8 @@@ dnl Have the libraries--check for OpenSSL headers AC_CHECK_HEADERS(openssl/x509.h openssl/rsa.h openssl/crypto.h \ openssl/pem.h openssl/ssl.h openssl/err.h, - curl_ssl_msg="enabled (OpenSSL)" + ssl_msg="OpenSSL" + test openssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes OPENSSL_ENABLED=1 AC_DEFINE(USE_OPENSSL, 1, [if OpenSSL is in use])) @@@ -1604,16 -1738,13 +1738,13 @@@ test $ac_cv_header_crypto_h = yes && test $ac_cv_header_ssl_h = yes; then dnl three matches - curl_ssl_msg="enabled (OpenSSL)" + ssl_msg="OpenSSL" OPENSSL_ENABLED=1 fi fi fi - if test X"$OPENSSL_ENABLED" = X"1"; then - dnl is there a pkcs12.h header present? - AC_CHECK_HEADERS(openssl/pkcs12.h) - else + if test X"$OPENSSL_ENABLED" != X"1"; then LIBS="$CLEANLIBS" fi @@@ -1655,7 -1786,7 +1786,7 @@@ AC_MSG_RESULT([yes]) AC_DEFINE_UNQUOTED(HAVE_BORINGSSL, 1, [Define to 1 if using BoringSSL.]) - curl_ssl_msg="enabled (BoringSSL)" + ssl_msg="BoringSSL" ],[ AC_MSG_RESULT([no]) ]) @@@ -1671,7 -1802,7 +1802,7 @@@ AC_MSG_RESULT([yes]) AC_DEFINE_UNQUOTED(HAVE_LIBRESSL, 1, [Define to 1 if using libressl.]) - curl_ssl_msg="enabled (libressl)" + ssl_msg="libressl" ],[ AC_MSG_RESULT([no]) ]) @@@ -1691,6 -1822,7 +1822,7 @@@ CURL_CHECK_OPENSSL_API fi + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" fi dnl ********************************************************************** @@@ -1752,7 -1884,8 +1884,8 @@@ AC_HELP_STRING([--with-gnutls=PATH],[wh AC_HELP_STRING([--without-gnutls], [disable GnuTLS detection]), OPT_GNUTLS=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_GNUTLS" != xno; then + ssl_msg= if test X"$OPT_GNUTLS" != Xno; then @@@ -1826,7 -1959,8 +1959,8 @@@ AC_SUBST(USE_GNUTLS, [1]) GNUTLS_ENABLED=1 USE_GNUTLS="yes" - curl_ssl_msg="enabled (GnuTLS)" + ssl_msg="GnuTLS" + test gnutls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [ LIBS="$CLEANLIBS" @@@ -1841,7 -1975,7 +1975,7 @@@ dnl linker doesn't search through, we need to add it to dnl LD_LIBRARY_PATH to prevent further configure tests to fail dnl due to this - if test "x$cross_compiling" != "xyes"; then + if test "x$cross_compiling" != "xyes"; then LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$gtlslib" export LD_LIBRARY_PATH AC_MSG_NOTICE([Added $gtlslib to LD_LIBRARY_PATH]) @@@ -1854,6 -1988,7 +1988,7 @@@ fi dnl GNUTLS not disabled + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" fi dnl --- @@@ -1911,7 -2046,8 +2046,8 @@@ AC_HELP_STRING([--with-polarssl=PATH],[ AC_HELP_STRING([--without-polarssl], [disable PolarSSL detection]), OPT_POLARSSL=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_POLARSSL" != xno; then + ssl_msg= if test X"$OPT_POLARSSL" != Xno; then @@@ -1929,7 -2065,8 +2065,8 @@@ AC_SUBST(USE_POLARSSL, [1]) POLARSSL_ENABLED=1 USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" + ssl_msg="PolarSSL" + test polarssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ]) fi @@@ -1955,7 -2092,8 +2092,8 @@@ AC_SUBST(USE_POLARSSL, [1]) POLARSSL_ENABLED=1 USE_POLARSSL="yes" - curl_ssl_msg="enabled (PolarSSL)" + ssl_msg="PolarSSL" + test polarssl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [ CPPFLAGS=$_cppflags @@@ -1983,6 -2121,7 +2121,7 @@@ fi dnl PolarSSL not disabled + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" fi dnl ---------------------------------------------------- @@@ -1998,7 -2137,8 +2137,8 @@@ AC_HELP_STRING([--with-mbedtls=PATH],[w AC_HELP_STRING([--without-mbedtls], [disable mbedTLS detection]), OPT_MBEDTLS=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_MBEDTLS" != xno; then + ssl_msg= if test X"$OPT_MBEDTLS" != Xno; then @@@ -2016,7 -2156,8 +2156,8 @@@ AC_SUBST(USE_MBEDTLS, [1]) MBEDTLS_ENABLED=1 USE_MBEDTLS="yes" - curl_ssl_msg="enabled (mbedTLS)" + ssl_msg="mbedTLS" + test mbedtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [], -lmbedx509 -lmbedcrypto) fi @@@ -2042,7 -2183,8 +2183,8 @@@ AC_SUBST(USE_MBEDTLS, [1]) MBEDTLS_ENABLED=1 USE_MBEDTLS="yes" - curl_ssl_msg="enabled (mbedTLS)" + ssl_msg="mbedTLS" + test mbedtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [ CPPFLAGS=$_cppflags @@@ -2070,6 -2212,7 +2212,7 @@@ fi dnl mbedTLS not disabled + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" fi dnl ---------------------------------------------------- @@@ -2086,7 -2229,8 +2229,8 @@@ AC_HELP_STRING([--with-cyassl=PATH],[wh AC_HELP_STRING([--without-cyassl], [disable CyaSSL detection]), OPT_CYASSL=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_CYASSL" != xno; then + ssl_msg= if test X"$OPT_CYASSL" != Xno; then @@@ -2108,7 -2252,8 +2252,8 @@@ AC_SUBST(USE_CYASSL, [1]) CYASSL_ENABLED=1 USE_CYASSL="yes" - curl_ssl_msg="enabled (CyaSSL)" + ssl_msg="CyaSSL" + test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ]) fi @@@ -2134,7 -2279,8 +2279,8 @@@ AC_SUBST(USE_CYASSL, [1]) CYASSL_ENABLED=1 USE_CYASSL="yes" - curl_ssl_msg="enabled (CyaSSL)" + ssl_msg="CyaSSL" + test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [ CPPFLAGS=$_cppflags @@@ -2179,7 -2325,8 +2325,8 @@@ AC_SUBST(USE_CYASSL, [1]) CYASSL_ENABLED=1 USE_CYASSL="yes" - curl_ssl_msg="enabled (WolfSSL)" + ssl_msg="WolfSSL" + test cyassl != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [ AC_MSG_RESULT(no) @@@ -2233,6 -2380,7 +2380,7 @@@ fi dnl CyaSSL not disabled + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" fi dnl ---------------------------------------------------- @@@ -2247,7 -2395,8 +2395,8 @@@ AC_HELP_STRING([--with-nss=PATH],[wher AC_HELP_STRING([--without-nss], [disable NSS detection]), OPT_NSS=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_NSS" != xno; then + ssl_msg= if test X"$OPT_NSS" != Xno; then @@@ -2322,7 -2471,8 +2471,8 @@@ AC_SUBST(USE_NSS, [1]) USE_NSS="yes" NSS_ENABLED=1 - curl_ssl_msg="enabled (NSS)" + ssl_msg="NSS" + test nss != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes ], [ LDFLAGS="$CLEANLDFLAGS" @@@ -2333,6 -2483,15 +2483,15 @@@ if test "x$USE_NSS" = "xyes"; then AC_MSG_NOTICE([detected NSS version $version]) + dnl PK11_CreateManagedGenericObject() was introduced in NSS 3.34 because + dnl PK11_DestroyGenericObject() does not release resources allocated by + dnl PK11_CreateGenericObject() early enough. + AC_CHECK_FUNC(PK11_CreateManagedGenericObject, + [ + AC_DEFINE(HAVE_PK11_CREATEMANAGEDGENERICOBJECT, 1, + [if you have the PK11_CreateManagedGenericObject function]) + ]) + dnl needed when linking the curl tool without USE_EXPLICIT_LIB_DEPS NSS_LIBS=$addlib AC_SUBST([NSS_LIBS]) @@@ -2351,7 -2510,8 +2510,8 @@@ fi dnl NSS not disabled - fi dnl curl_ssl_msg = init_ssl_msg + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" + fi OPT_AXTLS=off @@@ -2360,7 -2520,8 +2520,8 @@@ AC_HELP_STRING([--with-axtls=PATH],[Whe AC_HELP_STRING([--without-axtls], [disable axTLS]), OPT_AXTLS=$withval) - if test "$curl_ssl_msg" = "$init_ssl_msg"; then + if test -z "$ssl_backends" -o "x$OPT_AXTLS" != xno; then + ssl_msg= if test X"$OPT_AXTLS" != Xno; then dnl backup the pre-axtls variables CLEANLDFLAGS="$LDFLAGS" @@@ -2394,7 -2555,8 +2555,8 @@@ AC_SUBST(USE_AXTLS, [1]) AXTLS_ENABLED=1 USE_AXTLS="yes" - curl_ssl_msg="enabled (axTLS)" + ssl_msg="axTLS" + test axtls != "$DEFAULT_SSL_BACKEND" || VALID_DEFAULT_SSL_BACKEND=yes if test "x$cross_compiling" != "xyes"; then LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$LIB_AXTLS" @@@ -2407,15 -2569,46 +2569,46 @@@ LIBS="$CLEANLIBS" ]) fi + test -z "$ssl_msg" || ssl_backends="${ssl_backends:+$ssl_backends, }$ssl_msg" fi - if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then + case "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" in + x) AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.]) AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.]) - else - # SSL is enabled, genericly + ;; + x1) + # one SSL backend is enabled AC_SUBST(SSL_ENABLED) SSL_ENABLED="1" + AC_MSG_NOTICE([built with one SSL backend]) + ;; + *) + # more than one SSL backend is enabled + AC_SUBST(SSL_ENABLED) + SSL_ENABLED="1" + AC_SUBST(CURL_WITH_MULTI_SSL) + CURL_WITH_MULTI_SSL="1" + AC_DEFINE(CURL_WITH_MULTI_SSL, 1, [built with multiple SSL backends]) + AC_MSG_NOTICE([built with multiple SSL backends]) + ;; + esac + + if test -n "$ssl_backends"; then + curl_ssl_msg="enabled ($ssl_backends)" + fi + + if test no = "$VALID_DEFAULT_SSL_BACKEND" + then + if test -n "$SSL_ENABLED" + then + AC_MSG_ERROR([Default SSL backend $DEFAULT_SSL_BACKEND not enabled!]) + else + AC_MSG_ERROR([Default SSL backend requires SSL!]) + fi + elif test yes = "$VALID_DEFAULT_SSL_BACKEND" + then + AC_DEFINE_UNQUOTED([CURL_DEFAULT_SSL_BACKEND], ["$DEFAULT_SSL_BACKEND"], [Default SSL backend]) fi dnl ********************************************************************** @@@ -2496,8 -2689,8 +2689,8 @@@ if test X"$OPT_LIBMETALINK" != Xno; the clean_CPPFLAGS="$CPPFLAGS" clean_LDFLAGS="$LDFLAGS" clean_LIBS="$LIBS" - CPPFLAGS="$addcflags $clean_CPPFLAGS" - LDFLAGS="$addld $clean_LDFLAGS" + CPPFLAGS="$clean_CPPFLAGS $addcflags" + LDFLAGS="$clean_LDFLAGS $addld" LIBS="$addlib $clean_LIBS" AC_MSG_CHECKING([if libmetalink is recent enough]) AC_LINK_IFELSE([ @@@ -2541,8 -2734,15 +2734,15 @@@ dnl Default to compiler & linker defaul OPT_LIBSSH2=off AC_ARG_WITH(libssh2,dnl AC_HELP_STRING([--with-libssh2=PATH],[Where to look for libssh2, PATH points to the LIBSSH2 installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) - AC_HELP_STRING([--without-libssh2], [disable LIBSSH2]), - OPT_LIBSSH2=$withval) + AC_HELP_STRING([--with-libssh2], [enable LIBSSH2]), + OPT_LIBSSH2=$withval, OPT_LIBSSH2=no) + + + OPT_LIBSSH=off + AC_ARG_WITH(libssh,dnl + AC_HELP_STRING([--with-libssh=PATH],[Where to look for libssh, PATH points to the LIBSSH installation; when possible, set the PKG_CONFIG_PATH environment variable instead of using this option]) + AC_HELP_STRING([--with-libssh], [enable LIBSSH]), + OPT_LIBSSH=$withval, OPT_LIBSSH=no) if test X"$OPT_LIBSSH2" != Xno; then dnl backup the pre-libssh2 variables @@@ -2581,7 -2781,7 +2781,7 @@@ DIR_SSH2=${PREFIX_SSH2}/lib$libsuff fi - LDFLAGS="$LD_SSH2 $LDFLAGS" + LDFLAGS="$LDFLAGS $LD_SSH2" CPPFLAGS="$CPPFLAGS $CPP_SSH2" LIBS="$LIB_SSH2 $LIBS" @@@ -2617,6 -2817,79 +2817,79 @@@ CPPFLAGS=$CLEANCPPFLAGS LIBS=$CLEANLIBS fi + elif test X"$OPT_LIBSSH" != Xno; then + dnl backup the pre-libssh variables + CLEANLDFLAGS="$LDFLAGS" + CLEANCPPFLAGS="$CPPFLAGS" + CLEANLIBS="$LIBS" + + case "$OPT_LIBSSH" in + yes) + dnl --with-libssh (without path) used + CURL_CHECK_PKGCONFIG(libssh) + + if test "$PKGCONFIG" != "no" ; then + LIB_SSH=`$PKGCONFIG --libs-only-l libssh` + LD_SSH=`$PKGCONFIG --libs-only-L libssh` + CPP_SSH=`$PKGCONFIG --cflags-only-I libssh` + version=`$PKGCONFIG --modversion libssh` + DIR_SSH=`echo $LD_SSH | $SED -e 's/-L//'` + fi + + ;; + off) + dnl no --with-libssh option given, just check default places + ;; + *) + dnl use the given --with-libssh spot + PREFIX_SSH=$OPT_LIBSSH + ;; + esac + + dnl if given with a prefix, we set -L and -I based on that + if test -n "$PREFIX_SSH"; then + LIB_SSH="-lssh" + LD_SSH=-L${PREFIX_SSH}/lib$libsuff + CPP_SSH=-I${PREFIX_SSH}/include + DIR_SSH=${PREFIX_SSH}/lib$libsuff + fi + + LDFLAGS="$LDFLAGS $LD_SSH" + CPPFLAGS="$CPPFLAGS $CPP_SSH" + LIBS="$LIB_SSH $LIBS" + + AC_CHECK_LIB(ssh, ssh_new) + + AC_CHECK_HEADERS(libssh/libssh.h, + curl_ssh_msg="enabled (libSSH)" + LIBSSH_ENABLED=1 + AC_DEFINE(USE_LIBSSH, 1, [if libSSH is in use]) + AC_SUBST(USE_LIBSSH, [1]) + ) + + if test X"$OPT_LIBSSH" != Xoff && + test "$LIBSSH_ENABLED" != "1"; then + AC_MSG_ERROR([libSSH libs and/or directories were not found where specified!]) + fi + + if test "$LIBSSH_ENABLED" = "1"; then + if test -n "$DIR_SSH"; then + dnl when the libssh shared libs were found in a path that the run-time + dnl linker doesn't search through, we need to add it to LD_LIBRARY_PATH + dnl to prevent further configure tests to fail due to this + + if test "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DIR_SSH" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $DIR_SSH to LD_LIBRARY_PATH]) + fi + fi + else + dnl no libssh, revert back to clean variables + LDFLAGS=$CLEANLDFLAGS + CPPFLAGS=$CLEANCPPFLAGS + LIBS=$CLEANLIBS + fi fi dnl ********************************************************************** @@@ -2660,6 -2933,7 +2933,7 @@@ if test X"$OPT_LIBRTMP" != Xno; the ;; *) dnl use the given --with-librtmp spot + LIB_RTMP="-lrtmp" PREFIX_RTMP=$OPT_LIBRTMP ;; esac @@@ -2715,7 -2989,9 +2989,9 @@@ AC_HELP_STRING([--disable-versioned-sym AC_MSG_WARN([You need an ld version supporting the --version-script option]) else AC_MSG_RESULT(yes) - if test "x$OPENSSL_ENABLED" = "x1"; then + if test "x$CURL_WITH_MULTI_SSL" = "x1"; then + versioned_symbols_flavour="MULTISSL_" + elif test "x$OPENSSL_ENABLED" = "x1"; then versioned_symbols_flavour="OPENSSL_" elif test "x$GNUTLS_ENABLED" = "x1"; then versioned_symbols_flavour="GNUTLS_" @@@ -2787,6 -3063,7 +3063,7 @@@ if test "$want_winidn" = "yes"; the clean_LDFLAGS="$LDFLAGS" clean_LIBS="$LIBS" WINIDN_LIBS="-lnormaliz" + WINIDN_CPPFLAGS="-DWINVER=0x0600" # if test "$want_winidn_path" != "default"; then dnl path has been specified @@@ -2796,13 -3073,17 +3073,17 @@@ WINIDN_DIR="$want_winidn_path/lib$libsuff" fi # - CPPFLAGS="$WINIDN_CPPFLAGS $CPPFLAGS" - LDFLAGS="$WINIDN_LDFLAGS $LDFLAGS" + CPPFLAGS="$CPPFLAGS $WINIDN_CPPFLAGS" + LDFLAGS="$LDFLAGS $WINIDN_LDFLAGS" LIBS="$WINIDN_LIBS $LIBS" # AC_MSG_CHECKING([if IdnToUnicode can be linked]) AC_LINK_IFELSE([ - AC_LANG_FUNC_LINK_TRY([IdnToUnicode]) + AC_LANG_PROGRAM([[ + #include + ]],[[ + IdnToUnicode(0, NULL, 0, NULL, 0); + ]]) ],[ AC_MSG_RESULT([yes]) tst_links_winidn="yes" @@@ -2912,8 -3193,8 +3193,8 @@@ if test "$want_idn" = "yes"; the AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"]) fi # - CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS" - LDFLAGS="$IDN_LDFLAGS $LDFLAGS" + CPPFLAGS="$CPPFLAGS $IDN_CPPFLAGS" + LDFLAGS="$LDFLAGS $IDN_LDFLAGS" LIBS="$IDN_LIBS $LIBS" # AC_MSG_CHECKING([if idn2_lookup_ul can be linked]) @@@ -2953,152 -3234,18 +3234,158 @@@ dnl Let's hope this split URL remains w dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ dnl genprogc/thread_quick_ref.htm +dnl ********************************************************************** +dnl Check for ICU-UC (IDN support) +dnl ********************************************************************** + +AC_MSG_CHECKING([whether to build with icu-uc]) +OPT_IDN="default" +AC_ARG_WITH(icu-uc, +AC_HELP_STRING([--with-icu-uc=PATH],[Enable icu-uc usage]) +AC_HELP_STRING([--without-icu-uc],[Disable icu-uc usage]), + [OPT_IDN=$withval]) +case "$OPT_IDN" in + no) + dnl --without-icu-uc option used + want_idn="no" + AC_MSG_RESULT([no]) + ;; + default) + dnl configure option not specified + want_idn="yes" + want_idn_path="default" + AC_MSG_RESULT([(assumed) yes]) + ;; + yes) + dnl --with-icu-uc option used without path + want_idn="yes" + want_idn_path="default" + AC_MSG_RESULT([yes]) + ;; + *) + dnl --with-icu-uc option used with path + want_idn="yes" + want_idn_path="$withval" + AC_MSG_RESULT([yes ($withval)]) + ;; +esac + +if test "$want_idn" = "yes"; then + dnl idn library support has been requested + clean_CPPFLAGS="$CPPFLAGS" + clean_LDFLAGS="$LDFLAGS" + clean_LIBS="$LIBS" + PKGCONFIG="no" + # + if test "$want_idn_path" != "default"; then + dnl path has been specified + IDN_PCDIR="$want_idn_path/lib$libsuff/pkgconfig" + CURL_CHECK_PKGCONFIG(icu-uc, [$IDN_PCDIR]) + if test "$PKGCONFIG" != "no"; then + IDN_LIBS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl + $PKGCONFIG --libs-only-l icu-uc 2>/dev/null` + IDN_LDFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl + $PKGCONFIG --libs-only-L icu-uc 2>/dev/null` + IDN_CPPFLAGS=`CURL_EXPORT_PCDIR([$IDN_PCDIR]) dnl + $PKGCONFIG --cflags-only-I icu-uc 2>/dev/null` + IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` + else + dnl pkg-config not available or provides no info + IDN_LIBS="-licu-uc" + IDN_LDFLAGS="-L$want_idn_path/lib$libsuff" + IDN_CPPFLAGS="-I$want_idn_path/include" + IDN_DIR="$want_idn_path/lib$libsuff" + fi + else + dnl path not specified + CURL_CHECK_PKGCONFIG(icu-uc) + if test "$PKGCONFIG" != "no"; then + IDN_LIBS=`$PKGCONFIG --libs-only-l icu-uc 2>/dev/null` + IDN_LDFLAGS=`$PKGCONFIG --libs-only-L icu-uc 2>/dev/null` + IDN_CPPFLAGS=`$PKGCONFIG --cflags-only-I icu-uc 2>/dev/null` + IDN_DIR=`echo $IDN_LDFLAGS | $SED -e 's/-L//'` + else + dnl pkg-config not available or provides no info + IDN_LIBS="-licu-uc" + fi + fi + # + if test "$PKGCONFIG" != "no"; then + AC_MSG_NOTICE([pkg-config: IDN_LIBS: "$IDN_LIBS"]) + AC_MSG_NOTICE([pkg-config: IDN_LDFLAGS: "$IDN_LDFLAGS"]) + AC_MSG_NOTICE([pkg-config: IDN_CPPFLAGS: "$IDN_CPPFLAGS"]) + AC_MSG_NOTICE([pkg-config: IDN_DIR: "$IDN_DIR"]) + else + AC_MSG_NOTICE([IDN_LIBS: "$IDN_LIBS"]) + AC_MSG_NOTICE([IDN_LDFLAGS: "$IDN_LDFLAGS"]) + AC_MSG_NOTICE([IDN_CPPFLAGS: "$IDN_CPPFLAGS"]) + AC_MSG_NOTICE([IDN_DIR: "$IDN_DIR"]) + fi + # + CPPFLAGS="$IDN_CPPFLAGS $CPPFLAGS" + LDFLAGS="$IDN_LDFLAGS $LDFLAGS" + LIBS="$IDN_LIBS $LIBS" + # + AC_MSG_CHECKING([if uidna_nameToASCII_UTF8 can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([uidna_nameToASCII_UTF8]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_icu="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_icu="no" + ]) + # + if test "$tst_links_icu" = "yes"; then + AC_DEFINE(USE_ICU_IDNA, 1, [Define to 1 if you have the `icu-uc' library (-licu-uc).]) + dnl different versions of libidn have different setups of these: + + AC_SUBST([IDN_ENABLED], [1]) + curl_idn_msg="enabled (icu-uc)" + if test -n "$IDN_DIR" -a "x$cross_compiling" != "xyes"; then + LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$IDN_DIR" + export LD_LIBRARY_PATH + AC_MSG_NOTICE([Added $IDN_DIR to LD_LIBRARY_PATH]) + fi + else + AC_MSG_WARN([Cannot find libraries for IDN support: IDN disabled]) + CPPFLAGS="$clean_CPPFLAGS" + LDFLAGS="$clean_LDFLAGS" + LIBS="$clean_LIBS" + fi + +fi + +dnl Let's hope this split URL remains working: +dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ +dnl genprogc/thread_quick_ref.htm + +dnl ********************************************************************** +dnl Check for DLP +dnl ********************************************************************** + +AC_ARG_ENABLE([dlp], + AS_HELP_STRING([--enable-dlp], [Enable DLP usage])) + +AS_IF([test "x$enable_dlp" = "xyes"], [ + CPPFLAGS+=" -DUSE_TIZEN_FEATURE_DLP" +]) + +AM_CONDITIONAL(USE_TIZEN_FEATURE_DLP, test "x$enable_dlp" = "xyes") + dnl ********************************************************************** dnl Check for nghttp2 dnl ********************************************************************** OPT_H2="yes" + + if test "x$disable_http" = "xyes"; then + # without HTTP, nghttp2 is no use + OPT_H2="no" + fi + AC_ARG_WITH(nghttp2, AC_HELP_STRING([--with-nghttp2=PATH],[Enable nghttp2 usage]) AC_HELP_STRING([--without-nghttp2],[Disable nghttp2 usage]), @@@ -3221,11 -3368,12 +3508,12 @@@ AC_CHECK_HEADERS assert.h \ unistd.h \ stdlib.h \ - limits.h \ arpa/inet.h \ net/if.h \ netinet/in.h \ + netinet/in6.h \ sys/un.h \ + linux/tcp.h \ netinet/tcp.h \ netdb.h \ sys/sockio.h \ @@@ -3274,6 -3422,9 +3562,9 @@@ dnl default include #ifdef HAVE_NETINET_IN_H #include #endif + #ifdef HAVE_NETINET_IN6_H + #include + #endif #ifdef HAVE_SYS_UN_H #include #endif @@@ -3292,18 -3443,15 +3583,15 @@@ AC_CHECK_SIZEOF(size_t AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(short) - CURL_CONFIGURE_LONG AC_CHECK_SIZEOF(time_t) AC_CHECK_SIZEOF(off_t) - soname_bump=no - if test x"$curl_cv_native_windows" != "xyes" && - test $ac_cv_sizeof_off_t -ne $curl_sizeof_curl_off_t; then - AC_MSG_WARN([This libcurl built is probably not ABI compatible with previous]) - AC_MSG_WARN([builds! You MUST read lib/README.curl_off_t to figure it out.]) - soname_bump=yes - fi - + o=$CPPFLAGS + CPPFLAGS="-I$srcdir/include $CPPFLAGS" + AC_CHECK_SIZEOF(curl_off_t, unused , [ + #include + ]) + CPPFLAGS=$o AC_CHECK_TYPE(long long, [AC_DEFINE(HAVE_LONGLONG, 1, @@@ -3344,6 -3492,23 +3632,23 @@@ AC_CHECK_TYPE([bool], #endif ]) + AC_MSG_CHECKING([if time_t is unsigned]) + AC_RUN_IFELSE([ + AC_LANG_SOURCE([[ + #include + #include + time_t t = -1; + return (t > 0); + ]])] ,[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_TIME_T_UNSIGNED, 1, [Define this if time_t is unsigned]) + ],[ + AC_MSG_RESULT([no]) + ],[ + dnl cross-compiling, most systems are unsigned + AC_MSG_RESULT([no]) + ]) + CURL_CONFIGURE_CURL_SOCKLEN_T CURL_CONFIGURE_PULL_SYS_POLL @@@ -3420,24 -3585,21 +3725,21 @@@ case $host i ;; esac - AC_CHECK_FUNCS([fork \ - geteuid \ + AC_CHECK_FUNCS([geteuid \ getpass_r \ getppid \ - getprotobyname \ getpwuid \ getpwuid_r \ getrlimit \ gettimeofday \ if_nametoindex \ - inet_addr \ - perror \ + mach_absolute_time \ pipe \ setlocale \ setmode \ setrlimit \ - uname \ - utime + utime \ + utimes ],[ ],[ func="$ac_func" @@@ -3540,11 -3702,8 +3842,8 @@@ els fi AM_CONDITIONAL(BUILD_LIBHOSTNAME, test x$build_libhostname = xyes) - CURL_CHECK_OPTION_THREADED_RESOLVER - - if test "x$want_thres" = xyes && test "x$want_ares" = xyes; then - AC_MSG_ERROR( - [Options --enable-threaded-resolver and --enable-ares are mutually exclusive]) + if test "x$want_ares" != xyes; then + CURL_CHECK_OPTION_THREADED_RESOLVER fi dnl ************************************************************ @@@ -3567,8 -3726,28 +3866,28 @@@ AC_HELP_STRING([--disable-pthreads],[Di want_pthreads=auto ] ) - if test "$want_thres" = "yes" && test "$dontwant_rt" = "no" && \ - test "$want_pthreads" != "no"; then + + dnl turn off pthreads if rt is disabled + if test "$want_pthreads" != "no"; then + if test "$want_pthreads" = "yes" && test "$dontwant_rt" = "yes"; then + AC_MSG_ERROR([options --enable-pthreads and --disable-rt are mutually exclusive]) + fi + if test "$dontwant_rt" != "no"; then + dnl if --enable-pthreads was explicit then warn it's being ignored + if test "$want_pthreads" = "yes"; then + AC_MSG_WARN([--enable-pthreads Ignored since librt is disabled.]) + fi + want_pthreads=no + fi + fi + + dnl turn off pthreads if no threaded resolver + if test "$want_pthreads" != "no" && test "$want_thres" != "yes"; then + want_pthreads=no + fi + + dnl detect pthreads + if test "$want_pthreads" != "no"; then AC_CHECK_HEADER(pthread.h, [ AC_DEFINE(HAVE_PTHREAD_H, 1, [if you have ]) save_CFLAGS="$CFLAGS" @@@ -3592,23 -3771,22 +3911,22 @@@ fi ]) fi - if test "x$USE_THREADS_POSIX" != "x1"; then + + dnl threaded resolver check + if test "$want_thres" = "yes" && test "x$USE_THREADS_POSIX" != "x1"; then if test "$want_pthreads" = "yes"; then AC_MSG_ERROR([--enable-pthreads but pthreads was not found]) fi - if test "$want_thres" = "yes"; then - dnl If native Windows fallback on Win32 threads since no POSIX threads - if test "$curl_cv_native_windows" = "yes"; then - USE_THREADS_WIN32=1 - AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup]) - curl_res_msg="Win32 threaded" - else - AC_MSG_ERROR([Threaded resolver enabled but no thread library found]) - fi + dnl If native Windows fallback on Win32 threads since no POSIX threads + if test "$curl_cv_native_windows" = "yes"; then + USE_THREADS_WIN32=1 + AC_DEFINE(USE_THREADS_WIN32, 1, [if you want Win32 threaded DNS lookup]) + curl_res_msg="Win32 threaded" + else + AC_MSG_ERROR([Threaded resolver enabled but no thread library found]) fi fi - dnl ************************************************************ dnl disable verbose text strings dnl @@@ -3770,26 -3948,6 +4088,6 @@@ dnl hiding of library internal symbol dnl CURL_CONFIGURE_SYMBOL_HIDING - dnl ************************************************************ - dnl enforce SONAME bump - dnl - - AC_MSG_CHECKING([whether to enforce SONAME bump]) - AC_ARG_ENABLE(soname-bump, - AC_HELP_STRING([--enable-soname-bump],[Enable enforced SONAME bump]) - AC_HELP_STRING([--disable-soname-bump],[Disable enforced SONAME bump]), - [ case "$enableval" in - yes) AC_MSG_RESULT(yes) - soname_bump=yes - ;; - *) - AC_MSG_RESULT(no) - ;; - esac ], - AC_MSG_RESULT($soname_bump) - ) - AM_CONDITIONAL(SONAME_BUMP, test x$soname_bump = xyes) - dnl dnl All the library dependencies put into $LIB apply to libcurl only. dnl @@@ -3836,6 -3994,9 +4134,9 @@@ f if test "x$HAVE_LIBZ" = "x1"; then SUPPORT_FEATURES="$SUPPORT_FEATURES libz" fi + if test "x$HAVE_BROTLI" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES brotli" + fi if test "x$USE_ARES" = "x1" -o "x$USE_THREADS_POSIX" = "x1" \ -o "x$USE_THREADS_WIN32" = "x1"; then SUPPORT_FEATURES="$SUPPORT_FEATURES AsynchDNS" @@@ -3886,6 -4047,10 +4187,10 @@@ if test "x$USE_NGHTTP2" = "x1"; the SUPPORT_FEATURES="$SUPPORT_FEATURES HTTP2" fi + if test "x$CURL_WITH_MULTI_SSL" = "x1"; then + SUPPORT_FEATURES="$SUPPORT_FEATURES MultiSSL" + fi + if test "x$OPENSSL_ENABLED" = "x1" -o "x$GNUTLS_ENABLED" = "x1" \ -o "x$NSS_ENABLED" = "x1"; then SUPPORT_FEATURES="$SUPPORT_FEATURES HTTPS-proxy" @@@ -3962,6 -4127,10 +4267,10 @@@ if test "x$USE_LIBSSH2" = "x1"; the SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" fi + if test "x$USE_LIBSSH" = "x1"; then + SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SCP" + SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS SFTP" + fi if test "x$CURL_DISABLE_RTSP" != "x1"; then SUPPORT_PROTOCOLS="$SUPPORT_PROTOCOLS RTSP" fi @@@ -3993,6 -4162,9 +4302,9 @@@ squeeze SUPPORT_PROTOCOL XC_CHECK_BUILD_FLAGS + SSL_BACKENDS=${ssl_backends} + AC_SUBST(SSL_BACKENDS) + if test "x$want_curldebug_assumed" = "xyes" && test "x$want_curldebug" = "xyes" && test "x$USE_ARES" = "x1"; then ac_configure_args="$ac_configure_args --enable-curldebug" @@@ -4008,7 -4180,6 +4320,7 @@@ AC_CONFIG_FILES([Makefile include/curl/Makefile \ src/Makefile \ lib/Makefile \ + extensions/Makefile \ scripts/Makefile \ lib/libcurl.vers \ tests/Makefile \ @@@ -4050,6 -4221,7 +4362,7 @@@ AC_MSG_NOTICE([Configured to build curl SSL support: ${curl_ssl_msg} SSH support: ${curl_ssh_msg} zlib support: ${curl_zlib_msg} + brotli support: ${curl_brotli_msg} GSS-API support: ${curl_gss_msg} TLS-SRP support: ${curl_tls_srp_msg} resolver: ${curl_res_msg} @@@ -4073,14 -4245,3 +4386,3 @@@ HTTP2 support: ${curl_h2_msg} Protocols: ${SUPPORT_PROTOCOLS} ]) - - if test "x$soname_bump" = "xyes"; then - - cat < header file. */ + #undef HAVE_BROTLI_DECODE_H + + /* Define to 1 if you have the __builtin_available function. */ + #undef HAVE_BUILTIN_AVAILABLE + /* Define to 1 if you have the clock_gettime function and monotonic timer. */ #undef HAVE_CLOCK_GETTIME_MONOTONIC @@@ -180,9 -195,6 +195,6 @@@ /* Define to 1 if you have the fdopen function. */ #undef HAVE_FDOPEN - /* Define to 1 if you have the `fork' function. */ - #undef HAVE_FORK - /* Define to 1 if you have the freeaddrinfo function. */ #undef HAVE_FREEADDRINFO @@@ -258,9 -270,6 +270,6 @@@ /* Define to 1 if you have the `getppid' function. */ #undef HAVE_GETPPID - /* Define to 1 if you have the `getprotobyname' function. */ - #undef HAVE_GETPROTOBYNAME - /* Define to 1 if you have the `getpwuid' function. */ #undef HAVE_GETPWUID @@@ -325,9 -334,6 +334,6 @@@ /* Define to 1 if you have the `if_nametoindex' function. */ #undef HAVE_IF_NAMETOINDEX - /* Define to 1 if you have the `inet_addr' function. */ - #undef HAVE_INET_ADDR - /* Define to 1 if you have the inet_ntoa_r function. */ #undef HAVE_INET_NTOA_R @@@ -392,6 -398,9 +398,9 @@@ /* Define to 1 if you have the `ldap_url_parse' function. */ #undef HAVE_LDAP_URL_PARSE + /* Define to 1 if you have the `brotlidec' library (-lbrotlidec). */ + #undef HAVE_LIBBROTLIDEC + /* Define to 1 if you have the header file. */ #undef HAVE_LIBGEN_H @@@ -404,20 -413,26 +413,26 @@@ /* Define to 1 if you have the header file. */ #undef HAVE_LIBRTMP_RTMP_H + /* Define to 1 if you have the `ssh' library (-lssh). */ + #undef HAVE_LIBSSH + /* Define to 1 if you have the `ssh2' library (-lssh2). */ #undef HAVE_LIBSSH2 /* Define to 1 if you have the header file. */ #undef HAVE_LIBSSH2_H + /* Define to 1 if you have the header file. */ + #undef HAVE_LIBSSH_LIBSSH_H + /* Define to 1 if you have the `ssl' library (-lssl). */ #undef HAVE_LIBSSL /* if zlib is available */ #undef HAVE_LIBZ - /* Define to 1 if you have the header file. */ - #undef HAVE_LIMITS_H + /* Define to 1 if you have the header file. */ + #undef HAVE_LINUX_TCP_H /* if your compiler supports LL */ #undef HAVE_LL @@@ -431,6 -446,9 +446,9 @@@ /* Define to 1 if the compiler supports the 'long long' data type. */ #undef HAVE_LONGLONG + /* Define to 1 if you have the `mach_absolute_time' function. */ + #undef HAVE_MACH_ABSOLUTE_TIME + /* Define to 1 if you have the malloc.h header file. */ #undef HAVE_MALLOC_H @@@ -446,6 -464,9 +464,9 @@@ /* Define to 1 if you have the header file. */ #undef HAVE_NETDB_H + /* Define to 1 if you have the header file. */ + #undef HAVE_NETINET_IN6_H + /* Define to 1 if you have the header file. */ #undef HAVE_NETINET_IN_H @@@ -477,9 -498,6 +498,6 @@@ /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_PEM_H - /* Define to 1 if you have the header file. */ - #undef HAVE_OPENSSL_PKCS12_H - /* Define to 1 if you have the header file. */ #undef HAVE_OPENSSL_RSA_H @@@ -495,12 -513,12 +513,12 @@@ /* Define to 1 if you have the header file. */ #undef HAVE_PEM_H - /* Define to 1 if you have the `perror' function. */ - #undef HAVE_PERROR - /* Define to 1 if you have the `pipe' function. */ #undef HAVE_PIPE + /* if you have the PK11_CreateManagedGenericObject function */ + #undef HAVE_PK11_CREATEMANAGEDGENERICOBJECT + /* Define to 1 if you have a working poll function. */ #undef HAVE_POLL @@@ -714,8 -732,8 +732,8 @@@ /* Define to 1 if you have the header file. */ #undef HAVE_TIME_H - /* Define to 1 if you have the `uname' function. */ - #undef HAVE_UNAME + /* Define this if time_t is unsigned */ + #undef HAVE_TIME_T_UNSIGNED /* Define to 1 if you have the header file. */ #undef HAVE_UNISTD_H @@@ -723,6 -741,9 +741,9 @@@ /* Define to 1 if you have the `utime' function. */ #undef HAVE_UTIME + /* Define to 1 if you have the `utimes' function. */ + #undef HAVE_UTIMES + /* Define to 1 if you have the header file. */ #undef HAVE_UTIME_H @@@ -876,6 -897,9 +897,9 @@@ /* Define to the function return type for send. */ #undef SEND_TYPE_RETV + /* The size of `curl_off_t', as computed by sizeof. */ + #undef SIZEOF_CURL_OFF_T + /* The size of `int', as computed by sizeof. */ #undef SIZEOF_INT @@@ -897,9 -921,6 +921,6 @@@ /* The size of `time_t', as computed by sizeof. */ #undef SIZEOF_TIME_T - /* The size of `void*', as computed by sizeof. */ - #undef SIZEOF_VOIDP - /* Define to 1 if you have the ANSI C header files. */ #undef STDC_HEADERS @@@ -921,9 -942,6 +942,9 @@@ /* to enable Apple OS native SSL/TLS support */ #undef USE_DARWINSSL +/* Define to 1 if you have the `icu-uc' library (-licu-uc). */ +#undef USE_ICU_IDNA + /* if GnuTLS is enabled */ #undef USE_GNUTLS @@@ -936,6 -954,9 +957,9 @@@ /* if librtmp is in use */ #undef USE_LIBRTMP + /* if libSSH is in use */ + #undef USE_LIBSSH + /* if libSSH2 is in use */ #undef USE_LIBSSH2 @@@ -1001,9 -1022,6 +1025,6 @@@ /* Define to 1 to provide own prototypes. */ #undef WANT_IDN_PROTOTYPES - /* Define to avoid automatic inclusion of winsock.h */ - #undef WIN32_LEAN_AND_MEAN - /* Define to 1 if OS is AIX. */ #ifndef _ALL_SOURCE # undef _ALL_SOURCE diff --combined packaging/curl.spec index 2efa05f,0000000..1230c20 mode 100644,000000..100644 --- a/packaging/curl.spec +++ b/packaging/curl.spec @@@ -1,137 -1,0 +1,122 @@@ +Name: curl +Summary: A utility for getting files from remote servers (FTP, HTTP, and others) - Version: 7.53.1 ++Version: 7.59.0 +Release: 1 +Group: Applications/Internet +License: MIT +URL: http://curl.haxx.se/ +#Source0: http://curl.haxx.se/download/%{name}-%{version}.tar.bz2 +Source0: %{name}-%{version}.tar.gz +Source1001: %{name}.manifest + +BuildRequires: pkgconfig(openssl) +BuildRequires: pkgconfig(zlib) +BuildRequires: pkgconfig(libcares) +BuildRequires: pkgconfig(libnghttp2) + +Provides: webclient + + +%description +curl is a client to get documents/files from servers, using any of the +supported protocols. The command is designed to work without user +interaction or any kind of interactivity. + +curl offers a busload of useful tricks like proxy support, user +authentication, ftp upload, HTTP post, file transfer resume and more. + +%package -n libcurl +Summary: A library for getting files from web servers +Group: System/Libraries +License: MIT +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + +%description -n libcurl +This package provides a way for applications to use FTP, HTTP, Gopher and +other servers for getting files. + + +%package -n libcurl-devel +Summary: Files needed for building applications with libcurl +Group: Development/Libraries +License: MIT +Requires: libcurl = %{version}-%{release} +Provides: curl-devel = %{version}-%{release} +Obsoletes: curl-devel < %{version}-%{release} + +%description -n libcurl-devel +libcurl is the core engine of curl; this packages contains all the libs, +headers, and manual pages to develop applications using libcurl. + - %package -n libcurl-extension-dlp - Summary: Extensions for Tizen OS - Provides: libcurl-extension-dlp = %{version}-%{release} - Requires(post): /sbin/ldconfig - Requires(postun): /sbin/ldconfig - - %description -n libcurl-extension-dlp - libcurl extensions for Tinen OS. - +%prep +%setup -q +cp %{SOURCE1001} . + +#%patch01 -p1 +#%patch02 -p1 + +%build + +export CPPFLAGS="-DHAVE_PK11_CREATEGENERICOBJECT" +CFLAGS+=" -fstack-protector-strong -Wl,-z,relro -D_FORTIFY_SOURCE=2 -fPIE -pie" +%if "%{TIZEN_PROFILE_TV}" == "1" +CFLAGS+=" -DTIZEN_TV_EXT" +%reconfigure --without-nss --without-gnutls --with-openssl --disable-ipv6 \ +%else +%reconfigure --without-nss --without-gnutls --with-openssl --enable-ipv6 \ +%endif +--with-ca-path==/etc/ssl/certs \ +--with-ca-bundle=/etc/ssl/ca-bundle.pem \ +--with-lber-lib=lber \ +--enable-manual --enable-versioned-symbols --enable-ares --enable-debug --enable-curldebug \ +--disable-static \ +--with-nghttp2 \ +--without-zsh-functions-dir \ - --enable-dlp \ + +#--with-ca-bundle=%{_sysconfdir}/pki/tls/certs/ca-bundle.crt + +sed -i -e 's,-L/usr/lib ,,g;s,-L/usr/lib64 ,,g;s,-L/usr/lib$,,g;s,-L/usr/lib64$,,g' \ +Makefile libcurl.pc +# Remove bogus rpath +sed -i \ +-e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' \ +-e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + +make %{?_smp_mflags} + +%install +rm -rf %{buildroot} + +rm -rf $RPM_BUILD_ROOT + +make DESTDIR=$RPM_BUILD_ROOT INSTALL="%{__install} -p" install + +rm -f ${RPM_BUILD_ROOT}%{_libdir}/libcurl{,_extension_dlp}.la +install -d $RPM_BUILD_ROOT/%{_datadir}/aclocal +install -m 644 docs/libcurl/libcurl.m4 $RPM_BUILD_ROOT/%{_datadir}/aclocal + + +# don't need curl's copy of the certs; use openssl's +find ${RPM_BUILD_ROOT} -name ca-bundle.crt -exec rm -f '{}' \; +rm -rf ${RPM_BUILD_ROOT}/usr/share/man + +%post -n libcurl -p /sbin/ldconfig + +%postun -n libcurl -p /sbin/ldconfig + +%files +%{_bindir}/curl +%license COPYING + +%files -n libcurl +%manifest %{name}.manifest +%{_libdir}/libcurl.so.* +%license COPYING + +%files -n libcurl-devel +%{_bindir}/curl-config* +%{_includedir}/curl +%{_libdir}/*.so +%{_libdir}/pkgconfig/*.pc +%{_datadir}/aclocal/libcurl.m4 - - %files -n libcurl-extension-dlp - %manifest %{name}.manifest - %{_libdir}/libcurl_extension_dlp.so.* - %license COPYING diff --combined src/Makefile.am index fb97da2,bfcd877..52a68c5 --- a/src/Makefile.am +++ b/src/Makefile.am @@@ -29,17 -29,13 +29,13 @@@ AUTOMAKE_OPTIONS = foreign nostdin # being currently built and tested are searched before the library which # might possibly already be installed in the system. # - # $(top_builddir)/include/curl for generated curlbuild.h included from curl.h - # $(top_builddir)/include for generated curlbuild.h inc. from lib/curl_setup.h # $(top_srcdir)/include is for libcurl's external include files # $(top_builddir)/lib is for libcurl's generated lib/curl_config.h file # $(top_builddir)/src is for curl's generated src/curl_config.h file # $(top_srcdir)/lib for libcurl's lib/curl_setup.h and other "borrowed" files # $(top_srcdir)/src is for curl's src/tool_setup.h and "curl-private" files - AM_CPPFLAGS = -I$(top_builddir)/include/curl \ - -I$(top_builddir)/include \ - -I$(top_srcdir)/include \ + AM_CPPFLAGS = -I$(top_srcdir)/include \ -I$(top_builddir)/lib \ -I$(top_builddir)/src \ -I$(top_srcdir)/lib \ @@@ -47,6 -43,8 +43,8 @@@ bin_PROGRAMS = curl + SUBDIRS = ../docs + if USE_CPPFLAG_CURL_STATICLIB AM_CPPFLAGS += -DCURL_STATICLIB endif @@@ -57,9 -55,7 +55,9 @@@ include Makefile.in curl_SOURCES = $(CURL_FILES) # This might hold -Werror -CFLAGS += @CURL_CFLAG_EXTRAS@ +# Enable Position Independent Executable flag +CFLAGS += @CURL_CFLAG_EXTRAS@ -fPIE +LDFLAGS += -pie # Prevent LIBS from being used for all link targets LIBS = $(BLANK_AT_MAKETIME) @@@ -72,7 -68,10 +70,10 @@@ endi curl_LDFLAGS = @LIBMETALINK_LDFLAGS@ curl_CPPFLAGS = $(AM_CPPFLAGS) $(LIBMETALINK_CPPFLAGS) - curl_DEPENDENCIES = $(top_builddir)/lib/libcurl.la + + @CODE_COVERAGE_RULES@ + curl_LDFLAGS += $(CODE_COVERAGE_LDFLAGS) + CFLAGS += $(CODE_COVERAGE_CFLAGS) # if unit tests are enabled, build a static library to link them with if BUILD_UNITTESTS @@@ -84,7 -83,6 +85,6 @@@ libcurltool_la_LDFLAGS = -static $(LINK libcurltool_la_SOURCES = $(curl_SOURCES) endif - BUILT_SOURCES = tool_hugehelp.c CLEANFILES = tool_hugehelp.c # Use the C locale to ensure that only ASCII characters appear in the # embedded text. @@@ -95,7 -93,8 +95,8 @@@ EXTRA_DIST = mkhelp.pl makefile.dj Make macos/src/curl_GUSIConfig.cpp macos/src/macos_main.cpp makefile.amiga \ curl.rc Makefile.netware Makefile.inc Makefile.Watcom CMakeLists.txt - MANPAGE=$(top_builddir)/docs/curl.1 + # Use absolute directory to disable VPATH + MANPAGE=$(abs_top_builddir)/docs/curl.1 README=$(top_srcdir)/docs/MANUAL MKHELP=$(top_srcdir)/src/mkhelp.pl HUGE=tool_hugehelp.c @@@ -104,12 -103,12 +105,12 @@@ if USE_MANUA # Here are the stuff to create a built-in manual $(MANPAGE): - cd $(top_builddir)/docs && make curl.1 + cd $(top_builddir)/docs && $(MAKE) if HAVE_LIBZ # This generates the tool_hugehelp.c file in both uncompressed and - # compressed formats - $(HUGE): $(README) $(MANPAGE) mkhelp.pl + # compressed formats. + $(HUGE): $(MANPAGE) $(README) $(MKHELP) echo '#include "tool_setup.h"' > $(HUGE) echo '#ifndef HAVE_LIBZ' >> $(HUGE) $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE) @@@ -118,7 -117,7 +119,7 @@@ echo '#endif /* HAVE_LIBZ */' >> $(HUGE) else # HAVE_LIBZ # This generates the tool_hugehelp.c file uncompressed only - $(HUGE): $(README) $(MANPAGE) mkhelp.pl + $(HUGE): $(MANPAGE) $(README) $(MKHELP) echo '#include "tool_setup.h"' > $(HUGE) $(NROFF) $(MANPAGE) | $(PERL) $(MKHELP) $(README) >> $(HUGE) endif