All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] Substitute '~' when naming anonymous functions
@ 2021-07-20 17:16 Paul Barker
  2021-07-20 17:16 ` [PATCH 1/1] parse/ast: " Paul Barker
  2021-07-20 17:22 ` [bitbake-devel] [PATCH 0/1] " Paul Barker
  0 siblings, 2 replies; 3+ messages in thread
From: Paul Barker @ 2021-07-20 17:16 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Paul Barker

When looking at meta-linux-mainline in the layer index I realised that the
recipe version shown were out-of-date. The most recent update log [1] showed
that the layer had failed to parse. Looking at the log it was obvious that this
was due to the path in which the layer had been cloned, not due to any issue in
the layer itself. As git repositories on sourcehut use '~' as a prefix to the
username in the URL, this character ended up in the local path to the layer.
When bitbake parsed the recipes in this layer, the '~' character ended up in the
function name generated for an anonymous Python function. Since '~' isn't a
valid character in a Python function name we got a pile of errors.

We already have a translation table to handle characters which aren't valid in
Python function names, we just need to add '~' to the table.

Paul Barker (1):
  parse/ast: Substitute '~' when naming anonymous functions

 lib/bb/parse/ast.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.26.2


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/1] parse/ast: Substitute '~' when naming anonymous functions
  2021-07-20 17:16 [PATCH 0/1] Substitute '~' when naming anonymous functions Paul Barker
@ 2021-07-20 17:16 ` Paul Barker
  2021-07-20 17:22 ` [bitbake-devel] [PATCH 0/1] " Paul Barker
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Barker @ 2021-07-20 17:16 UTC (permalink / raw)
  To: bitbake-devel; +Cc: Paul Barker

When parsing an anonymous python function, bitbake generates a name for
the function based on the full path to the file in which it was found.
As not all characters which are valid in file paths are valid in Python
function names we have a translation table. However, this translation
table was missing an entry for '~'.

Signed-off-by: Paul Barker <paul@pbarker.dev>
---
 lib/bb/parse/ast.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/bb/parse/ast.py b/lib/bb/parse/ast.py
index 50a88f7da7..743ea0dfc0 100644
--- a/lib/bb/parse/ast.py
+++ b/lib/bb/parse/ast.py
@@ -145,7 +145,7 @@ class DataNode(AstNode):
             data.setVar(key, val, parsing=True, **loginfo)
 
 class MethodNode(AstNode):
-    tr_tbl = str.maketrans('/.+-@%&', '_______')
+    tr_tbl = str.maketrans('/.+-@%&~', '________')
 
     def __init__(self, filename, lineno, func_name, body, python, fakeroot):
         AstNode.__init__(self, filename, lineno)
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [bitbake-devel] [PATCH 0/1] Substitute '~' when naming anonymous functions
  2021-07-20 17:16 [PATCH 0/1] Substitute '~' when naming anonymous functions Paul Barker
  2021-07-20 17:16 ` [PATCH 1/1] parse/ast: " Paul Barker
@ 2021-07-20 17:22 ` Paul Barker
  1 sibling, 0 replies; 3+ messages in thread
From: Paul Barker @ 2021-07-20 17:22 UTC (permalink / raw)
  To: bitbake-devel

[-- Attachment #1: Type: text/plain, Size: 1327 bytes --]

On Tue, 20 Jul 2021 18:16:27 +0100
"Paul Barker" <paul@pbarker.dev> wrote:

> When looking at meta-linux-mainline in the layer index I realised that the
> recipe version shown were out-of-date. The most recent update log [1] showed
> that the layer had failed to parse. Looking at the log it was obvious that this
> was due to the path in which the layer had been cloned, not due to any issue in
> the layer itself. As git repositories on sourcehut use '~' as a prefix to the
> username in the URL, this character ended up in the local path to the layer.
> When bitbake parsed the recipes in this layer, the '~' character ended up in the
> function name generated for an anonymous Python function. Since '~' isn't a
> valid character in a Python function name we got a pile of errors.
> 
> We already have a translation table to handle characters which aren't valid in
> Python function names, we just need to add '~' to the table.
> 
> Paul Barker (1):
>   parse/ast: Substitute '~' when naming anonymous functions
> 
>  lib/bb/parse/ast.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 

It helps if I include the URL rather than just leaving a dead
reference...

[1]: https://layers.openembedded.org/layerindex/layerupdate/9144821/

Thanks,

-- 
Paul Barker
https://pbarker.dev/

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 235 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-20 17:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-20 17:16 [PATCH 0/1] Substitute '~' when naming anonymous functions Paul Barker
2021-07-20 17:16 ` [PATCH 1/1] parse/ast: " Paul Barker
2021-07-20 17:22 ` [bitbake-devel] [PATCH 0/1] " Paul Barker

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.