[asterisk-dev] pjproject: separate libraries
Tzafrir Cohen
tzafrir.cohen at xorcom.com
Sun Apr 21 07:18:47 CDT 2013
Hi all,
Is this the right place for dynaminc pjproject packaging dilemmas?
I built Asterisk with the dynamic library pjproject.
Now I have:
$ ldd res/res_rtp_asterisk.so
linux-vdso.so.1 => (0x00007fced667c000)
libpjsua.so.2 => /usr/lib/libpjsua.so.2 (0x00007fced6189000)
libpjsip-ua.so.2 => /usr/lib/libpjsip-ua.so.2 (0x00007fced5f70000)
libpjsip-simple.so.2 => /usr/lib/libpjsip-simple.so.2 (0x00007fced5d5a000)
libpjsip.so.2 => /usr/lib/libpjsip.so.2 (0x00007fced5b0d000)
libpjmedia-codec.so.2 => /usr/lib/libpjmedia-codec.so.2 (0x00007fced5901000)
libpjmedia.so.2 => /usr/lib/libpjmedia.so.2 (0x00007fced56ac000)
libpjmedia-videodev.so.2 => /usr/lib/libpjmedia-videodev.so.2 (0x00007fced54aa000)
libpjmedia-audiodev.so.2 => /usr/lib/libpjmedia-audiodev.so.2 (0x00007fced52a1000)
libpjnath.so.2 => /usr/lib/libpjnath.so.2 (0x00007fced5078000)
libpjlib-util.so.2 => /usr/lib/libpjlib-util.so.2 (0x00007fced4e5b000)
libsrtp.so.0 => /usr/lib/libsrtp.so.0 (0x00007fced4c3d000)
libgsm.so.1 => /usr/lib/x86_64-linux-gnu/libgsm.so.1 (0x00007fced4a2f000)
libspeex.so.1 => /usr/lib/x86_64-linux-gnu/libspeex.so.1 (0x00007fced4817000)
libspeexdsp.so.1 => /usr/lib/x86_64-linux-gnu/libspeexdsp.so.1 (0x00007fced4605000)
libportaudio.so.2 => /usr/lib/x86_64-linux-gnu/libportaudio.so.2 (0x00007fced43d5000)
libpj.so.2 => /usr/lib/libpj.so.2 (0x00007fced41a9000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fced3fa4000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fced3d21000)
libnsl.so.1 => /lib/x86_64-linux-gnu/libnsl.so.1 (0x00007fced3b09000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fced3901000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fced36e4000)
libasound.so.2 => /usr/lib/x86_64-linux-gnu/libasound.so.2 (0x00007fced33f0000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fced300c000)
libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fced2dac000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fced2a22000)
libjack.so.0 => /usr/lib/x86_64-linux-gnu/libjack.so.0 (0x00007fced2803000)
/lib64/ld-linux-x86-64.so.2 (0x00007fced667d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fced25fe000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fced23e7000)
At first glance I believe that from those 30 lines the ones I actually
need are:
linux-vdso.so.1 => (0x00007fced667c000)
libpjsip.so.2 => /usr/lib/libpjsip.so.2 (0x00007fced5b0d000)
libpjnath.so.2 => /usr/lib/libpjnath.so.2 (0x00007fced5078000)
libpjlib-util.so.2 => /usr/lib/libpjlib-util.so.2 (0x00007fced4e5b000)
libpj.so.2 => /usr/lib/libpj.so.2 (0x00007fced41a9000)
libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fced300c000)
libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fced2dac000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fced2a22000)
libjack.so.0 => /usr/lib/x86_64-linux-gnu/libjack.so.0 (0x00007fced2803000)
/lib64/ld-linux-x86-64.so.2 (0x00007fced667d000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fced25fe000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fced23e7000)
There are two issues here:
1. pjproject's build links all the different pj* libraries with a
certain set of libraries, and thus anything that gets linked with any of
them gets linked iwth, say, libm, libuuid and whatever.
2. There is a single libpjproject.pc pkg-config file. Asterisk only
needs to be lined with pjnath (and what others?) and this would have
pulled pj, pjlib-utils and one or two more. But as there is a single
option, all the media libraries are pulled in as well.
Which libraries does Asterisk really need? Which target libraries would
it make sense to have pkg-config files for?
--
Tzafrir Cohen
icq#16849755 jabber:tzafrir.cohen at xorcom.com
+972-50-7952406 mailto:tzafrir.cohen at xorcom.com
http://www.xorcom.com iax:guest at local.xorcom.com/tzafrir
More information about the asterisk-dev
mailing list