为什么补丁找不到这个文件?

问题描述 投票:0回答:2

我想对 u-boot 源代码应用补丁,但是 Linux 不允许我这样做。我有什么:

reg@ubuntu:~/NextGen/trunk/FW/thirdparty/u-boot$ patch -p1 < ../u-boot/u-boot-2013.01-wr.patch 
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -uNr u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c u-boot-2013.01.modified/arch/powerpc/cpu/mpc85xx/cpu_init.c
|--- u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c 2013-01-15 13:47:42.000000000 -0800
|+++ u-boot-2013.01.modified/arch/powerpc/cpu/mpc85xx/cpu_init.c        2013-05-16 10:58:08.973906692 -0700
--------------------------
File to patch: ^C
reg@ubuntu:~/NextGen/trunk/FW/thirdparty/u-boot$ ls -l u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c
-rw-r--r-- 1 reg reg 16745 Jan 15  2013 u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c
reg@ubuntu:~/NextGen/trunk/FW/thirdparty/u-boot$ 

那么为什么当文件完全位于正确的位置时却找不到呢?这是怎么回事?

linux file patch u-boot
2个回答
23
投票

这里涉及到三个文件路径:

  • 补丁原文件:
    u-boot-2013.01/arch/powerpc/cpu/mpc85xx/cpu_init.c
  • 补丁的目标文件:
    u-boot-2013.01.modified/arch/powerpc/cpu/mpc85xx/cpu_init.c
  • 由于
    -p1
    而被剥离的目标文件:
    arch/powerpc/cpu/mpc85xx/cpu_init.c

Patch查找剥离的目标文件,发现它不存在。

cd u-boot-2013.01
,然后
patch -p1 < ../../u-boot/u-boot-2013.01-wr.patch
,你应该会更幸运。


0
投票

Bitbake 在修补文件时失败。

我可以修补它给出的输出的文件: fayaz@omz-dt-08:~/new/manifest/sdk-sources/sdk/common/common_components/src/product_db$ 补丁 -p1 < patches/0001-update-production_db.patch patching file src/production_db.c Hunk #1 succeeded at 544 with fuzz 1 (offset 296 lines). Hunk #2 succeeded at 2897 with fuzz 2 (offset 336 lines).

但是当我尝试构建食谱时,它显示以下错误。有人可以帮我解决吗?

fayaz@omz-dt-08:~/new/manifest/sdk-sources/sdk/common/common_components/src/product_db$ bitbake libproduct-db 错误:libproduct-db-1.0+intelsdk0-r0 do_patch:在目标目录“/home/fayaz/new/manifest/sdk-sources/arm_dunfell/build-puma7-arm/tmp”上应用补丁“0001-update-product_db.patch” -glibc/work/arm1176jzsb-intel-linux-gnueabi/libproduct-db/1.0+intelsdk0-r0/umftmp' 命令错误:'quilt --quiltrc /home/fayaz/new/manifest/sdk-sources/arm_dunfell/build-puma7-arm/tmp-glibc/work/arm1176jzsb-intel-linux-gnueabi/libproduct-db/1.0+intelsdk0 -r0/recipe-sysroot-native/etc/quiltrc push' 退出并输出 0: 应用补丁 0001-update-product_db.patch 在输入行 5 处找不到要修补的文件 也许您使用了错误的 -p 或 --strip 选项? 导致此结果的文本是:

|索引:生产_db/src/生产_db.c |==================================================== ================= |--- 生产_db.orig/src/生产_db.c |+++ 生产_db/src/生产_db.c

没有要修补的文件。 跳过补丁。 二分之二的帅哥被忽略了

© www.soinside.com 2019 - 2024. All rights reserved.