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

Michal Suchanek posted 1 patch 2 years, 8 months ago
There is a newer version of this series
scripts/bpf_doc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH] bpf_doc: Fix build error with older python versions
Posted by Michal Suchanek 2 years, 8 months ago
+ 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 <msuchanek@suse.de>
---
 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
Re: [PATCH] bpf_doc: Fix build error with older python versions
Posted by Quentin Monnet 2 years, 8 months ago
2023-01-06 12:40 UTC+0100 ~ Michal Suchanek <msuchanek@suse.de>
> + 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 <msuchanek@suse.de>
> ---
>  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 <quentin@isovalent.com>

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
Re: [PATCH] bpf_doc: Fix build error with older python versions
Posted by Daniel Borkmann 2 years, 8 months ago
On 1/6/23 1:11 PM, Quentin Monnet wrote:
> 2023-01-06 12:40 UTC+0100 ~ Michal Suchanek <msuchanek@suse.de>
>> + 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 <msuchanek@suse.de>
>> ---
>>   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 <quentin@isovalent.com>
> 
> 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
[PATCH] bpf_doc: Fix build error with older python versions
Posted by Michal Suchanek 2 years, 8 months ago
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 <msuchanek@suse.de>
Acked-by: Quentin Monnet <quentin@isovalent.com>
---
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
Re: [PATCH] bpf_doc: Fix build error with older python versions
Posted by patchwork-bot+netdevbpf@kernel.org 2 years, 8 months ago
Hello:

This patch was applied to bpf/bpf-next.git (master)
by Andrii Nakryiko <andrii@kernel.org>:

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