内容が src/ に解凍された tarball src.tar.gz と、このコマンドで生成されたこのソースのパッチがあります。
$ diff -Nurp src/ src_mod/ > my.patch
パッチ ヘッダーは次の 3 行で始まります。
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 メッセージを返します。
私が間違っていることは何ですか?