libc6-dev:amd64 overwrites files from libc6:i386 and aborts update when upgrading to mantic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
glibc (Ubuntu) |
Fix Released
|
High
|
Unassigned | ||
Mantic |
Won't Fix
|
Undecided
|
Unassigned | ||
Noble |
Fix Released
|
High
|
Unassigned | ||
ubuntu-release-upgrader (Ubuntu) |
Invalid
|
High
|
Simon Chopin | ||
Mantic |
Invalid
|
High
|
Simon Chopin | ||
Noble |
Invalid
|
High
|
Simon Chopin |
Bug Description
This is a bug affecting mantic, apport selected lunar instead of mantic because the bug happens in the middle of the upgrade from lunar to mantic.
I tried to update from lunar to mantic, dpkg aborted with this error:
```
Dépaquetage de libc6-dev-i386 (2.38-1ubuntu6) sur (2.37-0ubuntu2.1) ...
dpkg: erreur de traitement de l'archive /var/cache/
tentative de remplacement de « /usr/include/
```
The message is in French, but the meaning is that dpkg aborts because installing libc6-dev:i386 tries to overwrite files from libc6-dev:amd64.
ProblemType: Bug
DistroRelease: Ubuntu 23.04
Package: libc6 2.38-1ubuntu6
ProcVersionSign
Uname: Linux 6.2.0-33-generic x86_64
NonfreeKernelMo
ApportVersion: 2.26.1-0ubuntu2
Architecture: amd64
CasperMD5CheckR
CurrentDesktop: GNOME
Date: Fri Oct 13 04:13:11 2023
RebootRequiredPkgs: Error: path contained symlinks.
SourcePackage: glibc
UpgradeStatus: No upgrade log present (probably fresh install)
modified.
# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=0
mtime.conffile.
CVE References
Changed in glibc (Ubuntu): | |
importance: | Undecided → High |
status: | New → Triaged |
description: | updated |
Changed in glibc (Ubuntu Noble): | |
status: | Triaged → Fix Committed |
Changed in ubuntu-release-upgrader (Ubuntu Noble): | |
status: | New → Incomplete |
Changed in ubuntu-release-upgrader (Ubuntu): | |
status: | Incomplete → Invalid |
Changed in ubuntu-release-upgrader (Ubuntu Mantic): | |
status: | Incomplete → Invalid |
Changed in ubuntu-release-upgrader (Ubuntu Noble): | |
status: | Incomplete → Invalid |
The issue isn't because of libc6-dev:i386, which is a multiarch package and should cope just fine with sharing an identical file with its :amd64 counterpart. The issue is in the biarch package libc6-dev- i386:amd64.
What happened is that the fortran header was moved into an arch-specific directory in the -dev packages for the 2.38, and instead the biarch packages inserted a symlink in the generic path. That particular change was picked up when I merged the Debian changes, but I didn't notice the symlink part. What this means is that the 2.38 biarch packages need to declare a Breaks+Replace relationship on the -dev packages << 2.37.
This will be fixed in an upcoming SRU. Meanwhile, to be able to upgrade the easiest thing that comes to mind is to remove the biarch package before upgrade and reinstall afterwards. Sorry for the inconvenience!