]> code.ossystems Code Review - openembedded-core.git/commitdiff
create_manifest3: Dont match filenames which contain the directory name for new manifest
authorAlejandro Enedino Hernandez Samaniego <alejandro.enedino.hernandez-samaniego@xilinx.com>
Sat, 8 Dec 2018 01:33:46 +0000 (17:33 -0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 9 Dec 2018 11:08:07 +0000 (11:08 +0000)
When creating a new python3 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}/python3/xmlrpclib.py
module path contains ${libdir}/python3/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.

Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/python/python3/create_manifest3.py

index f7d4587030e944d4a9ea60b3ede0f0701b4fad0b..4da02a2991a7da2101218c3880b1f7cc9a5f0a60 100644 (file)
@@ -310,7 +310,13 @@ for pypkg in old_manifest:
             pymodule_dep = pymodule_dep.replace(pyversion,'${PYTHON_MAJMIN}')
             inFolders = False
             for folder in allfolders:
-                if folder in pymodule_dep:
+                # The module could have a directory named after it, e.g. xml, if we take out the filename from the path
+                # we'll end up with ${libdir}, and we want ${libdir}/xml
+                if isFolder(pymodule_dep):
+                    check_path = pymodule_dep
+                else:
+                    check_path = os.path.dirname(pymodule_dep)
+                if folder in check_path :
                     inFolders = True # Did we find a folder?
                     folderFound = False # Second flag to break inner for
                     # Loop only through packages which contain folders