如何为 RPM Fusion 贡献或成为软件包维护者
RPM Fusion 为 Fedora 和 Red Hat Enterprise Linux(或其克隆版)提供 Fedora Project 与 Red Hat 不愿随发行版分发的软件,以预编译 RPM 形式发布,可通过 yum、dnf、PackageKit 等工具使用。如果你想为它贡献代码或成为软件包维护者,入口是官网的 “For packagers” 区域,其中列出了贡献者信息、成为维护者的指引、内核模块打包、基础设施等页面,以及指导委员会、邮件列表和 FAS openid、pkgdb、koji、cgit 等打包相关系统。下面按“先了解、再动手、后协作”的顺序说明。
先确认你要贡献什么
RPM Fusion 的贡献方向大致分三类,对应不同的准备材料:
- 打包与维护软件包:把 Fedora/Red Hat 未收录的软件做成 RPM,或接手已有软件包的维护。这是最核心的贡献方式。
- 内核模块打包:属于特殊类别,官网单独列出 “Packaging kernel modules” 页面,说明其打包方式与普通用户态软件不同,需要额外注意。
- 基础设施与社区协作:包括基础设施(Infrastructure)页面、指导委员会(Steering Committee)、邮件列表等,适合不写打包脚本但愿意参与运营的人。
官网 “For packagers” 下明确给出的条目包括:Information for Contributors、Becoming a package maintainer、Packaging kernel modules、Infrastructure 及其他页面、Steering Committee、Mailing Lists,以及 FAS openid、pkgdb、koji、cgit(当前不可用,有一个 GitHub 镜像)等系统入口。这些就是贡献流程会实际用到的资源清单。
成为软件包维护者的路径
官网把 “Information for Contributors” 和 “Becoming a package maintainer” 作为两个独立入口,说明流程分两步:先读贡献者须知,再走维护者申请。
- 阅读贡献者信息:从 “Information for Contributors” 开始,了解 RPM Fusion 对提交内容的要求、许可与打包规范。RPM Fusion 的目标是把尽可能多的附加软件集中到一处,因此对软件是否适合收录有既定原则,官网另有 FoundingPrinciples 页面可参考。
- 按 “Becoming a package maintainer” 操作:该页面给出成为维护者的具体途径。由于 RPM Fusion 使用 FAS openid 作为账号体系,申请与身份绑定会涉及 FAS;打包提交与构建则涉及 pkgdb 和 koji。
- 使用打包基础设施:pkgdb 用于软件包数据库管理,koji 用于构建,cgit 用于查看代码仓库(官网注明 cgit 当前不可用,并提供一个 GitHub 镜像作为替代)。这意味着查看代码时可能需要转向镜像。
需要提醒的是,官网没有在首页给出每一步的逐条命令,具体操作要以 “Becoming a package maintainer” 页面内的说明为准,不要凭 Fedora 主仓库的经验直接套用。
内核模块打包的特殊之处
“Packaging kernel modules” 被单独列出,说明它不属于普通打包流程。内核模块与具体内核版本、内核 ABI 强相关,RPM Fusion 需要为所有当前 Fedora 版本以及当前 RHEL 或克隆版本提供预编译 RPM,因此内核模块的打包要考虑跨版本兼容与重建节奏。如果你打算贡献的是显卡驱动、文件系统模块一类内容,应先读这一页,再决定是否从普通软件包入手。
提交后如何协作与获取支持
贡献不是一次性动作,后续沟通渠道在官网有明确列出:
- 邮件列表:rpmfusion-users 等列表,用于用户与开发者讨论。
- IRC:
#rpmfusionon Libera.Chat。 - Fedora Discussion 与 X(@rpmfusion_team)。
- Bugzilla:报告缺陷的正式渠道,官网 “Reporting bugs” 指向 Bugzilla。
- FAQ、Howto、Common Bugs:动手前先查这几页,能避开已知问题。
- fedoraforum.org:也有若干 RPM Fusion 用户活跃。
如果你是打包者,指导委员会(Steering Committee)和邮件列表是讨论收录政策、流程变更的地方。
浏览现有软件包以确定切入点
在决定贡献哪个软件包前,可以先浏览仓库内容。官网提供 RepoView 生成的各仓库索引,覆盖 Fedora rawhide(devel)、45(branched)、44、43 以及 EL 10 等版本,每个版本下分 Free、Nonfree、tainted 等仓库,并提供 source、x86_64、aarch64、ppc64le 等架构目录。通过浏览这些索引,可以看到某个软件是否已被收录、由哪个仓库承载,从而判断是新增打包还是参与已有维护。
常见卡点
- cgit 当前不可用:官网明确标注,需改用其 GitHub 镜像查看代码,不要以为链接失效是本地问题。
- 内核模块不能照搬普通打包流程:必须参考专门的 “Packaging kernel modules” 页面。
- 账号体系是 FAS openid:申请维护者身份前先确认 FAS 账号可用。
- 收录范围有原则:RPM Fusion 只提供 Fedora Project 或 Red Hat 不愿分发的软件,提交前先对照 FoundingPrinciples 判断是否属于其范围。
整体路径可以概括为:读贡献者信息 → 走维护者申请 → 用 pkgdb/koji 提交与构建 → 通过邮件列表、IRC、Bugzilla 协作。每一步的具体命令与表单,以官网对应页面为准。