# remirepo spec file for php-orieg-judy # # SPDX-FileCopyrightText: Copyright 2025 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.2.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 afe5de4ce52bb2b80af565a6f297bf330a65d0d8 %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 rm -r test-package judy-2.2.0 *.dep : 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 * 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