Description
A long-standing issue with rpm (and AFAIK dpkg too) is expressing arch-specific dependencies in noarch packages. A classic example is an interpreted language like Python or Ruby dlopen()'ing a specific ELF DSO: on a multiarch (biarch is just a specific case of that) system you can't depend on the package name alone because that could pull in a package of an arbitrary architecture, that may or may not work with your interpreter. Rpm has https://rpm-software-management.github.io/rpm/manual/arch_dependencies.html for this, BUT that doesn't help if your package is noarch because those do not have an ISA by definition. https://rpm-software-management.github.io/rpm/manual/boolean_dependencies.html offer a way of leaving some dependency decisions to runtime which is a necessary pre-requisite for this, and make it possible to approximate this, but going beyond rpm's existing biarch system would get ugly/impossible:
https://src.fedoraproject.org/rpms/rubygem-ruby-vips/blob/137e3adee00c987c5c0b9f2d746ffb8b415f930b/f/rubygem-ruby-vips.spec#_24-25
Anything can be solved by adding another layer of indirection, so clearly that's what we need here 😆
It seems to me we'd need a way to make dependency decisions based on another packages ISA (ie not the exact architecture but base architecture/ABI). So a Python extension could say "give me package X which matches the ISA/ABI of the python package, whatever that is".
Metadata
Assignees
Type
Projects
Status
Backlog
Activity