是否有可能获得包含在当前版本中的补丁?如果是这样,如何?

Oli*_*Oli 15 updates packaging patch bug-reporting

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

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

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

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

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

我现在必须靠谁的腿才能把它拉进 Ubuntu?

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

当我找到合适的人时,我怎样才能让他们的流程尽可能顺利?

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

我必须为他们提供什么?我的包装技术……可悲。这是我第一次尝试修补程序包以进行重新分发,所以我可能已经让每个人都知道每个打包错误。他们会对原始补丁感到满意吗(这样他们就可以自己应用它),还是我应该重新打包一些东西,以便差异/更改日志更清晰一些(我花了一些时间,而且版本控制无处不在)。

注意:这个问题关于 Compiz 的,但我更喜欢答案是否也可以解决其他风格的包,所以我们有一个关于如何解决问题的权威和全面的线索。

and*_*ing 14

正如 Dobey 提到的,为了让补丁被接受到已经发布的 Ubuntu 版本中,它必须通过稳定版本更新(SRU) 过程。SRU 的进入门槛相当高。总结该过程背后的想法的一种简单方法可能是:“我们知道的错误比我们不知道的错误要好。” 在实践中,这意味着只允许有针对性的错误修复,而不允许进行过于“侵入性”的更改。

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

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

在所有这些发生后,SRU 团队将验证包中的程序是否-proposed解决了错误。然后在-updates经过最少7天的老化期后将包装推入。

寻找合适的人

您的问题暗示了这样一个事实,即有时 Launchpad 似乎是补丁消亡的地方。可悲的是,如果你不知道这个过程,它会感觉像那样,但我发誓它并没有那么糟糕。幸运的是,您需要知道的主要事情很简单。查看赞助流程以获取所有详细信息和一些提示,但最重要的部分是为ubuntu-sponsors团队订阅错误报告。这确保它会出现在赞助队列中,并被一个诚实的 Ubuntu 开发人员查看。

如果你需要实时讨论一些事情,#ubuntu-devel在 Freenode IRC 上可以解决问题。检查当前补丁试点的频道主题。他们是来帮助你的。如果没有飞行员值班,请随时在频道中寻求帮助,但请耐心等待。

一切准备就绪

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

将错误描述更新为如下所示:

[影响]

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

[测试用例]

  1. 经过

  2. 指示

  3. 验证

  4. 修复

【回归潜力】

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

【原报告】

以前在描述中的每件事都保留在下面。

接下来,准备您的补丁。如果您提供处理所有打包位的debdiff,而不是针对上游源的补丁,事情会进展得更快。这包括使用包补丁系统(如果它使用)。幸运的是add-patch来自ubuntu-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 
Run Code Online (Sandbox Code Playgroud)

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

$ cd compiz-0.9.7.8/
$ add-patch ../fix-974242.patch
Run Code Online (Sandbox Code Playgroud)

这将添加补丁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
Run Code Online (Sandbox Code Playgroud)

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

## Description: add some description
## Origin/Author: add some origin or author
## Bug: bug URL
Run Code Online (Sandbox Code Playgroud)

现在构建您的新源包:

$ debuild -S -us
Run Code Online (Sandbox Code Playgroud)

并创建 debdiff:

$ cd ..
$ debdiff compiz_0.9.7.8-0ubuntu1.dsc compiz_0.9.7.8-0ubuntu1.1.dsc > sru-for-lp-974242.debdiff
Run Code Online (Sandbox Code Playgroud)

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