Hi,

On Tue, 20 Feb 2007, Richard Guenther wrote:

> > * $NUM contains only decimal digits.
> > * $NUM increases strictly with at least the SO version of the
> >   contained shared libs.
> > 
> >   Ideally it corresponds with either the upstream package version or the SO
> >   version.  Example: libfoo.so.1 is packaged in libfoo1.rpm.  Or
> >   libbar.so.3, a part of the program suite PLONK 4.1, would be packaged
> >   into libplonk41.rpm.
> 
> The latter sounds inconsistent.  Shouldn't it be named libbar41.rpm?

That was to demonstrate the possibility that one rpm can contain multiple 
shared libs belonging to one program suite PLONK, so the rpm name would be 
something with "plonk".  I just didn't make myself clear :)

> I would add
> 
>   * lib$NAME$NUM.rpm either contains exactly one shared library named
>     lib$NAME.so.* or it contains multiple shared libraries.
> 
>   * If lib$NAME$NUM.rpm may only contain multiple shared libraries if
>     the SO versions of all of them change at the same time always.  For
>     convenience library packages should be split if not a dependency
>     on one shared library automatically creates a dependency on all other
>     shared library in the package.

I'm not sure about the convenience part.  One model of mind for "package 
containing many shared libs" is kdelibs.  Using just one of those shared 
libs will not necessarily also make the program depend on _all_ other 
shared libs therein, but only on some.  But it still is the case that all 
SO versions will increase in lockstep, so it's okay to have just one 
container RPM.

OTOH if someone isn't sure about the future it makes sense to prefer split 
shared library packages.  Hmm.

>   * If lib$NAME$NUM.rpm contains multiple shared libraries $NAME should 
>     match the package name.  For example if the program blorf.rpm has
>     libfoo.so.* and libbar.so.* the library package shall be named
>     libblorf$NUM.rpm

Yes, that's what I wanted to say, thanks :)

> > * All packages named lib* end with $NUM.
> 
> Or with -devel.

Yeah, I noticed that ommission.  But if we mention -devel, then also 
-debuginfo and the like.  Perhaps

* All unsuffixed packages named lib* end with $NUM.
  Common suffixes include e.g. -devel or -debuginfo.

?

> > * Files needed to develop programs using shared libraries contained in
> >   lib$NAME$NUM.rpm are packaged in lib$NAME-devel.rpm.
> >   [??? do we really want to remove $NUM from the -devel rpm?]
> 
> That depends on whether multiple -devel versions can be installed in
> parallel.  Usually this will result in file conflicts with includes
> or documentation, so the recommended way is to only have the 
> latest-and-greatest as lib$NAME-devel.  Exceptions allowed.

Okay.

> The policy currently misses to talk about static libraries, -fpic issues
> and documentation subpackages.  A section on ABI compatibility and SO
> versions would be nice.

Agreed.

> http://www.debian.org/doc/debian-policy/ch-sharedlibs.html
> http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html
> http://wiki.debian.org/TransitionBestPractices

Thanks.


Ciao,
Michael.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to