* Zdenek.Kotala@Sun.COM (Zdenek.Kotala@Sun.COM) wrote:
> I'm for bumbing. Because if we use same number it also means that new
> binary will able to use old library. But if there are two new functions
> number must be increased. Standard practice how ELF loader works is
> following:
>
> Each library could have tree numbers libxxx-X.Y.Z. Loader/Linker ignores Z
> number. It means any binaries can be linked e.g. with X.Y.Z+1 or X.Y.Z-1.
> This is used for bugfixing. Middle number Y means that binaries which
> requires Y can also use Y+1 (and linker takes it), but not Y-1. It is used
> for adding new thing into interface - backward compatible. Change in major
> number X means it is not backward compatible libraries.
Right, so bump the minor and leave the major (and the overall 'soname')
the same.
> In PostgreSQL perspective, we use only major number. We can increase main
> number (X) or best way is add Y and keep major number same. But I don't
> know if it is possible in current infrastructure and if it will work
> everywhere.
I'm confused by this. I see both in Makefile.shlib and on my system
that we have a minor version so I don't entirely follow when you say "we
use only major number". In practice, at least on Debian, all that
really matters is that the maintainer update the Debian 'shlibs' for the
library so that new compilations depend on the newer version. He can
gather that needs to be done through a number of different ways, but
bumping the minor version is a common and sensible way in general.
Bumping the major version forces recompilation for anything which
depends on the library and is alot of wasted effort when it's
unnecessary. It's not sensible for individual distros to change the
soname either though since that would cause all kinds of cross-distro
issues and confusion. It really needs to be handled upstream, and
handled correctly.
Thanks,
Stephen