# remirepo spec file for php-orieg-judy # # SPDX-FileCopyrightText: Copyright 2025-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-orieg-judy %else %global _root_prefix %{_prefix} %endif %bcond_without tests # Extension %global ext_name judy %global ini_name 40-%{ext_name}.ini %global upstream_version 2.3.0 #global upstream_prever RC1 # PIE / packagist %global pie_vend orieg %global pie_proj judy # Github forge %global gh_vend orieg %global gh_proj php-judy %global forgeurl https://github.com/%{gh_vend}/%{gh_proj} #global commit 6065ed4fb66d3ecfee41fb21a78fbcdddd3efecb %global tag v%{upstream_version}%{?upstream_prever} # for EL-8 to avoid TAG usage %global archivename %{gh_proj}-%{upstream_version}%{?upstream_prever} Summary: PHP Judy implements sparse dynamic arrays Name: %{?scl_prefix}php-%{pie_vend}-%{pie_proj} Version: %{upstream_version}%{?upstream_prever:~%{upstream_prever}} %forgemeta Release: 1%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} License: PHP-3.01 URL: %{forgeurl} Source0: %{forgesource} BuildRequires: make BuildRequires: gcc BuildRequires: %{?scl_prefix}php-devel >= 8.0 BuildRequires: Judy-devel Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} Provides: %{?scl_prefix}php-%{ext_name} = %{version} Provides: %{?scl_prefix}php-%{ext_name}%{?_isa} = %{version} Provides: %{?scl_prefix}php-pie(%{pie_vend}/%{pie_proj}) = %{version} # Package have been renamed Obsoletes: %{?scl_prefix}php-pecl-judy < 2.2 Provides: %{?scl_prefix}php-pecl-judy = %{version} Provides: %{?scl_prefix}php-pecl-judy%{?_isa} = %{version} %description PHP Judy implements sparse dynamic arrays (aka Judy Arrays). This extension is based on the Judy C library. A Judy array consumes memory only when it is populated, yet can grow to take advantage of all available memory if desired. Judy's key benefits are scalability, high performance, and memory efficiency. Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. %package devel Summary: %{name} developer files (header) Group: Development/Libraries Requires: %{name}%{?_isa} = %{version}-%{release} Requires: %{?scl_prefix}php-devel%{?_isa} # Package have been renamed Obsoletes: %{?scl_prefix}php-pecl-judy-devel < 2.2 Provides: %{?scl_prefix}php-pecl-judy-devel = %{version} %description devel These are the files needed to compile programs using %{name}. %prep %forgesetup : Sanity check, really often broken extver=$(sed -n '/#define PHP_JUDY_VERSION/{s/.* "//;s/".*$//;p}' php_judy.h) if test "x${extver}" != "x%{upstream_version}%{?upstream_prever}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi : Create configuration file cat << 'EOF' | tee %{ini_name} ; Enable %{ext_name} extension module extension=%{ext_name} EOF %build %{__phpize} sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global %configure \ --with-judy=%{_root_prefix} \ --with-libdir=%{_lib} \ --with-php-config=%{__phpconfig} %make_build %install %make_install # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} %check : Minimal load test for the extension %{__php} --no-php-ini \ --define extension=%{buildroot}/%{php_extdir}/%{ext_name}.so \ --modules | grep -i '^%{ext_name}$' %if %{with tests} : Upstream test suite for the extension TEST_PHP_ARGS="-n -d extension=%{buildroot}/%{php_extdir}/%{ext_name}.so" \ %{__php} -n run-tests.php -q --show-diff %{?_smp_mflags} %endif %files %license LICENSE %doc composer.json %doc *.md %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{ext_name}.so %files devel %doc examples %{php_incldir}/ext/%{ext_name} %changelog * Sat Feb 28 2026 Remi Collet - 2.3.0-1 - update to 2.3.0 * Fri Aug 29 2025 Remi Collet - 2.2.0-1 - initial package - obsoletes php-pecl-judy - open https://github.com/orieg/php-judy/pull/32 clean-up build artefacts