* 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 <[email protected]>
---
recipes-devtools/python/python_2.7.18.bb | 4 ++--
1 file 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 be7c6d2..bca2910 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"
--
2.25.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#86934):
https://lists.openembedded.org/g/openembedded-devel/message/86934
Mute This Topic: https://lists.openembedded.org/mt/76685661/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-