[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