
背景: openEuler社区优化软件包构建速度,本次议题主要讨论优化kernel包的构建速度。 当前现状: openEuler Kernel仓输出的二进制文件主要包含kernel.rpm和kernel-devel.rpm。kernel-devel包含用户态和内核态的开发头文件,kernel.rpm包含了vmlinux、ko等其他所有的文件。 openEuler文件拆分粒度太粗,导致构建速度比其他Linux发行版差很多。 openEuler kernel构建输出如下:https://build.openeuler.org/package/binaries/openEuler:20.03:LTS:SP1/kernel/... openEuler打包规则<https://gitee.com/openeuler/community/blob/master/zh/contributors/packaging.md>见链接:https://gitee.com/openeuler/community/blob/master/zh/contributors/packaging.md 拆分建议如下,请大家看下是否合理: 1. 基于使用场景的角度,将kernel-devel.rpm拆分为kernel-headers.rpm和kernel-devel.rpm,分别包含用户态和内核态的头文件。 2. Kernel.rpm拆分为kernel.rpm kernel-core.rpm kernel-modules.rpm。 kernel.rpm是空包,不包含任何文件,仅提供安装/卸载时的rpm名称入口; kernel-core.rpm包含vmlinux、磁盘网络等驱动,保证最小系统可以正常启动。kernel.rpm安装时依赖kernel-core.rpm。 kernel-modules包含其他所有的驱动文件,kernel.rpm安装时同样依赖kernel-modules.rpm。