如何在Debian软件包上创建和维护补丁?

我想对Trac软件包进行补丁。我知道如何打补丁和重新构建软件包,但有些事情我不太明白。
我的补丁是一些危险的东西,不太可能提交给社区。所以,让我说,这是一个非常私人的补丁。但是,当Ubuntu软件包升级时,我希望我的补丁能继续工作。(我应该每次Trac升级时使用apt-get source trac,并将我的补丁移动到新版本的源代码目录中吗?)
我看到在debian/目录下有一个patch/目录(我猜很多人使用quilt),但我不知道如何使用它?debuild会自动应用patch/目录中的所有补丁吗?那dpkg-buildpackage呢?是否有一些环境变量来控制要应用的补丁的选择?
2个回答


尽管这是一个老问题,但它仍然很实际。因此,我想补充一些最新的信息。 另一个答案直截了当地链接到手册,而指出必要的信息会更有帮助。
提到的手册中相关部分如下:

8.4. 升级到新的上游版本

要升级到新版本,您可以使用命令

但这只适用于Ubuntu。
或者,您可以使用apt-src手册中说道:

-p, --patch

在升级时尝试将本地更改打补丁到新的源代码树中。

默认情况下,使用--no-p来禁用。配置项:

APT::Src::Patch。

为了使其工作,您需要安装apt-src,例如使用sudo apt-get install apt-src

另一种可能性是使用quilt。来自Debian新维护者指南的段落"5.26. patches/*"摘录如下:

当任何人(包括您自己)提供一个名为foo.patch的补丁到源代码后,修改3.0(quilt)源代码包相当简单:

$ dpkg-source -x gentoo_0.9.12.dsc

$ cd gentoo-0.9.12

$ dquilt import ../foo.patch

$ dquilt push

$ dquilt refresh

$ dquilt header -e

...描述补丁