On Thursday 29 May 2008, David Nicol wrote:
Eventually Anthony Minessale is going to run out of waking hours, or space in his svn repository, or both.
Or realize he's missing out on upstream fixes and such too.
Including the library version that you link against in your project's source code has the very real practical result of making your project immune to surprise problems stemming from library version incompatibilities. Maybe freeswitch will clean up its interfaces (if it is in fact using unsupported interfaces to libraries instead of simply repairing bugs for own use) when they get around to it.
In particular, FreeSWITCH uses internal headers (eg, NOT installed on systems even with the -devel packages) from xmlrpc-c, srtp, and sqlite. I can see the justification of the xmlrpc-c stuff-- they have issues with breaking compatibility on a regular basis anyway, but especially the SQlite stuff is a problem. They're using Sqlite not only as a database engine, but also the internal hash implementation (which exists only in the 3.3 versions, nothing older or newer). Anthony has stated that Sqlite is "too slow" (I wonder if 3.5 is?) so they will be trying to drop it altogether now that 1.0 is out.
For what it's worth, despite their complaints, I do have a branch of FreeSWITCH (in their repository, and available in my Gentoo overlay) that will use the regular system libraries (with dependencies on the compatible versions, so it will downgrade your sqlite to 3.3). Report bugs with it to them at your own peril/kick/ban, though.