Re: [PATCH 1/2] pylibfdt: fix swig build in install

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



On Thu, Feb 03, 2022 at 12:04:07PM -0600, Rob Herring wrote:
> A 'pip install' is silently broken unless the tree is dirty and contains
> pylibfdt/libfdt.py. The problem is a known issue[1] with SWIG and
> setuptools where the 'build_py' stage needing module.py runs before
> the 'build_ext' stage which generates it. The work-around is to override
> 'build_py' to run 'build_ext' first.
> 
> [1] https://stackoverflow.com/questions/50239473/building-a-module-with-setuptools-and-swig
> 
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>

Applied, thanks.

> ---
>  MANIFEST.in | 1 -
>  setup.py    | 8 ++++++++
>  2 files changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/MANIFEST.in b/MANIFEST.in
> index d9fb71b77a65..6e7244d195e6 100644
> --- a/MANIFEST.in
> +++ b/MANIFEST.in
> @@ -6,7 +6,6 @@ include GPL
>  include BSD-2-Clause
>  include setup.py
>  include pylibfdt/libfdt.i
> -include pylibfdt/*.py
>  include libfdt/libfdt.h
>  include libfdt/fdt.h
>  include libfdt/libfdt_env.h
> diff --git a/setup.py b/setup.py
> index 029aa6182221..a8e54a361512 100755
> --- a/setup.py
> +++ b/setup.py
> @@ -11,6 +11,8 @@ Written by Simon Glass <sjg@xxxxxxxxxxxx>
>  """
>  
>  from setuptools import setup, Extension
> +from setuptools.command.build_py import build_py as _build_py
> +
>  import os
>  import re
>  import sys
> @@ -40,11 +42,17 @@ libfdt_module = Extension(
>      swig_opts=['-I' + os.path.join(srcdir, 'libfdt')],
>  )
>  
> +class build_py(_build_py):
> +    def run(self):
> +        self.run_command("build_ext")
> +        return super().run()
> +
>  setup(
>      name='libfdt',
>      use_scm_version={
>          "root": srcdir,
>      },
> +    cmdclass = {'build_py' : build_py},
>      setup_requires = ['setuptools_scm'],
>      author='Simon Glass',
>      author_email='sjg@xxxxxxxxxxxx',

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux