我在 Debian 打包中应用 quilt 补丁时出现错误:
Applying patch debian/patches/fixshare.patch
patching file net/slirp.c
Hunk #1 FAILED at 529.
1 out of 1 hunk FAILED -- rejects in file net/slirp.c
我用谷歌搜索了一下,我了解到这个错误是由于应用补丁时的“Fuzz”造成的。现在,我的问题是什么是绒毛以及如何解决应用被子补丁的问题?
我读了本文并执行了它告诉的步骤,但我仍然有问题!
答案1
这不一定是由于模糊(特别是如果您按照中所述刷新了补丁)文章)。可能会发生源代码发生更改而导致补丁完全过时的情况。例如,原始来源是:
aa
bb
cc
和一个补丁告诉:替换行bb
(dd
带有一些上下文,此处忽略)。然后源码改为:
aa
bbb
cc
补丁仍然说:replace line bb
by dd
,但是linebb
已经不存在了,这样补丁就不能再成功应用了。
解决方案是查看旧源(可以应用补丁)的相应部分的失败块,并尝试查看新源中发生了什么变化,然后尝试调整新源以重新生成修补。这只能手动完成,当源代码发生重大更改时,这即使不是不可能,也可能很困难。