diff options
author | CoprDistGit <infra@openeuler.org> | 2025-03-17 02:08:35 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2025-03-17 02:08:35 +0000 |
commit | a37cdd7bc1c85dfbb25a1a1ccba56d46d6b6898e (patch) | |
tree | 107d66fbfd11d5a4901634e5bd7878e6c0d5227d | |
parent | d88efa017935119c758c89f0ead434648091e610 (diff) |
automatic import of phpy
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | phpy-pkgconfig.patch | 19 | ||||
-rw-r--r-- | phpy.spec | 165 | ||||
-rw-r--r-- | sources | 1 |
4 files changed, 186 insertions, 0 deletions
@@ -0,0 +1 @@ +/phpy-1.0.11.tgz diff --git a/phpy-pkgconfig.patch b/phpy-pkgconfig.patch new file mode 100644 index 0000000..25f2772 --- /dev/null +++ b/phpy-pkgconfig.patch @@ -0,0 +1,19 @@ +diff -up phpy-1.0.8/config.m4.old phpy-1.0.8/config.m4 +--- phpy-1.0.8/config.m4.old 2024-09-06 06:58:54.678666785 +0200 ++++ phpy-1.0.8/config.m4 2024-09-06 06:59:02.749976475 +0200 +@@ -70,9 +70,12 @@ if test "$PHP_PHPY" != "no"; then + PHP_EVAL_LIBLINE($PYTHON_LIBS, PHPY_SHARED_LIBADD) + PHP_EVAL_INCLINE($PYTHON_CFLAGS) + else +- PHP_PYTHON_CONFIG="python3-config" +- GET_PYTHON_INCLUDES() +- GET_PYTHON_LDFLAGS() ++ dnl modern version use python3-embed, old (<= 3.6) use python3 ++ PKG_CHECK_MODULES([PYTHON], [python3-embed],, ++ [PKG_CHECK_MODULES([PYTHON], [python3])] ++ ) ++ PHP_EVAL_LIBLINE($PYTHON_LIBS, PHPY_SHARED_LIBADD) ++ PHP_EVAL_INCLINE($PYTHON_CFLAGS) + fi + + PHP_REQUIRE_CXX() diff --git a/phpy.spec b/phpy.spec new file mode 100644 index 0000000..94686f2 --- /dev/null +++ b/phpy.spec @@ -0,0 +1,165 @@ +# 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 <fundawang@yeah.net> - 1.0.11-1 +- import pacakge from remi @@ -0,0 +1 @@ +7fc32dd05880b23f959e46f61c0cfc33 phpy-1.0.11.tgz |