Accepting request 990028 from devel:languages:python:numeric
OBS-URL: https://build.opensuse.org/request/show/990028 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pythran?expand=0&rev=3
This commit is contained in:
commit
8f9543b5fd
@ -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>
|
||||
|
||||
|
@ -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
|
||||
Source99: python-pythran-rpmlintrc
|
||||
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: fdupes
|
||||
BuildRequires: python-rpm-macros
|
||||
@ -73,6 +75,7 @@ Requires: python-numpy-devel
|
||||
# /SECTION
|
||||
%if %{with test}
|
||||
BuildRequires: %{python_module ipython}
|
||||
BuildRequires: %{python_module pip}
|
||||
BuildRequires: %{python_module pytest-xdist}
|
||||
BuildRequires: %{python_module pytest}
|
||||
BuildRequires: %{python_module pythran = %{version}}
|
||||
@ -87,12 +90,10 @@ BuildArch: noarch
|
||||
Ahead of Time compiler for numeric kernels
|
||||
|
||||
%prep
|
||||
%setup -q -n pythran-%{version}
|
||||
%patch0 -p1
|
||||
%autosetup -p1 -n pythran-%{version}
|
||||
|
||||
find -name '*.hpp' -exec chmod -x {} +
|
||||
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
|
||||
rm -r third_party/boost
|
||||
@ -101,6 +102,13 @@ cat >> setup.cfg << EOF
|
||||
no_boost=True
|
||||
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
|
||||
# We need to adapt the flags to play nicely with other obs flags
|
||||
# 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]
|
Loading…
Reference in New Issue
Block a user