smanders / externpro

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

activemq update supporting openssl 1.1 #250

Closed smanders closed 4 years ago

smanders commented 4 years ago

to move to OpenSSL 1.1.1c (and away from 1.0.2a) activemq (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 4 years ago

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

[  0%] Building CXX object src/main/CMakeFiles/activemqcpp.dir/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp.o
...
/home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp: In member function ‘void decaf::internal::net::ssl::openssl::OpenSSLSocket::verifyServerCert(const string&)’:
/home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:667:50: error: invalid use of incomplete type ‘X509_EXTENSION {aka struct X509_extension_st}’
             const unsigned char* data = extension->value->data;
                                                  ^~
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/ssl.h:20:0,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:21:
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/x509.h:81:16: note: forward declaration of ‘X509_EXTENSION {aka struct X509_extension_st}’
 typedef struct X509_extension_st X509_EXTENSION;
                ^~~~~~~~~~~~~~~~~
/home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:670:65: error: invalid use of incomplete type ‘X509_EXTENSION {aka struct X509_extension_st}’
                             ASN1_item_d2i(NULL, &data, extension->value->length, ASN1_ITEM_ptr(method->it)) :
                                                                 ^~
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/ssl.h:20:0,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:21:
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/x509.h:81:16: note: forward declaration of ‘X509_EXTENSION {aka struct X509_extension_st}’
 typedef struct X509_extension_st X509_EXTENSION;
                ^~~~~~~~~~~~~~~~~
/home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:671:63: error: invalid use of incomplete type ‘X509_EXTENSION {aka struct X509_extension_st}’
                             method->d2i(NULL, &data, extension->value->length), 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/ssl.h:20:0,
                 from /home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:21:
/home/smanders/src/externpro/_bldx/externpro_smanders-dirtyrepo-19.06.1-36-g6133a71-p-gcc740-64/include/openssl_1.1.1c/openssl/x509.h:81:16: note: forward declaration of ‘X509_EXTENSION {aka struct X509_extension_st}’
 typedef struct X509_extension_st X509_EXTENSION;
                ^~~~~~~~~~~~~~~~~
/home/smanders/src/externpro/_bldx/xpbase/Source/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:697:100: warning: ‘unsigned char* ASN1_STRING_data(ASN1_STRING*)’ is deprecated [-Wdeprecated-declarations]
            const char * entryText = (const char *) ASN1_STRING_data(X509_NAME_ENTRY_get_data(entry));
                                                                                                    ^
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/activemqcpp/src/main/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp:21:
/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: declared here
 DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
 ^
src/main/CMakeFiles/activemqcpp.dir/build.make:4456: recipe for target 'src/main/CMakeFiles/activemqcpp.dir/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp.o' failed
make[5]: *** [src/main/CMakeFiles/activemqcpp.dir/decaf/internal/net/ssl/openssl/OpenSSLSocket.cpp.o] Error 1
CMakeFiles/Makefile2:90: recipe for target 'src/main/CMakeFiles/activemqcpp.dir/all' failed
make[4]: *** [src/main/CMakeFiles/activemqcpp.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make[3]: *** [all] Error 2
CMakeFiles/activemqcpp_Release.dir/build.make:113: recipe for target 'xpbase/Stamp/activemqcpp_Release/activemqcpp_Release-build' failed
make[2]: *** [xpbase/Stamp/activemqcpp_Release/activemqcpp_Release-build] Error 2
CMakeFiles/Makefile2:365: recipe for target 'CMakeFiles/activemqcpp_Release.dir/all' failed
make[1]: *** [CMakeFiles/activemqcpp_Release.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
smanders commented 4 years ago

until there is an activemqcpp update to support openssl 1.1, it should find the openssl it depends on in it's use script (so that even if other things are using openssl 1.1, activemqcpp will use openssl 1.0)

smanders commented 4 years ago

completed with commits to dev branch referenced above