背景: 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....
拆分建议如下,请大家看下是否合理:
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。