# 构建方案: 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, python3-setuptools-scm=7.1.0 (openeuler-24.03_LTS_SP4-x86_64) # 版本来源: sniffio/_version.py 硬编码 __version__="1.3.1"(pyproject dynamic version = attr,非 scm 计算) # topdir: sniffio-1.3.1 %global pypi_name sniffio Name: python-%{pypi_name} Version: 1.3.1 Release: 1%{?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-setuptools >= 64 BuildRequires: python3-setuptools-scm >= 6.4 %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-1 - Initial package