Bitbake 配方未按预期应用补丁

2023-11-29

我有一个 tarball src.tar.gz ,其内容被解压到 src/ 中,并使用此命令生成了该源的补丁:

$ diff -Nurp src/ src_mod/ > my.patch

补丁头以这三行开头:

 diff -Nurp src/path/to/file src_PATCHED/path/to/file
 --- src/path/to/file  2012-10-22 05:52:59.000000000 +0200
 +++ src_PATCHED/path/to/file  2016-03-14 12:27:52.892802283 +0100

我的 bitbake 配方使用此 SRC_URI 引用路径和 tarball 文件:

SRC_URI = " \
    file://my.patch \
    file://src.tar.gz \
"

do_fetch 和 do_unpack 任务按预期工作,将 my.patch 和 src/ 留在 ${S} 目录中,即:

${S}/my.path
${S}/src.tar.gz

但是 do_patch 任务失败并显示以下错误消息:

ERROR: Command Error: exit status: 1  Output:
Applying patch my.patch
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?

我测试了不同的替代方案,例如设置“patchdir”属性,如下所示:

SRC_URI = " \
    file://my.patch;patchdir=${S}/src \
    file://src.tar.gz \
"

我期望“patchdir”与使用“patch -d dir”相同。但它并没有按预期工作,它总是返回相同的 ERROR 消息。

我做错了什么?


我的变量${S}在我的食谱中重新定义了以下内容:

S = "${WORKDIR}/${PN}-${PV}"

但提取器下载my.patch and src/ inside ${WORKDIR},不在里面${S}目录,所以:

${WORKDIR}/my.path
${WORKDIR}/src.tar.gz

并且 tarball 也被提取到里面${WORKDIR}

${WORKDIR}/src/

修复方法是正确设置“patchdir”属性,替换${S} by ${WORKDIR}

SRC_URI = " \
    file://my.patch;patchdir=${WORKDIR}/src \
    file://src.tar.gz \
"

这已经在起作用了!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bitbake 配方未按预期应用补丁 的相关文章

  • git format-patch 无需提交

    如何生成 HEAD 和暂存区域之间的补丁 无需提交 e g echo text gt some file git add some file git format patch what the sha HEAD 我必须提交然后重置吗 git
  • 用新文件修补被子

    我正在尝试创建一个新的被子补丁 仅添加一个文件 不幸的是该文件似乎被忽略了 I did quilt new some patch and quilt add some file 我可以看到该文件quilt files然后 但是当我刷新时 我
  • Symfony 2 支持部分表单绑定吗?

    我的问题 Symfony 2 支持吗PATCH请求 或任何类型的partial表单内容提交 如果是这样 是否有 正确 或更准确地说 首选 方法来做到这一点 除了PRE BIND 见下文 事件方法 还有其他模式或方法来解决这个问题吗 如果有其
  • 如何在 Yocto 构建中将第三方库添加为包

    我有一个不知名的库 并且没有适用于该库的包https github com dailab libsml https github com dailab libsml通常我通过以下方式在我的设备上安装这个库make install如何将此库作
  • MSI WIX:使用 2 个 MSI 创建次要升级补丁

    有没有办法根据旧的 MSI 安装程序和新的 MSi 安装程序创建次要升级 补丁文件 即 msp 或 msi 我们希望为客户提供次要升级补丁 msp 或 msi0 其中仅包含更改 1 我基于 4 个 wxs 文件创建了 旧的 Test msi
  • 使用 bitbake 进行分布式编译

    您知道如何使用分布式 bitbake 编译构建 oe 项目吗 我考虑过 distcc export PATH distcc bin PATH make jn CC linux gcc make 将从我的路径调用 linux gcc 该路径指
  • 在内核模块配方中发送额外的文件

    在构建树外内核模块时 有没有办法可以传送更多文件 我尝试过这样的事情 FILES PN bindir my program do install append install d D bindir install m 0755 D my p
  • 使用 Yocto 构建固件的最佳实践

    我有一个基于 rocko 分支的工作 Yocto 构建系统 该系统正在为基于 ARM 的目标板生成图像 该板上的芯片之一是一个基于 ARM 的小型微控制器 与主 CPU 分离 它需要加载我必须构建的固件映像 制定构建此微控制器固件的方法很容
  • 计算 CRC 初始值而不是将 CRC 附加到有效负载

    我实现的大部分 CRC 都是追加计算出的 CRC 值到消息 有效负载 并在所有字节 包括 之后在接收器处检查零结果 CRC 值通过 CRC 寄存器输入 显然这是一个相当标准的方法 现在我想使用不同的方法 根据有效负载计算一个值 使用该值作为
  • 防止/使修补二进制程序集变得困难

    我不确定术语是否正确 您可以使用哪些代码实践来使某人难以修改二进制文件 程序集以绕过检查 例如在源代码中 bool verificationResult verify if verificationResult allow Somethin
  • 应用补丁时“1 行添加空格错误”是什么意思?

    我正在编辑克隆的远程存储库的一些 Markdown 文件 并且想要测试从一个分支到另一个分支的创建和应用补丁 但是 每次我进行任何更改时 我都会收到以下消息git apply 0001 b patch 16 trailing whitesp
  • 如何在Python中模拟cx_Oracle游标

    我在一个类中有两个以下函数 我需要模拟数据库连接和游标结果 cx Oracle connect 已成功修补 它按预期工作 但是光标 callfunc fetch all 不会被模拟 知道正确的语法是什么吗 class dbconnect d
  • 如何使用 asp.net 为 Web 应用程序创建补丁文件

    我想了解 VS 2010 中是否有可用的规定或使用某些第三方工具来为 Web 应用程序创建补丁 热修复 我不想发布副本并替换文件 dll 方法 而是使用 Web 设置来安装应用程序 以便仅更新原始应用程序中更改的文件并将其安装在虚拟目录中
  • 当使用 svn cp 或 svn mv 时,如何使 svn diff 生成补丁将应用的文件?

    场景是 svn cp 或 mv 某些文件 修改该文件 svn diff gt 我的补丁 在其他机器上 相同的工作副本 但没有更改 尝试应用我的补丁 失败 gt 尝试修改不存在的文件 在这种情况下 如何使 svn diff 生成适用于补丁的补
  • 通过Powershell十六进制编辑二进制文件的方法

    我正在尝试仅使用 PowerShell 从命令行执行二进制十六进制编辑 我已经部分成功地用这个片段执行了十六进制替换 我的问题出现时123456发生多次 因为替换只应该在特定位置进行 Note 该片段需要Convert ByteArrayT
  • 安装补丁 19 后,Oracle Forms 6i 在启动时崩溃并显示 0xC0000005 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 UPD 0xC0000005 是STATUS ACCESS VIOLATION 在 winnt h 中定义 这意味着应用程序尝试访问它无法
  • Cmake 与 bitbake 配方

    我正在尝试用我自己的包构建 yocto 图像 我在 github 上有使用 cmake 的 OpenCV 代码 我试图为其编写一个食谱 但遇到了很多错误 任何人都可以提示我的食谱中应包含哪些功能或参数吗 我的食谱如下 DESCRIPTION
  • 有用的二进制差异工具(除了 msdn[apatch 和 mpatch]、xdelta、bsdiff、vbindiff 和 winmerge)[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我需要一个二进制 diff 工具 它可以从比较的 8MB 文件 dat 压缩文件 生成补丁文件 并且可以将生成的补丁文件合并到旧的 dat
  • 如何用mock修补模块的内部函数?

    我所说的 内部函数 是指从定义它的同一模块内调用的函数 我正在使用mock http www voidspace org uk python mock 图书馆 特别是patch http www voidspace org uk pytho
  • 使用 bitbake 为 BBB 构建 .dtbo 覆盖

    我使用内核 linux ti staging 4 14 和自定义设备树为我的 BBB 构建了 yocto 发行版 rocko 由于我需要将一个旧项目从 Debian 移植到 Yocto 因此我还需要在内核中启用 UIO 功能 这也可以正常工

随机推荐