[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#972820: confirmation, test case



Control: reassign gcc-10 10.2.0-19


I have also experienced this bug, as have a lot of others on the
internet (try searching for "libc6-dev : Breaks: libgcc-8-dev (<
8.4.0-2~) but 8.3.0-6 is to be installed" to see). The bug appears to be
in the new gcc-10 package, not the gcc-8 package it's replacing on upgrade.

It looks like it's a result of the lack of transitional packages from
libgcc1 to libgcc-s1 (and its relatives). They were removed from sid and
bullseye for 10.1.0-2, in this commit:
https://salsa.debian.org/toolchain-team/gcc/-/commit/e8047f6d4947d94d7475987d0697434f1e6504d7 ;
(though multi-arch properties were removed before then).

I was able to work around this issue by creating a simple mostly-empty
source package that created the missing transitional packages and
installing them, though this is of course inferior to having them
actually provided by the relevant source package.
https://salsa.debian.org/rpavlik/gcc-10-compat (I only mocked up/built
the packages required to test on x86_64/i386, but I'd expect the same
problem and solution on the other platforms that have additional libgcc
packages.)

I have a reproducible test case: I did it in a Dockerfile, but you could
do the equivalent commands in a chroot or which ever way you prefer.
Essentially, you can start with a fairly minimal Debian Buster install,
and install the following packages:

apt-get install -y -qq --no-install-recommends gcc-8 libc6-dev libreoffice

(This is one minimal set to reproduce - there may be others.)

Then, when you switch the Buster sources to Bullseye, you'll get this
error on your attempt to apt-get dist-upgrade:


~~~~~~~~~~~~

Calculating upgrade... Error!
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libc6-dev : Breaks: libgcc-8-dev (< 8.4.0-2~) but 8.3.0-6 is to be
installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be
caused by held packages.

~~~~~~~~~~~~

You can confirm the fix by adding the repo with my workaround
transitional packages:

deb
http://download.opensuse.org/repositories/home:/rpavlik:/bullseye-fix
Debian_Testing/

(key is at
http://download.opensuse.org/repositories/home:/rpavlik:/bullseye-fix/Debian_Testing/Release.key
)

I've uploaded my dockerfile for experimenting with this bug to
https://salsa.debian.org/rpavlik/gcc-upgrade-testcase

It looks to me, based on the workaround I was able to create, that the
solution might include re-enabling the transitional packages for
bullseye/sid at least until the release of bullseye as stable. At that
point, anyone upgrading to testing or unstable would be coming from a
bullseye release that has the gcc-10 with new names, so the transitional
packages would not be needed anymore.



Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: