• Bug#1063664: closed by Matthias Klose (no feedback, c

    From Helmut Grohne@21:1/5 to Debian Bug Tracking System on Fri Apr 11 22:40:01 2025
    Control: reopen -1

    Hi Matthias,

    On Thu, Nov 14, 2024 at 11:21:01AM +0000, Debian Bug Tracking System wrote:
    no feedback, closing this issue.

    I can still reproduce it in quite some variety.

    gnat-13-<triplet> as built from src:gcc-13 still contains unversioned
    tools. There are declared conflicts for various gnat-VER, but no
    conflicts for gnat-VER-<triplet>. As a result, there still is an
    undeclared file conflict with gnat-12-<triplet> as built from
    src:gcc-12-cross present in bookworm|trixie|sid and gnat-11-<triplet> as
    built from src:gcc-11-cross present in bookworm|sid.

    I cannot find any such conflicts for gnat-14-<triplet> nor
    gnat-15-<triplet>, because then the defaults are managed via
    src:gcc-defaults.

    I think src:gcc-13 needs to augment its Conflicts from

    Conflicts: gnat-4.9, gnat-5`'TS, gnat-6`'TS, gnat-7`'TS, gnat-8`'TS, gnat-9`'TS,
    gnat-10`'TS, gnat-11`'TS, gnat-12`'TS,

    to

    Conflicts: gnat-4.9, gnat-5`'TS, gnat-6`'TS, gnat-7`'TS, gnat-8`'TS, gnat-9`'TS,
    gnat-10`'TS, gnat-11`'TS, gnat-11`'arch_gnusuffix, gnat-12`'TS, gnat-12`'arch_gnusuffix

    Helmut

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Helmut Grohne@21:1/5 to Kurt Roeckx on Sun Apr 27 19:40:01 2025
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Helmut Grohne@21:1/5 to Kurt Roeckx on Mon Apr 28 22:50:01 2025
    Control: tags -1 + patch

    Hi Kurt,

    On Sun, Apr 27, 2025 at 09:06:22PM +0200, Kurt Roeckx wrote:
    $ 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

    I assume the last is supposed to be for 12?

    Thank you for correctly spotting the copy&paste mistake.

    As you can see, gnat-13-arm-linux-gnueabihf:armhf does not conflict with gnat-12-arm-linux-gnueabihf

    I can see that now.

    and gnat-12-arm-linux-gnueabihf:amd64 does
    not conflict with gnat-13-arm-linux-gnueabihf.

    But your output shows that it does (in the reverse direction)?

    I'm no sure what you mean here. Just lines earlier you appeared to agree
    that the reverse direction was missing the conflict.

    Maybe we can more easily settle the matter given a reproducer.

    $ mmdebstrap unstable /dev/null --verbose --variant=essential --architectures=amd64,armhf --include=gnat-13-arm-linux-gnueabihf:armhf,gnat-12-arm-linux-gnueabihf:amd64
    ...
    Unpacking gnat-13-arm-linux-gnueabihf:armhf (13.3.0-13) ...
    dpkg: error processing archive /tmp/apt-dpkg-install-dHegLO/48-gnat-13-arm-linux-gnueabihf_13.3.0-13_armhf.deb (--unpack):
    trying to overwrite '/usr/bin/arm-linux-gnueabihf-gnatgcc', which is also in package gnat-12-arm-linux-gnueabihf (12.4.0-5cross1)
    Errors were encountered while processing:
    /tmp/apt-dpkg-install-dHegLO/48-gnat-13-arm-linux-gnueabihf_13.3.0-13_armhf.deb
    E: Sub-process env returned an error code (1)
    $

    I'm also attaching a .debdiff for what I think to be the solution here.
    You may find a build with the additional conflicts at https://debusine.debian.net/debian/developers/work-request/89768/.

    Helmut

    diff -Nru gcc-13-13.3.0/debian/changelog gcc-13-13.3.0/debian/changelog
    --- gcc-13-13.3.0/debian/changelog 2025-03-15 07:41:49.000000000 +0100
    +++ gcc-13-13.3.0/debian/changelog 2025-04-28 05:33:40.000000000 +0200
    @@ -1,3 +1,10 @@
    +gcc-13 (13.3.0-13.1) UNRELEASED; urgency=medium
    +
    + * Non-maintainer upload.
    + * Add missing gnat conflicts.
    +
    + -- Helmut Grohne <helmut@subdivi.de> Mon, 28 Apr 2025 05:33:40 +0200
    +
    gcc-13 (13.3.0-13) unstable; urgency=medium

    * Update to git 20250315 from the gcc-13 branch.
    diff -Nru gcc-13-13.3.0/debian/control gcc-13-13.3.0/debian/control
    --- gcc-13-13.3.0/debian/control 2025-03-15 05:22:17.000000000 +0100
    +++ gcc-13-13.3.0/debian/control 2025-04-28 05:33:40.000000000 +0200
    @@ -3513,7 +3513,7 @@
    Suggests: gnat-13-doc, ada-reference-manual-2012
    Provides: gnat-13-${libgnat:alihash}
    Conflicts: gnat-4.9, gnat-5, gnat-6, gnat-7, gnat-8, gnat-9,
    - gnat-10, gnat-11, gnat-12,
    + gnat-10, gnat-11, gnat-11-alpha-linux-gnu, gnat-12, gnat-12-alpha-linux-gnu
    # Previous versions conflict for (at least) /usr/bin/gnatmake.
    Descri