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

不久前我在Compiz的Place Window插件中报告了一个错误 。 对于受其影响的人来说,这是一个相当大的回归:主要是那些使用Gnome-Fallback的人,从报告来看。

贴片在短时间内浮出水面。 我创建了一个PPA用于测试,到目前为止所涉及的每个人都报告问题是固定的。 它甚至修复了另一个错误 。 我已经使用标准的Unity桌面进行了测试,并且可以说(对于我的测试)没有可见的不良影响。

我想立即将其推送到Ubuntu有两个主要原因:

  • 我很自私。 每次将新版本的Compiz推送到12.04时,我都不想更新我的PPA。
  • 我不希望Ubuntu用户因为一个愚蠢的小虫子而看到他们的窗户飞来飞去。

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

我现在有谁的腿需要驼峰才能把它拉进Ubuntu?

我没有维护这个项目,它是一个上游的东西,但它对Ubuntu来说是相当不可或缺的。 我可以去Compiz,但我想如果他们接受补丁,那么在Ubuntu附近的任何地方都会有几个月(至少是一个版本)。

当我找到合适的人选时,我怎样才能使这个过程尽可能顺利进行呢?

我希望他们看到我的要求,去“是的,一切看起来很棒,完成了”就是这样。 我不想要十七轮电子邮件来解决补丁的各个方面。 更重要的是,我也不想浪费时间。

我需要提供什么? 我的包装技巧……可悲。 这是我第一次尝试修补包再分配,所以我可能已经知道了每个包装错误。 他们是否会对原始补丁(因此他们可以自己应用)感到满意,或者我应该重新包装东西,以便diff / changelog更清洁一点(它花了我一些时间,版本控制到处都是)。

注意:这个问题关于Compiz的,但我更愿意,如果答案可以解决其他类型的包,那么我们有一个权威和全面的线程,如何解决问题。

正如Dobey所提到的,为了在已发布的U​​buntu版本中接受补丁,它必须通过稳定版本更新 (SRU)过程。 SRU的入门栏非常高。 总结这个过程背后的想法的一个简单方法可能是:“我们所知道的错误比我们不知道的错误更好。” 实际上,这意味着只允许有针对性的错误修复,而且没有任何过于“干扰”的修改。

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

  • 该错误在当前开发版本(即量子)中得到修复。
  • 必须更新错误报告的描述,以包括稳定版本中需要修复的原因,重现错误并validation其已修复的测试用例,以及对修复的回归潜力的讨论。
  • Launchpad团队ubuntu-sru应该订阅错误报告。
  • 然后将包上传到release- -proposed为了实现这一点,您需要完成赞助过程 (下面有更多信息)。

完成所有这些后,SRU团队将validation-proposed的包是否解决了该错误。 然后,在经过7天的最小老化期后,包裹将被推入-updates

寻找合适的人选

你的问题暗示了这样一个事实,即有时Launchpad似乎就是修补程序死亡的地方。 可悲的是,如果你不知道这个过程可能会有这种感觉,但我发誓这并不是那么糟糕。 幸运的是,你需要知道的主要事情很简单。 查看赞助流程的所有细节和一些提示,但最重要的部分是订阅ubuntu-sponsors团队的bug报告。 这确保它将出现在赞助队列中 ,并由一位诚实的上帝Ubuntu开发人员查看。

如果你需要实时谈论一些事情,那么Freenode IRC上的#ubuntu-devel就能解决问题。 检查当前修补程序试验的通道主题。 他们在那里帮助你。 如果没有值class的飞行员,请随时在频道中寻求帮助,但请耐心等待。

让一切准备就绪

为了尽可能快地完成流程,有几件事要做。

更新错误描述如下:

[影响]

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

[测试用例]

  1. 通过

  2. 说明

  3. 核实

  4. 修复

[回归潜力]

以下是对任何回归可能性的讨论。

[原始报告]

过去在描述中的每件事都保留在下面。

接下来,准备补丁。 如果您提供负责所有包装位的debdiff而不是针对上游源的补丁, 事情会更快 。 这包括使用软件包修补程序系统(如果使用它)。 幸运的是从ubuntu-dev-tools add-patch 安装ubuntu-dev-tools 可以为你照顾。

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

 $ 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  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。 有关可接受的修复类型以及获取它们的过程,请参阅https://wiki.ubuntu.com/StableReleaseUpdates 。