跳到主要内容

软件包审阅指南

这个文档讲述了 openRuyi 审阅软件包的策略。

这是一篇用于软件包 PR 审阅的指南。请注意,要列出一个详尽无遗的检查清单是不可能的,但本文档已尽力做到全面。每当遇到不明确的事项时,审核人员和贡献者(打包者)都应运用自己的最佳判断。

审核人员需要检查的事项

本列表旨在帮助新的审核人员识别他们应关注的内容,但这绝不是一份完整的清单。审核人员在审查软件包时应运用自己的良好判断。

以下是必须要遵守的事项:

  • 必须对源码 RPM (source rpm) 以及构件产生的所有二进制 RPM (binary rpms) 运行 rpmlint。其输出应该附在 PR 中。

  • 软件包的 spec 文件必须清晰易读。

  • spec 文件必须使用美式英语书写。

  • 用于构建软件包的源码必须与 spec URL 字段中提供的上游源码相匹配。

  • 软件包必须能在 riscv64 上成功编译和构建为二进制 RPM。

  • 所有的构建依赖必须在 BuildRequires 字段中列出。

  • spec 文件必须正确处理本地化 (locales)。即,需要通过 %find_lang 宏来完成这个操作,而不是使用 %{_datadir}/locale/*

  • 大型文档文件必须放入 -doc 子软件包中。("大型"的定义留给打包者自行判断,但不仅限于大小。"大型"可以指大小或数量)。

  • 开发文件必须放在 -devel 软件包中。

  • 静态库必须放在 -static 软件包中。

  • 不得在 spec 文件的 %files 列表中多次列出同一个文件。许可证文本在特定情况下除外。

  • 文件的权限必须设置正确。例如,可执行文件应设置可执行权限。

  • 软件包不得包含任何 .la libtool 归档文件,如果构建时生成了这些文件,必须在 spec 中将其移除。

    • 通常在构建时已经会自动移除这些文件。
  • RPM 软件包中的所有文件名必须是有效的 UTF-8 编码。

以下是应当要注意的事项:

  • 审核人员应当测试该软件包是否能在 mock 中构建。

  • pkgconfig (.pc) 文件的放置位置取决于其用例,通常它们用于开发目的,因此应当放在 -devel 包中。一个合理的例外是,主包本身就是一个开发工具,不会安装在用户运行时环境中,例如 gccgdb