Проблема компиляции qpopper с OpenSSL под Debian Stretch - PullRequest
0 голосов
/ 07 сентября 2018

qpopper 4.1.0 не удается собрать в этой системе растяжения Debian. Существует проблема, связанная с openSSL; qpopper собирается правильно без openSSL.

root:/usr/src/qpopper/qpopper> ./configure --enable-specialauth --enable-shy --disable-log-login --with-openssl

(configuration proceeds and succeeds)

make clean
make

(numerous modules compile, and then ...)

gcc -c -I.. -I.. -I. \
        -I../mmangle -I../common -I/usr/local/ssl/include \
        -g -O2 -DHAVE_CONFIG_H  -DLINUX -DUNIX pop_tls_openssl.c -o pop_tls_openssl.o
pop_tls_openssl.c: In function âopenssl_initâ:
pop_tls_openssl.c:319:33: warning: assignment discards âconstâ qualifier from pointer target type [-Wdiscarded-qualifiers]
             pTLS->m_OpenSSLmeth = SSLv23_server_method();
                                 ^
pop_tls_openssl.c:324:35: warning: implicit declaration of function âSSLv2_server_methodâ [-Wimplicit-function-declaration]
             pTLS->m_OpenSSLmeth = SSLv2_server_method();
                                   ^~~~~~~~~~~~~~~~~~~
pop_tls_openssl.c:324:33: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             pTLS->m_OpenSSLmeth = SSLv2_server_method();
                                 ^
pop_tls_openssl.c:329:35: warning: implicit declaration of function âSSLv3_server_methodâ [-Wimplicit-function-declaration]
             pTLS->m_OpenSSLmeth = SSLv3_server_method();
                                   ^~~~~~~~~~~~~~~~~~~
pop_tls_openssl.c:329:33: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
             pTLS->m_OpenSSLmeth = SSLv3_server_method();
                                 ^
pop_tls_openssl.c:334:13: warning: âTLSv1_server_methodâ is deprecated [-Wdeprecated-declarations]
             pTLS->m_OpenSSLmeth = TLSv1_server_method();
             ^~~~
In file included from /usr/include/openssl/ct.h:13:0,
                 from /usr/include/openssl/ssl.h:61,
                 from pop_tls.h:41,
                 from pop_tls_openssl.c:45:
/usr/include/openssl/ssl.h:1613:1: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */
 ^
pop_tls_openssl.c:334:33: warning: assignment discards âconstâ qualifier from pointer target type [-Wdiscarded-qualifiers]
             pTLS->m_OpenSSLmeth = TLSv1_server_method();
                                 ^
pop_tls_openssl.c: In function âopenssl_handshakeâ:
pop_tls_openssl.c:533:18: warning: assignment discards âconstâ qualifier from pointer target type [-Wdiscarded-qualifiers]
             ciph = SSL_get_current_cipher ( pTLS->m_OpenSSLconn );
                  ^
pop_tls_openssl.c:541:48: error: dereferencing pointer to incomplete type âSSL {aka struct ssl_st}â
                           ( pTLS->m_OpenSSLconn->hit ? "reused" : "new" ),
                                                ^~
Makefile:224: recipe for target 'pop_tls_openssl.o' failed
make[1]: *** [pop_tls_openssl.o] Error 1
make[1]: Leaving directory '/usr/src/qpopper/qpopper/popper'
Makefile:72: recipe for target 'popper_server' failed
make: *** [popper_server] Error 2

Самое близкое, к чему я могу обратиться в связи с этой проблемой, это то, что определения библиотеки openSSL для struct ssl_st недавно были перемешаны.

Кто-нибудь знает, как изменить код qpopper, чтобы модуль openssl компилировался? Да, qpopper был заброшен Qualcomm несколько лет назад, но это гораздо проще для pop3, чем dovecot (был там, пробовал, не мог заставить его работать).

...