On Thu, Apr 6, 2023 at 1:31 PM Jan Engelhardt <jengelh@inai.de> wrote:
On Thursday 2023-04-06 18:42, Gordon Messmer wrote:
On 2023-04-06 01:37, Jan Engelhardt wrote:
ld.so _also_ has a dependency checker (at least for versioned symbols). It compares a program X's ".gnu.version_r" with libfoo.so.XYZ's ".gnu.version_d" section. rpm is just _reimplementing_ the same check on another level; when building packages, it essentially copies every ELF version_r and version_d entry to make RPM "Requires" and "Provides" out of it.
As I pointed out before, the ELF data doesn't indicate a minor version for the dependency, only the major version. *That* is the root of the problem.
So if it can't be solved at the ELF level, what makes you think at can be solved at the RPM level? What does RPM know that RPM couldn't *also* inject into the glib2/inkscape ELFs? Why does it need to keep whatever information *its own* ecosystem?
In theory, you could, I guess? If Fedora's package notes thing[1] was extended for ELF loaders to do something with it, it could use that as a minimum version constraint. [1]: https://fedoraproject.org/wiki/Changes/Package_information_on_ELF_objects -- 真実はいつも一つ!/ Always, there's only one truth!