[Buildroot] [PATCH v3 1/2] dependencies.sh: Check for a host python version >= 2.7

Peter Korsgaard peter at korsgaard.com
Mon Feb 4 12:19:35 UTC 2019


>>>>> "aduskett" == aduskett  <aduskett at gmail.com> writes:

 > From: Adam Duskett <Aduskett at gmail.com>
 > Older distributions such as CentOS6 come with python2.6, which causes build
 > failures in packages such as host-libglib2 because they require python2.7 and
 > above.

 > host-libglib2 will produce the error message:
 > /bin/sh: python2.7: command not found

 > Python2.7 is a hard-coded value in configure.ac. If one changes the value to
 > just "python," the following stack trace is produced:

 > Traceback (most recent call last):
 >   File "./gdbus-2.0/codegen/gdbus-codegen.in", line 55, in <module>
 >     self.outfile.write(LICENSE_STR.format(config.VERSION))
 > ValueError    : sys.exit(codegen_main.codegen_main())
 > zero length field name in format

 > Instead of supporting an ancient version of Python that had its support ended
 > in October os 2013, it would be more pragmatic only to support Python2.7 and
 > above.

 > Luckily; CentOS6 has the centos-release-scl repository, which allows users to
 > install python2.7, and Debian 8 comes with Python2.7 already, making this patch
 > relatively low impact.

 > Signed-off-by: Adam Duskett <Aduskett at gmail.com>
 > ---
 > Changes v1 -> v2:
 >   - Updated version requirement in prerequisite.txt

 > Changes v2 -> v3:
 >   - Added more precise language to the commit message.
 >   - Added an example stack trace and error caused by python2.6 and
 >     host-libglib2.

 >  support/dependencies/dependencies.sh | 8 ++++++++
 >  1 file changed, 8 insertions(+)

 > diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
 > index 58c34d880f..d0b6bdc23a 100755
 > --- a/support/dependencies/dependencies.sh
 > +++ b/support/dependencies/dependencies.sh
 > @@ -181,6 +181,14 @@ if test "${missing_progs}" = "yes" ; then
 >  	exit 1
 >  fi
 
 > +# Check that the python version is at least 2.7
 > +PYTHON_VERSION=$(python -V 2>&1 |awk '{print $2}')
 > +if [ $(echo $PYTHON_VERSION |sed -e 's/\.//g') -lt 2700 ]; then

This fails on the (fairly unlikely case) of 2.7.x where x < 10, so I
have changed it to:

PYTHON_VERSION=$(python -V 2>&1 |awk '{ split($2, v, "."); print v[1] v[2] }')

To only look at the major.minor part and committed, thanks.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list