From 2b235b37f3316fff48ee593feebffe4a8f594ec27781f438006e70dee75ad003 Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Wed, 14 Sep 2022 15:48:11 +0000 Subject: [PATCH] Accepting request 1003365 from home:bnavigator:branches:devel:languages:python:numeric now with doc and license OBS-URL: https://build.opensuse.org/request/show/1003365 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-meson-python?expand=0&rev=1 --- .gitattributes | 23 ++++++++++ .gitignore | 1 + meson_python-0.8.1.tar.gz | 3 ++ mesonpy-force-flavor.patch | 26 ++++++++++++ mesonpy-no-rpath.patch | 15 +++++++ mesonpy-trim-deps.patch | 17 ++++++++ python-meson-python.changes | 14 +++++++ python-meson-python.spec | 84 +++++++++++++++++++++++++++++++++++++ 8 files changed, 183 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 meson_python-0.8.1.tar.gz create mode 100644 mesonpy-force-flavor.patch create mode 100644 mesonpy-no-rpath.patch create mode 100644 mesonpy-trim-deps.patch create mode 100644 python-meson-python.changes create mode 100644 python-meson-python.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/meson_python-0.8.1.tar.gz b/meson_python-0.8.1.tar.gz new file mode 100644 index 0000000..1b19af9 --- /dev/null +++ b/meson_python-0.8.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:442f1fa4cf5db50eea61170a6059c10fafd70977f5dbdf3441c106cd23b05e4c +size 30133 diff --git a/mesonpy-force-flavor.patch b/mesonpy-force-flavor.patch new file mode 100644 index 0000000..477484b --- /dev/null +++ b/mesonpy-force-flavor.patch @@ -0,0 +1,26 @@ +From 0a5308014f7226e4e303e2779a8177acea70c49c Mon Sep 17 00:00:00 2001 +From: Eli Schwartz +Date: Sun, 11 Sep 2022 22:11:10 -0400 +Subject: [PATCH] BUG: fix native file override + +This attempted to override "python3", which Meson never used for +find_installation. So the native file did nothing. + +Override the correct name. +--- + mesonpy/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: meson_python-0.8.1/mesonpy/__init__.py +=================================================================== +--- meson_python-0.8.1.orig/mesonpy/__init__.py ++++ meson_python-0.8.1/mesonpy/__init__.py +@@ -443,7 +443,7 @@ class Project(): + # write the native file + native_file_data = textwrap.dedent(f''' + [binaries] +- python3 = '{sys.executable}' ++ python = '{sys.executable}' + ''') + native_file_mismatch = ( + not self._meson_native_file.exists() diff --git a/mesonpy-no-rpath.patch b/mesonpy-no-rpath.patch new file mode 100644 index 0000000..2b2eee5 --- /dev/null +++ b/mesonpy-no-rpath.patch @@ -0,0 +1,15 @@ +Index: meson_python-0.8.1/mesonpy/__init__.py +=================================================================== +--- meson_python-0.8.1.orig/mesonpy/__init__.py ++++ meson_python-0.8.1/mesonpy/__init__.py +@@ -327,7 +327,9 @@ class _WheelBuilder(): + counter.update(location) + + # fix file +- if platform.system() == 'Linux': ++ # disable rpath addition for rpmbuilds -- https://github.com/FFY00/meson-python/issues/125 ++ if (platform.system() == 'Linux' and (os.environ.get("RPM_BUILD_ROOT", None) is None or ++ os.environ.get("MESONPY_FORCE_LOCAL_LIB", None))): + # add .mesonpy.libs to the RPATH of ELF files + if self._is_elf(os.fspath(origin)): + # copy ELF to our working directory to avoid Meson having to regenerate the file diff --git a/mesonpy-trim-deps.patch b/mesonpy-trim-deps.patch new file mode 100644 index 0000000..440f569 --- /dev/null +++ b/mesonpy-trim-deps.patch @@ -0,0 +1,17 @@ +The backend does not require a mesonbuild module for every flavor. +`meson` and `ninja` commands from the regular RPM packages are +sufficient. + +Index: meson_python-0.8.1/pyproject.toml +=================================================================== +--- meson_python-0.8.1.orig/pyproject.toml ++++ meson_python-0.8.1/pyproject.toml +@@ -26,8 +26,6 @@ classifiers = [ + + dependencies = [ + 'colorama; os_name == "nt"', +- 'meson>=0.62.0', +- 'ninja', + 'pyproject-metadata>=0.5.0', # not a hard dependency, only needed for projects that use PEP 621 metadata + 'tomli>=1.0.0', + 'typing-extensions>=3.7.4; python_version<"3.8"', diff --git a/python-meson-python.changes b/python-meson-python.changes new file mode 100644 index 0000000..34d3027 --- /dev/null +++ b/python-meson-python.changes @@ -0,0 +1,14 @@ +------------------------------------------------------------------- +Tue Sep 13 01:16:30 UTC 2022 - Ben Greiner + +- add mesonpy-no-rpath.patch -- gh#FFY00/meson-python#125 + +------------------------------------------------------------------- +Sat Sep 10 21:18:06 UTC 2022 - Ben Greiner + +- Initial specfile for v0.8.1 +- Used by new SciPy pyproject.toml +- Force correct flavor by mesonpy-force-flavor.patch + * gh#FY00/meson-python#51, gh#FY00/meson-python#127 +- Use mesonpy-trim-deps.patch for single-flavor meson and ninja + commands diff --git a/python-meson-python.spec b/python-meson-python.spec new file mode 100644 index 0000000..bde6d70 --- /dev/null +++ b/python-meson-python.spec @@ -0,0 +1,84 @@ +# +# spec file for package python-meson-python +# +# Copyright (c) 2022 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +Name: python-meson-python +Version: 0.8.1 +Release: 0 +Summary: Meson Python build backend (PEP 517) +License: MIT +URL: https://github.com/FFY00/meson-python +Source: https://files.pythonhosted.org/packages/source/m/meson_python/meson_python-%{version}.tar.gz +# PATCH-FIX-UPSTREAM mesonpy-force-flavor.patch gh#FY00/meson-python#51, gh#FY00/meson-python#127 +Patch0: mesonpy-force-flavor.patch +# PATCH-FEATURE-OPENSUSE mesonpy-trim-deps.patch code@bnavigator.de +Patch1: mesonpy-trim-deps.patch +# PATCH-FIX-OPENSUSE mesonpy-no-rpath.patch code@bnavigator.de -- https://github.com/FFY00/meson-python/issues/125#issuecomment-1243388061 +Patch2: mesonpy-no-rpath.patch +BuildRequires: %{python_module base >= 3.7} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pyproject-metadata >= 0.5} +BuildRequires: %{python_module tomli >= 1.0.0} +BuildRequires: %{python_module typing-extensions >= 3.7.4 if %python-base < 3.8} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: meson +BuildRequires: ninja +BuildRequires: python-rpm-macros +Requires: meson +Requires: ninja +Requires: python-pyproject-metadata >= 0.5.0 +Requires: python-tomli >= 1.0.0 +BuildArch: noarch +%if 0%{python_version_nodots} < 38 +Requires: python-typing-extensions >= 3.7.4 +%endif +# SECTION test +BuildRequires: %{python_module GitPython} +BuildRequires: %{python_module devel} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module pytest} +BuildRequires: patchelf +# /SECTION +%python_subpackages + +%description +Python build backend (PEP 517) for Meson projects. + +%prep +%autosetup -p1 -n meson_python-%{version} + +%build +# until we have https://github.com/openSUSE/python-rpm-macros/pull/139, this will build +# a pure wheel three times. +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +export MESONPY_FORCE_LOCAL_LIB=1 +%pytest + +%files %{python_files} +%license LICENSE +%doc README.md +%{python_sitelib}/mesonpy +%{python_sitelib}/meson_python-%{version}*-info + +%changelog