On 2023-04-05 17:22, Jan Engelhardt wrote:
I don't think there's any evidence of corruption. Just a deficiency in rpm's ELF dependency generator that needs to be fixed. *ld.so* stumbled over it and would stumble over it even if rpm was not in the picture. It is really a deficiency in the symbol map (especially because the programmer did not write any), or, in a sense, a deficiency in the static linker which did not add a stand-in map.
I think you're missing the point. Today, rpm's ELF dependency generator will automatically provide a requirement on "libglib-2.0.so.0()(64bit)" when gimp is built. When you install gimp, rpm determines that an installed package must provide a 64-bit version of "libglib-2.0.so.0", or else a package that provides that capability must be installed. The problem is that the dependency on "libglib-2.0.so.0" only effectively communicates the major version of the library that is required, but in the case of this thread, the missing symbol was introduced in glib2 version 2.76. Without the minor version in the dependency data, rpm will mistakenly determine that the dependencies are satisfied. If glib2 used versioned symbols, then rpm would be able to actually determine the minimum version of glib2 that needs to be installed, but it doesn't. A better dependency generator (which I'm working on) would be able to provide enough information to indicate that at least version 2.76 of glib2 was required, so that it could be updated when an application that required it was installed.