Skip to content

RFE: arch-specific dependencies in noarch packages #3579

@pmatilai

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".

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    RFEhandsfreePackaging automation and convenience

    Projects

    • Status

      Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions