[Home]

Summary:ASTERISK-23424: Dependency in libsrtp.so included with pjproject breaks build system
Reporter:capouch (capouch)Labels:
Date Opened:2014-03-06 01:59:35.000-0600Date Closed:2014-03-06 13:26:15.000-0600
Priority:MinorRegression?
Status:Closed/CompleteComponents:Core/BuildSystem Resources/res_srtp
Versions:12.0.0 Frequency of
Occurrence
Constant
Related
Issues:
Environment:Arch Linux 2013.05 x32 3.8.4-1-ARCH (tobias@testing) (gcc version 4.7.2 (GCC) ) #1 SMP PREEMPTAttachments:
Description:Arch Linux ships w/o built-in srtp library.  This is detected by the pjproject build system, which as a result builds and installs the included (~third-party/srtp) library.  The resulting .so file has a dependency on libpj.so.

This dependency breaks the configure script in two places where the undefined reference to pj_log in libsrtp.so bombs the script, with the result that the Asterisk build system mistakenly thinks there is no srtp library on the machine.

The fix is in this case trivial; add -lsrtp to the set of build libraries specified for the errant tests.  Issue is present in both 12.0.0 and 12.1.0.
Comments:By: Matt Jordan (mjordan) 2014-03-06 13:26:06.654-0600

That can't always be done.

There is not always a {{libsrtp}} for all systems Asterisk builds on.

The correct solution here is to pass {{--with-external-srtp}} to pjproject when it is built, such that it does not provide the SRTP library itself. This is documented on the [wiki page|https://wiki.asterisk.org/wiki/display/AST/Installing+pjproject#Installingpjproject-BuildingandInstallingpjproject] for building/installing pjproject.