#yocto #rpm #bitbake
Вопрос:
Во время выполнения команды bitbake задача, которая создает пакет rpm, завершается с ошибкой из-за функции python. Я не смог определить, что может привести к сбою этой функции. У вас, ребята, есть какие-нибудь идеи?
ERROR: perl-5.30.1-r0 do_package_write_rpm: 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:do_package_rpm(d)
0003:
File: '/srv/yocto/poky/meta/classes/package_rpm.bbclass', lineno: 712, function: do_package_rpm
0708:
0709: # Build the rpm package!
0710: d.setVar('BUILDSPEC', cmd "\n" cleanupcmd "\n")
0711: d.setVarFlag('BUILDSPEC', 'func', '1')
0712: bb.build.exec_func('BUILDSPEC', d)
0713:
0714: if d.getVar('RPM_SIGN_PACKAGES') == '1':
0715: bb.build.exec_func("sign_rpm", d)
0716:}
File: '/srv/yocto/poky/bitbake/lib/bb/build.py', lineno: 254, function: exec_func
0250: with bb.utils.fileslocked(lockfiles):
0251: if ispython:
0252: exec_func_python(func, d, runfile, cwd=adir)
0253: else: ***
0254: exec_func_shell(func, d, runfile, cwd=adir)
0255:
0256: try:
0257: curcwd = os.getcwd()
0258: except:
File: '/srv/yocto/poky/bitbake/lib/bb/build.py', lineno: 455, function: exec_func_shell
0451: with open(fifopath, 'r b', buffering=0) as fifo:
0452: try:
0453: bb.debug(2, "Executing shell function %s" % func)
0454: with open(os.devnull, 'r ') as stdin, logfile: ***
0455: bb.process.run(cmd, shell=False, stdin=stdin, log=logfile, extrafiles=[(fifo,readfifo)])
0456: finally:
0457: os.unlink(fifopath)
0458:
0459: bb.debug(2, "Shell function %s finished" % func)
File: '/srv/yocto/poky/bitbake/lib/bb/process.py', lineno: 184, function: run
0180:
0181: if pipe.returncode != 0:
0182: if log:
0183: # Don't duplicate the output in the exception if logging it ***
0184: raise ExecutionError(cmd, pipe.returncode, None, None)
0185: raise ExecutionError(cmd, pipe.returncode, stdout, stderr)
0186: return stdout, stderr Exception: bb.process.ExecutionError: Execution of '/srv/yocto/build/tmp/work/corei7-64-poky-linux/perl/5.30.1-r0/temp/run.BUILDSPEC.35372' failed with exit code 1
Комментарии:
1. Вы нашли решение? У меня та же проблема…
2. К сожалению, я этого не сделал. Просматривая файл журнала, я заметил следующую ошибку прямо перед ошибкой, которую я опубликовал в вопросе:
Deprecated external dependency generator is used! create archive failed: cpio: write WARNING: exit code 1 from a shell command.
я обратился к некоторым разработчикам в списке рассылки yocto, и один из них предложил запустить strace в команде bitbake. Однако это приводит к слишком большой производительности, так что на самом деле это не очень полезно.
Ответ №1:
У меня была такая же проблема, и это происходило из-за того, что моя SECTION
переменная в моем рецепте была пустой ( SECTION
=»»). Я приписал ему любое значение, например SECTION
= «a», и это устранило проблему.
Ответ №2:
У меня была такая же проблема, и я понял, что в моей системе были некоторые недостающие предпосылки, определенные здесь: https://docs.yoctoproject.org/3.3.3/ref-manual/system-requirements.html
Выполнение следующей команды решило мою проблему:
sudo apt-get install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev