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

我想修补Trac包。 我知道如何修补和重建包,但有一些我不太了解的事情。

我的补丁是危险的,不太可能回馈社区。 所以,我只想说,这是一个非常私密的补丁。 但是,我希望我的补丁在Ubuntu软件包升级时继续工作。 (每次Trac升级时,我应该apt-get source trac并将我的补丁移动到新版本的源目录吗?)

我看到在debian/有一个patch/目录(我猜很多使用quilt ),但我不知道如何使用它? debuild自动应用patch/目录中的所有补丁吗? 那么dpkg-buildpackage呢? 是否有一些环境变量来控制要应用的补丁选择?

阅读“ 包装指南”中的“ 修补程序包”部分,以便更好地了解其工作原理,您应阅读整个指南。

虽然这是一个老问题,但它仍然是实际问题。 因此,我想向其中添加一些最新信息。 另一个答案直接链接到手册,而准确指出必要的信息将是有帮助的。

从手册中提到的相关部分是

8.4。 升级到新的上游版本

要升级到新版本,可以使用bzr merge-upstream命令

但这是Ubuntu特有的。

或者,可以使用apt-src 。 手册说:

-p, – 补丁

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

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

APT :: Src的::补丁。

为此,您需要安装apt-src ,例如sudo apt-get install apt-src

另一种可能性是使用quilt 。 摘自Debian New Maintainers’Guide的 “5.26。补丁/ *”段落如下:

当任何人(包括你自己)稍后向源提供补丁foo.patch时,修改3.0(quilt)源包非常简单:

$ dpkg-source -x gentoo_0.9.12.dsc

$ cd gentoo-0.9.12

$ dquilt import ../foo.patch

$ dquilt推

$ dquilt刷新

$ dquilt header -e

…描述补丁