Я хочу применить патч к пакету buildroot. Я использую дерево br2-external
, чтобы мои настройки не попадали в дерево buildroot. Buildroot может найти мой патч, но не может его применить.
Я поставил BR2_GLOBAL_PATCH_DIR="${BR2_EXTERNAL_PATH}/board/myboard/patches"
и поставил патч в ${BR2_EXTERNAL_PATH}/board/myboard/patches/packagename/0001-name-of-patch.patch
. Я сгенерировал патч, перейдя в репозиторий buildroot
, применив изменения к package, зафиксировав их с помощью git и создав патч из последнего коммита: git format-patch HEAD~1
Итак, патч выглядит так:
diff --git a/package/rpi-firmware/cmdline.txt b/package/rpi-firmware/cmdline.txt
index 155a54693b..630cfa9e00 100644
--- a/package/rpi-firmware/cmdline.txt
+++ b/package/rpi-firmware/cmdline.txt
@@ -1 +1 @@
-old code line
+new code line
Однако, когда я запускаю make
, во время исправления файл для исправления не может быть найден (неверный путь)
Applying 0001-name-of-patch.patch using patch:
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/package/rpi-firmware/cmdline.txt b/package/rpi-firmware/cmdline.txt
|index 155a54693b..630cfa9e00 100644
|--- a/package/rpi-firmware/cmdline.txt
|+++ b/package/rpi-firmware/cmdline.txt
--------------------------
No file to patch. Skipping patch.
Я также пробовал пути rpi-firmware/cmdline.txt
и cmdline.txt
.
Какой путь я должен использовать в файле патча? Должен ли он указываться относительно пакета, относительно корня репозитория buildroot или указывать на пакет относительно глобального каталога исправлений? Я следил за https://buildroot.org/downloads/manual/manual.html#customize-patches, но не смог найти ответ на этот вопрос.