forked from pool/python-pythran
		
	Accepting request 989982 from home:bnavigator:branches:devel:languages:python
- Add pythran-pr1984-fixdistutils.patch * gh#serge-sans-paille/pythran#1984 * Fixes gh#serge-sans-paille/pythran#1984 with setuptools >= 60 OBS-URL: https://build.opensuse.org/request/show/989982 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:numeric/python-pythran?expand=0&rev=6
This commit is contained in:
		| @@ -1,3 +1,10 @@ | |||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Mon Jul 18 12:24:47 UTC 2022 - Ben Greiner <code@bnavigator.de> | ||||||
|  |  | ||||||
|  | - Add pythran-pr1984-fixdistutils.patch | ||||||
|  |   * gh#serge-sans-paille/pythran#1984 | ||||||
|  |   * Fixes gh#serge-sans-paille/pythran#1984 with setuptools >= 60 | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ||||||
| Tue Mar 15 07:59:46 UTC 2022 - Martin Liška <mliska@suse.cz> | Tue Mar 15 07:59:46 UTC 2022 - Martin Liška <mliska@suse.cz> | ||||||
|  |  | ||||||
|   | |||||||
| @@ -54,6 +54,8 @@ URL:            https://github.com/serge-sans-paille/pythran | |||||||
| Source0:        https://github.com/serge-sans-paille/pythran/archive/refs/tags/%{version}.tar.gz#/pythran-%{version}-gh.tar.gz | Source0:        https://github.com/serge-sans-paille/pythran/archive/refs/tags/%{version}.tar.gz#/pythran-%{version}-gh.tar.gz | ||||||
| Source99:       python-pythran-rpmlintrc | Source99:       python-pythran-rpmlintrc | ||||||
| Patch0:         gcc12-fixes.patch | Patch0:         gcc12-fixes.patch | ||||||
|  | # PATCH-FIX-UPSTREAM pythran-pr1984-fixdistutils.patch gh#serge-sans-paille/pythran#1984 | ||||||
|  | Patch1:         pythran-pr1984-fixdistutils.patch | ||||||
| BuildRequires:  %{python_module setuptools} | BuildRequires:  %{python_module setuptools} | ||||||
| BuildRequires:  fdupes | BuildRequires:  fdupes | ||||||
| BuildRequires:  python-rpm-macros | BuildRequires:  python-rpm-macros | ||||||
| @@ -73,6 +75,7 @@ Requires:       python-numpy-devel | |||||||
| # /SECTION | # /SECTION | ||||||
| %if %{with test} | %if %{with test} | ||||||
| BuildRequires:  %{python_module ipython} | BuildRequires:  %{python_module ipython} | ||||||
|  | BuildRequires:  %{python_module pip} | ||||||
| BuildRequires:  %{python_module pytest-xdist} | BuildRequires:  %{python_module pytest-xdist} | ||||||
| BuildRequires:  %{python_module pytest} | BuildRequires:  %{python_module pytest} | ||||||
| BuildRequires:  %{python_module pythran = %{version}} | BuildRequires:  %{python_module pythran = %{version}} | ||||||
| @@ -87,12 +90,10 @@ BuildArch:      noarch | |||||||
| Ahead of Time compiler for numeric kernels | Ahead of Time compiler for numeric kernels | ||||||
|  |  | ||||||
| %prep | %prep | ||||||
| %setup -q -n pythran-%{version} | %autosetup -p1 -n pythran-%{version} | ||||||
| %patch0 -p1 |  | ||||||
|  |  | ||||||
| find -name '*.hpp' -exec chmod -x {} + | find -name '*.hpp' -exec chmod -x {} + | ||||||
| sed -i '1{/env python/d}' pythran/run.py | sed -i '1{/env python/d}' pythran/run.py | ||||||
| sed -i "s/'python'/sys.executable/" pythran/tests/test_distutils.py |  | ||||||
|  |  | ||||||
| # Remove bundled header libs and use the ones from system | # Remove bundled header libs and use the ones from system | ||||||
| rm -r third_party/boost | rm -r third_party/boost | ||||||
| @@ -101,6 +102,13 @@ cat >> setup.cfg << EOF | |||||||
| no_boost=True | no_boost=True | ||||||
| EOF | EOF | ||||||
|  |  | ||||||
|  | # Register pytest.mark.module | ||||||
|  | cat >> pytest.ini << EOF | ||||||
|  | # https://github.com/serge-sans-paille/pythran/pull/286 | ||||||
|  | [pytest] | ||||||
|  | markers = | ||||||
|  |     module: execute module annotate class | ||||||
|  | EOF | ||||||
| # The tests have some cflags in them | # The tests have some cflags in them | ||||||
| # We need to adapt the flags to play nicely with other obs flags | # We need to adapt the flags to play nicely with other obs flags | ||||||
| # E.g. fortify source implies at least -O1 | # E.g. fortify source implies at least -O1 | ||||||
|   | |||||||
							
								
								
									
										163
									
								
								pythran-pr1984-fixdistutils.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										163
									
								
								pythran-pr1984-fixdistutils.patch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,163 @@ | |||||||
|  | From 934e31d86a6721c378598d4000c3ee39c59a154f Mon Sep 17 00:00:00 2001 | ||||||
|  | From: serge-sans-paille <serge.guelton@telecom-bretagne.eu> | ||||||
|  | Date: Sun, 3 Apr 2022 11:22:17 +0200 | ||||||
|  | Subject: [PATCH] Harden distutils tests | ||||||
|  |  | ||||||
|  | Use correct executable when running import tests. | ||||||
|  | Use pip install instead of setup.py install to test install. | ||||||
|  | Should fix #1981 | ||||||
|  | --- | ||||||
|  |  pythran/tests/test_distutils.py | 53 ++++++++++++++++++--------------- | ||||||
|  |  1 file changed, 29 insertions(+), 24 deletions(-) | ||||||
|  |  | ||||||
|  | Index: pythran-0.11.0/pythran/tests/test_distutils.py | ||||||
|  | =================================================================== | ||||||
|  | --- pythran-0.11.0.orig/pythran/tests/test_distutils.py | ||||||
|  | +++ pythran-0.11.0/pythran/tests/test_distutils.py | ||||||
|  | @@ -10,6 +10,8 @@ cwd = os.path.dirname(__file__) | ||||||
|  |  python_version = "python{}.{}".format(sys.version_info.major, | ||||||
|  |                                        sys.version_info.minor) | ||||||
|  |   | ||||||
|  | +python = sys.executable | ||||||
|  | + | ||||||
|  |  def find_so(name, path): | ||||||
|  |      for root, dirs, files in os.walk(path): | ||||||
|  |          for filename in files: | ||||||
|  | @@ -19,33 +21,35 @@ def find_so(name, path): | ||||||
|  |  class TestDistutils(unittest.TestCase): | ||||||
|  |   | ||||||
|  |      def test_setup_build(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'build'], | ||||||
|  | +        check_call([python, 'setup.py', 'build'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils')) | ||||||
|  | -        check_call(['python', 'setup.py', 'install', '--prefix=demo_install'], | ||||||
|  | +        check_call([python, '-m', 'pip', 'install', '.', '--prefix=demo_install'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils')) | ||||||
|  |   | ||||||
|  |          base = os.path.join(cwd, 'test_distutils', 'demo_install',) | ||||||
|  |          libdir = os.path.join(base, 'lib') | ||||||
|  |          if not os.path.isdir(libdir): | ||||||
|  |              libdir = os.path.join(base, 'lib64') | ||||||
|  | -        check_call(['python', '-c', 'import demo'], | ||||||
|  | -                   cwd=os.path.join(libdir, python_version, 'site-packages')) | ||||||
|  | -        check_call(['python', 'setup.py', 'clean'], | ||||||
|  | + | ||||||
|  | +        local_env = os.environ.copy() | ||||||
|  | +        local_env['PYTHONPATH'] = os.path.join(libdir, python_version, 'site-packages') | ||||||
|  | +        check_call([python, '-c', 'import demo'], env=local_env) | ||||||
|  | +        check_call([python, 'setup.py', 'clean'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils', 'demo_install')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils', 'build')) | ||||||
|  |   | ||||||
|  |      def test_setup_sdist_install(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'sdist', "--dist-dir=sdist"], | ||||||
|  | +        check_call([python, 'setup.py', 'sdist', "--dist-dir=sdist"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils')) | ||||||
|  |          check_call(['tar', 'xzf', 'demo-1.0.tar.gz'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils', 'sdist')) | ||||||
|  | -        check_call(['python', 'setup.py', 'install', '--prefix=demo_install'], | ||||||
|  | +        check_call([python, 'setup.py', 'install', '--prefix=demo_install'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils', 'sdist', 'demo-1.0')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils', 'sdist')) | ||||||
|  |   | ||||||
|  |      def test_setup_bdist_install(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"], | ||||||
|  | +        check_call([python, 'setup.py', 'bdist', "--dist-dir=bdist"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils')) | ||||||
|  |          dist_path = os.path.join(cwd, 'test_distutils', 'bdist') | ||||||
|  |          tgz = [f for f in os.listdir(dist_path) if f.endswith(".tar.gz")][0] | ||||||
|  | @@ -56,7 +60,7 @@ class TestDistutils(unittest.TestCase): | ||||||
|  |          shutil.rmtree(dist_path) | ||||||
|  |   | ||||||
|  |      def test_setup_wheel_install(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'bdist_wheel', "--dist-dir=bdist_wheel"], | ||||||
|  | +        check_call([python, 'setup.py', 'bdist_wheel', "--dist-dir=bdist_wheel"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_setuptools')) | ||||||
|  |          dist_path = os.path.join(cwd, 'test_distutils_setuptools', 'bdist_wheel') | ||||||
|  |          wheel_dir = 'wheeeeeeel' | ||||||
|  | @@ -69,33 +73,34 @@ class TestDistutils(unittest.TestCase): | ||||||
|  |   | ||||||
|  |   | ||||||
|  |      def test_setup_build2(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'build'], | ||||||
|  | +        check_call([python, 'setup.py', 'build'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged')) | ||||||
|  | -        check_call(['python', 'setup.py', 'install', '--prefix=demo_install2'], | ||||||
|  | +        check_call([python, '-m', 'pip', 'install', '.', '--prefix=demo_install2'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged')) | ||||||
|  |   | ||||||
|  |          base = os.path.join(cwd, 'test_distutils_packaged', 'demo_install2',) | ||||||
|  |          libdir = os.path.join(base, 'lib') | ||||||
|  |          if not os.path.isdir(libdir): | ||||||
|  |              libdir = os.path.join(base, 'lib64') | ||||||
|  | -        check_call(['python', '-c', 'import demo2.a'], | ||||||
|  | -                   cwd=os.path.join(libdir, python_version, 'site-packages')) | ||||||
|  | -        check_call(['python', 'setup.py', 'clean'], | ||||||
|  | +        local_env = os.environ.copy() | ||||||
|  | +        local_env['PYTHONPATH'] = os.path.join(libdir, python_version, 'site-packages') | ||||||
|  | +        check_call([python, '-c', 'import demo2.a'], env=local_env) | ||||||
|  | +        check_call([python, 'setup.py', 'clean'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils_packaged', 'demo_install2')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils_packaged', 'build')) | ||||||
|  |   | ||||||
|  |      def test_setup_sdist_install2(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'sdist', "--dist-dir=sdist2"], | ||||||
|  | +        check_call([python, 'setup.py', 'sdist', "--dist-dir=sdist2"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged')) | ||||||
|  |          check_call(['tar', 'xzf', 'demo2-1.0.tar.gz'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged', 'sdist2')) | ||||||
|  | -        check_call(['python', 'setup.py', 'install', '--prefix=demo_install2'], | ||||||
|  | +        check_call([python, 'setup.py', 'install', '--prefix=demo_install2'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged', 'sdist2', 'demo2-1.0')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils_packaged', 'sdist2')) | ||||||
|  |   | ||||||
|  |      def test_setup_bdist_install2(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"], | ||||||
|  | +        check_call([python, 'setup.py', 'bdist', "--dist-dir=bdist"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_packaged')) | ||||||
|  |          dist_path = os.path.join(cwd, 'test_distutils_packaged', 'bdist') | ||||||
|  |          tgz = [f for f in os.listdir(dist_path) if f.endswith(".tar.gz")][0] | ||||||
|  | @@ -106,34 +111,34 @@ class TestDistutils(unittest.TestCase): | ||||||
|  |          shutil.rmtree(dist_path) | ||||||
|  |   | ||||||
|  |      def test_setup_build3(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'build'], | ||||||
|  | +        check_call([python, 'setup.py', 'build'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy')) | ||||||
|  | -        check_call(['python', 'setup.py', 'install', '--prefix=demo_install3'], | ||||||
|  | +        check_call([python, 'setup.py', 'install', '--prefix=demo_install3'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy')) | ||||||
|  |   | ||||||
|  |          base = os.path.join(cwd, 'test_distutils_numpy', 'demo_install3',) | ||||||
|  |          libdir = os.path.join(base, 'lib') | ||||||
|  |          if not os.path.isdir(libdir): | ||||||
|  |              libdir = os.path.join(base, 'lib64') | ||||||
|  | -        check_call(['python', '-c', 'import a'], | ||||||
|  | +        check_call([python, '-c', 'import a'], | ||||||
|  |                     cwd=os.path.join(libdir, python_version, 'site-packages', | ||||||
|  |                                      'demo3')) | ||||||
|  | -        check_call(['python', 'setup.py', 'clean'], | ||||||
|  | +        check_call([python, 'setup.py', 'clean'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils_numpy', 'demo_install3')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils_numpy', 'build')) | ||||||
|  |   | ||||||
|  |      def test_setup_sdist_install3(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'sdist', "--dist-dir=sdist3"], | ||||||
|  | +        check_call([python, 'setup.py', 'sdist', "--dist-dir=sdist3"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy')) | ||||||
|  |          check_call(['tar', 'xzf', 'demo3-1.0.tar.gz'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy', 'sdist3')) | ||||||
|  | -        check_call(['python', 'setup.py', 'install', '--prefix=demo_install3'], | ||||||
|  | +        check_call([python, 'setup.py', 'install', '--prefix=demo_install3'], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy', 'sdist3', 'demo3-1.0')) | ||||||
|  |          shutil.rmtree(os.path.join(cwd, 'test_distutils_numpy', 'sdist3')) | ||||||
|  |   | ||||||
|  |      def test_setup_bdist_install3(self): | ||||||
|  | -        check_call(['python', 'setup.py', 'bdist', "--dist-dir=bdist"], | ||||||
|  | +        check_call([python, 'setup.py', 'bdist', "--dist-dir=bdist"], | ||||||
|  |                     cwd=os.path.join(cwd, 'test_distutils_numpy')) | ||||||
|  |          dist_path = os.path.join(cwd, 'test_distutils_numpy', 'bdist') | ||||||
|  |          tgz = [f for f in os.listdir(dist_path) if f.endswith(".tar.gz")][0] | ||||||
		Reference in New Issue
	
	Block a user