-
Incident report
-
Resolution: Fixed
-
Major
-
3.0.4
A new major version of OpenSSL was recently released: see https://www.openssl.org/news/openssl-1.1.0-notes.html .
Unfortunately, trying to compile Zabbix with OpenSSL 1.1.0 fails with the following errors:
$ make > /dev/null tls.c:1608:34: error: incomplete definition of type 'struct ssl_ctx_st' num = sk_SSL_CIPHER_num(ciphers->cipher_list); ~~~~~~~^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/ossl_typ.h:145:16: note: forward declaration of 'struct ssl_ctx_st' typedef struct ssl_ctx_st SSL_CTX; ^ tls.c:1613:33: error: incomplete definition of type 'struct ssl_ctx_st' sk_SSL_CIPHER_value(ciphers->cipher_list, i)->name); ~~~~~~~^ ../../../include/common.h:934:85: note: expanded from macro 'zbx_snprintf_alloc' __zbx_zbx_snprintf_alloc(str, alloc_len, offset, ZBX_CONST_STRING(fmt), ##__VA_ARGS__) ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/ossl_typ.h:145:16: note: forward declaration of 'struct ssl_ctx_st' typedef struct ssl_ctx_st SSL_CTX; ^ tls.c:3095:12: warning: 'TLSv1_2_client_method' is deprecated [-Wdeprecated-declarations] method = TLSv1_2_client_method(); ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/ssl.h:1610:45: note: 'TLSv1_2_client_method' has been explicitly marked deprecated here DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/opensslconf.h:127:53: note: expanded from macro 'DEPRECATEDIN_1_1_0' # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/opensslconf.h:102:35: note: expanded from macro 'DECLARE_DEPRECATED' # define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); ^ tls.c:3097:12: warning: 'TLSv1_2_method' is deprecated [-Wdeprecated-declarations] method = TLSv1_2_method(); ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/ssl.h:1608:45: note: 'TLSv1_2_method' has been explicitly marked deprecated here DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/opensslconf.h:127:53: note: expanded from macro 'DEPRECATEDIN_1_1_0' # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) ^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/opensslconf.h:102:35: note: expanded from macro 'DECLARE_DEPRECATED' # define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); ^ tls.c:5644:41: error: incomplete definition of type 'struct ssl_session_st' if (NULL != (attr->psk_identity = sess->psk_identity)) ~~~~^ /home/asaveljevs/software/openssl-1.1.0-install/include/openssl/ssl.h:228:16: note: forward declaration of 'struct ssl_session_st' typedef struct ssl_session_st SSL_SESSION; ^ 2 warnings and 3 errors generated. make[3]: *** [libzbxcrypto_a-tls.o] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all-recursive] Error 1