1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
%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 <Python_Bot@openeuler.org> - 0.22.0-1
- Initial package
|