[Asterisk-Dev] SONAME of libiax and libiax2 conflicts

Mikael Magnusson mikaelmagnusson at tjohoo.se
Fri Jul 30 03:10:42 MST 2004


Hi, I'm creating a libiax2 Debian deb-package and have some questions.

There seems to be a problem in src/Makefile.am. You need to define
LIBIAX, or the compilation of libiax2 fails. Makefile(.am) defines LIBIAX in
CFLAGS_AM, but this variable isn't used anywhere. At least not by
automake-1.8. It works when I change all CFLAGS_AM to AM_CFLAGS.

Libiax2 doesn't seem to be backward compatible with libiax. But they use
the same SONAME (libiax.so.0). Some programs need libiax and other need
libiax2, and if they both use the same SONAME they can't be installed at the
same time. SONAME of libiax2 can be changed to for example libiax.so.1,
libiax.so.2 or libiax2.so.0.

From
http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html
---
 If a package keeps the same SONAME, it means that the BINARY
 COMPATIBILITY IS KEPT.

 If a new version of a library package breaks currently existing and
 working package, the SONAME version number should be bumped up, or the
 change be reverted, or both. By bumping up the SONAME version number,
 the old binaries which used to link to the old version of the library
 should be able to run with the old library, and the new and the old
 libraries can coexist.

 Signs of binary incompatibility include: function declaration change,
 change of "struct" contents, and changing semantics of functions (hard
 to detect). 
---

I also think it's confusing that both libiax and libiax2 exist in version
0.2.3. This makes it hard for users and even for configuration scripts to
distinguish between them.

Regards,
Mikael




More information about the asterisk-dev mailing list