* [bitbake][kirkstone][2.0][PATCH 0/1] Patch review
@ 2024-11-06 13:37 Steve Sakoman
2024-11-06 13:37 ` [bitbake][kirkstone][2.0][PATCH 1/1] codeparser: Fix handling of string AST nodes with older Python versions Steve Sakoman
0 siblings, 1 reply; 7+ messages in thread
From: Steve Sakoman @ 2024-11-06 13:37 UTC (permalink / raw)
To: bitbake-devel
Please review this change for kirkstone/2.0 and have comments back by
end of day Friday, November 8
Passed a-full on autobuilder:
https://valkyrie.yoctoproject.org/#/builders/29/builds/398
The following changes since commit 0c30e9aadd30fc6f0dcf811eb8340687b52eb00b:
tests/fetch: Use our own mirror of mobile-broadband-provider to decouple from gnome gitlab (2024-11-02 09:45:13 +0000)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.0-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.0-nut
Philip Lorenz (1):
codeparser: Fix handling of string AST nodes with older Python
versions
lib/bb/codeparser.py | 46 +++++++++++++++++++++++++++++++-------------
1 file changed, 33 insertions(+), 13 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [bitbake][kirkstone][2.0][PATCH 1/1] codeparser: Fix handling of string AST nodes with older Python versions
2024-11-06 13:37 [bitbake][kirkstone][2.0][PATCH 0/1] Patch review Steve Sakoman
@ 2024-11-06 13:37 ` Steve Sakoman
0 siblings, 0 replies; 7+ messages in thread
From: Steve Sakoman @ 2024-11-06 13:37 UTC (permalink / raw)
To: bitbake-devel
From: Philip Lorenz <philip.lorenz@bmw.de>
Commits 4591011449212c8e494ea42348acb2d27a82a51b and
6c19b6cf105ac321ec89da1a876a317020c45ab7 unconditionally changed
codeparser to rely on CPython 3.8 semantics. However, kirkstone
continues to support CPython versions >= 3.6.0 and as such string AST
nodes were no longer correctly identified.
Fix this by continuing to use `ast.Str` for Python versions < 3.8.0 and
only using the new code path for more recent versions. Detecting which
version of the AST API to use seems to be non-trivial so the Python
feature version is used instead.
Instances of this issue can be identified when executing bitbake with
debug logging:
while parsing MACHINE_ARCH, in call of d.getVar, argument
''TUNE_PKGARCH'' is not a string literal
As a consequence of these parsing issues, bitbake may assume that task
inputs haven't changed and as such erroneously reuse sstate objects when
it shouldn't.
Signed-off-by: Philip Lorenz <philip.lorenz@bmw.de>
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
lib/bb/codeparser.py | 46 +++++++++++++++++++++++++++++++-------------
1 file changed, 33 insertions(+), 13 deletions(-)
diff --git a/lib/bb/codeparser.py b/lib/bb/codeparser.py
index 6ce0c5182..39dba266c 100644
--- a/lib/bb/codeparser.py
+++ b/lib/bb/codeparser.py
@@ -201,6 +201,22 @@ class DummyLogger():
def flush(self):
return
+
+# Starting with Python 3.8, the ast module exposes all string nodes as a
+# Constant. While earlier versions of the module also have the Constant type
+# those use the Str type to encapsulate strings.
+if sys.version_info < (3, 8):
+ def node_str_value(node):
+ if isinstance(node, ast.Str):
+ return node.s
+ return None
+else:
+ def node_str_value(node):
+ if isinstance(node, ast.Constant) and isinstance(node.value, str):
+ return node.value
+ return None
+
+
class PythonParser():
getvars = (".getVar", ".appendVar", ".prependVar", "oe.utils.conditional")
getvarflags = (".getVarFlag", ".appendVarFlag", ".prependVarFlag")
@@ -225,19 +241,22 @@ class PythonParser():
def visit_Call(self, node):
name = self.called_node_name(node.func)
if name and (name.endswith(self.getvars) or name.endswith(self.getvarflags) or name in self.containsfuncs or name in self.containsanyfuncs):
- if isinstance(node.args[0], ast.Constant) and isinstance(node.args[0].value, str):
- varname = node.args[0].value
- if name in self.containsfuncs and isinstance(node.args[1], ast.Constant):
+ varname = node_str_value(node.args[0])
+ if varname is not None:
+ arg_str_value = None
+ if len(node.args) >= 2:
+ arg_str_value = node_str_value(node.args[1])
+ if name in self.containsfuncs and arg_str_value is not None:
if varname not in self.contains:
self.contains[varname] = set()
- self.contains[varname].add(node.args[1].value)
- elif name in self.containsanyfuncs and isinstance(node.args[1], ast.Constant):
+ self.contains[varname].add(arg_str_value)
+ elif name in self.containsanyfuncs and arg_str_value is not None:
if varname not in self.contains:
self.contains[varname] = set()
- self.contains[varname].update(node.args[1].value.split())
+ self.contains[varname].update(arg_str_value.split())
elif name.endswith(self.getvarflags):
- if isinstance(node.args[1], ast.Constant):
- self.references.add('%s[%s]' % (varname, node.args[1].value))
+ if arg_str_value is not None:
+ self.references.add('%s[%s]' % (varname, arg_str_value))
else:
self.warn(node.func, node.args[1])
else:
@@ -245,10 +264,10 @@ class PythonParser():
else:
self.warn(node.func, node.args[0])
elif name and name.endswith(".expand"):
- if isinstance(node.args[0], ast.Constant):
- value = node.args[0].value
+ arg_str_value = node_str_value(node.args[0])
+ if arg_str_value is not None:
d = bb.data.init()
- parser = d.expandWithRefs(value, self.name)
+ parser = d.expandWithRefs(arg_str_value, self.name)
self.references |= parser.references
self.execs |= parser.execs
for varname in parser.contains:
@@ -256,8 +275,9 @@ class PythonParser():
self.contains[varname] = set()
self.contains[varname] |= parser.contains[varname]
elif name in self.execfuncs:
- if isinstance(node.args[0], ast.Constant):
- self.var_execs.add(node.args[0].value)
+ arg_str_value = node_str_value(node.args[0])
+ if arg_str_value is not None:
+ self.var_execs.add(arg_str_value)
else:
self.warn(node.func, node.args[0])
elif name and isinstance(node.func, (ast.Name, ast.Attribute)):
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [bitbake][kirkstone][2.0][PATCH 0/1] Patch review
@ 2026-04-09 22:49 Yoann Congal
0 siblings, 0 replies; 7+ messages in thread
From: Yoann Congal @ 2026-04-09 22:49 UTC (permalink / raw)
To: bitbake-devel
This is a patch added last-minute to handle the shutdown of the git
protocol on YP/OE git repos.
Given the cherry-pick nature of the patch and the kirkstone release
build to do quickly, I plan to send this for merge quickly.
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3631
(Build was impacted by a known and fixed AB-INT, I backported the fix)
The following changes since commit 8e2d1f8de055549b2101614d85454fcd1d0f94b2:
test/fetch: Switch u-boot based test to use our own mirror (2025-07-22 15:09:57 +0100)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.0-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.0-nut
for you to fetch changes up to 7fd0197fd5fedd23cc885b5e7e816d86a392fdf9:
tests/fetch: Avoid using git protocol in tests (2026-04-09 13:28:26 +0200)
----------------------------------------------------------------
Richard Purdie (1):
tests/fetch: Avoid using git protocol in tests
lib/bb/tests/fetch.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bitbake][kirkstone][2.0][PATCH 0/1] Patch review
@ 2025-03-12 19:48 Steve Sakoman
0 siblings, 0 replies; 7+ messages in thread
From: Steve Sakoman @ 2025-03-12 19:48 UTC (permalink / raw)
To: bitbake-devel
Please review this change for 2.0/kirkstone and have comments back by
end of day Friday, March 14
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/1177
The following changes since commit e71f1ce53cf3b8320caa481ae62d1ce2900c4670:
tests/fetch: Fix git shallow test failure with git >= 2.48 (2025-01-24 16:17:43 +0000)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.0-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.0-nut
Paulo Neves (1):
siggen.py: Improve taskhash reproducibility
lib/bb/siggen.py | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
--
2.43.0
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bitbake][kirkstone][2.0][PATCH 0/1] Patch review
@ 2024-08-13 13:09 Steve Sakoman
0 siblings, 0 replies; 7+ messages in thread
From: Steve Sakoman @ 2024-08-13 13:09 UTC (permalink / raw)
To: bitbake-devel
Please review this set of changes for 2.0/kirkstone and have comments back by
end of day Thursday, August 15
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/7236
The following changes since commit 734b0ea3dfe45eb16ee60f0c2c388e22af4040e0:
tests/fetch: Tweak test to match upstream repo url change Upstream changed their urls, update our test to match. (2024-06-11 11:22:11 -0700)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.0-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.0-nut
Robert Yang (1):
data_smart: Improve performance for VariableHistory
lib/bb/data_smart.py | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [bitbake][kirkstone][2.0][PATCH 0/1] Patch review
@ 2024-06-22 12:20 Steve Sakoman
0 siblings, 0 replies; 7+ messages in thread
From: Steve Sakoman @ 2024-06-22 12:20 UTC (permalink / raw)
To: bitbake-devel
Please review this change for kirkstone/2.0 and have comments back by
end of day Tuesday, June 25
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/7065
The following changes since commit 5a90927f31c4f9fccbe5d9d07d08e6e69485baa8:
parse: Improve/fix cache invalidation via mtime (2024-05-23 08:52:30 -0700)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.0-nut
https://git.openembedded.org/bitbake-contrib/log/?h=stable/2.0-nut
Steve Sakoman (1):
tests/fetch: Tweak test to match upstream repo url change Upstream
changed their urls, update our test to match.
lib/bb/tests/fetch.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread* [bitbake][kirkstone][2.0][PATCH 0/1] Patch review
@ 2023-04-15 15:29 Steve Sakoman
0 siblings, 0 replies; 7+ messages in thread
From: Steve Sakoman @ 2023-04-15 15:29 UTC (permalink / raw)
To: bitbake-devel
Please review this set of patches for kirkstone/2.0 and have comments back by
end of day Tuesday.
Passed a-full on autobuilder:
https://autobuilder.yoctoproject.org/typhoon/#/builders/83/builds/5185
The following changes since commit 2802adb572eb73a3eb2725a74a9bbdaafc543fa7:
fetch/git: Fix local clone url to make it work with repo (2023-03-31 04:28:22 -1000)
are available in the Git repository at:
https://git.openembedded.org/bitbake-contrib stable/2.0-nut
http://cgit.openembedded.org/bitbake-contrib/log/?h=stable/2.0-nut
Frank de Brabander (1):
bin/utils: Ensure locale en_US.UTF-8 is available on the system
bin/bitbake | 3 +--
bin/bitbake-server | 5 +++--
bin/bitbake-worker | 3 +--
lib/bb/utils.py | 16 ++++++++++++++++
4 files changed, 21 insertions(+), 6 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2026-04-09 22:49 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-06 13:37 [bitbake][kirkstone][2.0][PATCH 0/1] Patch review Steve Sakoman
2024-11-06 13:37 ` [bitbake][kirkstone][2.0][PATCH 1/1] codeparser: Fix handling of string AST nodes with older Python versions Steve Sakoman
-- strict thread matches above, loose matches on Subject: below --
2026-04-09 22:49 [bitbake][kirkstone][2.0][PATCH 0/1] Patch review Yoann Congal
2025-03-12 19:48 Steve Sakoman
2024-08-13 13:09 Steve Sakoman
2024-06-22 12:20 Steve Sakoman
2023-04-15 15:29 Steve Sakoman
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.