Summary: | ASTERISK-26109: Asterisk fails building with OpenSSL 1.1.0 | ||
Reporter: | Tzafrir Cohen (tzafrir) | Labels: | |
Date Opened: | 2016-06-11 09:22:07 | Date Closed: | 2016-11-30 23:27:22.000-0600 |
Priority: | Major | Regression? | |
Status: | Closed/Complete | Components: | 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] |