[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Need help with strange ldd output

On Mon, Oct 02, 2000 at 10:30:25AM +0100, Jules Bean wrote:
> > > I have compiled a package which contains the following shared lib:
> > > /usr/lib/liballeg-3.9.33.so
> > > 
> > > This syntax confuses dpkg-shlibdeps (and dh_makeshlibs did not look at
> > > the file either).
> > 
> > That is not proper soname convention. It should be liballeg.so.3.
> > 
> > liballeg-3.9.33.so
> > liballeg.so.3 -> liballeg-3.9.33.so
> > liballeg.so -> liballeg.so.3 (in the -dev package)
> > 
> > But the SONAME (as shown by the output in 'objdump') should be liballeg.so.3.
> Is that a binding convention?
> As I understood it, the point is that sonames change when the ABI breaks.
> However, for a swiftly moving package, it make make sense to change
> the soname every minor release, not every major one.
> I.e., the normal picture is:
> libfoo.so.1 is SONAME and link name for libfoo.so.1.x for all x.
> But, with a fast-changing library, it might be
> libfoo.so.1.x is SONAME and link name.
> IIRC libgimp and libgtk follow the latter convention for their
> unstable branches.

AFAICT GTK+ and its `cousins' GLib, GDK and GModule use libfoo.so as link
name, libfoo-x.y.so.0 as SONAME, and libfoo-x.y.so.0.z.w as real file name.

That way programs link with -lfoo without worrying about what's the version
of foo, but most of them check `gtk-config --version` in configure script...

Digital Electronic Being Intended for Assassination and Nullification

Reply to: