Modularity
有一些软件包利用了称为“流”的功能。模块化使得在同一个仓库中可以存在同一软件包的多个版本,并支持版本切换。为了能够构建模块软件包,我们使用一种称为“模块构建服务”(Module Build Service),简称“MBS”的东西。它也被称为“fm-orchestrator”。
包含模块化条目的软件包不应直接从其 dist/ 仓库构建,因为这样无法正确地将该软件包标记为流。
正确的 {name}.yaml 文件是在导入时使用 srpmproc 生成的,并派生自 SOURCES/modulemd.src.txt。
Koji 设置¶
MBS 应该能够使用内容生成器,以便 Koji 可以管理制品。要启用内容生成,请针对数据库运行以下查询
insert into content_generator (name) values ('module-build-service');
insert into btype (name) values ('module');
在 Koji 上授予 mbs 用户 cg-access 权限,方法是
koji grant-cg-access mbs module-build-service
另外,创建一个名为 modular-updates-candidate 的标签,方法是
koji add-tag modular-updates-candidate
模块化软件包应添加到此标签。
MBS¶
需要最新版本的 MBS。2.32 版本在标签上缺少 mock.yum.module_hotfixes=1 标志,并且 DNF 安全机制会破坏构建。
更多关于模块化的信息以及我们如何利用 MBS,请参见此处。