Применить и зафиксировать патч из рецепта bitbake

Я наблюдаю, что система сборки yocto просто применяет мой патч вместо того, чтобы применять и фиксировать патч в клонированном репозитории git.

Исходный файл bitbake (u-boot-ti-staging_2018.01.bb).

require u-boot-ti.inc

PR = "r19"

BRANCH = "ti-u-boot-2018.01"

SRCREV = "8b2f1df4b55bc0797399a21d42ac191d44f99227"

Изменен файл bitbake, в него добавлен SRC_URI.

require u-boot-ti.inc

PR = "r19"

BRANCH = "ti-u-boot-2018.01"

SRCREV = "8b2f1df4b55bc0797399a21d42ac191d44f99227"

SRC_URI += "file://0001-Stopping-DHCP-server-giving-new-serverip.patch \
        "

Я добавил файл патча в каталог файлов. Содержимое файла исправления (0001-Stopping-DHCP-server-give-new-serverip.patch) выглядит следующим образом.

From cf97b6053f00afd496d01a892599cd8f4b254087 Mon Sep 17 00:00:00 2001
From: Sunny Shukla <[email protected]>
Date: Wed, 19 Sep 2018 18:23:49 +0530
Subject: [PATCH] Stopping DHCP server giving new serverip

Added CONFIG_BOOTP_SERVERIP in the config file, this
stops the DHCP server gives new "serverip" address and 
overrides the current one.
---
 include/configs/am335x_evm.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/include/configs/am335x_evm.h b/include/configs/am335x_evm.h
index 01f0277..4b3047d 100644
--- a/include/configs/am335x_evm.h
+++ b/include/configs/am335x_evm.h
@@ -18,6 +18,8 @@

 #include <configs/ti_am335x_common.h>

+#define CONFIG_BOOTP_SERVERIP
+
 #ifndef CONFIG_SPL_BUILD
 # define CONFIG_TIMESTAMP
 #endif
-- 
2.7.4

Патч применяется так, как будто кто-то выполняет команду «git apply 0001-Stopping-DHCP-server-give-new-serverip.patch» поверх клонированного репозитория git, как показано ниже. Но скорее я хочу, чтобы патч применялся так, как будто кто-то выполняет команду «git am 0001-Stopping-DHCP-server-give-new-serverip.patch» поверх клонированного репозитория git.

git status

On branch ti-u-boot-2018.01
Your branch is behind 'origin/ti-u-boot-2018.01' by 23 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   include/configs/am335x_evm.h

no changes added to commit (use "git add" and/or "git commit -a") 

Я хочу, чтобы этот патч был применен и зафиксирован поверх клонированного репозитория git. Как этого добиться в файле bitbake?


person Sunny Shukla    schedule 20.09.2018    source источник


Ответы (1)


Yocto по умолчанию использует quilt, если не указан инструмент исправления. Вы можете указать

PATCHTOOL = "git"

в вашем рецепте, так что Yocto автоматически применяет его с помощью «git am».

Дополнительную информацию см. здесь Детали.

ПРИМЕЧАНИЕ. Эта функция начнет добавлять дополнительную строку к описанию патча, например «%% original patch: 0001-Stopping-DHCP-server-give-new-serverip.patch» при применении патча. Чтобы избавиться от него, прокомментируйте строку ниже под файлом "oe-core / meta / lib / oe / patch.py ​​".

https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/lib/oe/patch.py#n519

person Parthiban    schedule 20.09.2018
comment
Нет ничего подобного git am, он все еще применяет git. Я изменил PATCHTOOL = git в функции do_patch_prepend (). - person Sunny Shukla; 25.09.2018
comment
Область видимости переменной будет потеряна и уничтожена после prepend. Итак, вам нужно определить снаружи, то есть что-то вроде SRC_URI - person Parthiban; 25.09.2018
comment
Не могли бы вы объяснить, как это сделать, я очень новичок в yocto. - person Sunny Shukla; 25.09.2018
comment
это сработало. Я просто поместил PATCHTOOL = git выше SRC_URI, и он работал как чемпион. Спасибо - person Sunny Shukla; 25.09.2018
comment
Еще одна вещь, этот git am добавляет дополнительную строку к моему описанию патча, например, этот %% original patch: 0001-Stopping-DHCP-server-give-new-serverip.patch есть ли способ избавиться от него, кроме комментариев строка под файлом oe-core / meta / lib / oe / patch.py! - person Sunny Shukla; 25.09.2018
comment
Вероятно, эта строка: git. yoctoproject.org/cgit/cgit.cgi/poky/tree/meta/lib/oe/. - person Parthiban; 25.09.2018
comment
Давайте продолжим это обсуждение в чате. - person Sunny Shukla; 25.09.2018
comment
Да, пожалуйста, дайте мне знать, что вы ожидаете рассмотрения, и вопросы в чате - person Parthiban; 25.09.2018