On 2023-02-20 03:08, Florian Weimer wrote:
* Gordon Messmer:
> As you noted at the end of your message, that would involve querying
> the rpm DB from the ELF dependency generator, which the rpm
> maintainers want to avoid.
Not really. We could dump an extract of the RPM database to a text file
at the start of the build, after the dependencies have been installed.
Setting aside the mechanics of rpm db access for the moment:
My initial suggestion for this work *was* to use the rpm package
version. One of the advantage that I see to that approach is that rpm
versions have really well defined semantics, including an "epoch" if we
need to reset version ordering for a given package for some reason.
However, one of the major down sides to this is that it makes swappable
/ compatibility libraries much harder to support. In the rpm PR, Neal
provided the examples of SDL/sdl12-compat and
jack-audio-connection-kit/pipewire-jack-audio-connection-kit. Ideally,
as long as those packages provide the same interface, users should be
able (or should have been able) to install either option. If we use the
rpm package versions, that seems a little more difficult. As far as I
can tell, rpm sub-packages can have version numbers distinct from the
primary package, so I would *guess* that it's possible for maintainers
to coordinate packaging those individual libraries in a package whose
version was the library's interface version rather than the source
package's release version.
This seems like a more complex approach, but might be worth further
discussion...