%global pypi_name msgspec # topdir: msgspec-0.22.0 (verified via tar tf) Name: python-%{pypi_name} Version: 0.22.0 Release: 1%{?dist} Summary: A fast serialization and validation library with builtin support for JSON, MessagePack, YAML, and TOML License: BSD-3-Clause URL: https://github.com/jcrist/msgspec Source0: https://github.com/jcrist/msgspec/archive/v%{version}/%{pypi_name}-%{version}.tar.gz %description msgspec is a fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML. It features high performance encoders/decoders for common protocols, support for a wide variety of Python types, zero-cost schema validation using familiar Python type annotations, and a speedy Struct type for representing structured data. %package -n python3-%{pypi_name} Summary: A fast serialization and validation library with builtin support for JSON, MessagePack, YAML, and TOML Provides: python-%{pypi_name} Provides: python3dist(%{pypi_name}) = %{version} BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip BuildRequires: python3-wheel BuildRequires: gcc %description -n python3-%{pypi_name} msgspec is a fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML. It features high performance encoders/decoders for common protocols, support for a wide variety of Python types, zero-cost schema validation using familiar Python type annotations, and a speedy Struct type for representing structured data. %package help Summary: Development documents and examples for %{pypi_name} Provides: python3-%{pypi_name}-doc %description help msgspec is a fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML. This package provides development documents and examples for msgspec. %prep %autosetup -n %{pypi_name}-%{version} -p1 # Patch out setuptools-scm (not available in openEuler chroot toolchain). # setuptools-scm is a build toolchain tool that cannot be introduced via # dep_registry. Instead, make the version static and pre-generate _version.py. # Remove setuptools-scm from build-system.requires sed -i '/setuptools-scm/d' pyproject.toml # Replace dynamic version with static version sed -i '/^dynamic = \[/,/^]/c\version = "%{version}"' pyproject.toml # Remove [tool.setuptools_scm] section sed -i '/^\[tool.setuptools_scm\]$/,/^parentdir_prefix_version/d' pyproject.toml # Fix license format for setuptools < 77 compatibility sed -i 's/^license = "BSD-3-Clause"/license = {text = "BSD-3-Clause"}/' pyproject.toml sed -i '/^license-files = \[/,/^]/d' pyproject.toml # Pre-generate _version.py (normally created by setuptools-scm) echo '__version__ = "%{version}"' > src/msgspec/_version.py %build %define _lto_cflags %{nil} %undefine _hardened_build %py3_build %install %py3_install %files -n python3-%{pypi_name} %license LICENSE %{python3_sitearch}/msgspec/ %{python3_sitearch}/msgspec-%{version}*.egg-info/ %files help %doc README.md %changelog * Thu Oct 29 2026 Python_Bot - 0.22.0-1 - Initial package