Я пытаюсь заменить файл из другого слоя файлом .bbappend. Моя цель - перезаписать определенный файл конфигурации настроенным во время этапа unpack .
В моем .bbappend я пытаюсь добавить do_unpack
для копирования файла изтот же каталог, что и файл .bbappend, в рабочий каталог ${WORKDIR}
Проблема заключается в том, что: * * * * ${THISDIR}
возвращает каталог с оригинальным рецептом .bb, а не каталог .bbappend
* 1010. * Вот пример:
- Оригинальный рецепт находится в: meta-origLayer / recipe.bb
- Мой * .bbappend находится в: meta-newLayer / recipe.bbappend
recipe.bbappend :
`FILESEXTRAPATHS_prepend := "${THISDIR}:"`
do_unpack_append(){
bb.build.exec_func('replace_file', d)
}
replace_file(){
cp -f ${THISDIR}/fileToBeReplaced ${WORKDIR}/fileToBeReplaced
echo ${THISDIR} > ${WORKDIR}/shouldContain_meta-newLayer
}
Существует две проблемы с recipe.bbappend:
- Я бы ожидал, что файл shouldContain_meta-newLayer будет содержать
meta-newLayer
, но вместо этого он содержит meta-origLayer
.
Я бы прежде всего хотел понять, почему ${THISDIR}
ведет себя по-разному, когда помещен внутрь do_unpack_append()
, когда он используется для добавления FILESEXTRAPATHS
- При запуске bitbake рецепт завершается ошибкой, что приводит к следующей ошибке:
cp: not stat '/ fileToBeReplaced': такого файла или каталога нет
- Эта ошибка возникает из-за того, что fileToBeReplaced находится в подкаталоге
meta-origLayer
(т.е. meta-origLayer / machine1 / fileToBeReplaced ), а .bbappend ожидаетнайдите файл в / fileToBeReplaced
Мой вопрос. ,.
Я предполагал, что ${THISDIR}
будет вести себя согласованно в пределах одного и того же .bbappend, но, похоже, не будет. Как лучше всего ссылаться на meta-newLayer / fileToBeReplaced из do_unpack_append()
?