Package: libcurl3t64-gnutls
Version: 8.20.0-3
Severity: important
X-Debbugs-Cc: [email protected]
libcurl3t64-gnutls (<= 8.20.0-2) was Architecture: any, Multi-Arch: same.
The new libcurl3t64-gnutls (>= 8.20.0-3) transitional package is
Architecture: all, Multi-Arch: no. This means that it cannot satisfy the
dependencies of packages from a foreign architecture, for example in
current unstable:
$ podman run --rm -it debian:sid-slim
# dpkg --add-architecture i386
# apt update
# apt full-upgrade
# apt install libproxy1v5{,:i386}
Solving dependencies... Error!
...
libproxy1v5 : Depends: libcurl3t64-gnutls (>= 7.16.2) but it is not going to
be installed
...
libproxy1v5:i386 : ...
Depends: libcurl3t64-gnutls:i386 (>= 7.16.2) but it is not
installable
I think this is going to prevent testing migration (at least until
reverse-dependencies get rebuilt), and if it migrates it's likely to
cause trouble when upgrading trixie systems to forky.
An Architecture: all package can never be a drop-in replacement for a
multiarch library package: if it isn't Multi-Arch: foreign then it will
not satisfy foreign packages' dependencies, breaking installability, but
if it was M-A: foreign then it would not pull in libcurl4-gnutls:i386,
breaking the foreign package at runtime.
In general, to make upgrades go smoothly, transitional packages should
usually have the same Architecture and Multi-Arch status as the package
that replaces them: in this case, that's libcurl4-gnutls, which is
correctly Arch: any, M-A: same.
The usual reason to want Architecture: all is to save space in the
archive, but having 8 copies of the transitional package instead of one
won't take a significant amount of extra space, because transitional
packages should be very small anyway.
Thanks,
smcv