It would appear that qpopper needs to be massaged for the openssl update in -current. ===> Building for qpopper-4.1.0_6 cd ./popper && /usr/bin/make all cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_dele.c -o pop_dele.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_dropcopy.c -o pop_dropcopy.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_get_command.c -o pop_get_command.o pop_get_command.c:41:31: warning: incompatible pointer types initializing 'int (*)()' with an expression of type 'pop_result (POP *)' (aka 'pop_result (struct _pop *)') [-Wincompatible-pointer-types] { auth2, "pass", 1, 1, pop_pass, {halt, trans} }, ^~~~~~~~ 1 warning generated. cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_get_subcommand.c -o pop_get_subcommand.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_init.c -o pop_init.o pop_init.c:1209:52: warning: passing 'int *' to parameter of type 'socklen_t *' (aka 'unsigned int *') converts between pointers to integer types with different sign [-Wpointer-sign] if ( getpeername ( sp, (struct sockaddr *)&cs, &len ) < 0 ) { ^~~~ /usr/include/sys/socket.h:668:74: note: passing argument to parameter here int getpeername(int, struct sockaddr * __restrict, socklen_t * __restrict); ^ 1 warning generated. cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_last.c -o pop_last.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_list.c -o pop_list.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_log.c -o pop_log.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_lower.c -o pop_lower.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_msg.c -o pop_msg.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_parse.c -o pop_parse.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_pass.c -o pop_pass.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_quit.c -o pop_quit.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_rset.c -o pop_rset.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_send.c -o pop_send.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_stat.c -o pop_stat.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_updt.c -o pop_updt.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_user.c -o pop_user.o pop_user.c:396:56: warning: format string is not a string literal (potentially insecure) [-Wformat-security] return ( pop_auth_fail ( p, POP_FAILURE, HERE, ERRMSG_STRONG ) ); ^~~~~~~~~~~~~ pop_user.c:396:56: note: treat the string as an argument to avoid this return ( pop_auth_fail ( p, POP_FAILURE, HERE, ERRMSG_STRONG ) ); ^ "%s", pop_user.c:404:34: warning: format string is not a string literal (potentially insecure) [-Wformat-security] ERRMSG_TLS_STRONG ) ); ^~~~~~~~~~~~~~~~~ pop_user.c:404:34: note: treat the string as an argument to avoid this ERRMSG_TLS_STRONG ) ); ^ "%s", 2 warnings generated. cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_xtnd.c -o pop_xtnd.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_xmit.c -o pop_xmit.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX popper.c -o popper.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_bull.c -o pop_bull.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX xtnd_xlst.c -o xtnd_xlst.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_uidl.c -o pop_uidl.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_rpop.c -o pop_rpop.o pop_rpop.c:91:10: warning: implicit declaration of function 'iruserok_sa' is invalid in C99 [-Wimplicit-function-declaration] if ( iruserok_sa ( res->ai_addr, res->ai_addrlen, ^ 1 warning generated. cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_apop.c -o pop_apop.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_auth.c -o pop_auth.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_pope.c -o pop_pope.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_extend.c -o pop_extend.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX scram.c -o scram.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX hmac.c -o hmac.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_util.c -o pop_util.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX get_sub_opt.c -o get_sub_opt.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX msg_ptr.c -o msg_ptr.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX drac.c -o drac.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_config.c -o pop_config.o pop_config.c:328:50: warning: implicit conversion from enumeration type 'config_call_type' to different enumeration type 'config_restr_type' [-Wenum-conversion] { "log-facility" , CfgMnem , CfgInit , kLOG_FACILITY }, ~ ^~~~~~~ pop_config.c:329:50: warning: implicit conversion from enumeration type 'config_call_type' to different enumeration type 'config_restr_type' [-Wenum-conversion] { "log-login" , CfgStr , CfgInit , kLOG_LOGIN }, ~ ^~~~~~~ pop_config.c:1348:24: warning: implicit conversion from enumeration type 'pop_result' to different enumeration type 'error_code_type' [-Wenum-conversion] return POP_FAILURE; ~~~~~~ ^~~~~~~~~~~ pop_config.c:1561:23: warning: implicit conversion from enumeration type 'error_code_type' to different enumeration type 'pop_result' [-Wenum-conversion] err = handle_value ( p, opt, ptok, tok_len, CallTime ); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pop_config.c:1564:31: warning: implicit conversion from enumeration type 'pop_result' to different enumeration type 'error_code_type' [-Wenum-conversion] tilt ( p, err, ptok, tok_len, line_no, config_file, opt, HERE ); ~~~~ ^~~ pop_config.c:1573:27: warning: implicit conversion from enumeration type 'error_code_type' to different enumeration type 'pop_result' [-Wenum-conversion] err = handle_value ( p, opt, "false", 5, CallTime ); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pop_config.c:1575:27: warning: implicit conversion from enumeration type 'error_code_type' to different enumeration type 'pop_result' [-Wenum-conversion] err = handle_value ( p, opt, "true", 4, CallTime ); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pop_config.c:1736:11: warning: implicit conversion from enumeration type 'error_code_type' to different enumeration type 'pop_result' [-Wenum-conversion] err = handle_value ( p, opt, opt_value, strlen(opt_value), CfgInit ); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 8 warnings generated. cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_tls.c -o pop_tls.o cc -c -I.. -I.. -I. -I../mmangle -I../common -I/usr/include -O2 -pipe -fstack-protector -fno-strict-aliasing -DHAVE_CONFIG_H -DSETPROCTITLE -DAPOP_ONLY -DFREEBSD -DUNIX pop_tls_openssl.c -o pop_tls_openssl.o pop_tls_openssl.c:203:5: warning: implicitly declaring library function 'strcpy' with type 'char *(char *, const char *)' [-Wimplicit-function-declaration] strcpy ( buf, deblanked ); ^ pop_tls_openssl.c:203:5: note: include the header <string.h> or explicitly provide a declaration for 'strcpy' pop_tls_openssl.c:324:33: warning: assigning to 'SSL_METHOD *' (aka 'struct ssl_method_st *') from 'const SSL_METHOD *' (aka 'const struct ssl_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] pTLS->m_OpenSSLmeth = SSLv23_server_method(); ^ ~~~~~~~~~~~~~~~~~~~~~~ pop_tls_openssl.c:330:35: warning: implicit declaration of function 'SSLv2_server_method' is invalid in C99 [-Wimplicit-function-declaration] pTLS->m_OpenSSLmeth = SSLv2_server_method(); ^ pop_tls_openssl.c:330:33: warning: incompatible integer to pointer conversion assigning to 'SSL_METHOD *' (aka 'struct ssl_method_st *') from 'int' [-Wint-conversion] pTLS->m_OpenSSLmeth = SSLv2_server_method(); ^ ~~~~~~~~~~~~~~~~~~~~~ pop_tls_openssl.c:337:35: warning: 'SSLv3_server_method' is deprecated [-Wdeprecated-declarations] pTLS->m_OpenSSLmeth = SSLv3_server_method(); ^ /usr/include/openssl/ssl.h:1838:1: note: 'SSLv3_server_method' has been explicitly marked deprecated here DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_server_method(void)) ^ /usr/include/openssl/opensslconf.h:147:34: note: expanded from macro 'DEPRECATEDIN_1_1_0' # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) ^ /usr/include/openssl/opensslconf.h:110:55: note: expanded from macro 'DECLARE_DEPRECATED' # define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); ^ pop_tls_openssl.c:337:33: warning: assigning to 'SSL_METHOD *' (aka 'struct ssl_method_st *') from 'const SSL_METHOD *' (aka 'const struct ssl_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] pTLS->m_OpenSSLmeth = SSLv3_server_method(); ^ ~~~~~~~~~~~~~~~~~~~~~ pop_tls_openssl.c:343:35: warning: 'TLSv1_server_method' is deprecated [-Wdeprecated-declarations] pTLS->m_OpenSSLmeth = TLSv1_server_method(); ^ /usr/include/openssl/ssl.h:1853:1: note: 'TLSv1_server_method' has been explicitly marked deprecated here DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) ^ /usr/include/openssl/opensslconf.h:147:34: note: expanded from macro 'DEPRECATEDIN_1_1_0' # define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) ^ /usr/include/openssl/opensslconf.h:110:55: note: expanded from macro 'DECLARE_DEPRECATED' # define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); ^ pop_tls_openssl.c:343:33: warning: assigning to 'SSL_METHOD *' (aka 'struct ssl_method_st *') from 'const SSL_METHOD *' (aka 'const struct ssl_method_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] pTLS->m_OpenSSLmeth = TLSv1_server_method(); ^ ~~~~~~~~~~~~~~~~~~~~~ pop_tls_openssl.c:542:18: warning: assigning to 'SSL_CIPHER *' (aka 'struct ssl_cipher_st *') from 'const SSL_CIPHER *' (aka 'const struct ssl_cipher_st *') discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers] ciph = SSL_get_current_cipher ( pTLS->m_OpenSSLconn ); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ pop_tls_openssl.c:550:48: error: incomplete definition of type 'struct ssl_st' ( pTLS->m_OpenSSLconn->hit ? "reused" : "new" ), ~~~~~~~~~~~~~~~~~~~^ /usr/include/openssl/ossl_typ.h:147:16: note: forward declaration of 'struct ssl_st' typedef struct ssl_st SSL; ^ 9 warnings and 1 error generated. *** Error code 1
I’ll see if I can provide a patch
(In reply to Nathan from comment #1) I don't think I can fix this one. The way it is coded is different than the others I've done
The last official version is from 2011. It is the question if this port is deprecated? I got it to compiler with: popper/pop_tls_openssl.c #define OPENSSL_NO_SSL3_METHOD 1 (but I have libressl)
I'm using the port. This should be easy to fix. I'm taking it.
A commit references this bug: Author: eugen Date: Wed Nov 14 18:14:53 UTC 2018 New revision: 484938 URL: https://svnweb.freebsd.org/changeset/ports/484938 Log: Fix mail/qpopper: - remove MASTER_SITE ftp.qualcomm.com that is no more and add a couple of living distfile sources; - describe custom BSD-style Quallcom license for the distfile; - fix building with openssl-1.1.1 that no longer has SSLv2 support plus made struct ssl_st (SSL) completely opaque, so better use public interface SSL_session_reused() instead of direct access to now hidden "hit" part of struct; this works for previous openssl versions too. No PORTREVISION bump as this fixed package building for FreeBSD 12+ and has no visible package changes for other supported branches. PR: 232383 Reported by: sbruno Approved by: bc979@lafn.org (maintainer timeout, 4 weeks) Changes: head/mail/qpopper/Makefile head/mail/qpopper/files/patch-popper__pop_tls_openssl.c