On Mon, 12 Jan 2009 11:24:00 +0100, Andrea wrote:
Hi all,
upstream has recently released gambatte v0.4.1.
While showing differences between v0.4.0 and v0.4.1, it seems to me
that the public interface of libgambatte changed. Therefore I need to
bump the soname.
Upstream doesn't provide a soname, so when I submitted v0.4.0 for
review I added it as libgambatte.so.0; libgambatte.so.0.4.0 and
libgambatte.so (in the devel package) are symlinks for
libgambatte.so.0. Now I don't know if I did the right thing in
providing a soname that doesn't match the version.
How would you handle it?
Obviously, you should have talked to upstream _prior_ to inventing an
arbitrary soname. Not only is it binary incompatible with other
distributions, it is also incompatible with future releases by upstream.
Just imagine you continued with your versioning scheme and some day
in the future, when you are at libgambatte.so.4, upstream would
release the first official libgambatte.so.1.
libgambatte.so.0.4.0 would be wrong, because the soname for
v0.4.0 and 0.4.1 would not be different. Probably you wanted to
write libgambatte-0.4.0.so.0, which would be a better choice,
which requires rebuilds each time the full version changes.