V Sat, Feb 18, 2023 at 09:20:20AM -0800, Gordon Messmer napsal(a):
> For shared libraries without versioned symbols, the provides will change
> from:
> 
>   Provides: libnghttp2.so.14()(64bit)
> 
> to:
> 
>   Provides: libnghttp2.so.14()(64bit) >= 14.24.1
> 
> ... while requirements on that package will change from:
> 
>   Requires: libc.so.6(GLIBC_2.3.4)(64bit)
>   Requires: libnghttp2.so.14()(64bit)
> 
> to:
> 
>   Requires: libc.so.6(GLIBC_2.3.4)(64bit)
>   Requires: libnghttp2.so.14()(64bit) >= 14.24.1
> 
[...]
> Dependencies are generated using dlmopen() to locate a required library
> named in an ELF header, and then resolving the symlink to a full path. If
> the full path ends in ".so.x.y.z", where "x.y.z" is a series of numbers
> separated by dots, then the numbers and dots suffix is treated as a version
> number for that library.
> 
I applaud the struggle for ensuring compatibility. However, I worry that it
will make downgrading RPM packages less feasible. Imagine a user who updates
a system, finds a regression in a library, attempts to downgrade the library
and it will result into downgrading later-built reverse dependencies only
because the library applied a (wrong) fix and the triplet has changed.

Do you know meaning of the numbers? I only guess that the first number
tracks incompatible changes, the second number tracks added interfaces and the
last number tracks interface-irrelevant changes (fixes usually).

Provided my guess is correctm would it make sense to exclude the last number
from the RPM dependencies? I.e.  libnghttp2.so.14.24.1 library file name would
produce "libnghttp2.so.14()(64bit) >= 14.24" dependency. This less strict
approach would provide users a freedom to downgrade/upgrade libaries without
changes in the interface.

-- Petr

Attachment: signature.asc
Description: PGP signature

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to