Convert from Fedora for the Python 3.14 stack in RHEL
Fedora contributions by:
Benjamin A. Beasley <code@musicinmybrain.net>
Karolina Surma <ksurma@redhat.com>
Lukáš Zachar <lzachar@redhat.com>
Miro Hrončok <miro@hroncok.cz>
Pavel Simovec <psimovec@redhat.com>
Yaakov Selkowitz <yselkowi@redhat.com>
This commit is contained in:
parent
893d8876b0
commit
532509588e
@ -1,3 +1,5 @@
|
|||||||
|
%global python3_pkgversion 3.14
|
||||||
|
|
||||||
%bcond tests 1
|
%bcond tests 1
|
||||||
# The python-pytest-mock and wheel dependencies are unwanted on RHEL;
|
# The python-pytest-mock and wheel dependencies are unwanted on RHEL;
|
||||||
# we can omit them and still run most of the tests.
|
# we can omit them and still run most of the tests.
|
||||||
@ -10,7 +12,7 @@
|
|||||||
# ship a full-featured package.
|
# ship a full-featured package.
|
||||||
%bcond patchelf %{expr:%{undefined rhel} || %{defined epel}}
|
%bcond patchelf %{expr:%{undefined rhel} || %{defined epel}}
|
||||||
|
|
||||||
Name: python-meson-python
|
Name: python%{python3_pkgversion}-meson-python
|
||||||
Summary: Meson Python build backend (PEP 517)
|
Summary: Meson Python build backend (PEP 517)
|
||||||
Version: 0.18.0
|
Version: 0.18.0
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
@ -24,21 +26,33 @@ Source: %{pypi_source meson_python}
|
|||||||
# functionality), controlled by the patchelf build conditional
|
# functionality), controlled by the patchelf build conditional
|
||||||
Patch100: meson-python-0.18.0-remove-patchelf.patch
|
Patch100: meson-python-0.18.0-remove-patchelf.patch
|
||||||
|
|
||||||
BuildSystem: pyproject
|
|
||||||
BuildOption(generate_buildrequires): -p %{?with_tests:-x test}
|
|
||||||
# LICENSE duplicates LICENSES/MIT.txt, which is handled automatically.
|
|
||||||
BuildOption(install): -l mesonpy
|
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
|
BuildRequires: python%{python3_pkgversion}-setuptools
|
||||||
# for %%pyproject_buildrequires -p
|
# for %%pyproject_buildrequires -p
|
||||||
BuildRequires: pyproject-rpm-macros >= 1.15.1
|
BuildRequires: pyproject-rpm-macros >= 1.15.1
|
||||||
|
BuildRequires: ninja-build
|
||||||
|
Requires: ninja-build
|
||||||
|
|
||||||
%if %{with tests}
|
%if %{with tests}
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
BuildRequires: git-core
|
BuildRequires: git-core
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
# When patchelf is not in the PATH, mesonpy.get_requires_for_build_wheel() adds
|
||||||
|
# https://pypi.org/project/patchelf/ to the dependencies. We always want to use
|
||||||
|
# the system patchelf.
|
||||||
|
%if %{with patchelf}
|
||||||
|
BuildRequires: /usr/bin/patchelf
|
||||||
|
Requires: /usr/bin/patchelf
|
||||||
|
%endif
|
||||||
|
|
||||||
|
BuildRequires: /usr/bin/meson
|
||||||
|
Requires: /usr/bin/meson
|
||||||
|
|
||||||
|
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
|
||||||
|
%py_provides python3-mesonpy
|
||||||
|
|
||||||
%global common_description %{expand:
|
%global common_description %{expand:
|
||||||
meson-python is a Python build backend built on top of the Meson build system.
|
meson-python is a Python build backend built on top of the Meson build system.
|
||||||
It enables to use Meson for the configuration and build steps of Python
|
It enables to use Meson for the configuration and build steps of Python
|
||||||
@ -51,23 +65,6 @@ documentation for more details.}
|
|||||||
%description %{common_description}
|
%description %{common_description}
|
||||||
|
|
||||||
|
|
||||||
%package -n python3-meson-python
|
|
||||||
Summary: %{summary}
|
|
||||||
|
|
||||||
# When patchelf is not in the PATH, mesonpy.get_requires_for_build_wheel() adds
|
|
||||||
# https://pypi.org/project/patchelf/ to the dependencies. We always want to use
|
|
||||||
# the system patchelf.
|
|
||||||
%if %{with patchelf}
|
|
||||||
BuildRequires: /usr/bin/patchelf
|
|
||||||
Requires: /usr/bin/patchelf
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_provides_for_importable_modules
|
|
||||||
%py_provides python3-mesonpy
|
|
||||||
|
|
||||||
%description -n python3-meson-python %{common_description}
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
# We need “-S git” because test_reproducible uses “meson dist,” which only
|
# We need “-S git” because test_reproducible uses “meson dist,” which only
|
||||||
# works in a git or mercurial repo.
|
# works in a git or mercurial repo.
|
||||||
@ -79,6 +76,9 @@ Requires: /usr/bin/patchelf
|
|||||||
# build: used only by skipped PEP 518 test
|
# build: used only by skipped PEP 518 test
|
||||||
# pytest-cov: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
|
# pytest-cov: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_linters
|
||||||
sed -r -i "s/^ '(build|pytest-cov)/#&/" pyproject.toml
|
sed -r -i "s/^ '(build|pytest-cov)/#&/" pyproject.toml
|
||||||
|
# RHEL: we want to use system meson
|
||||||
|
# It is installed for a different Python version and invoked via subprocess.
|
||||||
|
sed -r -i "s/^ 'meson >=/#&/" pyproject.toml
|
||||||
%if %{without pytest_mock}
|
%if %{without pytest_mock}
|
||||||
sed -r -i "s/^ '(pytest-mock)/#&/" pyproject.toml
|
sed -r -i "s/^ '(pytest-mock)/#&/" pyproject.toml
|
||||||
%endif
|
%endif
|
||||||
@ -86,8 +86,21 @@ sed -r -i "s/^ '(pytest-mock)/#&/" pyproject.toml
|
|||||||
sed -r -i "s/^ '(wheel)/#&/" pyproject.toml
|
sed -r -i "s/^ '(wheel)/#&/" pyproject.toml
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%generate_buildrequires
|
||||||
|
%pyproject_buildrequires -p %{?with_tests:-x test}
|
||||||
|
|
||||||
%check -a
|
|
||||||
|
%build
|
||||||
|
%pyproject_wheel
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%pyproject_install
|
||||||
|
# LICENSE duplicates LICENSES/MIT.txt, which is handled automatically.
|
||||||
|
%pyproject_save_files -l mesonpy
|
||||||
|
|
||||||
|
|
||||||
|
%check
|
||||||
%if %{with tests}
|
%if %{with tests}
|
||||||
# Note: tests are *not* safe for parallel execution with pytest-xdist.
|
# Note: tests are *not* safe for parallel execution with pytest-xdist.
|
||||||
|
|
||||||
@ -112,10 +125,12 @@ k="${k-}${k+ and }not test_uneeded_rpath"
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%pytest ${ignore-} -k "${k-}"
|
%pytest ${ignore-} -k "${k-}"
|
||||||
|
%else
|
||||||
|
%pyproject_check_import
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
|
||||||
%files -n python3-meson-python -f %{pyproject_files}
|
%files -n python%{python3_pkgversion}-meson-python -f %{pyproject_files}
|
||||||
%doc CHANGELOG.rst
|
%doc CHANGELOG.rst
|
||||||
%doc README.rst
|
%doc README.rst
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user