I find myself compiling comms/kermit with the ssl option (because I have
PKG_DEFAULT_OPTIONS += tls ssl) and it no longer compiles.
There are patches for ssl already, but they seem to need some
refreshing. I've put the exact errors I get below, but it seems to be
mostly about deprecated types/functions. Is there any guidance somewhere
on how to modernize openssl client programs?
"make PKG_OPTIONS.kermit=-ssl" builds fine, so ssl is the only problem.
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/lib contains links
to /usr/pkg/lib/lib{crypto,ssl}.so.1.1.
===> build-message [kermit-9.0.302nb11] ===> Building for kermit-9.0.302nb11
--- netbsd+ssl ---
Making C-Kermit "9.0.302" for NetBSD+OpenSSL SSLLIB=-L/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/lib -Wl,-R/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/lib
HAVE DES
--- netbsd ---
Making C-Kermit 9.0.302 for NetBSD with curses...
make CC=cc CC2=cc xermit KTARGET=${KTARGET:-netbsd} "CFLAGS=`grep fseeko /usr/include/stdio.h > /dev/null && echo '-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'` -DBSD44 -DCK_CURSES -DTCPSOCKET -DUSE_STRERROR -DHAVE_OPENPTY -funsigned-char -DHERALD=\"\\\" NetBSD `uname -r`\\\"\" -DCK_DTRCD -DCK_DTRCTS -DTPUTSARGTYPE=int -DFNFLOAT -DCK_AUTHENTICATION -DCK_ENCRYPTION -DCK_CAST -DCK_DES -DLIBDES -DCK_SSL -DCK_PAM -DZLIB -DNO_DCL_INET_ATON -DOPENSSL_100 -I/usr/pkg/include -I/usr/include -O" "LIBS= -lcurses -lcrypt -lm -lutil -L/usr/pkg/lib -R/usr/pkg/lib -lssl -ldes -lcurses -lcrypto -lcrypt -lz -lm -lpam -lutil -ltermcap -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib "
--- ck_ssl.o ---
cc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DBSD44 -DCK_CURSES -DTCPSOCKET -DUSE_STRERROR -DHAVE_OPENPTY -funsigned-char -DHERALD="\" NetBSD 8.1\"" -DCK_DTRCD -DCK_DTRCTS -DTPUTSARGTYPE=int -DFNFLOAT -DCK_AUTHENTICATION -DCK_ENCRYPTION -DCK_CAST -DCK_DES -DLIBDES -DCK_SSL -DCK_PAM -DZLIB -DNO_DCL_INET_ATON -DOPENSSL_100 -I/usr/pkg/include -I/usr/include -O -DKTARGET=\"netbsd+ssl\" -c ck_ssl.c
ck_ssl.c: In function 'ssl_server_verify_callback':
ck_ssl.c:304:27: error: dereferencing pointer to incomplete type 'X509_STORE_CTX {aka struct x509_store_ctx_st}'
ctx->error);
^~
ck_ssl.c: In function 'tmp_rsa_cb':
ck_ssl.c:825:9: warning: 'RSA_generate_key' is deprecated [-Wdeprecated-declarations]
rsa_tmp=RSA_generate_key(keylength,RSA_F4,NULL,NULL);
^~~~~~~
In file included from /pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/comp.h:13:0,
from ck_ssl.h:35,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/rsa.h:235:25: note: declared here
DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/rsa.h:235:1: note: in expansion of macro 'DEPRECATEDIN_0_9_8'
DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
^~~~~~~~~~~~~~~~~~
ck_ssl.c: In function 'get_dh512':
ck_ssl.c:939:7: error: dereferencing pointer to incomplete type 'DH {aka struct dh_st}'
dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);
^~
ck_ssl.c: In function 'ssl_display_comp':
ck_ssl.c:1057:12: error: dereferencing pointer to incomplete type 'SSL {aka struct ssl_st}'
if (ssl->expand == NULL || ssl->expand->meth == NULL)
^~
ck_ssl.c: In function 'ssl_once_init':
ck_ssl.c:1460:25: error: dereferencing pointer to incomplete type 'COMP_METHOD {aka struct comp_method_st}'
if (cm != NULL && cm->type != NID_undef) {
^~
ck_ssl.c:1464:10: warning: implicit declaration of function 'COMP_rle'; did you mean 'COMP_zlib'? [-Wimplicit-function-declaration]
cm = COMP_rle();
^~~~~~~~
COMP_zlib
ck_ssl.c:1464:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
cm = COMP_rle();
^
ck_ssl.c:1486:15: warning: implicit declaration of function 'RAND_egd'; did you mean 'RAND_add'? [-Wimplicit-function-declaration]
rc1 = RAND_egd(ssl_rnd_file);
^~~~~~~~
RAND_add
ck_ssl.c: In function 'ssl_tn_init':
ck_ssl.c:1582:48: warning: implicit declaration of function 'SSLv3_client_method'; did you mean 'SSLv23_client_method'? [-Wimplicit-function-declaration]
ssl_ctx=(SSL_CTX *)SSL_CTX_new(SSLv3_client_method());
^~~~~~~~~~~~~~~~~~~
SSLv23_client_method
ck_ssl.c:1582:48: warning: passing argument 1 of 'SSL_CTX_new' makes pointer from integer without a cast [-Wint-conversion]
In file included from ck_ssl.h:51:0,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1503:17: note: expected 'const SSL_METHOD * {aka const struct ssl_method_st *}' but argument is of type 'int'
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
^~~~~~~~~~~
ck_ssl.c:1590:13: warning: 'TLSv1_client_method' is deprecated [-Wdeprecated-declarations]
tls_ctx=(SSL_CTX *)SSL_CTX_new(TLSv1_client_method());
^~~~~~~
In file included from /pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/comp.h:13:0,
from ck_ssl.h:35,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1879:45: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void))
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1879:1: note: in expansion of macro 'DEPRECATEDIN_1_1_0'
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void))
^~~~~~~~~~~~~~~~~~
ck_ssl.c:1614:48: warning: implicit declaration of function 'SSLv3_server_method'; did you mean 'SSLv23_server_method'? [-Wimplicit-function-declaration]
ssl_ctx=(SSL_CTX *)SSL_CTX_new(SSLv3_server_method());
^~~~~~~~~~~~~~~~~~~
SSLv23_server_method
ck_ssl.c:1614:48: warning: passing argument 1 of 'SSL_CTX_new' makes pointer from integer without a cast [-Wint-conversion]
In file included from ck_ssl.h:51:0,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1503:17: note: expected 'const SSL_METHOD * {aka const struct ssl_method_st *}' but argument is of type 'int'
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
^~~~~~~~~~~
ck_ssl.c:1628:17: warning: 'TLSv1_server_method' is deprecated [-Wdeprecated-declarations]
tls_ctx=(SSL_CTX *)SSL_CTX_new(TLSv1_server_method());
^~~~~~~
In file included from /pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/comp.h:13:0,
from ck_ssl.h:35,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1878:45: note: declared here
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void))
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1878:1: note: in expansion of macro 'DEPRECATEDIN_1_1_0'
DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void))
^~~~~~~~~~~~~~~~~~
ck_ssl.c:1780:17: warning: 'RSA_generate_key' is deprecated [-Wdeprecated-declarations]
rsa=RSA_generate_key(512,RSA_F4,NULL,NULL);
^~~
In file included from /pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/comp.h:13:0,
from ck_ssl.h:35,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/rsa.h:235:25: note: declared here
DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/rsa.h:235:1: note: in expansion of macro 'DEPRECATEDIN_0_9_8'
DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void
^~~~~~~~~~~~~~~~~~
ck_ssl.c: In function 'ssl_http_init':
ck_ssl.c:2164:49: warning: passing argument 1 of 'SSL_CTX_new' makes pointer from integer without a cast [-Wint-conversion]
tls_http_ctx=(SSL_CTX *)SSL_CTX_new(SSLv3_client_method());
^~~~~~~~~~~~~~~~~~~
In file included from ck_ssl.h:51:0,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/ssl.h:1503:17: note: expected 'const SSL_METHOD * {aka const struct ssl_method_st *}' but argument is of type 'int'
__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth);
^~~~~~~~~~~
ck_ssl.c: In function 'ssl_verify_crl':
ck_ssl.c:2578:17: error: storage size of 'obj' isn't known
X509_OBJECT obj;
^~~
ck_ssl.c:2656:13: warning: implicit declaration of function 'X509_OBJECT_free_contents'; did you mean 'X509_OBJECT_up_ref_count'? [-Wimplicit-function-declaration]
X509_OBJECT_free_contents(&obj);
^~~~~~~~~~~~~~~~~~~~~~~~~
X509_OBJECT_up_ref_count
ck_ssl.c:2664:9: warning: 'X509_CRL_get_nextUpdate' is deprecated [-Wdeprecated-declarations]
i = X509_cmp_current_time(X509_CRL_get_nextUpdate(crl));
^
In file included from /pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/comp.h:13:0,
from ck_ssl.h:35,
from ck_ssl.c:108:
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/x509.h:728:31: note: declared here
DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl))
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/opensslconf.h:109:37: note: in definition of macro 'DECLARE_DEPRECATED'
# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated));
^
/pkg_comp/obj/pkgsrc/comms/kermit/default/.buildlink/include/openssl/x509.h:728:1: note: in expansion of macro 'DEPRECATEDIN_1_1_0'
DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl))
^~~~~~~~~~~~~~~~~~
ck_ssl.c:2701:41: error: dereferencing pointer to incomplete type 'X509_REVOKED {aka struct x509_revoked_st}'
if (ASN1_INTEGER_cmp(revoked->serialNumber,
^~
ck_ssl.c: In function 'X509_userok':
ck_ssl.c:4348:39: error: dereferencing pointer to incomplete type 'X509 {aka struct x509_st}'
if (!ASN1_STRING_cmp(peer_cert->signature, file_cert->signature))
^~
*** [ck_ssl.o] Error code 1
make[2]: stopped in /pkg_comp/obj/pkgsrc/comms/kermit/default
1 error
-Olaf.
--
Olaf 'Rhialto' Seibert -- rhialto at falu dot nl
___ Anyone who is capable of getting themselves made President should on
\X/ no account be allowed to do the job. --Douglas Adams, "THGTTG"
Attachment:
signature.asc
Description: PGP signature