我已经解压了源代码efivar-0.23.tar.gz并尝试应用以下补丁:http://patchwork.openembedded.org/patch/117073/才能够编译它。
我已经进入解压后的目录,并发出以下命令:patch -Np1 ../efivar.patch
,但什么也没发生。它只是等待(就像在做某事,但什么也没有发生)。
如何应用此补丁?我在网上浏览了不同的文章,但结果似乎是一样的。
答案1
该patch
命令需要 Patch stdin
。因此,请将补丁导入命令中:
patch -Np1 < ../efivar.patch
或者用参数指定输入文件-i
。
patch -Np1 -i ../efivar.patch
如您所见,第一个 diff 来自文件a/meta-oe/recipes-extended/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
。让我们假设实际的相对文件路径efivar/0001-efivar-fix-for-cross-compile.patch
来自您当前的工作目录。然后您必须告诉它忽略前 4 个目录级别,以便它可以找到要修补的文件。您可以通过说而不是patch
来做到这一点。p4
p1
答案2
或者,由于有问题的补丁是使用 Git 创建的,因此您可以使用 Git 来应用它:
curl patchwork.openembedded.org/patch/117073/mbox/ | git am
或者:
curl patchwork.openembedded.org/patch/117073/raw/ | git apply