是否有可能将补丁包含在当前版本中?如果可以,如何做?

是否有可能将补丁包含在当前版本中?如果可以,如何做?

不久前我报告过Compiz 的 Place Window 插件中的一个错误. 对于受其影响的用户来说,这是一个相当大的倒退:根据报告判断,主要是那些使用 Gnome-Fallback 的人。

不久之后,补丁就出现了。我创建了一个 PPA 进行测试,到目前为止,所有参与的人都报告说问题已经修复。它甚至修复了另一个错误。我已经用标准 Unity 桌面进行了测试并且可以说(就我的测试而言)没有看到任何不利影响。

我现在想将其推送到 Ubuntu,主要有两个原因:

  • 我很自私。我不想每次 Compiz 的新版本推送到 12.04 时都需要更新我的 PPA。
  • 我不希望 Ubuntu 用户因为一个愚蠢的小错误而看到他们的窗口乱飞。

我希望这个补丁能尽快推送到 Ubuntu 版本的 Compiz,这样我们就可以标记这些错误已修复并继续我们的生活。

现在我需要依靠谁的腿才能把它拉进 Ubuntu?

我没有维护这个项目,这是一个上游项目,但它对 Ubuntu 来说相当重要。我可以去 Compiz,但我想,如果他们接受了这个补丁,它还需要几个月的时间(至少要发布一个版本)才能接近 Ubuntu。

当我找到合适的人选时,我怎样才能让他们的申请过程尽可能顺利呢?

我希望他们看到我的请求后,说“是的,一切看起来都很棒,完成了”,就这样了。我不想收到 17 轮电子邮件来讨论补丁的各个方面。更重要的是,我也不想浪费他们的时间。

我必须为他们提供什么呢?我的打包技巧……令人遗憾。这是我第一次尝试修补软件包以供重新分发,所以我可能已经让大家知道了每一个打包错误。他们会对原始补丁感到满意吗(这样他们就可以自己应用它了)或者我应该重新打包东西,这样 diff/changelog 会更干净一些(我试了几次,版本控制到处都是)。

笔记:这个问题关于 Compiz,但我更希望答案也能解决其他风格的包,这样我们就有一个权威而全面的关于如何解决问题的线索。

答案1

正如 Dobey 提到的,补丁要想被纳入已发布的 Ubuntu 版本,必须通过稳定版本更新(SRU)流程。SRU 的准入门槛相当高。可以简单地总结该流程背后的思想:“我们知道的 bug 比我们不知道的 bug 更好。”实际上,这意味着只允许进行有针对性的 bug 修复,不允许进行过于“侵入性”的更改。

为了继续进行 SRU,必须满足许多要求:

  • 该错误已在当前开发版本(即 quantum)中修复。
  • 必须更新错误报告的描述,以包括在稳定版本中需要修复的原因、重现错误并验证其是否已被修复的测试用例,以及对修复的回归潜力的讨论。
  • Launchpad 团队ubuntu-sru应该订阅该错误报告。
  • 然后将该包上传至发布-proposed为了实现这一点,你需要通过赞助流程(更多信息见下文)。

完成所有操作后,SRU 团队将验证软件包是否解决了错误。然后,软件包将在经过至少 7 天的时效期后被-proposed推送。-updates

找到合适的人

你的问题暗示了这样一个事实:有时 Launchpad 似乎是补丁的终结地。遗憾的是,如果你不知道这个过程,你可能会有这种感觉,但我发誓其实并没有那么糟糕。幸运的是,你需要知道的主要事情很简单。查看赞助流程了解所有细节和提示,但是最重要的部分是让ubuntu-sponsors团队订阅错误报告。这确保它将出现在赞助队列并得到一位诚实的 Ubuntu 开发人员的关注。

如果您需要实时讨论某事,#ubuntu-develFreenode IRC 就可以满足您的需求。查看当前补丁试点的频道主题。他们在那里帮助你。若没有飞行员值班,您可以随时在频道中寻求帮助,但请耐心等待。

一切准备就绪

为了使该过程尽快进行,有几件事要做。

更新错误描述如下:

[影响]

以下是该错误对用户的影响的解释,以及将修复程序移植到稳定版本的理由

[测试用例]

  1. 经过

  2. 指示

  3. 核实

  4. 修复

[回归潜力]

这里讨论了任何回归的可能性。

【原文报道】

描述中的所有内容均保留在下面。

接下来,准备好你的补丁。如果你提供差异负责处理所有打包部分,而不是针对上游源代码的补丁。这包括使用软件包补丁系统(如果使用的话)。幸运的add-patchubuntu-开发工具安装 ubuntu-dev-tools可以帮您处理。

让我们来看看。首先获取错误报告中的源代码和补丁:

$ pull-lp-source compiz precise
$ wget https://bugs.launchpad.net/ubuntu/+source/compiz/+bug/974242/+attachment/3141645/+files/fix-974242.patch 

现在我们将补丁添加到源包中:

$ cd compiz-0.9.7.8/
$ add-patch ../fix-974242.patch

这将添加补丁debian/patches并运行,dch提示您添加新条目以debian/changelog调整条目以达到建议的目标并增加版本号,以便它低于上传到开发版本的下一个版本。像这样:

compiz (1:0.9.7.8-0ubuntu1.1) precise-proposed; urgency=low

  * debian/patches/fix-974242.patch: [DESCRIBE CHANGES HERE]

 -- Your Name <[email protected]>  Mon, 11 Jun 2012 17:37:59 -0400

该文件debian/patches/fix-974242.patch还包含一些您可能想要编辑的标题:

## Description: add some description
## Origin/Author: add some origin or author
## Bug: bug URL

现在构建你的新源包:

$ debuild -S -us

并创建 debdiff:

$ cd ..
$ debdiff compiz_0.9.7.8-0ubuntu1.dsc compiz_0.9.7.8-0ubuntu1.1.dsc > sru-for-lp-974242.debdiff

您现在可以将生成的debdiff文件附加到您的错误报告中。

答案2

需要稳定版本更新才能将其发布到 12.04。请参阅https://wiki.ubuntu.com/StableReleaseUpdates可接受的修复类型及其获取程序。

相关内容