Sync from SUSE:SLFO:Main python-meson-python revision 87e32eef16d03d9f3346956667293321

This commit is contained in:
Adrian Schröter 2024-05-03 21:31:16 +02:00
commit 4546f37bba
11 changed files with 343 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

BIN
meson_python-0.14.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,26 @@
We already have the meson_python wheel, can't built it in isolated mode inside OBS
Index: meson_python-0.13.2/tests/conftest.py
===================================================================
--- meson_python-0.13.2.orig/tests/conftest.py
+++ meson_python-0.13.2/tests/conftest.py
@@ -156,18 +156,7 @@ def disable_pip_version_check():
@pytest.fixture(scope='session')
def pep518_wheelhouse(tmp_path_factory):
- wheelhouse = os.fspath(tmp_path_factory.mktemp('wheelhouse'))
- meson_python = os.fspath(package_dir.parent.parent)
- # Populate wheelhouse with wheel for the following packages and
- # their dependencies. Wheels are downloaded from PyPI or built
- # from the source distribution as needed. Sources or wheels in
- # the pip cache are used when available.
- packages = [
- meson_python,
- ]
- cmd = [sys.executable, '-m', 'pip', 'wheel', '--no-build-isolation', '--wheel-dir', wheelhouse, *packages]
- subprocess.run(cmd, check=True)
- return wheelhouse
+ return str(package_dir.parent.parent / 'build')
@pytest.fixture

23
mesonpy-trim-deps.patch Normal file
View File

@ -0,0 +1,23 @@
The backend does not require a mesonbuild module for every flavor.
the `meson` command from the regular RPM package is sufficient.
Index: meson_python-0.13.2/pyproject.toml
===================================================================
--- meson_python-0.13.2.orig/pyproject.toml
+++ meson_python-0.13.2/pyproject.toml
@@ -6,7 +6,6 @@
build-backend = 'mesonpy'
backend-path = ['.']
requires = [
- 'meson >= 0.63.3',
'pyproject-metadata >= 0.7.1',
'tomli >= 1.0.0; python_version < "3.11"',
'setuptools >= 60.0; python_version >= "3.12"',
@@ -29,7 +28,6 @@ classifiers = [
dependencies = [
'colorama; os_name == "nt"',
- 'meson >= 0.63.3',
'pyproject-metadata >= 0.7.1',
'tomli >= 1.0.0; python_version < "3.11"',
'setuptools >= 60.0; python_version >= "3.12"',

View File

@ -0,0 +1,10 @@
Index: meson_python-0.14.0/tests/test_pep518.py
===================================================================
--- meson_python-0.14.0.orig/tests/test_pep518.py
+++ meson_python-0.14.0/tests/test_pep518.py
@@ -27,4 +27,4 @@ def test_pep518(package, build_arg, tmp_
with chdir(package_dir / package), in_git_repo_context():
build_args = [build_arg] if build_arg else []
- subprocess.run([sys.executable, '-m', 'build', '--outdir', str(dist), *build_args], check=True)
+ subprocess.run([sys.executable, '-m', 'build', '-n', '--outdir', str(dist), *build_args], check=True)

BIN
packaging-23.0-py3-none-any.whl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
pyproject_metadata-0.7.1-py3-none-any.whl (Stored with Git LFS) Normal file

Binary file not shown.

149
python-meson-python.changes Normal file
View File

@ -0,0 +1,149 @@
-------------------------------------------------------------------
Thu Sep 21 06:01:08 UTC 2023 - Steve Kowalik <steven.kowalik@suse.com>
- Update to 0.14.0:
* Do not run ``meson install`` to build a wheel.
* Obey the ``--skip-subprojects`` when specified for the ``meson
install`` command.
* Implement support for the ``exclude_directories`` and
``exclude_files`` arguments to Meson ``install_subdir()`` function
and similar installation functions. This requires Meson version
1.1.0 or later.
* Implement support for building wheels targeting the Python limited API.
* When ``pyproject.toml`` does not contain a ``version`` field and
``version`` is not declared dynamic, raise an error instead of
silently using the version declared in ``meson.build``.
* Fix the mtime of source files in the sdist tarball.
* Add ``objc`` and ``objcpp`` compilers to the cross file generated
when the ``$ARCHFLAGS`` is set.
- Add patch no-build-isolation-in-test.patch, don't use an isolated
environment.
-------------------------------------------------------------------
Thu Aug 17 12:57:55 UTC 2023 - Markéta Machová <mmachova@suse.com>
- Update to 0.13.2
* Add support for editable installs.
* Adjust the default build options passed to meson setup.
* Make sure that the directory where the wheel or sdist build artifacts are
created exists. Fixes building with PDM.
* Fix the specification of the C++ compiler for cross-compilation with
$ARCHFLAGS on macOS.
* Pass the --reconfigure option to meson setup if and only if the specified
build directory exists and is a valid Meson build directory.
* Pass the --no-rebuild option to meson install.
* Allow to select the files to be included in the wheel via Meson install
tags passing the --tags option to meson install via pyproject.toml or
config settings.
* Do not use the meson compile indirection to build the project, except on
Windows, where it is required to setup the Visual Studio environment.
* Do not add ninja to the build dependencies if $NINJA is set but it does not
point to a ninja executable with the required minimum version.
* Verify at run time that Meson satisfies the minimum required version.
* Place native and cross files in the build directory instead of in the source directory.
* Drop the typing-extensions package dependency.
* Add dependency on setuptools on Python 3.12 and later. This fixes build
error due to Meson depending on the distutils standard library module
removed in Python 3.12.
* Bump the required pyproject-metadata version to 0.7.1.
* Allows some more cross-compilation setups by not checking extension modules
filename suffixes against the suffixes accepted by the current interpreter.
* Raise an error when a file that would be installed by Meson cannot be
mapped to a wheel location.
* Raise an error when a package is split between platlib and purelib.
* Do not generate a warning when pyproject.toml does not contain a project
section and Python package metadata is derived from meson.build.
* Improve reporting of pyproject.toml validation errors.
* Fix validation of tool specific options in pyproject.toml. In particular,
allows to specify an incomplete set of options in the
tool.meson-python.args table.
* Add the --quiet option when invoking meson install. The installation paths
are a detail of the meson-python implementation and are generally not
interesting for the user.
-------------------------------------------------------------------
Sat Jun 10 17:53:58 UTC 2023 - ecsos <ecsos@opensuse.org>
- Add %{?sle15_python_module_pythons}
-------------------------------------------------------------------
Sun Mar 26 19:49:50 UTC 2023 - Dirk Müller <dmueller@suse.com>
- update to 0.12.1:
* Fix regression where the ``MACOSX_DEPLOYMENT_TARGET``
environment variable was accidentally renamed to
``MACOS_DEPLOYMENT_TARGET``
-------------------------------------------------------------------
Fri Jan 13 14:35:33 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 0.12.0
* Raise SystemExit on expected errors
* Revise error messages for consistency
* Support setuptools-style macOS cross compilation via ARCHFLAGS
* Allow to overwrite macOS platform tag via _PYTHON_HOST_PLATFORM
* Include (similar) allowed keys in error messages
- Refresh test wheels
------------------------------------------------------------------
Thu Nov 24 11:31:07 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 0.11.0
* Project moved to the mesonbuild organization
* Determine wheel tags by introspecting the Python interpreter
* Allow users to pass options directly to Meson via the
tools.meson-python.args.{dist,setup,compile,install}
pyproject.toml keys, and the {dist,setup,compile,install}-args
frontend config options
* Use the system ninja dependency if possible
* Include files generated by mesonadd_dist_script to sdists
* Use tomllib on Python>=3.11
* Drop wheel dependency in favor of in-house solution
* Fix bug where the entry_points.txt file wasn't being generated
* Fix bug where Cygwin Python extensions were not being noticed
- Drop meson-subdir-fix.patch fixed upstream
- Add mesonpy-no-wheel-rebuild.patch
-------------------------------------------------------------------
Fri Oct 14 12:44:56 UTC 2022 - Daniel Garcia <daniel.garcia@suse.com>
- Update meson-subdir-fix.patch to fix the failure for python3.8 and python3.9
because the meson package is only available for python3.10
-------------------------------------------------------------------
Fri Oct 14 08:49:00 UTC 2022 - Markéta Machová <mmachova@suse.com>
- Add meson-subdir-fix.patch to fix the failure with new meson
-------------------------------------------------------------------
Tue Oct 11 09:01:00 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 0.10.0
* Ignore the macOS minor version on >=11, to match the behavior
with pypa/packaging
* More fixes on ABI tag detection
* Fix incorrect tag on 32-bit Python running on a x86_64 host
* Fix sdist permissions
* Fix incorrect PyPy tags
* Fix ``install_subdirs`` not being included in wheels
* Take ``MACOSX_DEPLOYMENT_TARGET`` into account for the platform
tag
* Don't set the rpath on binaries if unneeded
- Drop patches
* mesonpy-force-flavor.patch
* mesonpy-no-rpath.patch
-------------------------------------------------------------------
Tue Sep 13 01:16:30 UTC 2022 - Ben Greiner <code@bnavigator.de>
- add mesonpy-no-rpath.patch -- gh#FFY00/meson-python#125
-------------------------------------------------------------------
Sat Sep 10 21:18:06 UTC 2022 - Ben Greiner <code@bnavigator.de>
- 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

97
python-meson-python.spec Normal file
View File

@ -0,0 +1,97 @@
#
# spec file for package python-meson-python
#
# Copyright (c) 2023 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/
#
%{?sle15_python_module_pythons}
Name: python-meson-python
Version: 0.14.0
Release: 0
Summary: Meson Python build backend (PEP 517)
License: MIT
URL: https://github.com/mesonbuild/meson-python
Source0: https://files.pythonhosted.org/packages/source/m/meson_python/meson_python-%{version}.tar.gz
# for the test suite
Source1: https://files.pythonhosted.org/packages/py3/t/tomli/tomli-2.0.1-py3-none-any.whl
Source2: https://files.pythonhosted.org/packages/py3/p/pyproject_metadata/pyproject_metadata-0.7.1-py3-none-any.whl
Source3: https://files.pythonhosted.org/packages/py3/p/packaging/packaging-23.0-py3-none-any.whl
Source4: https://files.pythonhosted.org/packages/py3/t/typing_extensions/typing_extensions-4.4.0-py3-none-any.whl
# PATCH-FEATURE-OPENSUSE mesonpy-trim-deps.patch code@bnavigator.de
Patch11: mesonpy-trim-deps.patch
# PATCH-FEATURE-OPENSUSE mesonpy-no-wheel-rebuild.patch code@bnavigator.de
Patch12: mesonpy-no-wheel-rebuild.patch
# PATCH-FEATURE-OPENSUSE
Patch14: no-build-isolation-in-test.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module pyproject-metadata >= 0.7.1}
BuildRequires: %{python_module tomli >= 1.0.0 if %python-base < 3.11}
BuildRequires: %{python_module typing-extensions >= 3.7.4 if %python-base < 3.10}
BuildRequires: fdupes
BuildRequires: meson >= 0.63.3
BuildRequires: ninja
BuildRequires: python-rpm-macros
Requires: meson >= 0.63.3
Requires: python-pyproject-metadata >= 0.7.1
%if 0%{python_version_nodots} >= 312
Requires: python-setuptools
%endif
%if 0%{python_version_nodots} < 311
Requires: python-tomli >= 1.0.0
%endif
%if 0%{python_version_nodots} < 310
Requires: python-typing-extensions >= 3.7.4
%endif
# SECTION test
BuildRequires: %{python_module GitPython}
BuildRequires: %{python_module Cython}
BuildRequires: %{python_module build}
BuildRequires: %{python_module devel}
BuildRequires: %{python_module pytest-mock}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools-wheel}
BuildRequires: %{python_module wheel}
BuildRequires: patchelf
# /SECTION
BuildArch: noarch
%python_subpackages
%description
Python build backend (PEP 517) for Meson projects.
%prep
%autosetup -p1 -n meson_python-%{version}
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
export MESONPY_FORCE_LOCAL_LIB=1
export PIP_FIND_LINKS="%{python3_sitelib}/../wheels"
%python_expand cp %{SOURCE1} %{SOURCE2} %{SOURCE3} %{SOURCE4} build/
%pytest
%files %{python_files}
%license LICENSE
%doc README.rst
%{python_sitelib}/mesonpy
%{python_sitelib}/meson_python-%{version}*-info
%changelog

BIN
tomli-2.0.1-py3-none-any.whl (Stored with Git LFS) Normal file

Binary file not shown.

BIN
typing_extensions-4.4.0-py3-none-any.whl (Stored with Git LFS) Normal file

Binary file not shown.