主要观点:Linux 社区的营销并非强项,更擅长写相关文章。开源软件的可重现构建工作近年来进展迅速,Debian 和 Fedora 等都在努力实现,Fedora 计划在 Fedora 43 开发周期达到 99%的包构建可重现性。
关键信息:
- 可重现构建定义为给定相同源代码、构建环境和指令,任何方都能创建相同的二进制副本。
- Fedora 过去未优先考虑可重现构建,因对构建过程控制更强,但其也能从可重现构建中获益,如检测供应链攻击等。
- Fedora 对可重现构建有不同定义,因无法实现原定义的“逐位”重现性,如 RPM 格式和构建方式的差异。
- Fedora 实现可重现构建的路径,从 Fedora 38 开始“夹紧”打包文件的修改时间,Fedora 41 去除不可重现性来源,目前已实现 90%的包构建可重现性,目标是 99%,需让打包者将可重现性问题视为 bug。
- 提案还包括打包 fedora-repro-build 工具、建立 rebuilderd 实例等,以实现独立验证包的可重现性,且需更新 Fedora 打包指南。
重要细节: - Debian 允许维护者在本地系统生成源包并上传,信任度低;Fedora 对分发的包有更严格控制,所有包都在集中控制的基础设施中构建。
- openSUSE 设置 BUILDHOST 为“可重现”,通过 SOURCE_DATE_EPOCH 环境变量设置构建时间。
- Fedora 的讨论中,涉及 rebuilderd 实例的位置、维护、与 Koji 和 Copr 的集成等问题,下一步是向 Fedora Engineering Steering Committee 提交提案。大多数用户可能未注意到 Fedora 的可重现构建工作,但这是有价值的。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。