On Wed, Jun 03, 2009 at 09:23:12AM +0100, James Bonfield wrote: > On Wed, Jun 03, 2009 at 01:57:10PM +0900, Charles Plessy wrote: > > I finally almost finished the packaging of a libtoolized version of the > > Staden > > io_lib, which we agreed to rename libstaden-read in Debian, following what > > is > > already done in Fedora. > > Indeed the name change we already agreed on - makes a lot of sense for > the library name. > > > One last question I would like before sumbitting the package for inclusion > > in > > the Debian archive is about the sonames. Are there values that you > > recommend, > > or should Debian use values lower than 1 before you provide upstream support > > for dynamic io_lib ? > > I'd use something containing the library name (libstaden-read) and the > existing version number minus patch level, (1.11). Can sonames exist > in non-dynamic libraries? I assume not, in which case > libstaden-read.so.1.11 would make sense as the soname. > > The fact that it's a dynamic library rather than a static one > shouldn't matter should it? If my understanding is correct the > purpose of soname is to indicate an API conformance rather than > specifics of the compilation or library construction. > > Perhaps if I was more rigorous then only the major version number need > be in the soname field, but I can't guarantee that would mean > precisely the same API from 1.1 all the way to 1.11. Typically I add > new functions and try not to change old ones. > > It's also worth noting that the major version number isn't likely to > change soon (despite plans to do it for the last 10 years!) and so > it's far more likely that a user would say "I need version 1.10 and > above" than "I need version 1.x". I'm not fully up to speed on how > versioning and soname should work though so how does soname cover > "version x and above" requirements? Is it simply smarts in the linker > that knows 1.12 should be 1.11 + more?
The linker actually cares about the library interface, not the library version. If you remove or change interface, Debian will have to rev the library version (e.g. from libstaden-read.so.1 to libstaden-read.so.2), regardless of your upstream 1.x version number. The reason is that packages compiled/linked against an older libstaden-read library would break if re-linked at run-time against the new (incompatible) libstaden-read (which might e.g. get installed when a user installs a second application using libstaden-read which however depends on the newer version of the library). The libtool manual has information about dynamic libraries, their interfaces and how to version them. Michael -- To UNSUBSCRIBE, email to debian-med-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org