Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

Re: Build fails after upgrading from 7.72 to 7.73

From: Jeffrey Walton via curl-library <curl-library_at_cool.haxx.se>
Date: Thu, 15 Oct 2020 18:21:26 -0400

On Thu, Oct 15, 2020 at 3:20 PM Firefox OS via curl-library
<curl-library_at_cool.haxx.se> wrote:
>
> I tried to build curl 7.73 using following options:
>
> ./configure --disable-static --enable-shared --prefix=/usr \
> --host=i686-buildroot-linux-uclibc --disable-debug \
> --enable-warnings --disable-curldebug --enable-symbol-hiding \
> --disable-ares --enable-silent-rules --disable-largefile \
> --enable-http --disable-ftp --disable-file --disable-ldap \
> --disable-ldaps --disable-rtsp --enable-proxy --disable-dict \
> --disable-telnet --disable-tftp --disable-pop3 --enable-imap \
> --enable-smtp --disable-gopher --disable-manual \
> --disable-libcurl-option --disable-ipv6 --disable-unix-sockets \
> --enable-versioned-symbols --enable-threaded-resolver \
> --disable-verbose --disable-sspi --enable-crypto-auth \
> --disable-ntlm-wb --disable-tls-srp --enable-cookies \
> --enable-http-auth --disable-doh --disable-mime \
> --disable-dateparse --disable-netrc --disable-progress-meter \
> --disable-dnsshuffle \
> --without-gnutls --without-wolfssl --without-bearssl \
> --without-libmetalink --without-libssh2 --without-librtmp \
> --without-libidn \
> --with-ca-path=/etc/certs
>
> Results:
> ...
> checking for SRP_Calc_client_key in -lcrypto... yes
> configure: built with one SSL backend
> ...
> checking whether to enable TLS-SRP authentication... no
> ...
> curl version: 7.73.0
> SSL: enabled (OpenSSL)
> ...
> TLS-SRP: no (--enable-tls-srp)
> ...
> In file included from vtls/openssl.c:55:
> vtls/openssl.c: In function ‘ossl_connect_step1’:
> vtls/vtls.h:133:40: error: ‘struct ssl_config_data’ has no member named ‘authtype’
> 133 | (SSL_IS_PROXY() ? data->set.proxy_ssl.var : data->set.ssl.var)
> | ^
> vtls/openssl.c:2475:42: note: in expansion of macro ‘SSL_SET_OPTION’
> 2475 | const enum CURL_TLSAUTH ssl_authtype = SSL_SET_OPTION(authtype);
> | ^~~~~~~~~~~~~~
> vtls/vtls.h:133:60: error: ‘struct ssl_config_data’ has no member named ‘authtype’
> 133 | (SSL_IS_PROXY() ? data->set.proxy_ssl.var : data->set.ssl.var)
> | ^
> vtls/openssl.c:2475:42: note: in expansion of macro ‘SSL_SET_OPTION’
> 2475 | const enum CURL_TLSAUTH ssl_authtype = SSL_SET_OPTION(authtype);
> | ^~~~~~~~~~~~~~
> vtls/vtls.h:133:40: error: ‘struct ssl_config_data’ has no member named ‘username’
> 133 | (SSL_IS_PROXY() ? data->set.proxy_ssl.var : data->set.ssl.var)
> | ^
> vtls/openssl.c:2802:33: note: in expansion of macro ‘SSL_SET_OPTION’
> 2802 | char * const ssl_username = SSL_SET_OPTION(username);
> | ^~~~~~~~~~~~~~
> vtls/vtls.h:133:60: error: ‘struct ssl_config_data’ has no member named ‘username’
> 133 | (SSL_IS_PROXY() ? data->set.proxy_ssl.var : data->set.ssl.var)
> | ^
> vtls/openssl.c:2802:33: note: in expansion of macro ‘SSL_SET_OPTION’
> 2802 | char * const ssl_username = SSL_SET_OPTION(username);
> | ^~~~~~~~~~~~~~
> vtls/vtls.h:133:40: error: ‘struct ssl_config_data’ has no member named ‘password’
> 133 | (SSL_IS_PROXY() ? data->set.proxy_ssl.var : data->set.ssl.var)
> | ^
> vtls/openssl.c:2810:48: note: in expansion of macro ‘SSL_SET_OPTION’
> 2810 | if(!SSL_CTX_set_srp_password(backend->ctx, SSL_SET_OPTION(password))) {
> | ^~~~~~~~~~~~~~
> vtls/vtls.h:133:60: error: ‘struct ssl_config_data’ has no member named ‘password’
> 133 | (SSL_IS_PROXY() ? data->set.proxy_ssl.var : data->set.ssl.var)
> | ^
> vtls/openssl.c:2810:48: note: in expansion of macro ‘SSL_SET_OPTION’
> 2810 | if(!SSL_CTX_set_srp_password(backend->ctx, SSL_SET_OPTION(password))) {
> | ^~~~~~~~~~~~~~
> make[3]: *** [Makefile:2623: vtls/libcurl_la-openssl.lo] Błąd 1
>
> The issue goes away if I delete "--disable-tls-srp".
> Does this mean that after fixing #5865 this configure option isn't respected anymore?

It looks like some sort of typo. I cannot find ssl_config_data in the
OpenSSL 1.1.x branch or the previous 1.0.x branch:

openssl$ git checkout OpenSSL_1_1_0-stable
Branch 'OpenSSL_1_1_0-stable' set up to track remote branch
'OpenSSL_1_1_0-stable' from 'origin'.
Switched to a new branch 'OpenSSL_1_1_0-stable'
openssl$ grep -IR ssl_config_data ./*
openssl$ git checkout OpenSSL_1_0_0-stable
Branch 'OpenSSL_1_0_0-stable' set up to track remote branch
'OpenSSL_1_0_0-stable' from 'origin'.
Switched to a new branch 'OpenSSL_1_0_0-stable'
openssl$ grep -IR ssl_config_data ./*
openssl$ git checkout OpenSSL_1_0_2-stable
Switched to branch 'OpenSSL_1_0_2-stable'
Your branch is up to date with 'origin/OpenSSL_1_0_2-stable'.
openssl$ grep -IR ssl_config_data ./*

I also took a peek in the OpenSSL 0.9.8 branch, and ssl_config_data
was missing there, too.

Maybe a different backend provides ssl_config_data.

Jeff

-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2020-10-16