diff mbox series

drm/msm: remove python 3.9 dependency for compiling msm

Message ID 20240507230440.3384949-1-quic_abhinavk@quicinc.com
State Accepted
Commit bb195358806847217efba98de62b7decec3b371f
Headers show
Series drm/msm: remove python 3.9 dependency for compiling msm | expand

Commit Message

Abhinav Kumar May 7, 2024, 11:04 p.m. UTC
Since commit 5acf49119630 ("drm/msm: import gen_header.py script from Mesa"),
compilation is broken on machines having python versions older than 3.9
due to dependency on argparse.BooleanOptionalAction.

Switch to use simple bool for the validate flag to remove the dependency.

Fixes: 5acf49119630 ("drm/msm: import gen_header.py script from Mesa")
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
---
 drivers/gpu/drm/msm/registers/gen_header.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Jani Nikula May 8, 2024, 8:43 a.m. UTC | #1
On Tue, 07 May 2024, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
> Since commit 5acf49119630 ("drm/msm: import gen_header.py script from Mesa"),
> compilation is broken on machines having python versions older than 3.9
> due to dependency on argparse.BooleanOptionalAction.

Is it now okay to require Python for the build? Not listed in
Documentation/process/changes.rst.

BR,
Jani.



>
> Switch to use simple bool for the validate flag to remove the dependency.
>
> Fixes: 5acf49119630 ("drm/msm: import gen_header.py script from Mesa")
> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>  drivers/gpu/drm/msm/registers/gen_header.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/registers/gen_header.py b/drivers/gpu/drm/msm/registers/gen_header.py
> index fc3bfdc991d2..3926485bb197 100644
> --- a/drivers/gpu/drm/msm/registers/gen_header.py
> +++ b/drivers/gpu/drm/msm/registers/gen_header.py
> @@ -538,7 +538,7 @@ class Parser(object):
>  		self.variants.add(reg.domain)
>  
>  	def do_validate(self, schemafile):
> -		if self.validate == False:
> +		if not self.validate:
>  			return
>  
>  		try:
> @@ -948,7 +948,8 @@ def main():
>  	parser = argparse.ArgumentParser()
>  	parser.add_argument('--rnn', type=str, required=True)
>  	parser.add_argument('--xml', type=str, required=True)
> -	parser.add_argument('--validate', action=argparse.BooleanOptionalAction)
> +	parser.add_argument('--validate', default=False, action='store_true')
> +	parser.add_argument('--no-validate', dest='validate', action='store_false')
>  
>  	subparsers = parser.add_subparsers()
>  	subparsers.required = True
Abhinav Kumar May 8, 2024, 4:52 p.m. UTC | #2
On 5/8/2024 1:43 AM, Jani Nikula wrote:
> On Tue, 07 May 2024, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>> Since commit 5acf49119630 ("drm/msm: import gen_header.py script from Mesa"),
>> compilation is broken on machines having python versions older than 3.9
>> due to dependency on argparse.BooleanOptionalAction.
> 
> Is it now okay to require Python for the build? Not listed in
> Documentation/process/changes.rst.
> 
> BR,
> Jani.
> 

The change to move gen_header.py to kernel is already part of the v6.10 
pull request.

This change only fixes the version dependency.

But, I agree we should update the changes.rst (better late than never).

Dmitry, can you pls suggest which version we want to list there?

I am hoping that after this change there are no further dependencies on 
python versions, so anything > EOL should be fine.

I am leaning towards v3.8

> 
> 
>>
>> Switch to use simple bool for the validate flag to remove the dependency.
>>
>> Fixes: 5acf49119630 ("drm/msm: import gen_header.py script from Mesa")
>> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
>> ---
>>   drivers/gpu/drm/msm/registers/gen_header.py | 5 +++--
>>   1 file changed, 3 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/msm/registers/gen_header.py b/drivers/gpu/drm/msm/registers/gen_header.py
>> index fc3bfdc991d2..3926485bb197 100644
>> --- a/drivers/gpu/drm/msm/registers/gen_header.py
>> +++ b/drivers/gpu/drm/msm/registers/gen_header.py
>> @@ -538,7 +538,7 @@ class Parser(object):
>>   		self.variants.add(reg.domain)
>>   
>>   	def do_validate(self, schemafile):
>> -		if self.validate == False:
>> +		if not self.validate:
>>   			return
>>   
>>   		try:
>> @@ -948,7 +948,8 @@ def main():
>>   	parser = argparse.ArgumentParser()
>>   	parser.add_argument('--rnn', type=str, required=True)
>>   	parser.add_argument('--xml', type=str, required=True)
>> -	parser.add_argument('--validate', action=argparse.BooleanOptionalAction)
>> +	parser.add_argument('--validate', default=False, action='store_true')
>> +	parser.add_argument('--no-validate', dest='validate', action='store_false')
>>   
>>   	subparsers = parser.add_subparsers()
>>   	subparsers.required = True
>
Stephen Boyd May 8, 2024, 10 p.m. UTC | #3
Quoting Jani Nikula (2024-05-08 01:43:56)
> On Tue, 07 May 2024, Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
> > Since commit 5acf49119630 ("drm/msm: import gen_header.py script from Mesa"),
> > compilation is broken on machines having python versions older than 3.9
> > due to dependency on argparse.BooleanOptionalAction.
>
> Is it now okay to require Python for the build? Not listed in
> Documentation/process/changes.rst.
>

I doubt it is ok. Perl scripts have been replaced with shell scripts in
the past to speed up the build process. See commit e0e2fa4b515c
("headers_install.pl: convert to headers_install.sh") as an example.
Doug Anderson May 9, 2024, 12:28 a.m. UTC | #4
Hi,

On Tue, May 7, 2024 at 4:05 PM Abhinav Kumar <quic_abhinavk@quicinc.com> wrote:
>
> Since commit 5acf49119630 ("drm/msm: import gen_header.py script from Mesa"),
> compilation is broken on machines having python versions older than 3.9
> due to dependency on argparse.BooleanOptionalAction.
>
> Switch to use simple bool for the validate flag to remove the dependency.
>
> Fixes: 5acf49119630 ("drm/msm: import gen_header.py script from Mesa")
> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>  drivers/gpu/drm/msm/registers/gen_header.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

No idea if we're supposed to allow python as a build dependency. That
being said, I can confirm that this fixes the problem for me since I
ran into it too [1].

Tested-by: Douglas Anderson <dianders@chromium.org>

[1] https://lore.kernel.org/r/CAD=FV=XnpS-=CookKxzFM8og9WCSEMxfESmfTYH811438qg4ng@mail.gmail.com
Thierry Reding May 30, 2024, 4:54 p.m. UTC | #5
On Wed May 8, 2024 at 1:04 AM CEST, Abhinav Kumar wrote:
> Since commit 5acf49119630 ("drm/msm: import gen_header.py script from Mesa"),
> compilation is broken on machines having python versions older than 3.9
> due to dependency on argparse.BooleanOptionalAction.
>
> Switch to use simple bool for the validate flag to remove the dependency.
>
> Fixes: 5acf49119630 ("drm/msm: import gen_header.py script from Mesa")
> Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
> ---
>  drivers/gpu/drm/msm/registers/gen_header.py | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Irrespective of whether we want to allow Python as a build dependency or
not, it already is since v6.10-rc1, so in the meantime I'm going to
apply this to drm-misc-fixes to unbreak things.

If we decide that we don't want the extra dependency we need revert the
whole generation infrastructure.

Thierry
diff mbox series

Patch

diff --git a/drivers/gpu/drm/msm/registers/gen_header.py b/drivers/gpu/drm/msm/registers/gen_header.py
index fc3bfdc991d2..3926485bb197 100644
--- a/drivers/gpu/drm/msm/registers/gen_header.py
+++ b/drivers/gpu/drm/msm/registers/gen_header.py
@@ -538,7 +538,7 @@  class Parser(object):
 		self.variants.add(reg.domain)
 
 	def do_validate(self, schemafile):
-		if self.validate == False:
+		if not self.validate:
 			return
 
 		try:
@@ -948,7 +948,8 @@  def main():
 	parser = argparse.ArgumentParser()
 	parser.add_argument('--rnn', type=str, required=True)
 	parser.add_argument('--xml', type=str, required=True)
-	parser.add_argument('--validate', action=argparse.BooleanOptionalAction)
+	parser.add_argument('--validate', default=False, action='store_true')
+	parser.add_argument('--no-validate', dest='validate', action='store_false')
 
 	subparsers = parser.add_subparsers()
 	subparsers.required = True