Bitbake Rezept wendet Patch nicht wie erwartet an

Ich habe einen Tarball src.tar.gz, dessen Inhalt in src / entpackt wird, und einen Patch dieser Quellen, der mit diesem Befehl generiert wird:

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

Der Patch-Header beginnt mit diesen drei Zeilen:

 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

Mein BitBake-Rezept verweist mit diesem SRC_URI auf Pfad- und Tarball-Dateien:

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

ie Aufgaben @do_fetch und do_unpack funktionieren wie erwartet und lassen my.patch und src / im Verzeichnis $ {S}, dh:

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

Aber do_patch-Task schlägt mit dieser FEHLERMELDUNG fehl:

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?

Ich habe verschiedene Alternativen getestet, zum Beispiel das Setzen des "patchdir" -Attributs wie unten gezeigt:

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

Ich habe erwartet, dass "patchdir" dasselbe ist wie "patch -d dir". Aber es funktioniert nicht wie erwartet, es gibt immer die gleiche Fehlermeldung zurück.

Was mache ich falsch?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage