是否可以获取当前版本中包含的补丁?如果是这样,怎么办?


15

所以前一段时间我报告 了Compiz的Place Window插件中的错误。对于受此影响的人来说,这是一个相当大的回归:主要是使用Gnome-Fallback的人(根据报告判断)。

片刻后不久出现了补丁。我创建了一个用于测试的PPA,到目前为止,每个参与人员都报告了已解决的问题。它甚至修复另一个错误。我已经使用标准Unity桌面进行了测试,并且可以说(对于我的测试)没有可见的不利影响。

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

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

我希望此修补程序尽快发布到Ubuntu的Compiz版本,以便我们可以将这些错误标记为已修复并继续发展。

我必须弯腰谁的腿才能将其立即拉入Ubuntu?

我没有维护这个项目,这是上游的事情,但是对于Ubuntu来说却是不可或缺的。我可以去Compiz,但是我想如果他们接受该补丁,那么距离Ubuntu较远的地方还需要几个月(至少是一个版本)。

当我找到合适的人时,如何使他们的工作过程尽可能的流畅?

我希望他们看到我的请求,然后说“是的,一切看起来都不错,完成了”。我不希望收到17轮针对补丁内容的电子邮件。更重要的是,我也不想浪费时间。

我必须提供什么?我的包装技巧真是可悲。这是我第一次尝试修补软件包以进行重新分发,因此我很可能使每个包装错误都为人所知。他们会对原始补丁感到满意吗(以便他们可以自己应用它),或者我应该重新打包东西,以便diff / changelog更加整洁(花了我几次,版本遍地都是)。

注意:这个问题关于Compiz的,但是我希望答案也可以解决其他样式的软件包,因此我们拥有权威且全面的解决方法。

Answers:


14

正如Dobey所提到的,为了使补丁能够被已发布的U​​buntu版本接受,它必须通过稳定发行更新(SRU)流程获得。SRU进入的门槛很高。总结过程背后思想的一种简单方法可能是:“我们知道的错误比我们不知道的错误要好。” 在实践中,这意味着仅允许有针对性的错误修复,而没有任何过于“侵入性”的更改。

要继续使用SRU,必须满足许多要求:

  • 该错误已在当前开发版本中修复(即定量的)。
  • 错误报告的描述必须进行更新,以包括为何在稳定版本中需要修复的理由,用于重现该错误并验证其已修复的测试用例,以及对该修复的回归潜力的讨论。
  • Launchpad团队ubuntu-sru应订阅错误报告。
  • 然后将程序包上传并发布-proposed以实现此目的,您将需要完成赞助过程(下面的更多信息)。

在所有这些发生之后,SRU团队将验证其中的软件包已-proposed解决该错误。-updates经过7天的最短老化时间后,包装将被推入。

寻找合适的人

您的问题暗示着有时候启动板似乎是补丁消失的事实。可悲的是,如果您不知道该过程,可能会感觉像那样,但是我发誓,它的确不是那么糟糕。幸运的是,您需要了解的主要内容很简单。看看赞助过程以获取所有详细信息和一些提示,但是最重要的部分是使ubuntu-sponsors团队订阅错误报告。这确保了它会出现在赞助商队列中,并由诚实的Ubuntu开发人员来查看。

如果您需要实时交谈,可以#ubuntu-devel在Freenode IRC上完成。检查频道主题以获取当前补丁程序引导程序。他们在那里为您提供帮助。如果没有值班飞行员,请随时向该渠道寻求帮助,但请耐心等待。

准备一切

为了使该过程尽快进行,需要做一些事情。

将错误描述更新为:

[影响]

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

[测试用例]

  1. 通过

  2. 使用说明

  3. 核实

  4. 修复

[回归潜力]

这是任何潜在的回归讨论。

[原始报告]

下面保留了描述中曾经存在的所有内容。

接下来,准备补丁。如果您提供的debdiff能够处理所有打包位,而不是针对上游源进行补丁处理,那么一切将会更快。这包括使用软件包修补程序系统(如果使用的话)。幸运的是,add-patchubuntu-dev-tools安装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 <you@example.com>  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文件附加到错误报告中。


很好的答案,好东西。您可能希望注意,该命令至少为12.04 / 12.10 pull-lp-source。没有更早的时间来查看是否/何时pull-launchpad-source
doug 2012年

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.