Quoting Helmut Grohne (2021-07-09 14:24:01) > Another possibility (kudos to David Kalnischkies) would be exploiting > something I might call a loophole in the Multi-Arch spec. While we don't > currently use arch-qualified dependencies in the archive, the spec considers > them and dpkg and apt support them (somewhat). So in theory, we could say > that systemd-container Depends: systemd:${DEB_HOST_ARCH}. I'm not sure > whether all resolvers agree on this, but I'd expect this dependency to pull > the right instance (despite being marked Multi-Arch: foreign). Before jumping > onto this, please consider David's warning: here be dragons.
No, not all solvers agree on this. Imagine this situation: Package: pkga Architecture: amd64 Depends: pkgb:i386 Multi-Arch: no Package: pkgb Architecture: i386 Multi-Arch: foreign dose3, apt and dpkg agree that pkga can be installed because its dependency is satisfied by pkgb. But if we change pkgb:i386 to pkgb:amd64 to end up with this: Package: pkga Architecture: amd64 Depends: pkgb:amd64 Multi-Arch: no Package: pkgb Architecture: i386 Multi-Arch: foreign Then dose3 can satisfy the dependency of pkg while apt and dpkg cannot. This is because when building the cudf representation of above two packages, dose3 considers pkg to provide pkgb for all architectures, including amd64, because it is marked as m-a:foreign. Thanks! cheers, josch
signature.asc
Description: signature