# remirepo spec file for php-iliaal-fastjson # # SPDX-FileCopyrightText: Copyright 2026 Remi Collet # SPDX-License-Identifier: CECILL-2.1 # http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt # # Please, preserve the changelog entries # %if 0%{?scl:1} %scl_package php-iliaal-fastjson %else %global pkg_name %{name} %endif %bcond_without tests %global gh_owner iliaal %global gh_project fastjson %global ext_name fastjson %global pie_vend %{gh_owner} %global pie_proj %{gh_project} %global ini_name 40-%{ext_name}.ini %global forgeurl https://github.com/%{gh_owner}/%{gh_project} %global tag %{version} # for EL-8 to avoid TAG usage %global archivename %{gh_project}-%{tag} %global libyyjsonver 0.12.0 Name: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} Summary: Fast JSON encode/decode/validate for PHP # Extension is BSD-3-Clause # Library is MIT License: BSD-3-Clause AND MIT Version: 0.2.1 Release: 1%{?dist} %forgemeta URL: %{forgeurl} Source0: %{forgesource} BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 8.3 Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} # See vendor/yyjson/PATCHES.md Provides: bundled(yyjson) = %{libyyjsonver} # Extension Provides: %{?scl_prefix}php-%{ext_name} = %{version} Provides: %{?scl_prefix}php-%{ext_name}%{?_isa} = %{version} # PECL Provides: %{?scl_prefix}php-pecl-%{ext_name} = %{version} Provides: %{?scl_prefix}php-pecl-%{ext_name}%{?_isa} = %{version} # PIE Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} %description Fast JSON encode, decode, and validate for PHP. Drop-in alternative to ext/json with a namespaced fastjson_* API and json_last_error-compatible error reporting. Backed by yyjson %{libyyjsonver}, one of the fastest portable JSON libraries. Coexists with ext/json; adoption is opt-in per call site. Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. %prep %forgesetup # Sanity check, really often broken extver=$(sed -n '/#define PHP_FASTJSON_VERSION/{s/.* "//;s/".*$//;p}' php_fastjson.h) if test "x${extver}" != "x%{version}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi # Drop in the bit of configuration cat << 'EOF' | tee %{ini_name} ; Enable '%{summary}' extension module extension = %{ext_name} EOF %build %{?dtsenable} %{__phpize} sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global %configure \ --with-php-config=%{__phpconfig} \ --with-libdir=%{_lib} \ --enable-fastjson %make_build %install %{?dtsenable} # Install the NTS stuff %make_install install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} %check : Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{ext_name}.so \ --modules | grep '^%{ext_name}$' %if %{with tests} : Upstream test suite for NTS extension TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{ext_name}.so" \ %{__php} -n run-tests.php --show-diff %{?_smp_mflags} %endif %files %license LICENSE %doc composer.json %doc docs %doc *.md %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{ext_name}.so %changelog * Sat May 16 2026 Remi Collet - 0.2.1-1 - new package