On Sun, Jan 29, 2023 at 12:03 AM Zbigniew Jędrzejewski-Szmek
<zbyszek(a)in.waw.pl> wrote:
On Sat, Jan 28, 2023 at 01:49:17PM -0800, Kevin Fenzi wrote:
> On Sat, Jan 28, 2023 at 09:03:35PM +0000, Zbigniew Jędrzejewski-Szmek wrote:
> >
> > This is indeed a shortcoming in the rpm symbol dependency generation scheme.
>
> Is it though? I'm probibly reading this too quickly and missing
> something, but isn't the underlying problem here that nghttp2 changed
> abi and didn't change soname? If they had, soup would have kept the
> older version around, or asked to upgrade both libsoup and libnghttp2?
No. libnghttp2 added one symbol, and (correctly, i.e. following the usual
practice), it changed the suffix from .so.14.23.0 to .so.14.24.1. (The last
number is bumped when the implementation of existing symbols changes, the middle
one when when new symbols are added, and the first one when an incompatible
change happens, i.e. symbols are removed or changed incompatibly. Lower numbers
are reset to zero whenever a higher one changes.) The SOVERSION corresponds to
the major number and does not change in the case under discussion.
As Gordon wrote, our rpm dependency generation logic does not care about the
minor or patch numbers.
If I understand things correctly, this is not entirely true. RPM
generates a dependency for the soname / soversion, and some projects
include not only X, but all of X.Y.Z in that, which RPM will happily
generate Provides / Requires for (whether that's a nice thing to do
for an upstream project or whether that's a bug in their build systems
I leave as an exercise to the reader).
Fabio