Hi Kurt,

On Sun, Apr 27, 2025 at 01:53:12PM +0200, Kurt Roeckx wrote:
> I don't see the problem:
> $ apt-cache show gnat-13-aarch64-linux-gnu
> Package: gnat-13-aarch64-linux-gnu
> Source: gcc-13-cross (17)
> Version: 13.3.0-13cross1
> Installed-Size: 98436
> Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
> Architecture: amd64
> Replaces: gnat-13 (<< 13.2.0-11)
> Depends: gcc-13-aarch64-linux-gnu-base (= 13.3.0-13cross1), 
> gcc-13-aarch64-linux-gnu (>= 13), libgnat-13-arm64-cross (>= 
> 13.3.0-13cross1), libc6-dev-arm64-cross (>= 2.23-1~), libc6 (>= 2.38), 
> libgmp10 (>= 2:6.3.0+dfsg), libisl23 (>= 0.15), libmpc3 (>= 1.1.0), libmpfr6 
> (>= 3.1.3), libzstd1 (>= 1.5.5), zlib1g (>= 1:1.1.4)
> Suggests: gnat-13-doc, ada-reference-manual-2012
> Conflicts: gnat-10-aarch64-linux-gnu, gnat-11-aarch64-linux-gnu, 
> gnat-12-aarch64-linux-gnu, gnat-4.9, gnat-5-aarch64-linux-gnu, 
> gnat-6-aarch64-linux-gnu, gnat-7-aarch64-linux-gnu, gnat-8-aarch64-linux-gnu, 
> gnat-9-aarch64-linux-gnu
> Breaks: gnat-13 (<< 13.2.0-11)
> Description-en: GNU Ada compiler for the aarch64-linux-gnu architecture
>  GNAT is a compiler for the Ada programming language. It produces optimized
>  code on platforms supported by the GNU Compiler Collection (GCC).
>  .
>  This package provides the compiler, tools and runtime library that handles
>  exceptions using the default zero-cost mechanism.
> Description-md5: 726b837fa2e33796406f1db6ec3b5d32
> Multi-Arch: foreign
> Homepage: http://gcc.gnu.org/
> Built-Using: gcc-13 (= 13.3.0-13)
> Section: devel
> Priority: optional
> Filename: 
> pool/main/g/gcc-13-cross/gnat-13-aarch64-linux-gnu_13.3.0-13cross1_amd64.deb
> Size: 18736324
> MD5sum: aa2f62d55c6fa3707be4176c3ccb0cf1
> SHA256: ae581eb686fb64f396b7fb920f407635e00db1847ca68b50ff4ad1b9db8aff02
> 
> 
> All the conflicts seem to be there with the triplet?

This is more subtle in two regards. For one thing, I implied that the
problem would be fully architecture-generic. It is not. For
gnat-13-aarch64-linux-gnu, no problem exists, because there is no
gnat-12-aarch64-linux-gnu:amd64 nor gnat-11-aarch64-linux-gnu:amd64.

For another, the gnat-VER-TRIPLET:ARCH packages are built from different
source packages. If the TRIPLET matches the ARCH, it is built from
gcc-VER and from gcc-VER-cross otherwise. Those packages are different.

So let's move from arm64 to armhf.

$ apt-cache show gnat-13-arm-linux-gnueabihf:amd64 | grep ^Conflicts
Conflicts: gnat-10-arm-linux-gnueabihf, gnat-11-arm-linux-gnueabihf, 
gnat-12-arm-linux-gnueabihf, gnat-4.9, gnat-5-arm-linux-gnueabihf, 
gnat-6-arm-linux-gnueabihf, gnat-7-arm-linux-gnueabihf, 
gnat-8-arm-linux-gnueabihf, gnat-9-arm-linux-gnueabihf
$ apt-cache show gnat-13-arm-linux-gnueabihf:armhf | grep ^Conflicts
Conflicts: gnat-10, gnat-11, gnat-12, gnat-4.9, gnat-5, gnat-6, gnat-7, gnat-8, 
gnat-9
$ apt-cache show gnat-13-arm-linux-gnueabihf:amd64 | grep ^Conflicts
Conflicts: gnat-10-arm-linux-gnueabihf, gnat-11-arm-linux-gnueabihf, gnat-4.9, 
gnat-5-arm-linux-gnueabihf, gnat-6-arm-linux-gnueabihf, 
gnat-7-arm-linux-gnueabihf, gnat-8-arm-linux-gnueabihf, 
gnat-9-arm-linux-gnueabihf
$

As you can see, gnat-13-arm-linux-gnueabihf:armhf does not conflict with
gnat-12-arm-linux-gnueabihf and gnat-12-arm-linux-gnueabihf:amd64 does
not conflict with gnat-13-arm-linux-gnueabihf. Yet both contain
unversioned tools and would actually produce an unpack error when
attempting to coinstall them.

Helmut

Reply via email to