diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-11-15 15:21:49 +1300 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2017-12-05 14:39:23 +1300 |
commit | 854119e59af55a565f24d5d069dc29eb48d00dab (patch) | |
tree | 9775a45599f8401cb0c4bc579fa4e18f6ab7fc81 /meta/lib/oe/recipeutils.py | |
parent | a99c084e27b0c41bb7fabd8e33d26f014c541cc3 (diff) | |
download | openembedded-core-contrib-854119e59af55a565f24d5d069dc29eb48d00dab.tar.gz |
devtool: support extracting multiple source trees
If you have multiple source trees being extracted to the work directory
within a recipe (e.g. you have two tarballs referred to in SRC_URI) and
one isn't being extracted into the other, then devtool failed to extract
all the sources because it only took the source tree that S pointed
into. To fix this, we need to take a look at the work directory after
do_unpack and see if there are any additional subdirectories; if so we
need to put the main source tree in a subdirectory and put the
additional subdirectories next to it. We also ensure that symlinks from
the work directory get created at the end of do_unpack to point to
these (so that references in the recipe continue to work).
In addition to multiple source trees at the work directory level, this
patch also handles multiple nested git trees (where you have multiple
git URLs in SRC_URI with one or more inside another). These caused a
different problem, where changes in sub-repos are not fully captured at
the top level - we need to handle each repo separately.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'meta/lib/oe/recipeutils.py')
-rw-r--r-- | meta/lib/oe/recipeutils.py | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/meta/lib/oe/recipeutils.py b/meta/lib/oe/recipeutils.py index 49287273c9..f4a40c2988 100644 --- a/meta/lib/oe/recipeutils.py +++ b/meta/lib/oe/recipeutils.py @@ -445,10 +445,10 @@ def get_recipe_patches(d): """Get a list of the patches included in SRC_URI within a recipe.""" import oe.patch patches = oe.patch.src_patches(d, expand=False) - patchfiles = [] + patchfiles = OrderedDict() for patch in patches: _, _, local, _, _, parm = bb.fetch.decodeurl(patch) - patchfiles.append(local) + patchfiles[local] = parm return patchfiles |