poky/scripts/lib/recipetool
Julien Stephan 89f1662484 devtool: add support for git submodules
Adding the support of submodules required a lot of changes on the
internal data structures:
* initial_rev/startcommit used as a starting point for looking at new
  / updated commits was replaced by a dictionary where the keys are the
  submodule name ("." for main repo) and the values are the
  initial_rev/startcommit

* the extractPatches function now extracts patch for the main repo and
  for all submodules and stores them in a hierarchical way describing the
    submodule path

* store initial_rev/commit also for all submodules inside the recipe
  bbappend file

* _export_patches now returns dictionaries that contains the 'patchdir'
  parameter (if any). This parameter is used to add the correct
  'patchdir=' parameter on the recipe

Also, recipe can extract a secondary git tree inside the workdir.

By default, at the end of the do_patch function, there is a hook in
devtool that commits everything that was modified to have a clean
repository. It uses the command: "git add .; git commit ..."

The issue here is that, it adds the secondary git tree as a submodule
but in a wrong way. Doing "git add <git dir>" declares a submodule but do
not adds a url associated to it, and all following "git submodule foreach"
commands will fail.

So detect that a git tree was extracted inside S and correctly add it
using "git submodule add <url> <path>", so that it will be considered as a
regular git submodule

(From OE-Core rev: 900129cbdf25297a42ab5dbd02d1adbea405c935)

Signed-off-by: Julien Stephan <jstephan@baylibre.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2023-12-01 11:48:25 +00:00
..
__init__.py scripts/recipetool: Add a recipe auto-creation script 2014-12-23 10:18:15 +00:00
append.py devtool: add support for git submodules 2023-12-01 11:48:25 +00:00
create_buildsys_python.py recipetool: add python_hatchling support 2023-10-30 08:50:46 +00:00
create_buildsys.py recipetool: extend curl detection when creating recipes 2021-12-03 23:37:16 +00:00
create_go.py recipetool: Add handler to create go recipes 2023-11-06 16:41:11 +00:00
create_kernel.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
create_kmod.py Convert to new override syntax 2021-08-02 15:44:10 +01:00
create_npm.py recipetool: create: npm: Add support to handle peer dependencies 2023-06-29 11:10:39 +01:00
create.py recipetool: Ignore *.go files while scanning for licenses 2023-11-06 16:41:11 +00:00
edit.py recipetool: Fix list concatenation when using edit 2020-06-15 14:53:45 +01:00
licenses.csv recipetool/devtool: Further SPDX identifier cleanups 2022-03-02 18:43:24 +00:00
newappend.py meta/lib+scripts: Convert to SPDX license headers 2019-05-09 16:31:55 +01:00
setvar.py recipetool/devtool: Ensure server knows about changed files 2023-09-18 11:35:38 +01:00