Imported Upstream version 7.73.0 79/250379/1 accepted/tizen/base/20210110.213348 submit/tizen_base/20210107.050301
authorSeonah Moon <seonah1.moon@samsung.com>
Thu, 24 Dec 2020 04:28:18 +0000 (13:28 +0900)
committerSeonah Moon <seonah1.moon@samsung.com>
Thu, 24 Dec 2020 04:28:23 +0000 (13:28 +0900)
Change-Id: Ia04bed727b7a36262539f5eb5b3866064da63f5e

1  2 
Makefile.am
configure.ac
lib/Makefile.inc
lib/curl_config.h.in
lib/sendf.c
lib/url.c
lib/vtls/openssl.c
packaging/curl.spec

diff --cc Makefile.am
Simple merge
diff --cc configure.ac
@@@ -5021,10 -5237,9 +5389,10 @@@ AC_MSG_NOTICE([Configured to build curl
    Alt-svc:          ${curl_altsvc_msg}
    HTTP2:            ${curl_h2_msg}
    HTTP3:            ${curl_h3_msg}
-   ESNI:             ${curl_esni_msg}
+   ECH:              ${curl_ech_msg}
    Protocols:        ${SUPPORT_PROTOCOLS}
    Features:         ${SUPPORT_FEATURES}
 +  Tizen Features:   ${SUPPORT_TIZEN_FEATURES}
  ])
  if test -n "$experimental"; then
   cat >&2 << _EOF
@@@ -46,51 -44,43 +44,48 @@@ LIB_VSSH_CFILES = vssh/libssh.c vssh/li
  
  LIB_VSSH_HFILES = vssh/ssh.h
  
- LIB_CFILES = file.c timeval.c base64.c hostip.c progress.c formdata.c   \
-   cookie.c http.c sendf.c ftp.c url.c dict.c if2ip.c speedcheck.c       \
-   ldap.c version.c getenv.c escape.c mprintf.c telnet.c netrc.c         \
-   getinfo.c transfer.c strcase.c easy.c security.c curl_fnmatch.c       \
-   fileinfo.c ftplistparser.c wildcard.c krb5.c memdebug.c http_chunks.c \
-   strtok.c connect.c llist.c hash.c multi.c content_encoding.c share.c  \
-   http_digest.c md4.c md5.c http_negotiate.c inet_pton.c strtoofft.c    \
-   strerror.c amigaos.c hostasyn.c hostip4.c hostip6.c hostsyn.c         \
-   inet_ntop.c parsedate.c select.c tftp.c splay.c strdup.c socks.c      \
-   curl_addrinfo.c socks_gssapi.c socks_sspi.c                           \
-   curl_sspi.c slist.c nonblock.c curl_memrchr.c imap.c pop3.c smtp.c    \
-   pingpong.c rtsp.c curl_threads.c warnless.c hmac.c curl_rtmp.c        \
-   openldap.c curl_gethostname.c gopher.c idn_win32.c                    \
-   http_proxy.c non-ascii.c asyn-ares.c asyn-thread.c curl_gssapi.c      \
-   http_ntlm.c curl_ntlm_wb.c curl_ntlm_core.c curl_sasl.c rand.c        \
-   curl_multibyte.c hostcheck.c conncache.c dotdot.c                     \
-   x509asn1.c http2.c smb.c curl_endian.c curl_des.c system_win32.c      \
-   mime.c sha256.c setopt.c curl_path.c curl_ctype.c curl_range.c psl.c  \
-   doh.c urlapi.c curl_get_line.c altsvc.c socketpair.c
 +if HAVE_TIZEN_DLP
 +LIB_EXTENSIONS_CFILES = extensions/curl_extensions.c
 +LIB_EXTENSIONS_HFILES = extensions/curl_extensions.h
 +endif
 +
+ LIB_CFILES = altsvc.c amigaos.c asyn-ares.c asyn-thread.c base64.c            \
+   conncache.c connect.c content_encoding.c cookie.c curl_addrinfo.c           \
+   curl_ctype.c curl_des.c curl_endian.c curl_fnmatch.c curl_get_line.c        \
+   curl_gethostname.c curl_gssapi.c curl_memrchr.c curl_multibyte.c            \
+   curl_ntlm_core.c curl_ntlm_wb.c curl_path.c curl_range.c curl_rtmp.c        \
+   curl_sasl.c curl_sspi.c curl_threads.c dict.c dotdot.c easy.c escape.c      \
+   file.c fileinfo.c formdata.c ftp.c url.c ftplistparser.c getenv.c getinfo.c \
+   gopher.c hash.c hmac.c hostasyn.c hostcheck.c hostip.c hostip4.c hostip6.c  \
+   hostsyn.c http.c http2.c http_chunks.c http_digest.c http_negotiate.c       \
+   http_ntlm.c http_proxy.c idn_win32.c if2ip.c imap.c inet_ntop.c inet_pton.c \
+   krb5.c ldap.c llist.c md4.c md5.c memdebug.c mime.c mprintf.c mqtt.c        \
+   multi.c netrc.c non-ascii.c nonblock.c openldap.c parsedate.c pingpong.c    \
+   pop3.c progress.c psl.c doh.c rand.c rename.c rtsp.c select.c               \
+   sendf.c setopt.c sha256.c share.c slist.c smb.c smtp.c socketpair.c socks.c \
+   socks_gssapi.c socks_sspi.c speedcheck.c splay.c strcase.c strdup.c         \
+   strerror.c strtok.c strtoofft.c system_win32.c telnet.c tftp.c timeval.c    \
+   transfer.c urlapi.c version.c warnless.c wildcard.c x509asn1.c dynbuf.c     \
+   version_win32.c easyoptions.c easygetopt.c
  
- LIB_HFILES = arpa_telnet.h netrc.h file.h timeval.h hostip.h progress.h \
-   formdata.h cookie.h http.h sendf.h ftp.h url.h dict.h if2ip.h         \
-   speedcheck.h urldata.h curl_ldap.h escape.h telnet.h getinfo.h        \
-   strcase.h curl_sec.h memdebug.h http_chunks.h curl_fnmatch.h          \
-   wildcard.h fileinfo.h ftplistparser.h strtok.h connect.h llist.h      \
-   hash.h content_encoding.h share.h curl_md4.h curl_md5.h http_digest.h \
-   http_negotiate.h inet_pton.h amigaos.h strtoofft.h strerror.h         \
-   inet_ntop.h curlx.h curl_memory.h curl_setup.h transfer.h select.h    \
-   easyif.h multiif.h parsedate.h tftp.h sockaddr.h splay.h strdup.h     \
-   socks.h curl_base64.h curl_addrinfo.h curl_sspi.h                     \
-   slist.h nonblock.h curl_memrchr.h imap.h pop3.h smtp.h pingpong.h     \
-   rtsp.h curl_threads.h warnless.h curl_hmac.h curl_rtmp.h              \
-   curl_gethostname.h gopher.h http_proxy.h non-ascii.h asyn.h           \
-   http_ntlm.h curl_gssapi.h curl_ntlm_wb.h curl_ntlm_core.h             \
-   curl_sasl.h curl_multibyte.h hostcheck.h conncache.h                  \
-   curl_setup_once.h multihandle.h setup-vms.h dotdot.h                  \
-   x509asn1.h http2.h sigpipe.h smb.h curl_endian.h curl_des.h           \
-   curl_printf.h system_win32.h rand.h mime.h curl_sha256.h setopt.h     \
-   curl_path.h curl_ctype.h curl_range.h psl.h doh.h urlapi-int.h        \
-   curl_get_line.h altsvc.h quic.h socketpair.h
+ LIB_HFILES = altsvc.h amigaos.h arpa_telnet.h asyn.h conncache.h connect.h    \
+   content_encoding.h cookie.h curl_addrinfo.h curl_base64.h curl_ctype.h      \
+   curl_des.h curl_endian.h curl_fnmatch.h curl_get_line.h curl_gethostname.h  \
+   curl_gssapi.h curl_hmac.h curl_ldap.h curl_md4.h curl_md5.h curl_memory.h   \
+   curl_memrchr.h curl_multibyte.h curl_ntlm_core.h curl_ntlm_wb.h curl_path.h \
+   curl_printf.h curl_range.h curl_rtmp.h curl_sasl.h curl_krb5.h curl_setup.h \
+   curl_setup_once.h curl_sha256.h curl_sspi.h curl_threads.h curlx.h dict.h   \
+   dotdot.h easyif.h escape.h file.h fileinfo.h formdata.h ftp.h url.h         \
+   ftplistparser.h getinfo.h gopher.h hash.h hostcheck.h hostip.h http.h       \
+   http2.h http_chunks.h http_digest.h http_negotiate.h http_ntlm.h            \
+   http_proxy.h if2ip.h imap.h inet_ntop.h inet_pton.h llist.h memdebug.h      \
+   mime.h mqtt.h multihandle.h multiif.h netrc.h non-ascii.h nonblock.h        \
+   parsedate.h pingpong.h pop3.h progress.h psl.h doh.h quic.h rand.h rename.h \
+   rtsp.h select.h sendf.h setopt.h setup-vms.h share.h sigpipe.h slist.h      \
+   smb.h smtp.h sockaddr.h socketpair.h socks.h speedcheck.h splay.h strcase.h \
+   strdup.h strerror.h strtok.h strtoofft.h system_win32.h telnet.h tftp.h     \
+   timeval.h transfer.h urlapi-int.h urldata.h warnless.h wildcard.h           \
+   x509asn1.h dynbuf.h version_win32.h easyoptions.h
  
  LIB_RCFILES = libcurl.rc
  
Simple merge
diff --cc lib/sendf.c
Simple merge
diff --cc lib/url.c
+++ b/lib/url.c
@@@ -130,13 -129,7 +132,11 @@@ bool curl_win32_idn_to_ascii(const cha
  #include "curl_memory.h"
  #include "memdebug.h"
  
 +#if defined(USE_ICU_IDNA)
 +#define MAX_DOMAIN_NAME_LEN 256
 +#endif  /* USE_ICU_IDNA */
 +
  static void conn_free(struct connectdata *conn);
- static void free_idnconverted_hostname(struct hostname *host);
- static unsigned int get_protocol_family(unsigned int protocol);
  
  /* Some parts of the code (e.g. chunked encoding) assume this buffer has at
   * more than just a few bytes to play with. Don't let it become too small or
@@@ -1191,9 -1243,10 +1250,12 @@@ ConnectionExists(struct Curl_easy *data
            }
          }
        }
+ #endif
+       DEBUGASSERT(!check->data || GOOD_EASY_HANDLE(check->data));
  
 +      DEBUGASSERT(!check->data || GOOD_EASY_HANDLE(check->data));
 +
        if(!canmultiplex && check->data)
          /* this request can't be multiplexed but the checked connection is
             already in use so we skip it */
@@@ -1486,29 -1557,11 +1566,31 @@@ CURLcode Curl_idnconvert_hostname(struc
        host->name = host->encalloc;
      }
      else {
-       failf(data, "Failed to convert %s to ACE;\n", host->name);
+       char buffer[STRERROR_LEN];
+       failf(data, "Failed to convert %s to ACE; %s\n", host->name,
+             Curl_winapi_strerror(GetLastError(), buffer, sizeof(buffer)));
        return CURLE_URL_MALFORMAT;
      }
 +#elif defined(USE_ICU_IDNA)
 +    char *ace_hostname = malloc(MAX_DOMAIN_NAME_LEN * sizeof(char));
 +    UErrorCode errorCode = U_ZERO_ERROR;
 +    UIDNAInfo info = UIDNA_INFO_INITIALIZER;
 +    UIDNA *uts46 =
 +      uidna_openUTS46(UIDNA_USE_STD3_RULES|UIDNA_NONTRANSITIONAL_TO_UNICODE,
 +                      &errorCode);
 +    int32_t length = uidna_nameToASCII_UTF8(uts46,
 +      host->name, strlen(host->name),
 +      ace_hostname, MAX_DOMAIN_NAME_LEN, &info, &errorCode);
 +    uidna_close(uts46);
 +
 +    if(errorCode != U_ZERO_ERROR || info.errors || length < 1) {
 +      infof(data, "Failed to convert %s to ACE;\n", host->name);
 +      return CURLE_URL_MALFORMAT;
 +    }
 +    else {
 +      host->encalloc = ace_hostname;
 +      host->name = host->encalloc;
 +    }
  #else
      infof(data, "IDN support not present, can't parse Unicode domains\n");
  #endif
Simple merge
index a2a6949,0000000..7c5aa0e
mode 100644,000000..100644
--- /dev/null
@@@ -1,136 -1,0 +1,136 @@@
- Version:    7.68.0
 +Name:       curl
 +Summary:    A utility for getting files from remote servers (FTP, HTTP, and others)
++Version:    7.73.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(icu-uc)
 +BuildRequires:  pkgconfig(openssl1.1)
 +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 -DHAVE_GETIFADDRS"
 +CFLAGS+=" -fstack-protector-strong -Wl,-z,relro -D_FORTIFY_SOURCE=2 -fPIE -pie"
 +CFLAGS+=" -DHAVE_GETIFADDRS"
 +%if "%{tizen_profile_name}" == "tv"
 +CFLAGS+=" -DTIZEN_TV_EXT"
 +%endif
 +%reconfigure --without-nss --without-gnutls --with-openssl --enable-ipv6 \
 +--with-ca-path==/etc/ssl/certs \
 +--with-ca-bundle=/etc/ssl/ca-bundle.pem \
 +--with-icu-uc \
 +--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