正如Dobey所提到的,为了使补丁被接受并纳入已发布的Ubuntu版本中,必须经过
稳定发布更新(SRU)流程。SRU的门槛相当高。简单来说,这个流程背后的思想可以总结为:“我们知道的错误比我们不知道的错误更好。”实际上,这意味着只允许有针对性的错误修复,而不允许过于“侵入性”的更改。
要进行SRU,必须满足一些要求:
- 该错误已在当前开发版本(即量子)中修复。
- 必须更新错误报告的描述,包括修复在稳定版本中所需的理由,重现错误并验证其已修复的测试用例,以及对修复可能引起的回归的讨论。
- 应将Launchpad团队
ubuntu-sru
订阅到错误报告中。
- 然后将软件包上传到release
-proposed
。为了实现这一点,您需要通过sponsorship process(更多信息请参见下文)。
在所有这些事情发生之后,SRU团队将验证-proposed
中的软件包是否解决了该错误。然后,在经过最少7天的老化期后,该软件包将被推送到-updates
中。
寻找合适的人员
你的问题暗示了有时Launchpad似乎是补丁“死亡之地”。遗憾的是,如果你不知道这个过程,会感觉很糟糕,但是我保证它并不是真的那么糟糕。幸运的是,你需要知道的主要事情很简单。查看赞助流程获取所有详细信息和一些提示,但最重要的部分是将ubuntu-sponsors
团队订阅到错误报告中。这可以确保它将出现在赞助队列中,并由Ubuntu开发人员进行查看。
如果你需要实时交流一些内容,Freenode IRC上的#ubuntu-devel
能够解决问题。查看频道主题以获取当前的补丁飞行员。他们会帮助你的。如果没有飞行员值班,请随意在频道中寻求帮助,但请耐心等待。
准备好一切
为了使整个过程尽可能快地进行,有一些事情要做。
将错误描述更新为以下内容:
[影响]
这里解释了错误对用户的影响,并对将修复程序回溯到稳定版本的理由进行了说明。
[测试用例]
步骤
通过
步骤
说明
验证
修复方法
[回归风险]
这里讨论了任何可能出现的回归风险。
[原始报告]
保留了以前在描述中的所有内容。
接下来,准备好你的补丁。如果你提供
debdiffs来处理所有的打包细节,事情会快得多,而不是针对上游源码的补丁。这包括使用软件包的补丁系统(如果有的话)。幸运的是,
ubuntu-dev-tools 中的
add-patch
可以为你处理这些。
让我们一起来看看。首先,在错误报告中获取源代码和补丁:
$ 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
文件附加到您的错误报告中。
pull-lp-source
。我没有更早的版本来查看是否以前是pull-launchpad-source
。 - doug