do_package error after building meta-tensorflow and libcamera-apps does not detect tensorflow-lite
"ashish shrikhande6" <[email protected]>
| Newsgroups | org.yoctoproject.lists.yocto |
|---|---|
| Message-ID | <[email protected]> |
I am facing two issues in building meta-tensorflow. I am trying to build tensorflow-lite in latest Yocto whinlatter for Raspberrypi5 target.
When I get try to build tensorflow-lite
I get below error:
***********************************************************************************************************************************************
ERROR: tensorflow-lite-2.19.0-r0 do_package: Error executing a python function in exec_func_python() autogenerated:
The stack trace of python calls that resulted in this exception/failure was:
File: 'exec_func_python() autogenerated', lineno: 2, function: <module>
0001:
*** 0002:sstate_report_unihash(d)
0003:
File: '/home/ashish/raspberrypi5_whinlater/poky/meta/classes-global/sstate.bbclass', lineno: 917, function: sstate_report_unihash
0913: report_unihash = getattr(bb.parse.siggen, 'report_unihash', None)
0914:
0915: if report_unihash:
0916: ss = sstate_state_fromvars(d)
*** 0917: report_unihash(os.getcwd(), ss['task'], d)
0918:}
0919:
0920:#
0921:# Shell function to decompress and prepare a package for installation
File: '/home/ashish/raspberrypi5_whinlater/poky/bitbake/lib/bb/siggen.py', lineno: 784, function: report_unihash
0780:
0781: if "." in self.method:
0782: (module, method) = self.method.rsplit('.', 1)
0783: locs['method'] = getattr(importlib.import_module(module), method)
*** 0784: outhash = bb.utils.better_eval('method(path, sigfile, task, d)', locs)
0785: else:
0786: outhash = bb.utils.better_eval(self.method + '(path, sigfile, task, d)', locs)
0787:
0788: try:
File: '/home/ashish/raspberrypi5_whinlater/poky/bitbake/lib/bb/utils.py', lineno: 487, function: better_eval
0483: if extraglobals:
0484: ctx = copy.copy(ctx)
0485: for g in extraglobals:
0486: ctx[g] = extraglobals[g]
*** 0487: return eval(source, ctx, locals)
0488:
0489:@contextmanager
0490:def fileslocked(files, *args, **kwargs):
0491: """Context manager for locking and unlocking file locks. Uses
File: '<string>', lineno: 1, function: <module>
File "<string>", line 1, in <module>
File: '/home/ashish/raspberrypi5_whinlater/poky/meta/lib/oe/sstatesig.py', lineno: 722, function: OEOuthashBasic
0718: update_hash("\n")
0719:
0720: # Process this directory and all its child files
0721: if include_root or root != ".":
*** 0722: process(root)
0723: for f in files:
0724: if f == 'fixmepath':
0725: continue
0726: process(os.path.join(root, f))
File: '/home/ashish/raspberrypi5_whinlater/poky/meta/lib/oe/sstatesig.py', lineno: 661, function: process
0657: except KeyError as e:
0658: msg = ("KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn't match "
0659: "any user/group on target. This may be due to host contamination." %
0660: (e, os.path.abspath(path), s.st_uid, s.st_gid))
*** 0661: raise Exception(msg).with_traceback(e.__traceback__)
0662:
0663: if include_timestamps:
0664: # Need to clamp to SOURCE_DATE_EPOCH
0665: if s.st_mtime > source_date_epoch:
File: '/home/ashish/raspberrypi5_whinlater/poky/meta/lib/oe/sstatesig.py', lineno: 655, function: process
0651: else:
0652: add_perm(stat.S_IXOTH, 'x')
0653:
0654: try:
*** 0655: update_hash(" %10s" % pwd.getpwuid(s.st_uid).pw_name)
0656: update_hash(" %10s" % grp.getgrgid(s.st_gid).gr_name)
0657: except KeyError as e:
0658: msg = ("KeyError: %s\nPath %s is owned by uid %d, gid %d, which doesn't match "
0659: "any user/group on target. This may be due to host contamination." %
Exception: Exception: KeyError: 'getpwuid(): uid not found: 1000'
Path /home/ashish/raspberrypi5_whinlater/poky/build/tmp/work/cortexa76-poky-linux/tensorflow-lite/2.19.0/sstate-build-package/package/usr/lib/python3.13/site-packages/tflite_runtime is owned by uid 1000, gid 1000, which doesn't match any user/group on target. This may be due to host contamination.
ERROR: Logfile of failure stored in: /home/ashish/raspberrypi5_whinlater/poky/build/tmp/work/cortexa76-poky-linux/tensorflow-lite/2.19.0/temp/log.do_package.4189490
NOTE: recipe tensorflow-lite-2.19.0-r0: task do_package: Failed
********************************************************************************************************************************************************************************************************
After I comment below part from recipe it successfully build it:
${STAGING_BINDIR_NATIVE}/pip3 install --disable-pip-version-check -v \
-t ${D}/${PYTHON_SITEPACKAGES_DIR} --no-cache-dir --no-deps \
${S}/tensorflow/lite/tools/pip_package/gen/tflite_pip/python3/dist/tflite_runtime-${PV}*cp313*.whl
rm -rf ${D}${PYTHON_SITEPACKAGES_DIR}/tflite_runtime-${PV}.dist-info
Since I wanted to build rpicam-apps (libcamera-apps) with tensorflow-lite support I commented above part as wheel is not required.
When I build libcamera-apps, since meta-tensorflow uses bazel to build, it does not generate libtensorflowlite.pc for libcamera-apps to integrate.
How to solve these issues? I am new to Yocto and looking for some help?