Рецепт битбейка не использует патч как положено
У меня есть 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 ссылается как на путь, так и на файлы tarball, используя этот SRC_URI:
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». Но он не работает должным образом, он всегда возвращает одно и то же сообщение об ошибке.
Что я делаю не так?