Comment 0 for bug 1886188

Revision history for this message
Dimitri John Ledkov (xnox) wrote :

# apt install linux-libc-dev:amd64 linux-libc-dev:riscv64
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-dev:riscv64 (!= 5.4.0-26.30) but 5.4.0-27.31 is to be installed
 linux-libc-dev:riscv64 : Breaks: linux-libc-dev (!= 5.4.0-27.31) but 5.4.0-26.30 is to be installed
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