[LEDE-DEV] Tools prerequisites: should python2 requirement be upgraded to python3?

Hannu Nyman hannu.nyman at iki.fi
Sat Oct 21 01:04:38 PDT 2017


I upgraded my buildhost to new Ubuntu 17.10 and noticed that Ubuntu has 
dropped python 2.7 from the packages installed by default, and only python3 
is installed. There is no symlink for "python", so LEDE prerequisite check fails.

LEDE prerequisite check looks for Python2:

https://github.com/lede-project/source/blob/master/include/prereq-build.mk#L141

  $(eval $(call SetupHostCommand,python,Please install Python 2.x, \
     python2.7 -V 2>&1 | grep Python, \
     python2 -V 2>&1 | grep Python, \
     python -V 2>&1 | grep Python))

Ubuntu 17.10 does not provide a symlink for plain "python", likely because 
they want to keep users aware that python3 is the version in use. So the 
prerequisite check fails. That will hurt users with build systems that are 
python3-only by default.

Installing the old python 2.7 naturally helped, but I started to wonder if 
there is a really good reason why LEDE buildhost does not use python3 and 
python2 is required?

rules.mk seems to define python as  PYTHON:=python

I wonder if that could be enhanced to use python3 if available.

Of the build tools, "scons" seems to use/check for python2 (in 
tools/scons/files/pywrap.sh ), but based on internet resources, scons itself 
works ok also with python3.

I have not tested how well the build would go with python symlinked to 
python3, but just wanted raise the issue that some popular Linux distros are 
moving towards python3 now.

Python2 has EOL set for 2020, so there is still time to move on, but we might 
be ahead of the deadline.





More information about the Lede-dev mailing list