Proposal: Modularize Kernel Configuration Files
We currently have two Linux Kernel packages (linux-lts
and linux-edge
) and while working on Alpine support for the SiFive HiFive Unmatched, I noticed that the Kernel configuration files are quite heavily fragmented. Both between those two different packages and within the same package between different architectures (!24430 (closed), !24388 (closed), !24383 (closed)). This is somewhat annoying as it causes aports which run fine on one architecture to not work directly on others, for example htop does currently not work on riscv64 due to differences regarding enabled CPU accounting features it seems.
To overcome this issues I would suggest modularizing our Kernel configuration files. Debian, for example, constructs Kernel configuration files “dynamically from a number of files under debian/config” [1]. For example, the Debian Kernel configuration file for riscv64 only contains architecture specific options and thus much smaller than our configuration [2]. This ensures that architecture-independed options (network config etc.) are same across different architectures. From these smaller architecture-specific configuration files, Debian generates the complete config using a Python script. Maybe we could implement something similar for Alpine to reduce fragmentation of Kernel configuration files.
See https://salsa.debian.org/kernel-team/linux/-/tree/master/debian/config for a list of all architecture-specific Kernel configuration files in Debian.
CC: @mps