Subject: All kernels depend on the latest kernel

From: Dariqq <[email-masked]>
Date: Sun, 14 Jul 2024 21:07:39 +0000

Hi Guix,

Since commit b72b6063cebbcfd64d43f5b05ba8470eb11c3f65 added dwarfes and 
bpf support to our kernel an update to the latest kernel causes a 
rebuild of all kernels.

The reason is

linux-libre-*->dwarfes->libbpf->linux-libre-headers-6.9

as (dependants of) libbpf need newer kernel headers than the default 
ones (5.15.49).

As an example for this you can look at a recent kernel updates job on ci
https://ci.guix.gnu.org/eval/1480123 :
All kernels are being rebuilt despite only the 6.* ones being updated.

This problem will probably only increase in the future as newer versions 
of packages might also require newer headers.

I also encountered this recently when i tried to (unsuccessfully) update 
mutter to 46 where the build would fail as some file utilizes 
DMA_BUF_IOCTL_EXPORT_SYNC_FILE  which (i think) was only added with the 
6.0 kernel headers. Once that is properly packaged in guix using any of 
the "rolling" headers for mutter would then also cause weekly gnome 
rebuilds, etc.

 From the comments in the libbpf package it seems anything >= 6 should 
be enough for that package as well.

As a solution I would propose either
- updating the default 5.14.49 header (there is a big warning next to it 
so probably not a good idea)
- or create a second stable, recent enough header to use for such cases.

This would also reduce maintenance burden of constantly updating these 
inputs when the kernel and thus its headers are removed from guix due to 
becoming eol.
This already caused a problem once when the 6.8 kernel was removed:
https://lists.gnu.org/archive/html/guix-devel/2024-06/msg00181.html

Thanks.