如何给 debian 软件包打补丁?

How to patch a debian package?

我用 apt-get source 得到了一个 debian 软件包 $PKG-VERSION。我现在有文件夹 $PKG-VERSION/、文件 $PKG-VERSION.diff.gz$PKG-VERSION.dsc$PKG.orig.tar.gz。如果我没理解错的话,$PKG-VERSION.diff.gz中存档的diff文件$PKG-VERSION.diff代表了.orig.tar.gz中的upstream版本和debian版本的区别,并且已经应用​​到了.orig.tar.gz中的文件中文件夹 $PKG-VERSION/。但后来我去看看 $PKG-VERSION/debian/patches/ 子文件夹。那里有一堆 .diff.patch 文件。当我查看其中一个 .diff 时,我发现补丁尚未应用。然后我尝试 运行 quilt push -a 应用补丁。 returns

"the patch ... is already applied; check your series file"

每个补丁。但是当我检查来源时显然不是。

同样在读完debian/README.source后,建议运行debian/rules中的目标patch。但是我在 rules 文件中没有看到任何 patch: 并且 运行ning make patch 给出

make: *** No rule to make target 'patch'.  Stop.

所以我不明白:即使源文件未打补丁,debian/patches/ 中的补丁是否已应用到二进制 $PKG-VERSION.deb 中?我该如何修补源代码?我可以只写一个 bash 脚本来循环并 运行 patch 超过 debian/patches/*.diff 但肯定不是它应该如何工作?

debian/patches 中的补丁在构建过程中应用。所以二进制文件将基于补丁。

https://wiki.debian.org/debian/patches