我已经从 Debian sid 中拉取了luajit
with的源码包。apt source luajit
当使用相同的命令解压包时,我看到了下一条消息:
dpkg-source: info: applying 0002-Enable-debugging-symbols-in-the-build.patch
尽管我没有要求自动应用任何补丁,但我想回顾一下这个补丁的作用,并可能恢复它。
在源码包的解压目录下,命令what-patch
回复为quilt
.自从第一次这样做以来,我从 sid 安装了 quilt (v0.66),然后尝试cd ./debian/patches
执行以下操作:
quilt diff -P ./0002-Enable-debugging-symbols-in-the-build.patch
更清楚地了解该补丁在上游代码中应该做什么;然而被子却奇怪的回复道:
Patch ./0002-Enable-debugging-symbols-in-the-build.patch is not in series
所以我查看了该./series
文件cat ./series
并清楚地看到了这一行:
0002-Enable-debugging-symbols-in-the-build.patch
其中提到了其他 7 个补丁(1 个之前,6 个之后)。那么,还缺少什么呢?我去读了man quilt
命令diff
说:
生成最顶层或指定补丁中指定文件的差异。如果未指定文件,则包含所有已修改的文件。
并且,该-P
开关可以:
为指定补丁创建差异。 (默认为最上面的补丁。)
看来我无法弄清楚 quilt 有什么问题,因为我以前从未这样做过,并且联机帮助页 + Debian wiki 在他们的教程中有点超越了这一点。
答案1
事实证明,这是命令末尾的quilt diff
's-P
和 the 的轻微混淆。显然,补丁文件名之前的前缀在使用时破坏了被子的分辨率,或者根本不需要。因此,正确的语法为:[file ...]
quilt diff
./
./series
-P
-P
./
quilt diff -P ./0002-Enable-debugging-symbols-in-the-build.patch
是:
quilt diff -P 0002-Enable-debugging-symbols-in-the-build.patch
现在它显示了预期的差异。