Hopefully your intention is only to illustrate what projects should not do
and not to submit a patch. This libkmod project seems to be less than two
months old and perhaps the developers still have a bit to learn about
library versioning.
Yes. We can always learn. It seems that this is not the case here.
There are other projects releasing like this and no one pointed out to
a reasonable argument against it. That means these arguments are not
valid in our case:
a) It's not what libtool's manual says to do
b) In other architectures major number is not always c - a.
That's because libkmod (like in other projects that do the same
release scheme) we are very tied to Linux, and being portable is not a
concern.
While libtool does compute the name to apply to the library (using ELF
rules), build-time (ld) and run-time (ld.so) linking is done via standard
system tools and so they determine how the naming gets used.
No, quite the opposite. It doesn't follow libtool's manual, but it
does follow "ELF rules", ld and ld.so. On a API and ABI break the
soname is bumped according to libtool rules. And it doesn't matter if
it goes from libkmod.so.1 to libkmod.so.151 or if it goes to
libkmod.so.2. soname was bumped. major was bumped. Skipping all the
numbers between the majors seems like craziness.