On Tue, 03 Mar 2026 at 13:06:13 +0200, Peter Pentchev wrote:
BTW is the unsupported-architecture example given on that page wrong?
I mean, it says to B-D on unsupported-architecture [!the-not-supported-arch],
and I think that's... kind of backwards?

I think so. src:lsp-plugins seems like a correct use:

    Build-Depends: unsupported-architecture [armel hurd-i386 hurd-amd64],

(Even better if it was [armel hurd-any].)

I think the advice to use unsupported-architecture in devref is perhaps more broad than it needs to be. If a piece of software explicitly depends on Linux and is not intended to be portable to other kernels (like systemd and Flatpak), or if it explicitly depends on one of a finite number of CPU architectures for which it needed specific porting and isn't intended to be portable to others (like Wine), I think it still makes sense to use things like

     Architecture: linux-any
     Architecture: amd64 i386 arm64

The recommendation to use unsupported-architecture makes more sense for cases where a piece of software is intended to be portable to "most" architectures, but does make some assumptions that are not true everywhere, for example this (which is no longer relevant in testing/unstable because armel was dropped anyway):

    # Needs native atomic operations, which most architectures do have
    Build-Depends: unsupported-architecture [armel]

Because Architecture doesn't allow negatives:

    # Not allowed
    Architecture: !armel

before the introduction of the unsupported-architecture convention, a package that doesn't work on armel would have needed a long list of all the architectures that are *not* armel:

    # Avoid this, use unsupported-architecture instead
    Architecture: amd64 arm64 armhf i386 loong64 ...

which requires trivial packaging changes every time a new architecture is added (but without needing specific porting in upstream code, like e.g. valgrind does).

    smcv

Reply via email to