yyjson/yyjson.spec
topazus 9af00d9b3d Update to 0.9.0; fix rhbz#2274045 and rhbz#2266791
* comments from upstream repo with CVE-2024-25713:
* If you have already called yyjson_doc_free() on a doc, the doc and its internal values are invalid.
* Any further operation on the doc or its values is undefined behavior.
*
* While this is not a bug in yyjson itself, a defensive patch has been provided:
* 0eca326fe5
* If you mistakenly call yyjson_doc_free() twice on the same doc against the documentation,
* this patch will cause your program to crash immediately, alerting you to the incorrect usage.
2024-04-09 08:37:03 +08:00

73 lines
1.8 KiB
RPMSpec

%global forgeurl https://github.com/ibireme/yyjson
Version: 0.9.0
%global tag %{version}
%forgemeta
Name: yyjson
Release: %autorelease
Summary: A high performance JSON library written in ANSI C
License: MIT
URL: %{forgeurl}
Source0: %{forgesource}
BuildRequires: gcc-c++
BuildRequires: cmake
BuildRequires: ninja-build
%description
A high performance JSON library written in ANSI C.
Features
- Fast: can read or write gigabytes per second JSON data on modern CPUs.
- Portable: complies with ANSI C (C89) for cross-platform compatibility.
- Strict: complies with RFC 8259 JSON standard, ensuring strict number format
and UTF-8 validation.
- Extendable: offers options to allow comments, trailing commas, NaN/Inf, and
custom memory allocator.
- Accuracy: can accurately read and write int64, uint64, and double numbers.
- Flexible: supports unlimited JSON nesting levels, \u0000 characters, and non
null-terminated strings.
- Manipulation: supports querying and modifying using JSON Pointer, JSON Patch
and JSON Merge Patch.
- Developer-Friendly: easy integration with only one h and one c file.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
This package contains development files for %{name}.
%prep
%forgeautosetup -p1
# https://github.com/ibireme/yyjson/issues/154
sed -i '/-Werror/d' CMakeLists.txt
%build
%cmake \
-GNinja \
-DCMAKE_BUILD_TYPE=Release \
-DYYJSON_BUILD_TESTS=ON \
%cmake_build
%install
%cmake_install
%check
%ctest
%files
%license LICENSE
%doc README.md
%{_libdir}/libyyjson.so.0*
%files devel
%{_includedir}/yyjson.h
%{_libdir}/libyyjson.so
%{_libdir}/cmake/yyjson/
%{_libdir}/pkgconfig/yyjson.pc
%changelog
%autochangelog