But what are you actually need this for? do_unpack is not meant to be extended, and chances are, there's a better way to achieve what you need.
Alex On Fri, 17 Jan 2025 at 16:02, Kjeld Flarup via lists.yoctoproject.org <kjeld.flarup=liberalismen...@lists.yoctoproject.org> wrote: > > Thanks for the alternatives Quentin > > --------------------- Med Liberalistiske Hilsner ---------------------- > > Civilingeniør, Kjeld Flarup - Mit sind er mere åbent end min tegnebog > Sofienlundvej 6B, 7560 Hjerm, Tlf: 40 29 41 49 > Den ikke akademiske hjemmeside for liberalismen - www.liberalismen.dk > > > > Den fre. 17. jan. 2025 kl. 15.57 skrev Quentin Schulz > <quentin.sch...@cherry.de>: >> >> Hi, >> >> On 1/17/25 3:25 PM, Kjeld Flarup via lists.yoctoproject.org wrote: >> > You don't often get email from >> > kjeld.flarup=liberalismen...@lists.yoctoproject.org. Learn why this is >> > important<https://aka.ms/LearnAboutSenderIdentification> >> > I try to write an append for do_unpack >> > do_unpack:append() { >> > echo Hello >> > } >> > >> > But it looks like it is parsed as Python >> > >> > parser = bb.codeparser.PythonParser(key, logger) >> > > parser.parse_python(value, >> > filename=varflags.get("filename"), lineno=varflags.get("lineno")) >> > deps = deps | parser.references >> > File "/tmp/yocto/meta-poky/bitbake/lib/bb/codeparser.py", line 358, in >> > PythonParser.parse_python(node="\n bb.build.exec_func('base_do_unpack', >> > d)\n echo Hello\n", lineno=1, filename='autogenerated', fixedhash=None): >> > node = "\n" * int(lineno) + node >> > > code = compile(check_indent(str(node)), filename, "exec", >> > ast.PyCF_ONLY_AST) >> > File "autogenerated", line 3 >> > echo Hello >> > ^ >> > IndentationError: unindent does not match any outer indentation level >> > >> > Isn't this possible using shell >> > >> >> Tasks can be python or shell, here do_unpack is Python, so you need to >> write Python code in :prepend or :append. >> >> Depending on your usecase, you can simply add a new task and insert it >> between do_unpack and the next task depending on this change for example. >> >> Another option is to use bb.build.exec_func() from Python code to >> execute a shell function, though I don't think this is widely used >> outside of core code (and I haven't used it myself, so maybe not the >> best practice either). >> >> You can also have shell functions run after the python task is run, >> those are added with: >> >> do_unpack[prefuncs] += "my-shell-func another-shell-func" >> do_unpack[postfuncs] += "my-shell-func yet-another-shell-func" >> >> c.f. >> https://docs.yoctoproject.org/bitbake/bitbake-user-manual/bitbake-user-manual-metadata.html#variable-flags >> >> Cheers, >> Quentin > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#64586): https://lists.yoctoproject.org/g/yocto/message/64586 Mute This Topic: https://lists.yoctoproject.org/mt/110666328/21656 Group Owner: yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-