On Mon, Mar 20, 2023 at 07:49:43AM +0100, zyx wrote:
> looking into my /usr/lib64/ there are three types of library versioning
> here:
> 
> a) no version at all (it's odd, but I really have there some such),
>    thus there's only a plain .so file

These are either broken, or they are the unversioned links used during
development/building to find the "most recent" library version, and is
not used by built programs for dynamic linking.

> b) one-number version - there's only a plain .so.X file
> c) two-numbers version - there's a .so.X symlink to a .so.X.Y
> d) three-numbers version - there's a .so.X symlink to a .so.X.Y.Z

These are all good.
There are many reasons to support multiple versions like that, although
personally I consider them relics of the past, and confusion-inducing
practices.
IIRC, that's standard libtool behaviour, so it got cargo-culted by all
libtool-using projects.

Potentially, if you use more than one number (especially the 2-number
variant) you can use that to identify versions that added symbols
without removing something else, therefore the ABI was "increased"
without breaking.
But OTOH that just doesn't really work decently from a program
perspective...

Sticking with 1 and only 1 number in the SONAME (without links) is
really what I recommend these days.

> I know there is a document describing why to use the three-numbers
> version, together with a description how to work with it and what each
> number means. I do not have the link handy, I even do not recall where
> it was,

probably semver.org ?

> I think maybe with libtool or autotools or something like that,
> but as I do not recall precisely, it could be anywhere else. The thing
> is that I believe it was something official, not a blog of an
> enthusiast, thus something one can use as "a source of truth".

Mh..


> My question is: why do you want to change it? What is that going to
> fix? Is that just a personal reason?

As he mentioned, it's a real pain for packagers, and probably also for
other users, as it forces all dynamically-linked programs to be rebuilt
for every PoDoFo version, even where there is otherwise no ABI change.

I understand that for many (young?) people nowadays dynamic linking
feels weird, used as they are with golang or rust that has no/shitty
dynamic link support, but I honestly consider proper dynamic linking a
very good thing myself, that should be properly handled and supported.

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
More about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Podofo-users mailing list
Podofo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to