# - mysqlnd driver doesn't support reconnect: https://bugs.php.net/bug.php?id=52561
# TODO 5.6:
# - enable --with-fpm-systemd, but ensure it checks for sd_booted()
-# TODO 5.4:
-# - update imap annotations patch (needs api porting)
-# - update imap myrights patch (needs api porting)
# TODO:
# - fileinfo extension bundles magic db in library: data_file.c (dump of magic.mgc) is 14M
# - 2.3M fileinfo.so php54-fileinfo-5.4.6-0.15.x86_64
# - 2.3M fileinfo.so php-fileinfo-5.3.16-1.x86_64
# - 13K fileinfo.so php-pecl-fileinfo-1.0.4-8.amd64
# - ttyname_r() misdetected http://bugs.php.net/bug.php?id=48820
-# - modularize standard (output from pure php -m)?
-# - some mods should be shared:
-#$ php -m
-# [PHP Modules]
-# Core
-# date
-# libxml
-# Reflection
-# standard
#
# Conditional build:
# - packaging options
%bcond_without dom # without DOM extension module
%bcond_without enchant # without Enchant extension module
%bcond_without exif # without EXIF extension module
+%bcond_without ffi # without FFI extension module
%bcond_without fileinfo # without fileinfo extension module
%bcond_without filter # without filter extension module
%bcond_without ftp # without FTP extension module
Summary(uk.UTF-8): PHP Версії 7 - мова препроцесування HTML-файлів, виконувана на сервері
Name: %{orgname}%{php_suffix}
Version: 7.4.0
-Release: 0.1
+Release: 1
Epoch: 4
# All files licensed under PHP version 3.01, except
# Zend is licensed under Zend
Patch2: %{orgname}-mail.patch
Patch3: %{orgname}-link-libs.patch
Patch4: intl-stdc++.patch
-
Patch7: %{orgname}-sapi-ini-file.patch
Patch8: milter.patch
Patch9: libtool-tag.patch
Patch23: %{orgname}-builddir.patch
Patch24: %{orgname}-zlib-for-getimagesize.patch
Patch25: %{orgname}-stupidapache_version.patch
-Patch26: %{orgname}-pear.patch
Patch27: %{orgname}-config-dir.patch
Patch29: %{orgname}-fcgi-graceful.patch
Patch31: %{orgname}-fcgi-error_log-no-newlines.patch
-Patch34: %{orgname}-libtool.patch
Patch39: %{orgname}-use-prog_sendmail.patch
Patch41: %{orgname}-fpm-config.patch
Patch42: %{orgname}-fpm-shared.patch
Patch43: %{orgname}-silent-session-cleanup.patch
Patch44: %{orgname}-include_path.patch
-Patch45: %{orgname}-imap-annotations.patch
-Patch46: %{orgname}-imap-myrights.patch
Patch50: extension-shared-optional-dep.patch
Patch53: fix-test-run.patch
Patch55: bug-52078-fileinode.patch
Patch70: mysqlnd-ssl.patch
Patch71: libdb-info.patch
URL: http://php.net/
-%{?with_pdo_firebase:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}}
+%{?with_pdo_firebird:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}}
%{?with_pspell:BuildRequires: aspell-devel >= 2:0.50.0}
BuildRequires: autoconf >= 2.59
BuildRequires: automake >= 1.4d
%{?with_enchant:BuildRequires: enchant-devel >= 1.1.3}
%{?with_kerberos5:BuildRequires: heimdal-devel}
%{?with_argon2:BuildRequires: libargon2-devel >= 20161029}
+%{?with_ffi:BuildRequires: libffi-devel}
%{?with_sodium:BuildRequires: libsodium-devel >= 1.0.8}
%if %{with pdo_dblib}
BuildRequires: freetds-devel >= 0.82
BuildRequires: libltdl-devel >= 1.4
BuildRequires: libpng-devel >= 1.0.8
%{?with_intl:BuildRequires: libstdc++-devel}
-%{?with_webp:BuildRequires: libwebp-devel}
-%if "%{pld_release}" != "ac"
BuildRequires: libtool >= 2:2.4.6
-%else
-BuildRequires: libtool >= 1.4.3
-%endif
+%{?with_webp:BuildRequires: libwebp-devel}
BuildRequires: libxml2-devel >= 1:2.7.6-4
%{?with_xsl:BuildRequires: libxslt-devel >= 1.1.0}
%{?with_zip:BuildRequires: libzip-devel >= 1.3.1}
Requires: rpm-whiteout >= 1.28
Requires: tzdata
Requires: zlib >= 1.2.0.4
-Requires: %{name}-simplexml = %{epoch}:%{version}-%{release}
Provides: %{name}(debug) = %{php_debug}
Provides: %{name}(modules_api) = %{php_api_version}
Provides: %{name}(thread-safety) = %{_zend_zts}
Provides: %{name}-date
Provides: %{name}-hash = %{epoch}:%{version}-%{release}
Provides: %{name}-pcre = %{epoch}:%{version}-%{release}
-Provides: %{name}-spl = %{epoch}:%{version}-%{release}
Provides: %{name}-reflection
+Provides: %{name}-spl = %{epoch}:%{version}-%{release}
Provides: %{name}-standard
Provides: php(core) = %{version}
Provides: php(date)
Summary(uk.UTF-8): Пакет розробки для побудови розширень PHP
Group: Development/Languages/PHP
Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Requires: autoconf >= 2.13
-Requires: automake
-%if "%{pld_release}" != "ac"
+Requires: autoconf >= 2.59
+Requires: automake >= 1.4d
Requires: libtool >= 2:2.4.6
-%else
-Requires: libtool
-%endif
Requires: pcre2-8-devel >= 10.30
Requires: shtool
Provides: php-devel = %{epoch}:%{version}-%{release}
%description exif -l pl.UTF-8
Moduł PHP dodający obsługę znaczników EXIF w plikach obrazków.
+%package ffi
+Summary: %{modname} - Foreign Function Interface
+Group: Libraries
+URL: https://www.php.net/manual/en/book.ffi.php
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Provides: php(ffi) = %{version}
+
+%description ffi
+FFI is a multi-platform extension for PHP that allows you to bind to
+functions from arbitrary shared libraries and call them.
+
%package fileinfo
Summary: libmagic bindings
Summary(pl.UTF-8): Wiązania do libmagic
%patch23 -p1
%patch24 -p1
%patch25 -p1
-%patch26 -p1
%patch27 -p1
%patch29 -p1
%patch31 -p1
-%if "%{pld_release}" != "ac"
-%patch34 -p1
-%endif
%patch39 -p1
%patch41 -p1
%patch42 -p1
%patch43 -p1
%patch44 -p1
-#%patch45 -p1 # imap annotations. fixme
-#%patch46 -p1 # imap myrights. fixme
%patch50 -p1
%patch53 -p1
#%{__rm} -r ext/dba/libinifile
#%{__rm} -r ext/gd/libgd
#%{__rm} -r ext/mbstring/libmbfl
-%{__rm} -r ext/pcre/pcre2lib
+#%{__rm} -r ext/pcre/pcre2lib
#%{__rm} -r ext/soap/interop
%{__rm} -r ext/xmlrpc/libxmlrpc
#%{__rm} -r ext/zip/lib
fi
export EXTENSION_DIR="%{php_extensiondir}"
+
+# Set PEAR_INSTALLDIR to ensure that the hard-coded include_path
+# includes the PEAR directory even though pear is packaged separately.
+export PEAR_INSTALLDIR=%{php_pear_dir}
+
# configure once (for faster debugging purposes)
if [ ! -f _built-conf ]; then
# now remove Makefile copies
--with-pdo-dblib=shared \
%endif
%if %{with pdo_firebird}
- --with-pdo-firebird=shared,/usr \
+ --with-pdo-firebird=shared \
%endif
%{?with_mhash:--with-mhash=yes} \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
%{?with_pdo_oci:--with-pdo-oci=shared%{?with_instantclient:,instantclient,%{_libdir}}} \
%{?with_pdo_odbc:--with-pdo-odbc=shared,unixODBC,/usr} \
%{?with_pdo_pgsql:--with-pdo-pgsql=shared} \
- %{?with_pdo_sqlite:--with-pdo-sqlite=shared,/usr} \
- %{?with_webp:--with-webp-dir=/usr --with-webp} \
- --without-libexpat-dir \
+ %{?with_pdo_sqlite:--with-pdo-sqlite=shared} \
+ %{?with_webp:--with-webp} \
%{__enable_disable posix posix shared} \
--enable-shared \
%{__enable_disable session session shared} \
%{__with_without curl curl shared} \
--with-db4 \
%{__with_without iconv iconv shared} \
- %{?with_enchant:--with-enchant=shared,/usr} \
- --with-freetype-dir=shared \
+ %{?with_enchant:--with-enchant=shared} \
+ --with-freetype \
%{__with_without gettext gettext shared} \
- %{__enable_disable gd gd shared%{?with_system_gd:,/usr}} \
+ %{__enable_disable gd gd shared} \
%{?with_system_gd:--with-external-gd} \
--with-gdbm \
%{__with_without gmp gmp shared} \
+ %{__with_without ffi ffi shared} \
%{?with_imap:--with-imap=shared --with-imap-ssl} \
- --with-jpeg-dir=/usr \
+ --with-jpeg \
%{?with_ldap:--with-ldap=shared --with-ldap-sasl} \
%{?with_mm:--with-mm} \
%{?with_mysqlnd:--enable-mysqlnd=shared} \
%{?with_openssl:--with-openssl=shared} \
%{?with_kerberos5:--with-kerberos} \
--with-tcadb=/usr \
- %{__with_without pcre pcre-regex /usr} \
%{?with_pcre:--with-external-pcre} \
%{__enable_disable filter filter shared} \
- --with-pear=%{php_pear_dir} \
- %{__with_without pgsql pgsql shared,/usr} \
+ %{__with_without pgsql pgsql shared} \
%{__enable_disable phar phar shared} \
- --with-png-dir=/usr \
%{?with_pspell:--with-pspell=shared} \
%{__with_without readline readline shared} \
%{?with_recode:--with-recode=shared} \
%{?with_snmp:--with-snmp=shared} \
%{!?with_pdo_sqlite:--without-pdo-sqlite} \
- %{__with_without sqlite3 sqlite3 shared,/usr} \
+ %{__with_without sqlite3 sqlite3 shared} \
%{?with_tidy:--with-tidy=shared} \
- %{?with_odbc:--with-unixODBC=shared,/usr} \
+ %{?with_odbc:--with-unixODBC=shared} \
%{__with_without xmlrpc xmlrpc shared,/usr} \
%{?with_xsl:--with-xsl=shared} \
--with-zlib=shared \
- --with-zlib-dir=shared,/usr \
- %{?with_zip:--with-zip=shared,/usr} \
+ %{?with_zip:--with-zip=shared} \
# save for debug
cp -f Makefile Makefile.$sapi
# for CLI SAPI only
%{__mv} $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/readline.ini,cli.d}
-# use system automake and {lib,sh}tool
-ln -snf /usr/share/automake/config.{guess,sub} $RPM_BUILD_ROOT%{_libdir}/%{name}/build
-ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/%{name}/build
-for fn in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
- f=%{_aclocaldir}/$fn
- test -f $f || continue
- ln -snf $f $RPM_BUILD_ROOT%{_libdir}/%{name}/build
-done
-for fn in ltmain.sh config/ltmain.sh build-aux/ltmain.sh; do
- f=/usr/share/libtool/$fn
- test -f $f || continue
- ln -snf $f $RPM_BUILD_ROOT%{_libdir}/%{name}/build
- break
-done
sed -i -e '/^phpdir/ s,/php/build,/%{name}/build,' $RPM_BUILD_ROOT%{_bindir}/phpize
# for php-pecl-mailparse
# fix install paths, avoid evil rpaths
sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.la
-# better solution?
-sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/%{name}/build/acinclude.m4
install -p ext/ext_skel.php $RPM_BUILD_ROOT%{_bindir}
%extension_scripts dom
%extension_scripts enchant
%extension_scripts exif
+%extension_scripts ffi
%extension_scripts fileinfo
%extension_scripts filter
%extension_scripts ftp
%extension_scripts odbc
%extension_scripts opcache
%extension_scripts openssl
+%extension_scripts pcntl
%extension_scripts pdo
%extension_scripts pdo-dblib
%extension_scripts pdo-firebird
-%extension_scripts pdo-oci
%extension_scripts pdo-mysql
+%extension_scripts pdo-oci
%extension_scripts pdo-odbc
%extension_scripts pdo-pgsql
%extension_scripts pdo-sqlite
%extension_scripts pgsql
-%extension_scripts pcntl
%extension_scripts posix
%extension_scripts pspell
%extension_scripts recode
%attr(755,root,root) %{php_extensiondir}/exif.so
%endif
+%if %{with ffi}
+%files ffi
+%defattr(644,root,root,755)
+%doc ext/ffi/CREDITS
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/ffi.ini
+%attr(755,root,root) %{php_extensiondir}/ffi.so
+%endif
+
%if %{with fileinfo}
%files fileinfo
%defattr(644,root,root,755)