aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jansa <martin.jansa@gmail.com>2020-09-03 17:17:45 +0200
committerTim Orling <ticotimo@gmail.com>2020-09-06 18:18:38 -0700
commit63f30ea2d1925b36de126076f45e8d5f2a33653d (patch)
tree56cd1dffc63a572de03e7ffdf105e3a35e439e79
parenta4f9a2c9e81a2ef1e9fce968738b47f0f512d6ef (diff)
downloadmeta-python2-63f30ea2d1925b36de126076f45e8d5f2a33653d.tar.gz
python: prevent lib32-python depending on python
* it was a bit tricky to find this, because $ bitbake -g lib32-python $ grep '"python\.' task-depends.dot doesn't show anything, but if you set COMPATIBLE_HOST_pn-python = "^(?!x86_64).*" $ bitbake lib32-python will fail with: NOTE: Resolving any missing task queue dependencies ERROR: Nothing PROVIDES 'python' python was skipped: incompatible with host x86_64-oe-linux (not in COMPATIBLE_HOST) ERROR: Required build target 'lib32-python' has no buildable providers. Missing or unbuildable dependency chain was: ['lib32-python', 'python'] so I was wondering where this dependency was created when it isn't part of task-depends.dot in the end I've added small debug output in bitbake: diff --git a/lib/bb/taskdata.py b/lib/bb/taskdata.py index ffbaf362..e7fab3cc 100644 --- a/lib/bb/taskdata.py +++ b/lib/bb/taskdata.py @@ -70,6 +70,7 @@ class TaskData: """ task_deps = dataCache.task_deps[fn] + logger.verbose('add_tasks for %s: %s' % (fn, task_deps)) if fn in self.failed_fns: bb.msg.fatal("TaskData", "Trying to re-add a failed file? Something is broken...") which showed exactly where the issue was: NOTE: add_tasks for virtual:multilib:lib32:/OE/meta-python2/recipes-devtools/python/python_2.7.18.bb: {'tasks': ['do_patch', 'do_populate_sysroot', 'do_populate_sysroot_setscene', 'do_prepare_recipe_sysroot', 'do_listtasks', 'do_clean', 'do_checkuri', 'do_fetch', 'do_unpack', 'do_configure', 'do_compile', 'do_install', 'do_build', 'do_cleansstate', 'do_cleanall', 'do_rm_work_all', 'do_rm_work', 'do_build_without_rm_work', 'do_package_qa', 'do_package_qa_setscene', 'do_package', 'do_package_setscene', 'do_packagedata', 'do_packagedata_setscene', 'do_package_write_ipk_setscene', 'do_package_write_ipk', 'do_devshell', 'do_devpyshell', 'do_populate_lic', 'do_populate_lic_setscene', 'do_create_manifest'], 'parents': {'do_patch': ['do_unpack'], 'do_populate_sysroot': ['do_install'], 'do_populate_sysroot_setscene': [], 'do_prepare_recipe_sysroot': ['do_fetch'], 'do_listtasks': [], 'do_clean': [], 'do_checkuri': [], 'do_fetch': [], 'do_unpack': ['do_fetch'], 'do_configure': ['do_prepare_recipe_sysroot', 'do_patch'], 'do_compile': ['do_configure'], 'do_install': ['do_compile'], 'do_build': ['do_rm_work', 'do_populate_lic', 'do_packagedata', 'do_package_qa', 'do_rm_work_all', 'do_populate_sysroot'], 'do_cleansstate': ['do_clean'], 'do_cleanall': ['do_cleansstate'], 'do_rm_work_all': [], 'do_rm_work': ['do_deploy', 'do_package_qa', 'do_package_write_ipk', 'do_packagedata', 'do_populate_lic', 'do_populate_sysroot'], 'do_build_without_rm_work': ['do_deploy', 'do_package_qa', 'do_package_write_ipk', 'do_packagedata', 'do_populate_lic', 'do_populate_sysroot'], 'do_package_qa': ['do_packagedata', 'do_package'], 'do_package_qa_setscene': [], 'do_package': ['do_install'], 'do_package_setscene': [], 'do_packagedata': ['do_package'], 'do_packagedata_setscene': [], 'do_package_write_ipk_setscene': [], 'do_package_write_ipk': ['do_packagedata', 'do_package'], 'do_devshell': ['do_patch', 'do_prepare_recipe_sysroot'], 'do_devpyshell': ['do_patch'], 'do_populate_lic': ['do_patch'], 'do_populate_lic_setscene': [], 'do_create_manifest': []}, 'mcdepends': {}, 'depends': {'do_patch': 'quilt-native:do_populate_sysroot patch-replacement-native:do_populate_sysroot', 'do_populate_sysroot': ' virtual/lib32-i686-oemllib32-linux-binutils:do_populate_sysroot', 'do_prepare_recipe_sysroot': ' virtual/fakeroot-native:do_populate_sysroot', 'do_fetch': ' wget-native:do_populate_sysroot', 'do_unpack': ' xz-native:do_populate_sysroot', 'do_install': ' virtual/fakeroot-native:do_populate_sysroot', 'do_package_qa': ' virtual/lib32-i686-oemllib32-linux-binutils:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot', 'do_package': ' virtual/fakeroot-native:do_populate_sysroot rpm-native:do_populate_sysroot dwarfsrcfiles-native:do_populate_sysroot file-native:do_populate_sysroot', 'do_package_setscene': ' virtual/fakeroot-native:do_populate_sysroot', 'do_package_write_ipk': ' opkg-utils-native:do_populate_sysroot virtual/fakeroot-native:do_populate_sysroot xz-native:do_populate_sysroot', 'do_devshell': ' virtual/fakeroot-native:do_populate_sysroot', 'do_create_manifest': ' python:do_prepare_recipe_sysroot python:do_patch'}, 'rdepends': {}, 'deptask': {'do_prepare_recipe_sysroot': 'do_populate_sysroot', 'do_package': ' do_packagedata'}, 'rdeptask': {'do_package_qa': 'do_packagedata', 'do_package_write_ipk': 'do_packagedata'}, 'recrdeptask': {'do_build': ' do_deploy do_package_write_ipk', 'do_rm_work_all': 'do_rm_work'}, 'recideptask': {}, 'nostamp': {'do_listtasks': '1', 'do_clean': '1', 'do_checkuri': '1', 'do_cleansstate': '1', 'do_cleanall': '1', 'do_devshell': '1', 'do_devpyshell': '1'}, 'fakeroot': {'do_install': '1', 'do_package_qa': '1', 'do_package': '1', 'do_package_setscene': '1', 'do_package_write_ipk': '1'}, 'noexec': {'do_build': '1', 'do_rm_work_all': '1', 'do_build_without_rm_work': '1'}, 'umask': {'do_patch': '022', 'do_populate_sysroot': '022', 'do_unpack': '022', 'do_configure': '022', 'do_compile': '022', 'do_install': '022', 'do_package': '022', 'do_package_write_ipk': '022'}} * now the fix was simple (the same fix is already in oe-core's python3 recipe, since https://git.openembedded.org/openembedded-core/commit/?id=02714c105426b0d687620913c1a7401b386428b6) * and now when I know what task was causing it, it can be shown with bitbake -g as well: $ bitbake -g lib32-python -c create_manifest NOTE: Started PRServer with DBfile: /OE/build/oe-core/cache/prserv.sqlite3, IP: 127.0.0.1, PORT: 43095, PID: 47453 Loading cache: 100% |###################################################################################################################################################################################################################################| Time: 0:00:00 Loaded 7076 entries from dependency cache. NOTE: Resolving any missing task queue dependencies NOTE: PN build list saved to 'pn-buildlist' NOTE: Task dependencies saved to 'task-depends.dot' $ grep '"python\.' task-depends.dot "lib32-python.do_create_manifest" -> "python.do_patch" "lib32-python.do_create_manifest" -> "python.do_prepare_recipe_sysroot" "python.do_fetch" [label="python do_fetch\n:2.7.18-r0\n/OE/build/oe-core/meta-python2/recipes-devtools/python/python_2.7.18.bb"] "python.do_patch" [label="python do_patch\n:2.7.18-r0\n/OE/build/oe-core/meta-python2/recipes-devtools/python/python_2.7.18.bb"] "python.do_patch" -> "patch-native.do_populate_sysroot" "python.do_patch" -> "python.do_unpack" "python.do_patch" -> "quilt-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" [label="python do_prepare_recipe_sysroot\n:2.7.18-r0\n/OE/build/oe-core/meta-python2/recipes-devtools/python/python_2.7.18.bb"] "python.do_prepare_recipe_sysroot" -> "autoconf-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "automake-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "bzip2.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "db.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "gcc-cross-x86_64.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "gcc-runtime.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "gdbm.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "glibc.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "gnu-config-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "libffi.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "libtool-cross.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "libtool-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "libxcrypt.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "openssl.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "pkgconfig-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "pseudo-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "python-native.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "python.do_fetch" "python.do_prepare_recipe_sysroot" -> "readline.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "sqlite3.do_populate_sysroot" "python.do_prepare_recipe_sysroot" -> "zlib.do_populate_sysroot" "python.do_unpack" [label="python do_unpack\n:2.7.18-r0\n/OE/build/oe-core/meta-python2/recipes-devtools/python/python_2.7.18.bb"] "python.do_unpack" -> "python.do_fetch" "python.do_unpack" -> "xz-native.do_populate_sysroot" * I've included all these debugging steps, to discuss whether "bitbake -g" should show also the "optional" tasks - no task from python.do_build depends on do_create_manifest tasks, it's only called manually with: bitbake python -c create_manifest but still bitbake includes this task dependency when preparing runqueue or maybe bitbake shouldn't include it in the dependency tree when it's not going to call that task anyway Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com> Signed-off-by: Tim Orling <ticotimo@gmail.com>
-rw-r--r--recipes-devtools/python/python_2.7.18.bb4
1 files changed, 2 insertions, 2 deletions
diff --git a/recipes-devtools/python/python_2.7.18.bb b/recipes-devtools/python/python_2.7.18.bb
index 0945cb3..c28c010 100644
--- a/recipes-devtools/python/python_2.7.18.bb
+++ b/recipes-devtools/python/python_2.7.18.bb
@@ -256,5 +256,5 @@ do_create_manifest() {
addtask do_create_manifest
# Make sure we have native python ready when we create a new manifest
-do_create_manifest[depends] += "python:do_prepare_recipe_sysroot"
-do_create_manifest[depends] += "python:do_patch"
+do_create_manifest[depends] += "${PN}:do_prepare_recipe_sysroot"
+do_create_manifest[depends] += "${PN}:do_patch"