[Matroska-devel] libmatroska/ebml 0.9.0/0.8.0 is binary incompatible with previous version

Moritz Bunkus moritz at bunkus.org
Sun May 30 12:24:39 CEST 2010


Hey,

On Sunday 30 May 2010 12:12:24 Steve Lhomme wrote:

> It's possible to change the .soname although programs that currently
> depend on libmatroska will have to update their build system too. Also
> if the goal is to have old and new versions co-exist, shouldn't the
> headers be in separate dirs too ?

As far as I know you don't have to change anything in the app's build
system. You usually link against "-lmatroska -lebml", and you have
symlinks libebml.so pointing to the currently active one,
e.g. libebml.so.2. The linker embeds the full library name, so upon
execution it is looking for libebml.so.2 so you can change the symlink
after linking without breaking existing applications. For example:

[0 mosu at tionne ~] ls -l /usr/lib/libQtCore.so*
lrwxrwxrwx 1 root root      18 2010-05-25 11:43 /usr/lib/libQtCore.so -> libQtCore.so.4.6.2
lrwxrwxrwx 1 root root      18 2010-05-25 11:43 /usr/lib/libQtCore.so.4 -> libQtCore.so.4.6.2
lrwxrwxrwx 1 root root      18 2010-05-25 11:44 /usr/lib/libQtCore.so.4.6 -> libQtCore.so.4.6.2
-rw-r--r-- 1 root root 2630464 2010-04-14 07:42 /usr/lib/libQtCore.so.4.6.2

The headers' installation directory won't have to be changed either.

The C version libebml2 is different matter.

Regards,
Mosu

-- 
If Darl McBride was in charge, he'd probably make marriage
unconstitutional too, since clearly it de-emphasizes the commercial
nature of normal human interaction, and probably is a major impediment
to the commercial growth of prostitution. - Linus Torvalds



More information about the Matroska-devel mailing list