Package: cpp-11,cpp-11-x86-64-linux-gnu
Severity: serious
Justification: fails to install
User: debian...@lists.debian.org
Usertags: fileconflict
Control: clone -1 -2
Control: retitle -2 cpp-12 and cpp-12-x86-64-linux-gnu have an undeclared 
cross-architecture file conflict
Control: reassign -2 cpp-12,cpp-12-x86-64-linux-gnu

Hi,

I observe that you cannot install cpp-11 (amd64) and
cpp-11-x86-64-linux-gnu (i386). What looks like utter nonsense fails in
unexpected ways:

| $ mmdebstrap unstable /dev/null --variant=essential 
--architectures=amd64,i386 --include=cpp-11,cpp-11-x86-64-linux-gnu --verbose
| ...
| Unpacking cpp-11-x86-64-linux-gnu:i386 (11.5.0-2cross1) ...
| dpkg: error processing archive 
/tmp/apt-dpkg-install-s7Wmlf/15-cpp-11-x86-64-linux-gnu_11.5.0-2cross1_i386.deb 
(--unpack):
|  trying to overwrite '/usr/bin/x86_64-linux-gnu-cpp-11', which is also in 
package cpp-11 (11.5.0-2)
| dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
| Errors were encountered while processing:
|  
/tmp/apt-dpkg-install-s7Wmlf/15-cpp-11-x86-64-linux-gnu_11.5.0-2cross1_i386.deb
| E: Sub-process env returned an error code (1)
| ...
| $

This is generally a problem between native and cross toolchains and cpp
is just an example here. There are numerous other instances.

A side effect of my gcc-for-host work is that $TOOL started depending on
$TOOL-$TRIPLET. That dependency comes with moving files and therefore
this becomes a non-issue for gcc-13 and later. It still affects gcc-12
as that has not been converted to gcc-for-host.

This issue really goes back and we can observe it in bullseye and
bookworm as well. I informed #debian-release. My expectation is that the
benefit of fixing these in stable does not outweigh the associated risks
of doing SPUs for gcc-defaults and gcc-12.

gcc-11 has already been removed from trixie via #1023690 and I expect it
to get removed from unstable before too long. I suggest just leaving the
issue open there and not expending any further effort at it. In case
someone wants to include gcc-11 in trixie, they'd also have to work on
this.

For gcc-12, the story is less clear. It still is part of trixie and it
is not clear whether it should be included. If it should, I wonder
whether porting the gcc-for-host work is reasonable or whether adding
the missing Conflicts (e.g. cpp-12:amd64 could easily declare Conflicts:
cpp-12-x86-64-linux-gnu and call it a day).

I believe that something should be done about gcc-12.

Helmut

Reply via email to