[U-Boot] [RFC PATCH v2 0/2] Make Python scripts compatible with older versions

Masahiro Yamada yamada.m at jp.panasonic.com
Mon Aug 4 14:00:46 CEST 2014


Hi Igor,


On Mon, 04 Aug 2014 14:21:32 +0300
Igor Grinberg <grinberg at compulab.co.il> wrote:

> Hi Masahiro,
> 
> 
> On 08/04/14 13:23, Masahiro Yamada wrote:
> > 
> > It was reported by Miao Yan that the kconfig-related Python scripts
> > are not working on Python 2.4.
> > 
> > Do we have any consensus in terms of Python version requirement?
> > 
> > This series avoids using "with ... as ..." and "except ... as ..."
> > statements.  But "with ... as ..." is used everywhere in buildman,
> > which means buildman requires at least Python 2.6.
> 
> Hmmmm.... Funny... a bit more fire:
> 
> -------------------cut----------------------------
> $ make cm_t335_defconfig
>   HOSTCC  scripts/basic/fixdep
>   GEN     /home/grinberg/bin-temp/u-boot/Makefile
>   File "/home/grinberg/git-repo/u-boot/scripts/multiconfig.py", line 344
>     print "*** Default configuration is based on '%s'" % KBUILD_DEFCONFIG
>                                                      ^
> SyntaxError: invalid syntax
> make[1]: *** [cm_t335_defconfig] Error 1
> make: *** [sub-make] Error 2
> 
> $ python --version
> Python 3.3.5
> -------------------cut----------------------------


Sorry, the script does not work on 3.x

I think
make PYTHON=python2  cm_t335_defconfig
will work if Python 2.x exists as "python2" in your command path.


> Apparently, print should be used as function - with parenthesis...

Yes, a famous difference between 2.x and 3.x
"print" is a statement in 2.x but a function in 3.x.

At first, when I was writing tools/genboardscfg.py,
I tried to make it compatible with both 2.x and 3.x.

But I found it was more difficult than I had expected
because of the varous differences. Finially I gave up.

As for scripts/multiconfig.py,
perhaps I can modify it for 3.x compatible.


> It seems that those scripts only work on Python versions 2.6 - 2.7?

Yes.


> > It is true we hope tools can work on broad range of versions,
> > but it also means we have more restrictions when writing Python scripts.
> > 
> > I have no idea which version we should expect at least.
> > Your comments are welcome.
> 
> I'd propose to not bring any new dependency on python at all...
> At least not for the simple task of building U-Boot...
> Can't we use a bit more stable API then this of python?

Yeah, some people want to run it on older version such as 2.4.x
and some people want to use Python 3.x.

Now I found it so difficult to satisfy everyone.
Maybe I made a mistake in the first place.



Best Regards
Masahiro Yamada



More information about the U-Boot mailing list