如果你是一个包维护者 Fedora,或者如果您定期启动自己的 RPM 版本以安装在您的 Fedora 系统,当上游发布新版本的软件时,您可能已经经历了更新包的过程。
变基助手 是一个方便的工具,可以帮助包维护者将包更新到最新的上游版本。 它自动化了包维护者在发布新的上游代码版本时通常执行的许多手动任务。
安装 rebase-helper
Rebase-helper 可以从 Fedora 使用以下命令的存储库:
sudo dnf install -y rebase-helper
Rebase-helper 使用其他几个程序,例如 abipkgdiff, 转速差异, 嘲笑, 饲料包装袋, 和 融合,并且这些程序作为 rebase-helper 的依赖项自动安装。 请注意,rebase-helper 也可以作为 EPEL-7 软件包提供,因此它也可以安装在 CentOS 和 Red Hat Enterprise Linux 上。
使用 rebase-helper CLI
使用 rebase-helper 来变基 Fedora 包,首先转到您从 FedPkg 签出包的位置,然后使用您要变基到的上游版本运行变基助手,对于 example:
rebase-helper 1.2.1
然后 Rebase-helper 将自动运行,包括以下基本步骤:
- 从上游下载新的源档案(如规范文件中所定义)
- 在最新的上游版本之上重新定位下游补丁,使用 git rebase 命令。
- 如果修补成功,rebase-helper 然后构建两组 RPM。 一个使用“旧”资源,另一个使用“新”资源。 可用的构建工具是 嘲笑, rpmbuild, 饲料包装袋.
- 如果“新”RPM 构建失败,下载日志,如 构建日志 和 根日志
- 如果构建成功,则下载所有可用的 RPM 包。
- 如果所有构建成功,rebase-helper 会运行几个检查器,
像 pkgdiff, 转速差异, abipkgdiff. - 最后,rebase-helper 比较新旧包并报告结果。
与上游监控服务集成
Fedora 还自动使用 rebase-helper 作为 上游监控服务。 上游监控服务会定期检查很多包的上游来源 Fedora,并在发布新的上游版本时自动为包维护者提交错误以更新它们。
上游监控服务现在自动使用 rebase-helper 来尝试 rebase 并创建新版本的临时构建。 在将 rebase-helper 集成到上游监控服务之后,bugzilla 现在会更新尝试 rebase 的结果,维护者现在可以查看自动 rebase 是否有效,或者是否遇到问题并将信息发布到 bugzilla帮助诊断和解决问题:
在 rebase-helper 的帮助下,通过上游监控进行 Bugzilla 更新
rebase-helper 有什么新功能?
去年,rebase-helper 开发人员实现了几个新功能,包括:
非交互模式
在新的非交互模式下,补丁首先会自动重新定位,或者在失败的情况下,会跳过补丁并在最后报告。 其次,构建包(旧的和新的)由 rebase-helper 自动完成。 如果新包的构建失败,rebase-helper 会尝试分析 build.log 并更正 SPEC 文件。 完成此操作后,将再次尝试构建新包。
使用 git 重新定位下游补丁
此前,该 修补 和 融合 工具用于在新的上游版本之上重新定位补丁。 rebase-helper 现在使用现有的 git rebase 工作流程将补丁应用到新的上游版本。这允许用户指定 .gitconfig 文件,该程序将用于比较或合并补丁,以防补丁不能干净地应用。
fedpkg 构建支持
Rebase-helper 现在能够在 Fedora buildsystem (koji) 作为临时构建。
abipkgdiff 支持
Rebase-helper 现在可以使用 abipkgdiff 工具是 rebase-helper 的重要变化。
更多信息
有关 rebase-helper 项目的更多信息,请查看演示文稿 2016 年开发者大会 在 rebase-helper 和上游监控服务上。 rebase-helper 的官方文档也可以在 阅读文档和 GitHub 上提供了 rebase 助手的源代码.