[asterisk-dev] SIP Stack - Update
Faidon Liambotis
paravoid at debian.org
Sun Dec 16 04:28:54 CST 2012
On 12/11/12 03:56, Matthew Jordan wrote:
> The second was easier to answer. While not exactly a trivial effort, it
> is possible to modify the pjproject build system to produce shared
> object libraries suitable for packaging. Teluu has agreed to support
> such an effort, although the work would have to be started by the
> Asterisk project. The initial project to create such a package is
> outlined on the Asterisk wiki [4]. At a minimum, Digium will work to create:
> * A Git repository with a modified build system that produces shared
> object libraries and install targets of the libraries needed by Asterisk.
> * Tarballs on downloads.asterisk.org.
> * A package for CentOS.
> Ideally, the entire repository would end up being pushed up stream, but
> this would work in the interim to pull pjproject outside of the Asterisk
> source. The results of this effort will be available for developers who
> are interested in using them as the basis for creating and maintaining
> packages for other distributions.
So, I had a look at Asterisk 11 and the embedded pjproject situation.
First of all, pjproject's build system is insane: dozens of makefiles,
customization via "user.mak", various quirks (such as ./configure being
a wrapper to ./aconfigure!?), crosscompile strangeness and various
random bugs e.g. it doesn't build with CC set to "cc" or anything that
doesn't start with "gcc".
But more importantly, here's an interesting fact: pjproject is also in
the business of embedding third-party libraries in its tarball. I see at
least GSM, iLBC, G.722, G.722.1, libspeex, libsrtp, portaudio, mp3,
resample.
This has also resulted in the hilarious situation where GSM and iLBC are
being included in the Asterisk source *twice*, with different versions
of each of the libraries. Plus two different implementations(?) of MP3
and G.722.
I know that you're probably not going to use pjproject's media stuff in
Asterisk, but still, I hope you won't run in any symbol clashes with all
this static linking around.
I maintain my opinion that this is madness and that this harms the
ecosystem and does not promote users' interest.
It has also resulted in Asterisk 11 being basically unfit for Debian :(
We might have a way out by patching the Asterisk 11 sources to use your
new patched pjproject tarballs, when these arrive, otherwise we'll have
to go from 10 to 12 where hopefully the situation will be improved.
…assuming of course that pjproject can use system copies of all of these
embedded librariess. Thankfully I saw some --use-external-foo switches
in ./configure so it might prove possible.
Regards,
Faidon
More information about the asterisk-dev
mailing list