# remirepo spec file for php-pecl-recode # # Copyright (c) 2019-2022 Remi Collet # License: CC-BY-SA # http://creativecommons.org/licenses/by-sa/4.0/ # # Please, preserve the changelog entries # # we don't want -z defs linker flag %undefine _strict_symbol_defs_build %if 0%{?scl:1} %scl_package php-pecl-recode %else %global _root_bindir %{_bindir} %global _root_libexecdir %{_libexecdir} %endif %bcond_without tests # https://github.com/php/pecl-text-recode/commits/master %global gh_commit 3e049a6b3a5138c6bad444cd29393b3150958c64 %global gh_short %(c=%{gh_commit}; echo ${c:0:7}) %global gh_owner php %global gh_project pecl-text-recode %global gh_date 20190723 %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global pecl_name recode %global upver 1.0.0 %global lower DEV # After 20-xml %global ini_name 30-%{pecl_name}.ini Summary: A module for PHP applications for using the recode library Name: %{?scl_prefix}php-pecl-%{pecl_name} Version: %{upver}%{?lower:~%{lower}}%{?gh_date:.%{gh_date}} Release: 6%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} License: PHP URL: https://pecl.php.net/package/%{pecl_name} Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{upver}-%{gh_short}.tar.gz BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 7.4 BuildRequires: %{?scl_prefix}php-pear BuildRequires: recode-devel Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} %{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} # Set epoch so provides is > 0:7.3 Obsoletes: %{?scl_prefix}php-%{pecl_name} < 7.4.1 Provides: %{?scl_prefix}php-%{pecl_name} = 1:%{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = 1:%{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} %description This module contains an interface to the GNU Recode library. The GNU Recode library converts files between various coded character sets and surface encodings. When this cannot be achieved exactly, it may get rid of the offending characters or fall back on approximations. The library recognises or produces nearly 150 different character sets and is able to convert files between almost any pair. Most RFC 1345 character sets are supported. This extension which was previously part of the PHP distribution. This package is only provided for legacy applications. 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 %setup -qc mv %{gh_project}-%{gh_commit} NTS cd NTS # Check version as upstream often forget to update this extver=$(sed -n '/#define PHP_RECODE_VERSION/{s/.* "//;s/".*$//;p}' php_recode.h) if test "x${extver}" != "x%{upver}%{?rcver}%{?gh_date:-dev}"; then : Error: Upstream RECODE version is ${extver}, expecting %{upver}%{?rcver}%{?gh_date:-dev}. exit 1 fi cd .. # Create configuration file cat << 'EOF' | tee %{ini_name} ; Enable "%{pecl_name}" extension module extension=%{pecl_name} EOF %if %{with_zts} # duplicate for ZTS build cp -pr NTS ZTS %endif %build %{?dtsenable} peclconf() { %configure \ --with-recode \ --with-php-config=$1 } cd NTS %{_bindir}/phpize peclconf %{_bindir}/php-config make %{?_smp_mflags} %if %{with_zts} cd ../ZTS %{_bindir}/zts-phpize peclconf %{_bindir}/zts-php-config make %{?_smp_mflags} %endif %install %{?dtsenable} # Install the NTS stuff make -C NTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} # Install the ZTS stuff %if %{with_zts} make -C ZTS install INSTALL_ROOT=%{buildroot} install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif %check cd NTS : Minimal load test for NTS extension %{_bindir}/php --no-php-ini \ --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %if %{with_zts} cd ../ZTS : Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %endif %if %{with tests} cd ../NTS %if 0%{?fedora} >= 32 || 0%{?rhel} >= 9 : ignore test failing with recode 3.7 rm tests/001.phpt %endif : Run upstream test suite TEST_PHP_EXECUTABLE=%{__php} \ TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ NO_INTERACTION=1 \ REPORT_EXIT_STATUS=1 \ %{__php} -n run-tests.php -q --show-diff %endif %files %{!?_licensedir:%global license %%doc} %license NTS/LICENSE %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{pecl_name}.so %if %{with_zts} %{php_ztsextdir}/%{pecl_name}.so %config(noreplace) %{php_ztsinidir}/%{ini_name} %endif %changelog * Tue Sep 13 2022 Remi Collet - 1.0.0~DEV.20190723-6 - EL-9 build * Wed Feb 19 2020 Remi Collet - 1.0.0~DEV.20190723-5 - ignore 1 test failing with recode 3.7 * Mon Feb 03 2020 Remi Collet - 1.0.0~DEV.20190723-4 - fix obsolete * Tue Sep 03 2019 Remi Collet - 1.0.0~DEV.20190723-3 - rebuild for 7.4.0RC1 * Tue Jul 23 2019 Remi Collet - 1.0.0~DEV.20190723-2 - rebuild for 7.4.0beta1 * Fri Jul 12 2019 Remi Collet - 1.0.0~DEV.20190712-1 - initial package, version 1.0.0-dev