On Sat, Oct 08, 2022 at 03:42:59PM +0100, Simon McVittie wrote:
> I was under the impression that the Debian archive does not allow
> dependencies with an explicit architecture like this, only the :any
> qualifier for M-A: allowed packages (like python3:any).

"allow" is a strong word especially if you don't find it in policy
(but then, policy documents existing usage, so some usage pre-dates
 policy by definition I guess).

It is also not really related to MultiArch ipso facto as the initial
spec explicitly mentions it as a dropped discussion point. [0]
It was later added with MultiArchCross [1] with the previously mentioned
caveats still in place as cross-building is not a thing in the archive
(as we build everything natively – ignoring special cases like win32).

That said, we have some packages declare cross-architecture dependencies
in the archive (even in stable), but not as a hard-dependency as indeed
various archive tools can not deal with such dependencies and its
unclear if they even should as MultiArch is not a default configuration.
(which I want to highlight explicitly here as it is frequently compared
 to things we ship or enable by default for everyone)

Examples are:
- crossbuild-essential-i386 depends on gcc-i686-linux-gnu | gcc:i386
- gamemode recommends libgamemode0:i386
- libc6-i386 conflicts with libc6-x32:i386

(and that is just looking at :i386 in amd64 as that is a somewhat common
 usage to bring in i386 packages on amd64.)

The trick previously was to depend on a package only available in the
other architecture, which equally doesn't work with tools who only have
a single arch available and is less obvious for the casual on-looker.


apt (and libapt-based friends) and dpkg agree mostly on what things mean
and if they don't it tends to be way beyond the pay grade of the average
DD (an example would be #770345 that is have left hanging for 8 years
now) – no disrespect intended! It is just that I would certainly not
want to reason about any of that stuff if that wouldn't come hand in
hand with being an apt dev… bringing all those nitty-gritty details to
policy would certainly be an interesting endeavour but if it would
really be a service to human kind^W^Wcontributors I am not so sure even
if its frequently used as an argument against MultiArch and related
projects.


Best regards

David Kalnischkies

[0] 
https://wiki.ubuntu.com/MultiarchSpec#Allow_official_packages_to_have_cross-architecture_deps
[1] https://wiki.ubuntu.com/MultiarchCross#Cross-architecture_dependencies

Attachment: signature.asc
Description: PGP signature

Reply via email to