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

Re: GDCM shared lib package naming



On Tue, Apr 14, 2009 at 02:27:09PM +0200, Mathieu Malaterre wrote:
> Hi Steve,
> 
>   I'll be unvailable for the rest of the week. I have been looking at
> was is currently being done in VTK and I see: [...]

Yes, both are using the same convention; i.e. the SOVERSION is
"Major.Minor".


> AFAIK the vtk package is named libvtk5.

Yes, but it shouldn't be; c.f. Bug #520906 [1] and Debian
Policy section 8.1 [2]:

    The run-time shared library needs to be placed in a package whose
    name changes whenever the shared object version changes.  The most
    common mechanism is to place it in a package called
    librarynamesoversion, where soversion is the version number in the
    soname of the shared library. Alternatively, if it would be
    confusing to directly append soversion to libraryname
    (e.g. because libraryname itself ends in a number), you may use
    libraryname-soversion and libraryname-soversion-dev instead.

[1] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=520906
[2] http://www.debian.org/doc/debian-policy/ch-sharedlibs.html


> I'd like to follow the same convention as VTK (preserve API compat
> in every minor version bump up).  Do you think this is reasonable ?

The SOVERSION, however, has nothing to do with API.  It is a marker of
ABI -- whether the shared object is *BINARY* compatible or not.  The
versioning chosen by VTK and GDCM promises binary compatibility only
across patch-level revisions -- i.e. the third dot of the M.m.p
version string.  Versions M.m.0 and M.(m+1).0, on the other hand,
are presumed to be ABI-incompatible.

That's fine; as upstream author, you may decide what to promise.

Based on this, however, Debian Policy dictates what the debian package
name must be.


Regards,
-Steve

Attachment: signature.asc
Description: Digital signature


Reply to: