背景:

openEuler社区优化软件包构建速度,本次议题主要讨论优化kernel包的构建速度。

 

 

当前现状:

openEuler Kernel仓输出的二进制文件主要包含kernel.rpmkernel-devel.rpmkernel-devel包含用户态和内核态的开发头文件,kernel.rpm包含了vmlinuxko等其他所有的文件。

openEuler文件拆分粒度太粗,导致构建速度比其他Linux发行版差很多。

 

openEuler kernel构建输出如下:https://build.openeuler.org/package/binaries/openEuler:20.03:LTS:SP1/kernel/standard_aarch64

 

openEuler打包规则见链接:https://gitee.com/openeuler/community/blob/master/zh/contributors/packaging.md

 

 

拆分建议如下,请大家看下是否合理:

1.      基于使用场景的角度,将kernel-devel.rpm拆分为kernel-headers.rpmkernel-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