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

Peter Seiderer ps.report at gmx.net
Mon Dec 17 07:28:36 UTC 2018


Hello Adam,

On Sun, 16 Dec 2018 18:27:33 -0500, aduskett at gmail.com wrote:

> 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
> 

Or avoid the python call (used only for re-generation of already delivered files)
by patching libglib2 (fixes the libglib2 build in case of python2.7 without
proper xml.parsers.expat installation):

diff --git a/gio/Makefile.am b/gio/Makefile.am
index 3039e00..b7ba228 100644
--- a/gio/Makefile.am
+++ b/gio/Makefile.am
@@ -101,7 +101,7 @@ GDBUS_PYTHON_DEPS = 					\
 	$(builddir)/gdbus-2.0/codegen/config.py 	\
 	$(srcdir)/gdbus-2.0/codegen/utils.py
 
-gdbus-daemon-generated.h gdbus-daemon-generated.c: $(srcdir)/dbus-daemon.xml $(GDBUS_PYTHON_DEPS)
+gdbus-daemon-generated.h gdbus-daemon-generated.c: $(srcdir)/dbus-daemon.xml
 	$(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \
 		UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \
 		$(PYTHON) $(srcdir)/gdbus-2.0/codegen/gdbus-codegen.in \

Regards,
Peter

> 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
> +	echo
> +	echo "You have python '$PYTHON_VERSION' installed.  Python >= 2.7 is required"
> +	exit 1;
> +fi
> +
>  if grep ^BR2_NEEDS_HOST_UTF8_LOCALE=y $BR2_CONFIG > /dev/null; then
>  	if ! which locale > /dev/null ; then
>  		echo



More information about the buildroot mailing list