# remirepo spec file for php-pecl-phpy # # SPDX-FileCopyrightText: Copyright 2024-2026 Remi Collet # SPDX-License-Identifier: CECILL-2.1 # http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt # # Please, preserve the changelog entries # %{?scl:%scl_package php-pecl-phpy} %global pecl_name phpy %global ini_name 40-%{pecl_name}.ini %global with_zts 0%{!?_without_zts:%{?__ztsphp:1}} %global _configure ../configure # Github forge %global gh_vend swoole %global gh_proj %{pecl_name} %global forgeurl https://github.com/%{gh_vend}/%{gh_proj} %global tag %{version} Name: %{?scl_prefix}php-pecl-%{pecl_name} Summary: An extension for inter-calling Python and PHP License: Apache-2.0 Version: 1.0.11 Release: 2%{?dist} %forgemeta URL: %{forgeurl} Source0: %{forgesource} # Always use pkg-config instead of python3-config # see https://github.com/swoole/phpy/pull/65 Patch0: %{pecl_name}-pkgconfig.patch BuildRequires: make BuildRequires: %{?dtsprefix}gcc BuildRequires: %{?scl_prefix}php-devel >= 8.1 BuildRequires: python3-devel Requires: %{?scl_prefix}php(zend-abi) = %{php_zend_api} Requires: %{?scl_prefix}php(api) = %{php_core_api} # Extension Provides: %{?scl_prefix}php-%{pecl_name} = %{version} Provides: %{?scl_prefix}php-%{pecl_name}%{?_isa} = %{version} # PECL Provides: %{?scl_prefix}php-pecl(%{pecl_name}) = %{version} Provides: %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} # No PIE for now %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 %forgesetup sed -s '/-Wall/d' -i config.m4 %patch -P0 -p1 -b .pkg sed -e '/PHP_PHPY_VERSION/s/1.0.10/%{version}/' -i php_phpy.h # 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 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} %{__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} %if %{with_zts} %make_install -C ZTS install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} %endif %check # 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 LICENSE %doc README.md %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 * Thu Apr 23 2026 Remi Collet - 1.0.11-2 - drop pear/pecl dependency - sources from github * Thu Mar 6 2025 Remi Collet - 1.0.11-1 - update to 1.0.11 * Wed Feb 26 2025 Remi Collet - 1.0.10-1 - update to 1.0.10 - re-license spec file to CECILL-2.1 * Fri Sep 6 2024 Remi Collet - 1.0.8-1 - update to 1.0.8 - drop patches merged upstream - add patch to use pkg-config by default * Wed Aug 21 2024 Remi Collet - 1.0.6-3 - test build for PR 65 * Tue Aug 20 2024 Remi Collet - 1.0.6-2 - use python3.12 on EL-8 - open https://github.com/swoole/phpy/pull/65 use PKG_CHECK_MODULES * Tue Aug 20 2024 Remi Collet - 1.0.6-1 - initial package - open https://github.com/swoole/phpy/pull/61 use cxx linker - open https://github.com/swoole/phpy/pull/62 add LICENSE - open https://github.com/swoole/phpy/issues/63 broken with python 3.6 - open https://github.com/swoole/phpy/pull/64 report python version