# 构建方案: pip(pyproject.toml build-backend=setuptools.build_meta,源码无 setup.py,走 PEP 517 pip 路径) # 上游源码: https://github.com/python-trio/sniffio # 构建工具链: python3=3.11.6, python3-setuptools=68.0.0 (openeuler-24.03_LTS_SP4-x86_64) # 版本来源: sniffio/_version.py 硬编码 __version__="1.3.1"(pyproject dynamic version = attr,非 scm 计算) # 注: pyproject.toml [build-system].requires 声明了 setuptools_scm>=6.4,但版本走 attr 读取 _version.py, # setuptools_scm 从未被导入;且构建用 --no-build-isolation 不安装 build-system.requires。 # chroot 无 python3-setuptools-scm 包,故不声明该 BuildRequires(已验证 check_existing_package=introduce_new)。 # topdir: sniffio-1.3.1 %global pypi_name sniffio Name: python-%{pypi_name} Version: 1.3.1 Release: 2%{?dist} Summary: Sniff out which async library your code is running under License: MIT OR Apache-2.0 URL: https://github.com/python-trio/sniffio Source0: https://github.com/python-trio/sniffio/archive/refs/tags/v%{version}/%{pypi_name}-%{version}.tar.gz BuildArch: noarch BuildRequires: python3-devel BuildRequires: python3-pip BuildRequires: python3-wheel BuildRequires: python3-setuptools >= 64 %description Sniff out which async library your code is running under. This is a tiny package whose only purpose is to let you detect which async library your code is running under, so you can write cross-library code. %package -n python3-%{pypi_name} Summary: Sniff out which async library your code is running under Provides: python-%{pypi_name} Provides: python3dist(%{pypi_name}) = %{version} %description -n python3-%{pypi_name} Sniff out which async library your code is running under. This is a tiny package whose only purpose is to let you detect which async library your code is running under, so you can write cross-library code. %package help Summary: Development documents and examples for %{pypi_name} Provides: python3-%{pypi_name}-doc Requires: python3-%{pypi_name} %description help This package provides development documents and examples for %{pypi_name}. %prep %autosetup -n %{pypi_name}-%{version} -p1 %build pip3 wheel --no-build-isolation --no-deps --wheel-dir %{_builddir}/wheels . %install pip3 install --no-build-isolation --no-index \ --find-links %{_builddir}/wheels \ --root %{buildroot} --prefix /usr \ %{pypi_name}==%{version} %files -n python3-%{pypi_name} %license LICENSE LICENSE.MIT LICENSE.APACHE2 %{python3_sitelib}/sniffio/ %{python3_sitelib}/sniffio-%{version}*.dist-info/ %files help %license LICENSE LICENSE.MIT LICENSE.APACHE2 %doc README.rst CHEATSHEET.rst %changelog * Tue Oct 27 2026 Python_Bot - 1.3.1-2 - Drop unneeded BuildRequires on python3-setuptools-scm (version sourced from hardcoded _version.py attr, not scm; package absent in chroot) - Add explicit BuildRequires on python3-wheel for pip3 wheel build command * Tue Oct 27 2026 Python_Bot - 1.3.1-1 - Initial package