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: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org