On Tue, 20 Feb 2007, Michael Matz wrote:
Hi,
On Tue, 20 Feb 2007, Richard Guenther wrote:
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.
It's also about reducing installed size. One might for example use some convenient library from kdelibs together with Qt for a small application. If that is the only kdelibs dependecy it would be nice to not pull in all of kdelibs to keep the install footprint of virtual machines small. But we should definitely add 'exceptions are allowed' ;) Another thing is if you have a program that comes with a shared library but is its sole user. In this case the shared libraries should go in a subdirectory of /usr/%{_lib} named after the package and it may be packaged within the program rpm. No -devel or .a, .so file packaging should be allowed in this case.
* 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.
That sounds good.
Richard.
--
Richard Guenther