linux-libc-dev broken for crossbuilding, Multi-Arch:same violation
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Critical
|
Seth Forshee | ||
Focal |
Fix Released
|
Critical
|
Seth Forshee | ||
Groovy |
Fix Released
|
Critical
|
Seth Forshee | ||
linux-riscv (Ubuntu) |
Fix Released
|
Critical
|
Unassigned | ||
Focal |
Fix Released
|
Critical
|
Seth Forshee | ||
Groovy |
Fix Released
|
Critical
|
Unassigned |
Bug Description
SRU Justificatoin
Impact: Building linux-libc-dev for riscv64 from the linux-riscv package means that it can have a different version from the package on other architectures. This makes it uninstallable for cross building.
Fix: Move the riscv64 linux-libc-dev build back to the main kernel package so that the version will match.
Test Case: See below.
Regression Potential: This could cause trouble if the main kernel package version is behind the linux-riscv package version, and may require artificially inflating the version of the linux package. Currently this is not necessary, but it needs to be kept in mind when preparing packages for upload with the fixes applied.
---
# apt install linux-libc-
Reading package lists... Done
Building dependency tree
Reading state information... Done
linux-libc-dev is already the newest version (5.4.0-26.30).
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:
linux-libc-dev : Breaks: linux-libc-
linux-
E: Unable to correct problems, you have held broken packages.
$ rmadison -S linux-libc-dev | grep -e riscv64 -e amd64 | grep -e focal -e groovy
linux-libc-dev | 5.4.0-24.28 | focal | riscv64
linux-libc-dev | 5.4.0-26.30 | focal | amd64, arm64, armhf, i386, ppc64el, s390x
linux-libc-dev | 5.4.0-26.30 | groovy | amd64, arm64, armhf, i386, ppc64el, s390x
linux-libc-dev | 5.4.0-27.31 | groovy | riscv64
linux-libc-dev | 5.4.0-28.32 | focal-security | riscv64
linux-libc-dev | 5.4.0-28.32 | focal-updates | riscv64
linux-libc-dev | 5.4.0-40.44 | focal-security | amd64, arm64, armhf, i386, ppc64el, s390x
linux-libc-dev | 5.4.0-40.44 | focal-updates | amd64, arm64, armhf, i386, ppc64el, s390x
linux-libc-dev | 5.4.0-40.44 | groovy-proposed | amd64, arm64, armhf, i386, ppc64el, s390x
This is broken.
linux-libc-dev must have identical content for common files, across all architectures, and must have identical version number.
A few ways to fix this:
* Either enforce that src:linux & src:linux-riscv are at the same version number. But then reasons for splitting riscv into a separate build dissappear
* Make src:linux build _just_ the headers linux-libc-dev for risv64, and nothing else. And stop bulding linux-libc-dev form the src:linux-riscv package. Just like it does for i386.
* Or create new src:linux-headers that only builds linux-libc-dev for all architectures, without building any kernels. This way for example, we could rev userspace headers to v5.8/v5.9 ahead of said kernel landing, to shake out build-failures / userspace issues, whilst the kernel itself is still baking in bootstrap/proposed PPA.
This must be address in Focal and Groovy
tags: | added: riscv64 |
Changed in linux (Ubuntu Focal): | |
importance: | Undecided → Critical |
Changed in linux (Ubuntu Groovy): | |
importance: | Undecided → Critical |
Changed in linux-riscv (Ubuntu Focal): | |
importance: | Undecided → Critical |
Changed in linux-riscv (Ubuntu Groovy): | |
importance: | Undecided → Critical |
tags: | added: bot-stop-nagging |
Changed in linux (Ubuntu Focal): | |
status: | Incomplete → Triaged |
status: | Triaged → New |
Changed in linux (Ubuntu Groovy): | |
status: | Incomplete → New |
Changed in linux (Ubuntu): | |
status: | New → Incomplete |
Changed in linux (Ubuntu Focal): | |
status: | New → Incomplete |
Changed in linux (Ubuntu Focal): | |
status: | Incomplete → New |
Changed in linux (Ubuntu Groovy): | |
status: | Incomplete → New |
Changed in linux (Ubuntu): | |
status: | New → Incomplete |
Changed in linux (Ubuntu Focal): | |
status: | New → Incomplete |
description: | updated |
Changed in linux (Ubuntu Groovy): | |
status: | In Progress → Fix Committed |
Changed in linux (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
Changed in linux-riscv (Ubuntu Focal): | |
status: | In Progress → Fix Committed |
to avoid that, please build linux-libc-dev from a separate source package. That would also allow providing an early user space package, while the various linux packages are still in the works