我正在尝试为Debian包添加一个补丁(在运行Ubuntu 14.10"Trusty"的amd64机器上)。
在对该问题进行故障排除时,我已将补丁简化为添加单个文件的补丁。(为了上下文起见,此文件修改了fluxbox
包,从而还创建了一个带有调试符号的fluxbox-dbg
文件。)
我通过以下步骤创建了补丁:
- (确保我已经应用了所有现有的补丁程序。)
quilt new add-dbg-package.patch
quilt add debian/rules.d/70-debug-symbols.mk
- (用我想要的内容创建了那个文件。)
quilt refresh
补丁看起来不错:
- 应用所有修补程序后,文件存在并且具有正确的内容
- 该修补程序包含一个delta,它添加了文件的完整内容,而不包含其他内容
- 没有其他修补程序引用该文件
- 当我弹出新补丁时,文件将被删除;当我再次按下它时,它会被重新创建
但是,当我尝试用debuild
重建包时,我得到的是:
The next patch would create the file debian/rules.d/70-debug-symbols.mk, which already exists! Skipping patch.
1 out of 1 hunk ignored
dpkg-source: info: the patch has fuzz which is not allowed, or is malformed
dpkg-source: info: if patch 'add-dbg-package.patch' is correctly applied by quilt, use 'quilt refresh' to update it
如果我接受它的建议,quilt
告诉我补丁是最新的(看起来是这样)。quilt diff
告诉我没有变化。
有人认为:为Debian控制文件的更改添加quilt
补丁是不正确的吗?
有人能帮我理解我做了什么冒犯了debuild
吗?
您不应该在/debian/
文件上添加缝合线补丁。修补程序仅用于代码。只需更改debian/rules.d/70-debug-symbols.mk
文件并构建包。
Debian/Uubuntu政策说:
The program quilt offers a basic method for recording modifications to the *upstream source* for Debian packaging.