smanders / externpro

build external projects with cmake
MIT License
13 stars 12 forks source link

curl update supporting openssl 1.1 #249

Closed smanders closed 5 years ago

smanders commented 5 years ago

to move to OpenSSL 1.1.1c (and away from 1.0.2a) curl (which depends on OpenSSL) needs to be updated to a version that supports the new OpenSSL API

OpenSSL 1.1.1c (and 1.0.2a) are both available with https://github.com/smanders/externpro/issues/36

smanders commented 5 years ago

attempting to build the current version of curl (7.42.1) against openssl 1.1.1c

[ 66%] Building C object lib/CMakeFiles/libcurl.dir/vtls/openssl.c.o
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c: In function ‘Curl_ossl_cleanup’:
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:808:3: warning: ‘ERR_remove_thread_state’ is deprecated [-Wdeprecated-declarations]
   ERR_remove_thread_state(NULL);
   ^~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/e_os2.h:13:0,
                 from /home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/ssl.h:15,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/urldata.h:86,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:41:
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/err.h:260:25: note: declared here
 DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *))
                         ^
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/opensslconf.h:109:37: note: in definition of macro ‘DECLARE_DEPRECATED’
 #   define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                     ^
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/err.h:260:1: note: in expansion of macro ‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *))
 ^~~~~~~~~~~~~~~~~~
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c: In function ‘verifyhost’:
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:1185:9: warning: ‘ASN1_STRING_data’ is deprecated [-Wdeprecated-declarations]
         const char *altptr = (char *)ASN1_STRING_data(check->d.ia5);
         ^~~~~
In file included from /home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/e_os2.h:13:0,
                 from /home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/ssl.h:15,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/urldata.h:86,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:41:
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/asn1.h:554:35: note: declared here
 DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
                                   ^
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/opensslconf.h:109:37: note: in definition of macro ‘DECLARE_DEPRECATED’
 #   define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                     ^
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/asn1.h:554:1: note: in expansion of macro ‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
 ^~~~~~~~~~~~~~~~~~
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:1268:15: warning: ‘ASN1_STRING_data’ is deprecated [-Wdeprecated-declarations]
               memcpy(peer_CN, ASN1_STRING_data(tmp), j);
               ^~~~~~
In file included from /home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/e_os2.h:13:0,
                 from /home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/ssl.h:15,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/urldata.h:86,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:41:
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/asn1.h:554:35: note: declared here
 DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
                                   ^
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/opensslconf.h:109:37: note: in definition of macro ‘DECLARE_DEPRECATED’
 #   define DECLARE_DEPRECATED(f)    f __attribute__ ((deprecated));
                                     ^
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/asn1.h:554:1: note: in expansion of macro ‘DEPRECATEDIN_1_1_0’
 DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
 ^~~~~~~~~~~~~~~~~~
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c: In function ‘get_cert_chain’:
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:2497:13: error: dereferencing pointer to incomplete type ‘X509 {aka struct x509_st}’
     cinf = x->cert_info;
             ^~
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:2499:30: error: dereferencing pointer to incomplete type ‘X509_CINF {aka struct x509_cinf_st}’
     j = asn1_object_dump(cinf->signature->algorithm, bufp, CERTBUFFERSIZE);
                              ^~
/home/smanders/src/externpro/_bldx/xpbase/Source/curl/lib/vtls/openssl.c:2525:20: error: dereferencing pointer to incomplete type ‘EVP_PKEY {aka struct evp_pkey_st}’
       switch(pubkey->type) {
                    ^~
lib/CMakeFiles/libcurl.dir/build.make:1427: recipe for target 'lib/CMakeFiles/libcurl.dir/vtls/openssl.c.o' failed
make[5]: *** [lib/CMakeFiles/libcurl.dir/vtls/openssl.c.o] Error 1
CMakeFiles/Makefile2:90: recipe for target 'lib/CMakeFiles/libcurl.dir/all' failed
make[4]: *** [lib/CMakeFiles/libcurl.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make[3]: *** [all] Error 2
CMakeFiles/curl_Release.dir/build.make:113: recipe for target 'xpbase/Stamp/curl_Release/curl_Release-build' failed
make[2]: *** [xpbase/Stamp/curl_Release/curl_Release-build] Error 2
CMakeFiles/Makefile2:111: recipe for target 'CMakeFiles/curl_Release.dir/all' failed
make[1]: *** [CMakeFiles/curl_Release.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
smanders commented 5 years ago

completed with commits to dev branch referenced above