Broken powerpc compilation since commit 141659187667 ("pylibfdt: Fix disable version normalization")

Pali Rohár pali at kernel.org
Sat Jan 7 22:51:08 CET 2023


On Saturday 07 January 2023 16:45:16 Tom Rini wrote:
> On Sat, Jan 07, 2023 at 10:36:25PM +0100, Pali Rohár wrote:
> > On Saturday 07 January 2023 16:28:05 Tom Rini wrote:
> > > On Sat, Jan 07, 2023 at 10:25:43PM +0100, Pali Rohár wrote:
> > > > On Saturday 07 January 2023 16:24:00 Tom Rini wrote:
> > > > > On Sat, Jan 07, 2023 at 10:23:06PM +0100, Pali Rohár wrote:
> > > > > 
> > > > > > Hello! Now I was going to test urgent release workaround/fix for this
> > > > > > issue https://lists.denx.de/pipermail/u-boot/2023-January/503900.html
> > > > > > but I figured out that I cannot compile u-boot from master branch for
> > > > > > powerpc platform. make throws following error:
> > > > > > 
> > > > > >       LDS     u-boot.lds
> > > > > >       HOSTLD  scripts/dtc/dtc
> > > > > >     Traceback (most recent call last):
> > > > > >       File "scripts/dtc/pylibfdt/setup.py", line 23, in <module>
> > > > > >         from setuptools import setup, Extension, sic
> > > > > >     ImportError: cannot import name 'sic' from 'setuptools' (/usr/lib/python3/dist-packages/setuptools/__init__.py)
> > > > > >     make[2]: *** [scripts/dtc/pylibfdt/Makefile:33: rebuild] Error 1
> > > > > >     make[1]: *** [scripts/Makefile.build:398: scripts/dtc/pylibfdt] Error 2
> > > > > >     make: *** [Makefile:2031: scripts_dtc] Error 2
> > > > > > 
> > > > > > git bisect showed me that problematic commit is one from yesterday:
> > > > > > 
> > > > > > 141659187667 ("pylibfdt: Fix disable version normalization")
> > > > > > 
> > > > > > Reverting it on top of master branch compiled u-boot for powerpc without
> > > > > > issues.
> > > > > > 
> > > > > > It looks like a bit complicated issue as that commit is fixing another
> > > > > > commit from two weeks before:
> > > > > > 
> > > > > > 440098c42e73 ("pylibfdt: Fix version normalization warning")
> > > > > > 
> > > > > > Tom, do you have an idea how to handle this?
> > > > > 
> > > > > What host distro are you on?
> > > > 
> > > > On this build machine I have currently Debian 10.
> > > 
> > > OK, and does undoing the mentioned commit and trying:
> > > https://github.com/u-boot/u-boot/pull/266/commits/eb76bf5864b53938db639867ad5d75893b5a571e
> > > instead work there?
> > 
> > I checkout master branch, then I reverted commit 141659187667 and then
> > I applied a495b8f497dc from github. But it does not work, it throws error:
> > 
> >       LDS     u-boot.lds
> >       HOSTCC  scripts/dtc/dtc-lexer.lex.o
> >       HOSTCC  scripts/dtc/dtc-parser.tab.o
> >     Traceback (most recent call last):
> >       File "scripts/dtc/pylibfdt/setup.py", line 25, in <module>
> >         from packaging import version
> >     ModuleNotFoundError: No module named 'packaging'
> >     make[2]: *** [scripts/dtc/pylibfdt/Makefile:33: rebuild] Error 1
> >     make[1]: *** [scripts/Makefile.build:398: scripts/dtc/pylibfdt] Error 2
> >     make[1]: *** Waiting for unfinished jobs....
> >     make: *** [Makefile:2031: scripts_dtc] Error 2
> 
> Try this, which should just bring us back to printing an annoying but
> harmless warning:
> diff --git a/scripts/dtc/pylibfdt/setup.py b/scripts/dtc/pylibfdt/setup.py
> index c07f65e6bcaf..8baae08770ca 100755
> --- a/scripts/dtc/pylibfdt/setup.py
> +++ b/scripts/dtc/pylibfdt/setup.py
> @@ -20,12 +20,17 @@ allows this script to be run stand-alone, e.g.:
>      ./pylibfdt/setup.py install [--prefix=...]
>  """
>  
> -from setuptools import setup, Extension, sic
> +from setuptools import setup, Extension
>  from setuptools.command.build_py import build_py as _build_py
>  import os
>  import re
>  import sys
>  
> +try:
> +    from setuptools import sic
> +except ImportError:
> +    pass
> +
>  srcdir = os.path.dirname(__file__)
>  
>  with open(os.path.join(srcdir, "../README"), "r") as fh:
> @@ -113,7 +118,10 @@ progname = sys.argv[0]
>  files = os.environ.get('SOURCES', '').split()
>  cflags = os.environ.get('CPPFLAGS', '').split()
>  objdir = os.environ.get('OBJDIR')
> -version = os.environ.get('VERSION')
> +try:
> +    version = sic(os.environ.get('VERSION'))
> +except:
> +    version = os.environ.get('VERSION')
>  swig_opts = os.environ.get('SWIG_OPTS', '').split()
>  
>  # If we were called directly rather than through our Makefile (which is often
> @@ -137,7 +145,7 @@ class build_py(_build_py):
>  
>  setup(
>      name='libfdt',
> -    version=sic(version),
> +    version=version,
>      cmdclass = {'build_py' : build_py},
>      author='Simon Glass',
>      author_email='sjg at chromium.org',
> 
> -- 
> Tom

This one works fine. It prints that UserWarning but u-boot.bin is built.


More information about the U-Boot mailing list