2023-01-06 12:10:21

by Michal Suchánek

[permalink] [raw]
Subject: [PATCH] bpf_doc: Fix build error with older python versions

+ make -j48 -s -C /dev/shm/kbuild/linux.33946/current ARCH=powerpc HOSTCC=gcc CROSS_COMPILE=powerpc64-suse-linux- clean
TypeError: '_sre.SRE_Match' object is not subscriptable

Fixes: 8a76145a2ec2 ("bpf: explicitly define BPF_FUNC_xxx integer values")

Signed-off-by: Michal Suchanek <[email protected]>
---
scripts/bpf_doc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py
index e8d90829f23e..38d51e05c7a2 100755
--- a/scripts/bpf_doc.py
+++ b/scripts/bpf_doc.py
@@ -271,7 +271,7 @@ class HeaderParser(object):
if capture:
fn_defines_str += self.line
helper_name = capture.expand(r'bpf_\1')
- self.helper_enum_vals[helper_name] = int(capture[2])
+ self.helper_enum_vals[helper_name] = int(capture.group(2))
self.helper_enum_pos[helper_name] = i
i += 1
else:
--
2.35.3


2023-01-06 12:19:49

by Quentin Monnet

[permalink] [raw]
Subject: Re: [PATCH] bpf_doc: Fix build error with older python versions

2023-01-06 12:40 UTC+0100 ~ Michal Suchanek <[email protected]>
> + make -j48 -s -C /dev/shm/kbuild/linux.33946/current ARCH=powerpc HOSTCC=gcc CROSS_COMPILE=powerpc64-suse-linux- clean
> TypeError: '_sre.SRE_Match' object is not subscriptable
>
> Fixes: 8a76145a2ec2 ("bpf: explicitly define BPF_FUNC_xxx integer values")
>
> Signed-off-by: Michal Suchanek <[email protected]>
> ---
> scripts/bpf_doc.py | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py
> index e8d90829f23e..38d51e05c7a2 100755
> --- a/scripts/bpf_doc.py
> +++ b/scripts/bpf_doc.py
> @@ -271,7 +271,7 @@ class HeaderParser(object):
> if capture:
> fn_defines_str += self.line
> helper_name = capture.expand(r'bpf_\1')
> - self.helper_enum_vals[helper_name] = int(capture[2])
> + self.helper_enum_vals[helper_name] = int(capture.group(2))
> self.helper_enum_pos[helper_name] = i
> i += 1
> else:

Thanks, the change looks good.

Acked-by: Quentin Monnet <[email protected]>

Would be nice to have a bit more context in the commit log: As I
understand, Match objects have been scriptable since Python 3.6 (2016).

Reference: https://docs.python.org/3/whatsnew/3.6.html#re

2023-01-06 22:58:12

by Daniel Borkmann

[permalink] [raw]
Subject: Re: [PATCH] bpf_doc: Fix build error with older python versions

On 1/6/23 1:11 PM, Quentin Monnet wrote:
> 2023-01-06 12:40 UTC+0100 ~ Michal Suchanek <[email protected]>
>> + make -j48 -s -C /dev/shm/kbuild/linux.33946/current ARCH=powerpc HOSTCC=gcc CROSS_COMPILE=powerpc64-suse-linux- clean
>> TypeError: '_sre.SRE_Match' object is not subscriptable
>>
>> Fixes: 8a76145a2ec2 ("bpf: explicitly define BPF_FUNC_xxx integer values")
>>
>> Signed-off-by: Michal Suchanek <[email protected]>
>> ---
>> scripts/bpf_doc.py | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py
>> index e8d90829f23e..38d51e05c7a2 100755
>> --- a/scripts/bpf_doc.py
>> +++ b/scripts/bpf_doc.py
>> @@ -271,7 +271,7 @@ class HeaderParser(object):
>> if capture:
>> fn_defines_str += self.line
>> helper_name = capture.expand(r'bpf_\1')
>> - self.helper_enum_vals[helper_name] = int(capture[2])
>> + self.helper_enum_vals[helper_name] = int(capture.group(2))
>> self.helper_enum_pos[helper_name] = i
>> i += 1
>> else:
>
> Thanks, the change looks good.
>
> Acked-by: Quentin Monnet <[email protected]>
>
> Would be nice to have a bit more context in the commit log: As I
> understand, Match objects have been scriptable since Python 3.6 (2016).
>
> Reference: https://docs.python.org/3/whatsnew/3.6.html#re

Agree, Michal, could you improve the commit description as it's a bit terse
as-is and then resubmit your patch.

Thanks,
Daniel

2023-01-09 11:50:15

by Michal Suchánek

[permalink] [raw]
Subject: [PATCH] bpf_doc: Fix build error with older python versions

The ability to subscript match result as an array is only available
since python 3.6. Existing code in bpf_doc uses the older group()
interface but commit 8a76145a2ec2 adds code using the new interface.

Use the old interface consistently to avoid build error on older
distributions like the below:

+ make -j48 -s -C /dev/shm/kbuild/linux.33946/current ARCH=powerpc HOSTCC=gcc CROSS_COMPILE=powerpc64-suse-linux- clean
TypeError: '_sre.SRE_Match' object is not subscriptable

Fixes: 8a76145a2ec2 ("bpf: explicitly define BPF_FUNC_xxx integer values")

Signed-off-by: Michal Suchanek <[email protected]>
Acked-by: Quentin Monnet <[email protected]>
---
v2: Add more details to commit message
---
scripts/bpf_doc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/bpf_doc.py b/scripts/bpf_doc.py
index e8d90829f23e..38d51e05c7a2 100755
--- a/scripts/bpf_doc.py
+++ b/scripts/bpf_doc.py
@@ -271,7 +271,7 @@ class HeaderParser(object):
if capture:
fn_defines_str += self.line
helper_name = capture.expand(r'bpf_\1')
- self.helper_enum_vals[helper_name] = int(capture[2])
+ self.helper_enum_vals[helper_name] = int(capture.group(2))
self.helper_enum_pos[helper_name] = i
i += 1
else:
--
2.35.3

2023-01-12 01:39:44

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH] bpf_doc: Fix build error with older python versions

Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <[email protected]>:

On Mon, 9 Jan 2023 12:34:42 +0100 you wrote:
> The ability to subscript match result as an array is only available
> since python 3.6. Existing code in bpf_doc uses the older group()
> interface but commit 8a76145a2ec2 adds code using the new interface.
>
> Use the old interface consistently to avoid build error on older
> distributions like the below:
>
> [...]

Here is the summary with links:
- bpf_doc: Fix build error with older python versions
https://git.kernel.org/bpf/bpf-next/c/5fbea42387eb

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html