[Rpm-maint] [rpm-software-management/rpm] RFE: Integrate ALT set-versions to improve ELF library dependency generation (Issue #3606)
Neal Gompa (ニール・ゴンパ)
notifications at github.com
Fri Feb 28 08:48:30 UTC 2025
Conan-Kudo created an issue (rpm-software-management/rpm#3606)
**Is your feature request related to a problem? Please describe.**
We've had multiple requests and suggestions over the years to strengthen the mechanism of expressing library dependencies (#362 and #2372 come up in a quick search in upstream, and I know we've had discussions downstream in Fedora and openSUSE about this before). There are a number of weaknesses in the existing expression model which result in a number of inscrutable failure cases (hence the attempts to fix it!).
The most obvious one is that when the soname doesn't change but individual function signatures change in an incompatible way, it's really difficult to identify and block on.
**Describe the solution you'd like**
I think we should strongly consider integrating the set-versions feature from ALT Linux as an option for distributions to adopt. @ldv-alt, @legionus, and @svpv have convinced me that it's not as crazy of an idea as I originally considered.
**Describe alternatives you've considered**
I've considered three alternatives:
* Rich dependency of soname + package EVR
** This is just painful to implement as it invalidates the usefulness of using virtual names and makes replacing implementations hard
* Adding the package EVR to the soname dependency expression
** This has similar implications to option 1
* Reusing the newly created [`gendwarfksyms`](https://web.git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scripts/gendwarfksyms) from the kernel to create version expressions for sonames
** This could work, but I suspect the result would either be too verbose (expressing each method and hash as a dependency token like we do for kernel symbols) or too strict (hashing all function signatures as one hash would effectively lock it to a specific build of a library and that's not what we want here). And this also produces a similar outcome to the set-versions concept anyway, and we're likely to have to fork `gendwarfksyms` to tweak it for userspace libraries.
**Additional context**
As we're thinking about RPM 6.0, this is probably the time to consider something like this with all the other changes.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/issues/3606
You are receiving this because you are subscribed to this thread.
Message ID: <rpm-software-management/rpm/issues/3606 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20250228/ec21bf24/attachment.htm>
More information about the Rpm-maint
mailing list