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

Re: Looking for help towards my first Debian package (ITP#962603)

On 2020-06-11 15:35 +0800, Paul Wise wrote:
> Looks like what you haven't isn't correct, it should be libzmat1
> instead of libzmat in the control file, since the library package name
> is supposed to be based on the SONAME of the library.

Are you sure you are not being excessively categorical here? libzmat1
is preferred, but libzmat is not 'wrong'. (Hmm, checks policy - OK, maybe it is wrong :-)

The point is that when the SONAME is included in the package name then
packages depending on this library can transition to the new libzmat2
one by one, as they are built after the SONAME=2 version of zmat is
uploaded one day. Older packages built earlier which depend on libzmat
(SO=1) and depend on libzmat1 package carry on working and libzmat1
package stays on the system until nothing depends on it any more
because the depending packages have all been upgraded to depend on

If you just have 'libzmat' then this process is not possible and when
you upload a new libzmat (SO=2) one day all the packages that depend
on it have to be rebuilt against the new version, and only when all
are done can the packages transition into testing. In practice this
can cause huge delays, so we developed the practice of putting
SONNAMES into package names to make the whole thing work rather better. 

So if for some reason it is not safe to have two versions of the
library simultaneously installed then an unversioned library package
(libzmat) makes sense but that's rare.

So Bouyang's "Either one is okay in this case." is misleading.

The -dev package should usually not contain the SONAME in the package
name - that's only needed when you need people to be able to link
explicitly against libzcat1 or libzcat2. (makes sense for something
like a big GUI toolkit: QT4 and QT5, but not a leaf compression library) 

Library naming conventions are subtle and the reasons for _why_ one
might want to do one thing or another are not obvious.

Details are given in policy: https://www.debian.org/doc/debian-policy/ch-sharedlibs.html

Principal hats:  Linaro, Debian, Wookware, ARM

Attachment: signature.asc
Description: PGP signature

Reply to: