[Home]

Summary:ASTERISK-26109: Asterisk fails building with OpenSSL 1.1.0
Reporter:Tzafrir Cohen (tzafrir)Labels:
Date Opened:2016-06-11 09:22:07Date Closed:2016-11-30 23:27:22.000-0600
Priority:MajorRegression?
Status:Closed/CompleteComponents:Core/BuildSystem
Versions:13.8.2 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have not tested with myself. I quick look at the log does not indicate it was fixed, so here goes:

OpenSSL 1.1 introduces some API changes:

https://wiki.openssl.org/index.php/1.1_API_Changes

Debian maintainers tried building the archive with the new version and one of the packages that failed was Asterisk (13.8.2). Build log:

https://breakpoint.cc/openssl-1.1-rebuild-2016-05-29/Attempted/asterisk_13.8.2~dfsg-1_amd64-20160529-1405

Relevant error:
{noformat}
x86_64-linux-gnu-gcc -o libasteriskssl.o -c libasteriskssl.c -MD -MT libasteriskssl.o -MF .libasteriskssl.o.d -MP -pthread -I/<<PKGBUILDDIR>>/include -fgnu89-inline -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2   -I/usr/include/libxml2 -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations       -DAST_MODULE=\"core\" -DAST_IN_CORE  
libasteriskssl.c: In function 'ssl_lock':
libasteriskssl.c:70:13: error: 'CRYPTO_LOCK' undeclared (first use in this function)
 if (mode & CRYPTO_LOCK) {
            ^
libasteriskssl.c:70:13: note: each undeclared identifier is reported only once for each function it appears in
libasteriskssl.c: At top level:
libasteriskssl.c:77:26: error: macro "SSL_library_init" passed 1 arguments, but takes just 0
int SSL_library_init(void)
                         ^
libasteriskssl.c:78:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
libasteriskssl.c:87:33: error: macro "SSL_load_error_strings" passed 1 arguments, but takes just 0
void SSL_load_error_strings(void)
                                ^
libasteriskssl.c:88:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
libasteriskssl.c:97:1: error: expected identifier or '(' before '{' token
{
^
libasteriskssl.c:106:1: error: expected identifier or '(' before '{' token
{
^
libasteriskssl.c:114:27: error: macro "ERR_free_strings" passed 1 arguments, but takes just 0
void ERR_free_strings(void)
                          ^
libasteriskssl.c:115:1: error: expected '=', ',', ';', 'asm' or '__attribute__' before '{' token
{
^
/<<PKGBUILDDIR>>/Makefile.rules:145: recipe for target 'libasteriskssl.o' failed
{noformat}
Comments:By: Asterisk Team (asteriskteam) 2016-06-11 09:22:08.623-0500

Thanks for creating a report! The issue has entered the triage process. That means the issue will wait in this status until a Bug Marshal has an opportunity to review the issue. Once the issue has been reviewed you will receive comments regarding the next steps towards resolution.

A good first step is for you to review the [Asterisk Issue Guidelines|https://wiki.asterisk.org/wiki/display/AST/Asterisk+Issue+Guidelines] if you haven't already. The guidelines detail what is expected from an Asterisk issue report.

Then, if you are submitting a patch, please review the [Patch Contribution Process|https://wiki.asterisk.org/wiki/display/AST/Patch+Contribution+Process].

By: George Joseph (gjoseph) 2016-06-12 17:53:21.360-0500

Confirmed.

pjproject doesn't compile either.




By: Tzafrir Cohen (tzafrir) 2016-06-29 16:31:45.825-0500

Can you check latest pjproject trunk? It seems to build for me.

By: Friendly Automation (friendly-automation) 2016-11-30 23:27:23.520-0600

Change 3102 merged by zuul:
OpenSSL 1.1.0 support

[https://gerrit.asterisk.org/3102|https://gerrit.asterisk.org/3102]

By: Friendly Automation (friendly-automation) 2016-12-01 05:09:26.645-0600

Change 4525 merged by Joshua Colp:
OpenSSL 1.1.0 support

[https://gerrit.asterisk.org/4525|https://gerrit.asterisk.org/4525]

By: Friendly Automation (friendly-automation) 2016-12-01 05:09:38.146-0600

Change 4524 merged by Joshua Colp:
OpenSSL 1.1.0 support

[https://gerrit.asterisk.org/4524|https://gerrit.asterisk.org/4524]

By: Tzafrir Cohen (tzafrir) 2017-01-20 23:48:29.448-0600

My bad. It seems my patch confused OPENSSL_API_COMPAT (that I used) with OPENSSL_VERSION_NUMBER (that I should have used). There seems to be an unhandled issue in tcptls I didn't handle (causes a deprecation warning. Which fails the build in dev mode).

A new patch will shortly follow.

By: Friendly Automation (friendly-automation) 2017-02-15 08:13:16.519-0600

Change 4948 merged by zuul:
openssl 1.1 support: use OPENSSL_VERSION_NUMBER

[https://gerrit.asterisk.org/4948|https://gerrit.asterisk.org/4948]

By: Friendly Automation (friendly-automation) 2017-02-15 08:44:44.758-0600

Change 4949 merged by zuul:
tcptls: use TLS_client_method with OpenSSL 1.1

[https://gerrit.asterisk.org/4949|https://gerrit.asterisk.org/4949]

By: Friendly Automation (friendly-automation) 2017-02-15 08:44:48.029-0600

Change 4950 merged by zuul:
libasteriskssl: do nothing with OpenSSL >= 1.1

[https://gerrit.asterisk.org/4950|https://gerrit.asterisk.org/4950]

By: Friendly Automation (friendly-automation) 2017-02-15 08:44:50.574-0600

Change 4951 merged by zuul:
openssl 1.1 support: use OPENSSL_VERSION_NUMBER

[https://gerrit.asterisk.org/4951|https://gerrit.asterisk.org/4951]

By: Friendly Automation (friendly-automation) 2017-02-15 08:47:35.394-0600

Change 4952 merged by Joshua Colp:
tcptls: use TLS_client_method with OpenSSL 1.1

[https://gerrit.asterisk.org/4952|https://gerrit.asterisk.org/4952]

By: Friendly Automation (friendly-automation) 2017-02-15 08:47:56.853-0600

Change 4953 merged by Joshua Colp:
libasteriskssl: do nothing with OpenSSL >= 1.1

[https://gerrit.asterisk.org/4953|https://gerrit.asterisk.org/4953]