如何将补丁分配到指定的git源?

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

在我的

foo_git.bb

SRC_URI = "git://github.com/foo/foo.git;branch=main;protocol=https;name=${BPN};destsuffix=git  \
    git://github.com/foo2/foo2;branch=main;protocol=https;name=${FOO2};destsuffix=${FOO2} \
    file://0001-Modify-A_value.patch\
"

我希望我的补丁适用于

foo2
,但它总是适用于
foo
。 (补丁失败)

yocto openembedded
2个回答
1
投票

我发现补丁后附加

patchdir
就可以工作了。

例如:

file://0001-Modify-A_value.patch;patchdir=${WORKDIR}/${FOO2_path}

0
投票

摘自原厂手册

补丁文件将被复制到

${S}/patches
,然后从源目录中应用到源,
${S}.

因此,为了让您的用例正常工作,您的补丁文件名应包含其基本存储库名称。

例如,假设 0001-Modify-A_value.patch 如下:

diff --git a/my.txt b/my.txt
index fa5cb9a..59369cc 100644
--- a/my.txt
+++ b/my.txt
@@ -1 +1 @@
-I am foo who lives in bar
+I am bar who lives in foo

要使其适用于 foo2,您必须对其进行如下修改:

--- foo2/my.txt
+++ foo2/my.txt
@@ -1 +1 @@
-I am foo who lives in bar
+I am bar who lives in foo

Bitbake 使用 Quilt 进行修补,因此如果有错误等,请查看其手册。 bitbake 提供的另一个可以进一步帮助您的方便工具是 devtool,它旨在处理更新配方或修补配方等任务。

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