Bug#828505: pjproject: FTBFS with openssl 1.1.0

Bernhard Schmidt berni at debian.org
Thu Oct 27 07:18:31 UTC 2016


Control: forwarded -1 https://trac.pjsip.org/repos/ticket/1932
Control: tags -1 help

On Sun, Jun 26, 2016 at 12:23:43PM +0200, Kurt Roeckx wrote:

Hi,

> Source: pjproject
> Version: 2.4.5~dfsg-4
> Severity: important
> Control: block 827061 by -1
> 
> Hi,
> 
> OpenSSL 1.1.0 is about to released.  During a rebuild of all packages using
> OpenSSL this package fail to build.  A log of that build can be found at:
> https://breakpoint.cc/openssl-1.1-rebuild-2016-05-29/Attempted/pjproject_2.4.5~dfsg-4_amd64-20160529-1509
> 
> On https://wiki.openssl.org/index.php/1.1_API_Changes you can see various of the
> reasons why it might fail.  There are also updated man pages at
> https://www.openssl.org/docs/manmaster/ that should contain useful information.
> 
> There is a libssl-dev package available in experimental that contains a recent
> snapshot, I suggest you try building against that to see if everything works.
> 
> If you have problems making things work, feel free to contact us.

This is still happening with the latest upstream version 2.5.5 in
experimental. Upstream is tracking this for 2.6, I doubt this will be
ready for Stretch.

The symbol errors in the buildlog above are just a symptom, configure
does not find a usable libssl and drops all SSL support.

This is the relevant code

               AC_CHECK_LIB(crypto,ERR_load_BIO_strings,[libcrypto_present=1 && LIBS="-lcrypto $LIBS"])
                AC_CHECK_LIB(ssl,SSL_library_init,[libssl_present=1 && LIBS="-lssl $LIBS"])
                if test "x$openssl_h_present" = "x1" -a "x$libssl_present" = "x1" -a "x$libcrypto_present" = "x1"; then
                        AC_MSG_RESULT([OpenSSL library found, SSL support enabled])
                        # PJSIP_HAS_TLS_TRANSPORT setting follows PJ_HAS_SSL_SOCK
                        #AC_DEFINE(PJSIP_HAS_TLS_TRANSPORT, 1)
                        AC_DEFINE(PJ_HAS_SSL_SOCK, 1)
                else
                        AC_MSG_RESULT([** OpenSSL libraries not found, disabling SSL support **])

I changed that to check for OPENSSL_init_ssl instead of
SSL_library_init, which makes configure enable SSL and ultimately leads
to the following build error

gcc -c -Wall -DPJ_AUTOCONF=1 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/pjproject-2.5.5~dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -DPJ_IS_BIG_ENDIAN=0 -DPJ_IS_LITTLE_ENDIAN=1 -fPIC   -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -fdebug-prefix-map=/build/pjproject-2.5.5~dfsg=. -fstack-protector-strong -Wformat -Werror=format-security -I../include \
        -o output/pjlib-x86_64-pc-linux-gnu/ssl_sock_ossl.o \
        ../src/pj/ssl_sock_ossl.c 
../src/pj/ssl_sock_ossl.c: In function 'init_openssl':
../src/pj/ssl_sock_ossl.c:340:6: warning: 'TLSv1_server_method' is deprecated [-Wdeprecated-declarations]
      meth = (SSL_METHOD*)TLSv1_server_method();
      ^~~~
In file included from /usr/include/openssl/ct.h:13:0,
                 from /usr/include/openssl/ssl.h:61,
                 from ../src/pj/ssl_sock_ossl.c:49:
/usr/include/openssl/ssl.h:1597:1: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_server_method(void)) /* TLSv1.0 */
 ^
../src/pj/ssl_sock_ossl.c:347:26: warning: implicit declaration of function 'SSLv2_server_method' [-Wimplicit-function-declaration]
      meth = (SSL_METHOD*)SSLv2_server_method();
                          ^~~~~~~~~~~~~~~~~~~
../src/pj/ssl_sock_ossl.c:347:13: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
      meth = (SSL_METHOD*)SSLv2_server_method();
             ^
../src/pj/ssl_sock_ossl.c:365:23: error: dereferencing pointer to incomplete type 'SSL_CIPHER {aka const struct ssl_cipher_st}'
         (pj_uint32_t)c->id & 0x00FFFFFF;
                       ^~
../src/pj/ssl_sock_ossl.c: In function 'create_ssl':
../src/pj/ssl_sock_ossl.c:532:2: warning: 'TLSv1_method' is deprecated [-Wdeprecated-declarations]
  ssl_method = (SSL_METHOD*)TLSv1_method();
  ^~~~~~~~~~
In file included from /usr/include/openssl/ct.h:13:0,
                 from /usr/include/openssl/ssl.h:61,
                 from ../src/pj/ssl_sock_ossl.c:49:
/usr/include/openssl/ssl.h:1596:1: note: declared here
 DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_method(void)) /* TLSv1.0 */
 ^
../src/pj/ssl_sock_ossl.c:536:28: warning: implicit declaration of function 'SSLv2_method' [-Wimplicit-function-declaration]
  ssl_method = (SSL_METHOD*)SSLv2_method();
                            ^~~~~~~~~~~~
../src/pj/ssl_sock_ossl.c:536:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  ssl_method = (SSL_METHOD*)SSLv2_method();
               ^
../src/pj/ssl_sock_ossl.c: In function 'get_cert_info':
../src/pj/ssl_sock_ossl.c:1037:23: warning: implicit declaration of function 'M_ASN1_STRING_data' [-Wimplicit-function-declaration]
     q = (pj_uint8_t*) M_ASN1_STRING_data(X509_get_serialNumber(x));
                       ^~~~~~~~~~~~~~~~~~
../src/pj/ssl_sock_ossl.c:1037:9: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
     q = (pj_uint8_t*) M_ASN1_STRING_data(X509_get_serialNumber(x));
         ^
../src/pj/ssl_sock_ossl.c:1038:11: warning: implicit declaration of function 'M_ASN1_STRING_length' [-Wimplicit-function-declaration]
     len = M_ASN1_STRING_length(X509_get_serialNumber(x));
           ^~~~~~~~~~~~~~~~~~~~
../src/pj/ssl_sock_ossl.c:1108:7: warning: 'ASN1_STRING_data' is deprecated [-Wdeprecated-declarations]
       p = ASN1_STRING_data(name->d.ip);
       ^
In file included from /usr/include/openssl/bn.h:31:0,
                 from /usr/include/openssl/asn1.h:24,
                 from /usr/include/openssl/objects.h:916,
                 from /usr/include/openssl/evp.h:27,
                 from /usr/include/openssl/x509.h:23,
                 from /usr/include/openssl/ssl.h:50,
                 from ../src/pj/ssl_sock_ossl.c:49:
/usr/include/openssl/asn1.h:553:1: note: declared here
 DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x))
 ^
/build/pjproject-2.5.5~dfsg/build/rules.mak:163: recipe for target 'output/pjlib-x86_64-pc-linux-gnu/ssl_sock_ossl.o' failed

Bernhard
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.alioth.debian.org/pipermail/pkg-voip-maintainers/attachments/20161027/9f0bf81d/attachment-0001.sig>


More information about the Pkg-voip-maintainers mailing list