# remirepo spec file for php-pecl-phpy # # SPDX-FileCopyrightText: Copyright 2024-2025 Remi Collet # SPDX-License-Identifier: CECILL-2.1 # http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt # %global pecl_name phpy %global ini_name 40-%{pecl_name}.ini %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global sources %{pecl_name}-%{version} %global _configure ../%{sources}/configure Summary: An extension for inter-calling Python and PHP Name: %{pecl_name} Version: 1.0.11 Release: 1 License: Apache-2.0 URL: https://pecl.php.net/package/%{pecl_name} Source0: https://pecl.php.net/get/%{sources}.tgz # Always use pkg-config instead of python3-config # see https://github.com/swoole/phpy/pull/65 Patch0: %{pecl_name}-pkgconfig.patch BuildRequires: make BuildRequires: gcc BuildRequires: php-devel >= 8.1 BuildRequires: php-pear BuildRequires: python3-devel Requires: php(zend-abi) = %{php_zend_api} Requires: php(api) = %{php_core_api} Provides: php-%{pecl_name} = %{version} Provides: php-%{pecl_name}%{?_isa} = %{version} Provides: php-pecl(%{pecl_name}) = %{version} Provides: php-pecl(%{pecl_name})%{?_isa} = %{version} %description This extension allows PHP to directly use Python modules and functions without RPC. Including Pytorch, transformer, numpy, tensorflow and other Python AI libraries, which can be used like calling PHP functions. 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 -q -c # Don't install/register tests sed -e 's/role="test"/role="src"/' \ -e '/LICENSE/s/role="doc"/role="src"/' \ -i package.xml cd %{sources} # drop unneeded options (keep std=c++14) sed -s '/-Wall/d' -i config.m4 %patch -P0 -p1 -b .pkg # Sanity check, really often broken extver=$(sed -n '/# define PHP_PHPY_VERSION/{s/.* "//;s/".*$//;p}' php_phpy.h) if test "x${extver}" != "x%{version}"; then : Error: Upstream extension version is ${extver}, expecting %{version}. exit 1 fi cd .. mkdir NTS %if %{with_zts} mkdir ZTS %endif # Create configuration file cat > %{ini_name} << 'EOF' ; Enable %{pecl_name} extension module extension=%{pecl_name}.so EOF %build %{?dtsenable} cd %{sources} %{__phpize} sed -e 's/INSTALL_ROOT/DESTDIR/' -i build/Makefile.global cd ../NTS %configure \ --enable-phpy \ --with-libdir=%{_lib} \ --with-php-config=%{__phpconfig} %make_build %if %{with_zts} cd ../ZTS %configure \ --enable-phpy \ --with-libdir=%{_lib} \ --with-php-config=%{__ztsphpconfig} %make_build %endif %install %{?dtsenable} %make_install -C NTS # install config file install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} # Install XML package description install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml %if %{with_zts} %make_install -C ZTS install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif # Documentation for i in LICENSE $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') do install -Dpm 644 %{sources}/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i done %check cd %{sources} # Minimal load test for NTS extension %{__php} --no-php-ini \ --define extension=%{buildroot}/%{php_extdir}/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %if %{with_zts} # Minimal load test for ZTS extension %{__ztsphp} --no-php-ini \ --define extension=%{buildroot}/%{php_ztsextdir}/%{pecl_name}.so \ --modules | grep '^%{pecl_name}$' %endif %files %license %{sources}/LICENSE %doc %{pecl_docdir}/%{pecl_name} %{pecl_xmldir}/%{name}.xml %config(noreplace) %{php_inidir}/%{ini_name} %{php_extdir}/%{pecl_name}.so %if %{with_zts} %config(noreplace) %{php_ztsinidir}/%{ini_name} %{php_ztsextdir}/%{pecl_name}.so %endif %changelog * Mon Mar 17 2025 Funda Wang - 1.0.11-1 - import pacakge from remi