On Tuesday 26 November 2013 10:08:02 Michal Vyskocil wrote:
Hi all,
I would like to point to quite common anti-pattern when packaging shared libraries. It is great that most of people are aware about our Shared Library Policy[1]. However it is written in some confusing way, where some people (and I made it as well) think it mandate the name of **source** package.
It does not, because noone wants to change source package name on each SONAME bump. For source package name there is a naming policy [2], which says package name should be according upstream project or tarball name (there are exceptions for python, perl, ruby, go, ... stuff). And it is legal to omit the %files section for source package (but not for subpackage).
Therefor I have fixed and extended the zlib example[3], which should make that more clear. Source package name is zlib, because that is how both upstream and tarballs are named. But shared library package is libz1 according SONAME, where devel files are in zlib-devel. The name libz-devel might be acceptable as well, but it is confusing to me. But as long as pkgconfig(zlib) is the prefered form, the name of devel package is less important nowadays.
[1] http://en.opensuse.org/openSUSE:Shared_library_packaging_policy [2] http://en.opensuse.org/openSUSE:Package_naming_guidelines#General_Naming [3] http://en.opensuse.org/openSUSE:Shared_library_packaging_policy#Examples
Any objections? Nope,
thank you Michal for addressing this in the documentation. I think it now better matches what we have been recommending to packagers in the past anyway. Just stating the obvious, we have plenty of those in Factory and I don't think we'll enforce they have to be fixed with the next submit. It will only be a requirement for new packages. -- With kind regards, Sascha Peilicke SUSE Linux GmbH, Maxfeldstr. 5, D-90409 Nuernberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer HRB 16746 (AG Nürnberg)