From 886ce91330d5eb7306557d2038bb011b0f80f2c91b72473255ba95e086eafa4b Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Mon, 22 Jul 2024 18:49:28 +0000 Subject: [PATCH] Accepting request 1189073 from home:AndreasStieger:branches:devel:languages:python python-meson-python 0.16.0 OBS-URL: https://build.opensuse.org/request/show/1189073 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-meson-python?expand=0&rev=22 --- .gitattributes | 23 ++++ .gitignore | 1 + meson_python-0.15.0.tar.gz | 3 + meson_python-0.16.0.tar.gz | 3 + mesonpy-trim-deps.patch | 25 +++++ python-meson-python.changes | 210 ++++++++++++++++++++++++++++++++++++ python-meson-python.spec | 87 +++++++++++++++ 7 files changed, 352 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 meson_python-0.15.0.tar.gz create mode 100644 meson_python-0.16.0.tar.gz 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.15.0.tar.gz b/meson_python-0.15.0.tar.gz new file mode 100644 index 0000000..6996384 --- /dev/null +++ b/meson_python-0.15.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fddb73eecd49e89c1c41c87937cd89c2d0b65a1c63ba28238681d4bd9484d26f +size 79920 diff --git a/meson_python-0.16.0.tar.gz b/meson_python-0.16.0.tar.gz new file mode 100644 index 0000000..bd21c39 --- /dev/null +++ b/meson_python-0.16.0.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9068c17e36c89d6c7ff709fffb2a8a9925e8cd0b02629728e5ceaf2ec505cb5f +size 82012 diff --git a/mesonpy-trim-deps.patch b/mesonpy-trim-deps.patch new file mode 100644 index 0000000..43d3e12 --- /dev/null +++ b/mesonpy-trim-deps.patch @@ -0,0 +1,25 @@ +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.16.0/pyproject.toml +=================================================================== +--- meson_python-0.16.0.orig/pyproject.toml ++++ meson_python-0.16.0/pyproject.toml +@@ -6,8 +6,6 @@ + build-backend = 'mesonpy' + backend-path = ['.'] + requires = [ +- 'meson >= 0.63.3; python_version < "3.12"', +- 'meson >= 1.2.3; python_version >= "3.12"', + 'packaging >= 19.0', + 'pyproject-metadata >= 0.7.1', + 'tomli >= 1.0.0; python_version < "3.11"', +@@ -33,8 +31,6 @@ classifiers = [ + ] + + dependencies = [ +- 'meson >= 0.63.3; python_version < "3.12"', +- 'meson >= 1.2.3; python_version >= "3.12"', + 'packaging >= 19.0', + 'pyproject-metadata >= 0.7.1', + 'tomli >= 1.0.0; python_version < "3.11"', diff --git a/python-meson-python.changes b/python-meson-python.changes new file mode 100644 index 0000000..0a7a901 --- /dev/null +++ b/python-meson-python.changes @@ -0,0 +1,210 @@ +------------------------------------------------------------------- +Mon Jul 22 04:20:32 UTC 2024 - Andreas Stieger + +- update to 0.16.0: + * Correctly detect a wheel shipping shared libraries as being + platform dependent also when it does not ship compiled + executables or Python extension modules. + * Improve parsing of the $ARCHFLAGS environment variable. + Correctly handle repeated -arch flags. + * Do not break when trying to log filename containing Unicode + characters that cannot be encoded in the encoding used by the + standard output stream. + * Suppress all uses of ANSI terminal escapes when logging to a + stream that does not support them. + * Fix ANSI escape coloring of error messages. + * Respect the exclude_dirs and exclude_files arguments passed to + the install_subdir() Meson function in editable installs too. + * Make pkgutil.iter_packages() work properly for modules loaded + from editable installs. + * Add support for the custom_target() Meson function installing a + directory. + * In editable installs, when a rebuild is triggered on module + import, emit a message indicating that the package is being + rebuilt but suppress any output when there is no work to do. + +------------------------------------------------------------------- +Tue Apr 16 19:27:36 UTC 2024 - Ben Greiner + +- Update to 0.15.0 + * Enable compression for wheel files. The may result in several + times smaller wheels. + * Require Meson 1.2.3 or later on Python 3.12 or later. Meson + 1.2.3 does not require anymore ``distutils``, allowing to + remove the dependency on ``setuptools`` on Python 3.12 or + later. + * Unconditionally require ``patchelf`` on Linux. The + ``patchelf`` package is added to the build dependencies if a + suitable ``patchelf`` executable is not find on the ``$PATH``. + This avoids cases where ``meson setup`` was run twice during + the build process to determine whether ``patchelf`` is + required. + * Allow to configure the ``meson`` executable to use for the + build process through the ``$MESON`` environment variable or + the ``meson`` key under ``[tool.meson-python]`` in + ``pyproject.toml``. + * Fix wheel platform tag generation on FreeBSD. + * Extend support to other UNIX-like systems and make the tests + pass on FreeBSD. + * Fix package name normalization in package metadata and improve + package name validation. + * Fix ``RPATH`` handling when the build ``RPATH`` points to + subdirectories of the build directory. + * Fix support for the Python limited C API when compiling for + PyPy. + * Rename the ``builddir`` config-setting to ``build-dir``. For + backwards compatibility, the ``buildir`` config-setting remains + supported as an alias. +- Drop no longer needed test patches and test wheels + * no-build-isolation-in-test.patch + * mesonpy-no-wheel-rebuild.patch + +------------------------------------------------------------------- +Thu Sep 21 06:01:08 UTC 2023 - Steve Kowalik + +- 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á + +- 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 + +- Add %{?sle15_python_module_pythons} + +------------------------------------------------------------------- +Sun Mar 26 19:49:50 UTC 2023 - Dirk Müller + +- 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 + +- 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 + +- 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 + +- 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á + +- Add meson-subdir-fix.patch to fix the failure with new meson + +------------------------------------------------------------------- +Tue Oct 11 09:01:00 UTC 2022 - Ben Greiner + +- 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 + +- 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..cd8de69 --- /dev/null +++ b/python-meson-python.spec @@ -0,0 +1,87 @@ +# +# spec file for package python-meson-python +# +# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2024 Andreas Stieger +# +# 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.16.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 +# PATCH-FEATURE-OPENSUSE mesonpy-trim-deps.patch code@bnavigator.de +Patch11: mesonpy-trim-deps.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: fdupes +BuildRequires: meson >= 1.2.3 +BuildRequires: ninja +BuildRequires: python-rpm-macros +Requires: python-pyproject-metadata >= 0.7.1 +BuildArch: noarch +%if 0%{python_version_nodots} >= 312 +Requires: meson >= 1.2.3 +%else +Requires: meson >= 0.63.3 +%endif +%if 0%{python_version_nodots} < 311 +Requires: python-tomli >= 1.0.0 +%endif +# SECTION test +BuildRequires: %{python_module Cython} +BuildRequires: %{python_module GitPython} +BuildRequires: %{python_module build} +BuildRequires: %{python_module devel} +BuildRequires: %{python_module pytest-mock} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module wheel} +BuildRequires: patchelf +# /SECTION +%python_subpackages + +%description +meson-python is a Python build backend built on top of the Meson build system. +It enables using Meson for the configuration and build steps of Python packages. +meson-python is best suited for building Python packages containing extension +modules implemented in languages such as C, C++, Cython, Fortran, Pythran, or Rust. + +%prep +%autosetup -p1 -n meson_python-%{version} + +%build +%pyproject_wheel + +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} + +%check +# test suite path issues +donttest="test_vendored_meson" +%pytest -k "not ($donttest)" + +%files %{python_files} +%license LICENSE +%doc README.rst +%{python_sitelib}/mesonpy +%{python_sitelib}/meson_python-%{version}*-info + +%changelog