# TODO:
-# - php-shared is SERIOUSLY broken. Try compiling with --enable-versioning.
# - think of including support for:
# - mcve,
# - ovrimos,
# (existing only in php4):
# db, hyperwave, java, mcal, overload, qtdom
# and removed from php 5.1:
-# cpdf, dio, dbx, mnogosearch, yp
-# what about interbase? it's still present, but disabled???
+# cpdf, fam, yp, oracle
# - mime_magic can't handle new "string/*" entries in magic.mime
# - make additional headers added by mail patch configurable
# - apply -hardened patch by default ?
# - modularize session, standard (output from pure php -m)?
-# - having pcre module loaded cli crashes
#
# Conditional build:
%bcond_with db3 # use db3 packages instead of db (4.x) for Berkeley DB support
%bcond_with hwapi # with Hw API support (BR: proprietary libs)
%bcond_with interbase_inst # use InterBase install., not Firebird (BR: proprietary libs)
%bcond_with oci8 # with Oracle oci8 extension module (BR: proprietary libs)
-%bcond_with oracle # with oracle extension module (BR: proprietary libs)
%bcond_without curl # without CURL extension module
%bcond_without imap # without IMAP extension module
-%bcond_with interbase # with InterBase extension module
+%bcond_without interbase # with InterBase extension module
%bcond_without ldap # without LDAP extension module
%bcond_without mhash # without mhash extension module
%bcond_without ming # without ming extension module
%bcond_without mm # without mm support for session storage
%bcond_without msession # without msession extension module
%bcond_without mssql # without MS SQL extension module
-%bcond_without mime_magic # without mime-magic module
+%bcond_without mime_magic # without mime-magic module
%bcond_without odbc # without ODBC extension module
%bcond_without openssl # without OpenSSL support and OpenSSL extension (module)
%bcond_without pcre # without PCRE extension module
%undefine with_msession
%endif
-Summary: The PHP HTML-embedded scripting language for use with Apache
+Summary: PHP: Hypertext Preprocessor
Summary(fr): Le langage de script embarque-HTML PHP pour Apache
Summary(pl): Jêzyk skryptowy PHP - u¿ywany wraz z serwerem Apache
Summary(pt_BR): A linguagem de script PHP
Summary(ru): PHP ÷ÅÒÓÉÉ 5 - ÑÚÙË ÐÒÅÐÒÏÃÅÓÓÉÒÏ×ÁÎÉÑ HTML-ÆÁÊÌÏ×, ×ÙÐÏÌÎÑÅÍÙÊ ÎÁ ÓÅÒ×ÅÒÅ
Summary(uk): PHP ÷ÅÒÓ¦§ 5 - ÍÏ×Á ÐÒÅÐÒÏÃÅÓÕ×ÁÎÎÑ HTML-ÆÁÊ̦×, ×ÉËÏÎÕ×ÁÎÁ ÎÁ ÓÅÒ×ÅÒ¦
Name: php
-Version: 5.1.1
-%define _rel 3
+Version: 5.1.2
+%define _rel 5
Release: %{_rel}%{?with_hardening:hardened}
Epoch: 4
-Group: Libraries
License: PHP
+Group: Libraries
Source0: http://www.php.net/distributions/%{name}-%{version}.tar.bz2
-# Source0-md5: 70a7c90de182d1a1901c390b844153c7
+# Source0-md5: 79cee17e9db85be878000a2a4198378e
Source1: FAQ.%{name}
Source2: zend.gif
Source3: %{name}-module-install
Patch6: %{name}-build_modules.patch
Patch7: %{name}-sapi-ini-file.patch
Patch8: %{name}-no-metaccld.patch
+Patch9: %{name}-reflection.patch
Patch10: %{name}-ini.patch
Patch11: %{name}-acam.patch
Patch14: %{name}-allow-db31.patch
Patch30: %{name}-hardening-fix.patch
Patch31: %{name}-both-apxs.patch
Patch32: %{name}-builddir.patch
-Icon: php.gif
+Patch33: %{name}-zlib-for-getimagesize.patch
+Patch34: %{name}-ini-search-path.patch
URL: http://www.php.net/
%{?with_interbase:%{!?with_interbase_inst:BuildRequires: Firebird-devel >= 1.0.2.908-2}}
%{?with_pspell:BuildRequires: aspell-devel >= 2:0.50.0}
BuildRequires: mysql-devel >= 4.0.0
%{?with_mysqli:BuildRequires: mysql-devel >= 4.1.0}
BuildRequires: ncurses-ext-devel
-%{?with_ldap:BuildRequires: openldap-devel >= 2.0}
+%{?with_ldap:BuildRequires: openldap-devel >= 2.3.0}
%if %{with openssl} || %{with ldap}
BuildRequires: openssl-devel >= 0.9.7d
%endif
BuildRequires: rpm-build >= 4.4.0
BuildRequires: rpmbuild(macros) >= 1.238
%{?with_sqlite:BuildRequires: sqlite-devel}
+%{?with_sqlite:BuildRequires: sqlite3-devel}
BuildRequires: t1lib-devel
%{?with_tidy:BuildRequires: tidy-devel}
%{?with_odbc:BuildRequires: unixODBC-devel}
Summary: PHP DSO module for apache 1.3.x
Summary(pl): Modu³ DSO (Dynamic Shared Object) php dla apache 1.3.x
Group: Development/Languages/PHP
-Requires(post,preun): %{__perl}
-Requires(post,preun): %{apxs1}
+Requires(triggerpostun): sed >= 4.0
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: apache1(EAPI) >= 1.3.33-2
Requires: apache1-mod_mime
Provides: php = %{epoch}:%{version}-%{release}
-Obsoletes: phpfi
Obsoletes: apache-mod_php < 1:4.1.1
+Obsoletes: phpfi
%description -n apache1-mod_php
PHP as DSO module for apache 1.3.x.
Group: Development/Languages/PHP
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: apache(modules-api) = %{apache_modules_api}
-Requires: apache >= 2.2.0
+Requires: apache-mod_mime
Provides: php = %{epoch}:%{version}-%{release}
Obsoletes: phpfi
-Obsoletes: apache-mod_php < 1:4.1.1
%description -n apache-mod_php
PHP as DSO module for apache 2.x.
Provides: %{name}-spl = %{epoch}:%{version}-%{release}
Provides: %{name}-standard = %{epoch}:%{version}-%{release}
Provides: php(modules_api) = %{php_api_version}
-Provides: php(zend_module_api) = %{zend_module_api}
Provides: php(zend_extension_api) = %{zend_extension_api}
+Provides: php(zend_module_api) = %{zend_module_api}
Provides: php5(debug) = %{php_debug}
Provides: php5(thread-safety) = %{zend_zts}
+Obsoletes: php-pecl-domxml
Obsoletes: php-session < 3:4.2.1-2
# for the posttrans scriptlet, conflicts because in vserver enviroinment rpm package is not installed.
Conflicts: rpm < 4.4.2-0.2
Modu³ PHP dodaj±cy obs³ugê funkcji ncurses (tylko do SAPI cli i cgi).
%package oci8
-Summary: Oracle 8 database module for PHP
-Summary(pl): Modu³ bazy danych Oracle 8 dla PHP
+Summary: Oracle 8+ database module for PHP
+Summary(pl): Modu³ bazy danych Oracle 8+ dla PHP
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Autoreq: false
%description oci8
-This is a dynamic shared object (DSO) for PHP that will add Oracle 7
-and Oracle 8 database support through Oracle8 Call-Interface (OCI8).
+This is a dynamic shared object (DSO) for PHP that will add Oracle 7,
+8, 9 and 10 database support through Oracle8 Call-Interface (OCI8).
%description oci8 -l pl
-Modu³ PHP umo¿liwiaj±cy dostêp do bazy danych Oracle 7 i Oracle 8
+Modu³ PHP umo¿liwiaj±cy dostêp do bazy danych Oracle 7, 8, 9 i 10
poprzez interfejs Oracle8 Call-Interface (OCI8).
%package odbc
Uwaga: to jest modu³ eksperymentalny.
-%package oracle
-Summary: Oracle 7 database module for PHP
-Summary(pl): Modu³ bazy danych Oracle 7 dla PHP
-Group: Libraries
-Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
-Requires: %{name}-common = %{epoch}:%{version}-%{release}
-Autoreq: false
-
-%description oracle
-This is a dynamic shared object (DSO) for PHP that will add Oracle 7
-database support.
-
-%description oracle -l pl
-Modu³ PHP umo¿liwiaj±cy dostêp do bazy danych Oracle 7.
-
%package pcntl
Summary: Process Control extension module for PHP
Summary(pl): Modu³ Process Control dla PHP
%package pdo-dblib
Summary: PHP Data Objects (PDO) FreeTDS support
-Summary(pl): Modu³ PHP Data Objects (PDO) z wsparciem do FreeTDS
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± FreeTDS
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Modu³ dla PHP dodaj±cy obs³ugê baz danych FreeTDS za po¶rednictwem
interfejsu PDO.
+%package pdo-firebird
+Summary: PHP Data Objects (PDO) Firebird support
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± Firebirda
+Group: Libraries
+Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
+
+%description pdo-firebird
+This is a dynamic shared object (DSO) for PHP that will add PDO
+Firebird support.
+
+%description pdo-firebird -l pl
+Modu³ dla PHP dodaj±cy obs³ugê baz danych Firebird za po¶rednictwem
+interfejsu PDO.
+
%package pdo-mysql
Summary: PHP Data Objects (PDO) MySQL support
-Summary(pl): Modu³ PHP Data Objects (PDO) z wsparciem do MySQL
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± MySQL-a
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Modu³ dla PHP dodaj±cy obs³ugê baz danych MySQL za po¶rednictwem
interfejsu PDO.
+%package pdo-oci
+Summary: PHP Data Objects (PDO) Oracle support
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± Oracle'a
+Group: Libraries
+Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
+
+%description pdo-oci
+This is a dynamic shared object (DSO) for PHP that will add PDO Oracle
+support.
+
+%description pdo-oci -l pl
+Modu³ dla PHP dodaj±cy obs³ugê baz danych Oracle za po¶rednictwem
+interfejsu PDO.
+
%package pdo-odbc
Summary: PHP Data Objects (PDO) ODBC support
-Summary(pl): Modu³ PHP Data Objects (PDO) z wsparciem do ODBC
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± ODBC
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
%package pdo-pgsql
Summary: PHP Data Objects (PDO) PostgreSQL support
-Summary(pl): Modu³ PHP Data Objects (PDO) z wsparciem do PostgreSQL
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± PostgreSQL-a
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
%package pdo-sqlite
Summary: PHP Data Objects (PDO) SQLite support
-Summary(pl): Modu³ PHP Data Objects (PDO) z wsparciem do SQLite
+Summary(pl): Modu³ PHP Data Objects (PDO) z obs³ug± SQLite
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Group: Libraries
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
+Requires: %{name}-pdo = %{epoch}:%{version}-%{release}
%description sqlite
SQLite is a C library that implements an embeddable SQL database
Requires(post,preun): %{name}-common = %{epoch}:%{version}-%{release}
Requires: %{name}-common = %{epoch}:%{version}-%{release}
Requires: libxslt >= 1.0.18
-# Maybe it would be nice to add it here?
-#Provides: php-xslt
# actually not true, functionality is similar, but API differs
Obsoletes: php-xslt <= 3:4.3.8-1
%patch6 -p1
%patch7 -p1
%patch8 -p1
+%patch9 -p1
cp php.ini-dist php.ini
%patch10 -p1
# for ac2.53b/am1.6b - AC_LANG_CXX has AM_CONDITIONAL, so cannot be invoked
%endif
%patch31 -p1
%patch32 -p1
+%patch33 -p1
+%patch34 -p1
# conflict seems to be resolved by recode patches
rm -f ext/recode/config9.m4
# new apr
sed -i -e 's#apr-config#apr-1-config#g' sapi/apache*/*.m4
+# remove all bundled libraries not to link with them accidentally
+#rm -rf ext/sqlite/libsqlite
+#rm -rf ext/bcmath/libbcmath
+#rm -rf ext/date/lib
+#rm -rf ext/dba/libcdb
+#rm -rf ext/dba/libflatfile
+#rm -rf ext/dba/libinifile
+#rm -rf ext/gd/libgd
+#rm -rf ext/mbstring/libmbfl
+#rm -rf ext/mbstring/oniguruma
+rm -rf ext/pcre/pcrelib
+rm -rf ext/pdo_sqlite/sqlite
+#rm -rf ext/soap/interop
+rm -rf ext/xmlrpc/libxmlrpc
+
%build
if API=$(awk '/#define PHP_API_VERSION/{print $3}' main/php.h) && [ $API != %{php_api_version} ]; then
echo "Set %%define php_api_version to $API and rerun."
--with-config-file-scan-dir=%{_sysconfdir}/conf.d \
--with-exec-dir=%{_bindir} \
--%{!?debug:dis}%{?debug:en}able-debug \
- --enable-zend-multibyte \
%{?with_zts:--enable-maintainer-zts} \
+ --enable-inline-optimization \
--enable-memory-limit \
--enable-bcmath=shared \
--enable-calendar=shared \
--with-pdo-firebird=shared \
%endif
--with-pdo-mysql=shared \
- %{?with_oracle:--with-pdo-oci=shared} \
+ %{?with_oci8:--with-pdo-oci=shared} \
%{?with_odbc:--with-pdo-odbc=shared,unixODBC,/usr} \
%{?with_pgsql:--with-pdo-pgsql=shared} \
- %{?with_sqlite:--with-pdo-sqlite=shared} \
+ %{?with_sqlite:--with-pdo-sqlite=shared,/usr} \
--enable-posix=shared \
+ --enable-reflection \
--enable-session \
--enable-shared \
--enable-shmop=shared \
--enable-ucd-snmp-hack \
%{?with_wddx:--enable-wddx=shared} \
--enable-xml=shared \
- --with-xmlreader=shared \
+ --enable-xmlreader=shared \
--with-bz2=shared \
%{!?with_curl:--without-curl}%{?with_curl:--with-curl=shared} \
%{?with_db3:--with-db3}%{!?with_db3:--with-db4} \
%{?with_oci8:--with-oci8=shared} \
%{?with_openssl:--with-openssl=shared} \
--with-kerberos \
- %{?with_oracle:--with-oracle=shared} \
%{!?with_pcre:--without-pcre-regex}%{?with_pcre:--with-pcre-regex=shared,/usr} \
--with-pear=%{php_pear_dir} \
%{!?with_pgsql:--without-pgsql}%{?with_pgsql:--with-pgsql=shared,/usr} \
--with-zlib-dir=shared,/usr
cp -f Makefile Makefile.$sapi
-
- # left for debugging purposes
cp -f main/php_config.h php_config.h.$sapi
done
%clean
rm -rf $RPM_BUILD_ROOT
-%if %{with apache1}
-%triggerpostun -- %{name} < 4:5.0.4-9.11
-%{apxs1} -e -A -n php5 %{_pkglibdir}/libphp5.so 1>&2
-%{__perl} -pi -e \
- 's|^AddType application/x-httpd-php \.php|#AddType application/x-httpd-php .php|' \
- /etc/apache/apache.conf
-%service -q apache restart
-%endif
-
%post
if [ "$1" = "1" ]; then
%if %{with apache1}
[ ! -f /etc/apache/conf.d/??_mod_php.conf ] || %service -q apache restart
[ ! -f /etc/httpd/httpd.conf/??_mod_php.conf ] || %service -q httpd restart
-%if %{with apache2}
-%triggerpostun -- php < 4:5.0.4-7.1
-# for fixed php-SAPI.ini, the poor php-apache.ini was never read for apache2
-if [ -f %{_sysconfdir}/php-apache.ini.rpmsave ]; then
- cp -f %{_sysconfdir}/php-apache2handler.ini{,.rpmnew}
- mv -f %{_sysconfdir}/php-apache.ini.rpmsave %{_sysconfdir}/php-apache2handler.ini
-fi
+%if %{with apache1}
+%triggerpostun -n apache1-mod_php -- php < 4:5.0.4-9.11
+sed -i -e '
+ /^AddType application\/x-httpd-php \.php/s,^,#,
+ /^\(Add\|Load\)Module.*php5\.\(so\|c\)/d
+' /etc/apache/apache.conf
+%service -q apache restart
+%endif
-# extra trigger, if they did not upgrade to 4:5.0.4-7 but still had old php-apache.ini
-%triggerpostun -n apache-mod_php -- php < 4:5.0.4-7.1
+%if %{with apache2}
+%triggerpostun -n apache-mod_php -- php < 4:5.0.4-7.1, php < 4:5.0.4-7.1
# for fixed php-SAPI.ini, the poor php-apache.ini was never read for apache2
if [ -f %{_sysconfdir}/php-apache.ini.rpmsave ]; then
cp -f %{_sysconfdir}/php-apache2handler.ini{,.rpmnew}
%postun openssl
%extension_postun
-%post oracle
-%extension_post
-
-%postun oracle
-%extension_postun
-
%post pcntl
if [ -f %{_sysconfdir}/php-cgi.ini ]; then
%{_sbindir}/php-module-install install pcntl %{_sysconfdir}/php-cgi.ini
%postun pdo-dblib
%extension_postun
+%post pdo-firebird
+%extension_post
+
+%postun pdo-firebird
+%extension_postun
+
%post pdo-mysql
%extension_post
%triggerun openssl -- %{name}-openssl < 4:5.0.4-9.1
[ ! -x %{_sbindir}/php-module-install ] || %{_sbindir}/php-module-install remove openssl %{_sysconfdir}/php.ini
-%triggerun oracle -- %{name}-oracle < 4:5.0.4-9.1
-[ ! -x %{_sbindir}/php-module-install ] || %{_sbindir}/php-module-install remove oracle %{_sysconfdir}/php.ini
-
%triggerun pcre -- %{name}-pcre < 4:5.0.4-9.1
[ ! -x %{_sbindir}/php-module-install ] || %{_sbindir}/php-module-install remove pcre %{_sysconfdir}/php.ini
%dir %{extensionsdir}
%dir %{_phpsharedir}
+# session_mm doesn't work with shared session
+#%files session
+#%defattr(644,root,root,755)
+#%attr(755,root,root) %{extensionsdir}/session.so
+%doc ext/session/mod_files.sh
+
%files devel
%defattr(644,root,root,755)
%doc README.UNIX-BUILD-SYSTEM
%attr(755,root,root) %{extensionsdir}/openssl.so
%endif
-%if %{with oracle}
-%files oracle
-%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/oracle.ini
-%attr(755,root,root) %{extensionsdir}/oracle.so
-%endif
-
%files pcntl
%defattr(644,root,root,755)
%attr(755,root,root) %{extensionsdir}/pcntl.so
%attr(755,root,root) %{extensionsdir}/pdo_dblib.so
%endif
+%if %{with interbase} && %{without interbase_inst}
+%files pdo-firebird
+%defattr(644,root,root,755)
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo_firebird.ini
+%attr(755,root,root) %{extensionsdir}/pdo_firebird.so
+%endif
+
%files pdo-mysql
%defattr(644,root,root,755)
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo_mysql.ini
%attr(755,root,root) %{extensionsdir}/pdo_mysql.so
-%if %{with oracle}
-%files pdo-oracle
+%if %{with oci8}
+%files pdo-oci
%defattr(644,root,root,755)
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo_oracle.ini
-%attr(755,root,root) %{extensionsdir}/pdo_oracle.so
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pdo_oci.ini
+%attr(755,root,root) %{extensionsdir}/pdo_oci.so
%endif
%if %{with odbc}
%attr(755,root,root) %{extensionsdir}/recode.so
%endif
-# session_mm doesn't work with shared session
-#%files session
-#%defattr(644,root,root,755)
-#%attr(755,root,root) %{extensionsdir}/session.so
-
%if 0
# simplexml is needed by spl, and spl can't be built shared as of now (5.1.0RC3)
%files simplexml