如何在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
…描述补丁