%global _empty_manifest_terminate_build 0
Name:           python-ujson
Version:        5.1.0
Release:        5
Summary:        Ultra fast JSON encoder and decoder for Python
License:        BSD
URL:            https://github.com/ultrajson/ultrajson
Source0:        https://files.pythonhosted.org/packages/92/4a/2676677f59709517560b2b7eeb027453e86643d54d04687602e76cca4380/ujson-5.1.0.tar.gz

Patch0001:      fix-CVE-2022-31116.patch
Patch0002:      fix-CVE-2022-31117.patch
Patch0003:      0001-ujson-5.1.0-add-support-for-loongarch64.patch
Patch0004:      100-python-ujson-uos-add-sw_64-support.patch

%description
UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 3.6+

%package -n python3-ujson
Summary:        Ultra fast JSON encoder and decoder for Python
Provides:       python-ujson
# Base build requires
BuildRequires:  gcc-c++
BuildRequires:  python3-devel
BuildRequires:  python3-setuptools
BuildRequires:  python3-pbr
BuildRequires:  python3-pip
BuildRequires:  python3-wheel
BuildRequires:  python3-setuptools_scm
%description -n python3-ujson
UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 3.6+

%package help
Summary:        Ultra fast JSON encoder and decoder for Python
Provides:       python3-ujson-doc
BuildArch:      noarch
%description help
UltraJSON is an ultra fast JSON encoder and decoder written in pure C with bindings for Python 3.6+

%prep
%autosetup -n ujson-%{version} -p1

%build
%py3_build

%install
%py3_install

install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
    find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
    find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
    find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
    find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
    find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%check
# %{__python3} setup.py test

%files -n python3-ujson -f filelist.lst
%dir %{python3_sitearch}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Thu Feb 27 2025 zhangshaoning <zhangshaoning@uniontech.com> - 5.1.0-5
- Add sw_64 support

* Tue Nov 7 2023 doupengda <doupengda@loongson.cn> -5.1.0-4
- add support for loongarch64

* Wed Mar 1 2023 huangduirong <huangduirong@huawei.com> - 5.1.0-3
- fix CVE-2022-31117

* Sun Feb 26 2023 huangduirong <huangduirong@huawei.com> - 5.1.0-2
- fix CVE-2022-31116

* Wed May 18 2022 OpenStack_SIG <openstack@openeuler.org> - 5.1.0-1
- Upgrade package python3-ujson to version 5.1.0

* Thu Sep 16 2021 wangxiyuan <wangxiyuan1007@gmail.com> - 4.0.2-2
- Add gcc-c++ build require
* Tue Jul 20 2021 OpenStack_SIG <openstack@openeuler.org> - 4.0.2-1
- Package Spec generate
