diff options
author | Alejandro Enedino Hernandez Samaniego <alejandro.enedino.hernandez-samaniego@xilinx.com> | 2018-12-07 17:31:56 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-12-13 16:32:21 +0000 |
commit | d0c2395db30c1145dffa32b8d8a4a6ba48970302 (patch) | |
tree | 01aa1786dd9315e15323404da5ae1513ab89287f /meta/recipes-devtools | |
parent | e235a9e18bad4758650c11cd98133de695b72bd1 (diff) | |
download | poky-d0c2395db30c1145dffa32b8d8a4a6ba48970302.tar.gz |
create_manifest2: Dont match filenames which contain the directory name for new manifest
When creating a new python2 manifest, there is a corner case on which
the filepath for a certain dependency that was found, could contain
the path of an existing folder, e.g. ${libdir}/python2.7/xmlrpclib.py
module path contains ${libdir}/python2.7/xml, this causes an issue where
the dependency doesnt get eventually added on FILES for that module.
This patch checks if the dependency that was found is a directory, if it
is, it checks if it matches one of the existing directories on the
manifest, if it is not, then it checks if the dependency's path (without
the filename) matches one of the directories.
Also some misc indentation fixes.
(From OE-Core rev: a1c1253b44eb2000de55b7fa3836e5cdaa28a508)
Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r-- | meta/recipes-devtools/python/python/create_manifest2.py | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/meta/recipes-devtools/python/python/create_manifest2.py b/meta/recipes-devtools/python/python/create_manifest2.py index b6748653b6..34659515cb 100644 --- a/meta/recipes-devtools/python/python/create_manifest2.py +++ b/meta/recipes-devtools/python/python/create_manifest2.py | |||
@@ -209,7 +209,13 @@ for key in old_manifest: | |||
209 | 209 | ||
210 | inFolders=False | 210 | inFolders=False |
211 | for folder in allfolders: | 211 | for folder in allfolders: |
212 | if folder in item: | 212 | # The module could have a directory named after it, e.g. xml, if we take out the filename from the path |
213 | # we'll end up with ${libdir}, and we want ${libdir}/xml | ||
214 | if isFolder(item): | ||
215 | check_path = item | ||
216 | else: | ||
217 | check_path = os.path.dirname(item) | ||
218 | if folder in check_path : | ||
213 | inFolders = True # Did we find a folder? | 219 | inFolders = True # Did we find a folder? |
214 | folderFound = False # Second flag to break inner for | 220 | folderFound = False # Second flag to break inner for |
215 | # Loop only through packages which contain folders | 221 | # Loop only through packages which contain folders |
@@ -262,16 +268,16 @@ for key in old_manifest: | |||
262 | new_manifest[key]['rdepends'].append(newkey) | 268 | new_manifest[key]['rdepends'].append(newkey) |
263 | break | 269 | break |
264 | else: | 270 | else: |
265 | # Debug | 271 | # Debug |
266 | print('Adding %s to %s FILES' % (item, key)) | 272 | print('Adding %s to %s FILES' % (item, key)) |
267 | # Since it wasnt found on another package, its not an RDEP, so add it to FILES for this package | 273 | # Since it wasnt found on another package, its not an RDEP, so add it to FILES for this package |
268 | new_manifest[key]['files'].append(item) | 274 | new_manifest[key]['files'].append(item) |
269 | if item.endswith('*'): | 275 | if item.endswith('*'): |
270 | wildcards.append(item) | 276 | wildcards.append(item) |
271 | if item not in allfiles: | 277 | if item not in allfiles: |
272 | allfiles.append(item) | 278 | allfiles.append(item) |
273 | else: | 279 | else: |
274 | repeated.append(item) | 280 | repeated.append(item) |
275 | 281 | ||
276 | print ('The following files are repeated (contained in more than one package), please check which package should get it:') | 282 | print ('The following files are repeated (contained in more than one package), please check which package should get it:') |
277 | print (repeated) | 283 | print (repeated) |