From d209f9c0a5ad36886a65b81000c5d7348d30b473 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Mon, 1 Apr 2024 08:04:49 +0000 Subject: [PATCH] import CS python3.12-wheel-0.41.2-3.el8 --- .gitignore | 1 + .python3.12-wheel.metadata | 1 + SOURCES/wheel-entrypoint | 7 ++ SPECS/python3.12-wheel.spec | 197 ++++++++++++++++++++++++++++++++++++ 4 files changed, 206 insertions(+) create mode 100644 .gitignore create mode 100644 .python3.12-wheel.metadata create mode 100755 SOURCES/wheel-entrypoint create mode 100644 SPECS/python3.12-wheel.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1ab96cb --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/wheel-0.41.2.tar.gz diff --git a/.python3.12-wheel.metadata b/.python3.12-wheel.metadata new file mode 100644 index 0000000..7787aff --- /dev/null +++ b/.python3.12-wheel.metadata @@ -0,0 +1 @@ +9bc971ceed44fab6bf172284714aba449eb15267 SOURCES/wheel-0.41.2.tar.gz diff --git a/SOURCES/wheel-entrypoint b/SOURCES/wheel-entrypoint new file mode 100755 index 0000000..0f20b46 --- /dev/null +++ b/SOURCES/wheel-entrypoint @@ -0,0 +1,7 @@ +#!/usr/bin/python3 +import re +import sys +from wheel.cli import main +if __name__ == "__main__": + sys.argv[0] = re.sub(r"(-script\.pyw|\.exe)?$", "", sys.argv[0]) + sys.exit(main()) diff --git a/SPECS/python3.12-wheel.spec b/SPECS/python3.12-wheel.spec new file mode 100644 index 0000000..c4a7145 --- /dev/null +++ b/SPECS/python3.12-wheel.spec @@ -0,0 +1,197 @@ +%global __python3 /usr/bin/python3.12 +%global python3_pkgversion 3.12 + +# Workaround for https://issues.redhat.com/browse/CS-1907 +# By defining the %%{__bootstrap} value, +# we prevent misconfigured Koji putting a literal %%{__bootstrap} in %%dist. +%{!?__bootstrap:%global __bootstrap %{nil}} + +# The function of bootstrap is that it installs the wheel by unzipping it +%bcond_with bootstrap +# Default: when bootstrapping -> disable tests +%if %{with bootstrap} +%bcond_with tests +%else +%bcond_without tests +%endif + +# Similar to what we have in pythonX.Y.spec files. +# If enabled, provides unversioned executables and other stuff. +# Disable it if you build this package in an alternative stack. +%bcond_with main_python + +%global pypi_name wheel +%global python_wheel_name %{pypi_name}-%{version}-py3-none-any.whl + +Name: python%{python3_pkgversion}-%{pypi_name} +Version: 0.41.2 +Release: 3%{?dist} +Summary: Built-package format for Python + +# packaging is ASL 2.0 or BSD +License: MIT and (ASL 2.0 or BSD) +URL: https://github.com/pypa/wheel +Source0: %{url}/archive/%{version}/%{pypi_name}-%{version}.tar.gz +# This is used in bootstrap mode where we manually install the wheel and +# entrypoints +Source1: wheel-entrypoint +BuildArch: noarch + +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: python%{python3_pkgversion}-rpm-macros +# python3 bootstrap: this is rebuilt before the final build of python3, which +# adds the dependency on python3-rpm-generators, so we require it manually +BuildRequires: python3-rpm-generators + +# Needed to manually build and unpack the wheel +BuildRequires: python%{python3_pkgversion}-flit-core +%if %{with bootstrap} +BuildRequires: unzip +%else +BuildRequires: python%{python3_pkgversion}-pip +%endif + +%if %{with tests} +BuildRequires: python%{python3_pkgversion}-pytest +BuildRequires: python%{python3_pkgversion}-setuptools +# several tests compile extensions +# those tests are skipped if gcc is not found +BuildRequires: gcc +%endif + +# Virtual provides for the packages bundled by wheel. +# Actual version can be found in git history: +# https://github.com/pypa/wheel/commits/master/src/wheel/vendored/packaging/tags.py +%global bundled %{expand: +Provides: bundled(python%{python3_version}dist(packaging)) = 23 +} + +%{bundled} + +# Require alternatives version that implements the --keep-foreign flag and fixes rhbz#2203820 +Requires(postun): alternatives >= 1.19.2-1 + +# python3.12 installs the alternatives master symlink to which we attach a slave +Requires: python%{python3_pkgversion} +Requires(post): python%{python3_pkgversion} +Requires(postun): python%{python3_pkgversion} + +%global _description %{expand: +Wheel is the reference implementation of the Python wheel packaging standard, +as defined in PEP 427. + +It has two different roles: + + 1. A setuptools extension for building wheels that provides the bdist_wheel + setuptools command. + 2. A command line tool for working with wheel files.} + +%description %{_description} + +%package -n %{python_wheel_pkg_prefix}-%{pypi_name}-wheel +Summary: The Python wheel module packaged as a wheel +%{bundled} + +%description -n %{python_wheel_pkg_prefix}-%{pypi_name}-wheel +A Python wheel of wheel to use with virtualenv. + + +%prep +%autosetup -n %{pypi_name}-%{version} -p1 + + +%build +%{python3} -m flit_core.wheel + + +%install +# pip is not available when bootstrapping, so we need to unpack the wheel and +# create the entrypoints manually. +%if %{with bootstrap} +mkdir -p %{buildroot}%{python3_sitelib} +unzip dist/%{python_wheel_name} \ + -d %{buildroot}%{python3_sitelib} -x wheel-%{version}.dist-info/RECORD +install -Dpm 0755 %{SOURCE1} %{buildroot}%{_bindir}/wheel +%py3_shebang_fix %{buildroot}%{_bindir}/wheel +%else +%py3_install_wheel %{python_wheel_name} +# for consistency with %%pyproject_install: +rm %{buildroot}%{python3_sitelib}/wheel-*.dist-info/RECORD +%endif + +mv %{buildroot}%{_bindir}/%{pypi_name}{,-%{python3_version}} +%if %{with main_python} +ln -s %{pypi_name}-%{python3_version} %{buildroot}%{_bindir}/%{pypi_name}-3 +ln -s %{pypi_name}-3 %{buildroot}%{_bindir}/%{pypi_name} +%endif +# Create an empty file to be used by `alternatives` +touch %{buildroot}%{_bindir}/%{pypi_name}-3 + +mkdir -p %{buildroot}%{python_wheel_dir} +install -p dist/%{python_wheel_name} -t %{buildroot}%{python_wheel_dir} + + +%check +# Smoke test +%{py3_test_envvars} wheel-%{python3_version} version +%py3_check_import wheel + +%if %{with tests} +%pytest -v --ignore build +%endif + +%post -n python%{python3_pkgversion}-%{pypi_name} +alternatives --add-slave python3 %{_bindir}/python%{python3_version} \ + %{_bindir}/%{pypi_name}-3 \ + %{pypi_name}-3 \ + %{_bindir}/%{pypi_name}-%{python3_version} + +%postun -n python%{python3_pkgversion}-%{pypi_name} +# Do this only during uninstall process (not during update) +if [ $1 -eq 0 ]; then + alternatives --keep-foreign --remove-slave python3 %{_bindir}/python%{python3_version} \ + %{pypi_name}-3 +fi + + +%files -n python%{python3_pkgversion}-%{pypi_name} +%license LICENSE.txt +%doc README.rst +%{_bindir}/%{pypi_name}-%{python3_version} +%if %{with main_python} +%{_bindir}/%{pypi_name} +%{_bindir}/%{pypi_name}-3 +%endif +%ghost %{_bindir}/%{pypi_name}-3 +%{python3_sitelib}/%{pypi_name}*/ + +%files -n %{python_wheel_pkg_prefix}-%{pypi_name}-wheel +%license LICENSE.txt +# we own the dir for simplicity +%dir %{python_wheel_dir}/ +%{python_wheel_dir}/%{python_wheel_name} + +%changelog +* Tue Jan 23 2024 Miro Hrončok - 0.41.2-3 +- Rebuilt for timestamp .pyc invalidation mode + +* Tue Nov 14 2023 Charalampos Stratakis - 0.41.2-2 +- Disable bootstrap + +* Mon Oct 09 2023 Tomáš Hrnčiar - 0.41.2-1 +- Initial package. +- Fedora contributions by: + Charalampos Stratakis + Dennis Gilmore + Haikel Guemar + Igor Gnatenko + Karolina Surma + Lumir Balhar + Matej Stuchlik + Maxwell G + Miro Hrončok + Robert Kuska + Slavek Kabrda + Tomáš Hrnčiar + Tomas Orsava +