Mailinglist Archive: opensuse-factory (824 mails)

< Previous Next >
Re: [opensuse-factory] Package naming conventions
On Fri, 2017-10-27 at 11:18 +0200, Roger Oberholtzer wrote:
https://build.opensuse.org/package/show/Application%3AGeo/proj where
it is called libproj12 (from source proj4.9.3)

https://build.opensuse.org/package/show/openSUSE%3ALeap%3A42.3/proj
where is is called libproj9 (from source proj4.9.2)

The use of 9 or 12 in the name has nothing at all to do with the proj
source. It is, I think, a rather arbitrary number assigned to the
name
by the packager in OBS. There is no property in proj to which it
refers.

The 9 and 12 refers to the ABI version of the library provided and
matches the filename libproj.so.9 resp libproj.so.12 - and as such DOES
come from the proj sources


Why is this done? So many other packages have different versions
available, and they do not resort to adding a strange number to the
name to differentiate them.

This is part of the shared library packaging policy - it's main purpose
is to have binaries built against different versions of the library
being able to co-exist

And what is even more obtuse is that the libraries are named with
these numbers that have nothing at all to do with the package:

/usr/lib64//libproj.so -> libproj.so.12.0.0
/usr/lib64//libproj.so.12 -> libproj.so.12.0.0
/usr/lib64//libproj.so.12.0.0

These numbers are as well defined by proj's buildsystem, namely by the
library version assigned. No openSUSE invention here

If one wanted to have a library for each proj release, why wouldn't
they be called libproj.so.4.9.3? That is, after all, where this
version of the library came from.

Try to read up on 'library versioning' - that should explain things
(maybe... many upstreams also don't get it :P )

And, if one wants to do as I am doing - making a package that is a
port to Windows - how should the items be named? Should I just select
another apparently random number? I suspect not. But perpetuating the
oddness of assigning a unrelated number to the package name seems
just
as incorrect.

As explained above, nothing random - For windows though, the concept of
parallel installable shared libraries is a bit moot as the files are
.just. called .dll; so multiple versions can't co-exist, unless the
version is encoded in the actual part of the filename.

Cheers
Dominique

PS: this does not sound like a -factory topic; it is definitively not
related to the development of Leap or Tumbleweed - nevertheless an
interesting question
< Previous Next >
Follow Ups
References