X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=php.spec;h=1a5866789eb951a14d16a58e7874237c8a6d5a22;hb=ea5e903ec81e252690501d1c001ef6b8b2d980b8;hp=3ae98875ef33341d2ffd26b5c9a30be071b0c2c4;hpb=1b12f550f8a4f029e2ac955e8e43335d5173efdb;p=packages%2Fphp.git diff --git a/php.spec b/php.spec index 3ae9887..1a58667 100644 --- a/php.spec +++ b/php.spec @@ -1,15 +1,15 @@ -# TODO -# - NOTE: mysqlnd does not support ssl or compression (see FAQ at http://dev.mysql.com/downloads/connector/php-mysqlnd/) +# NOTE: mysqlnd does not support ssl or compression (see FAQ at http://dev.mysql.com/downloads/connector/php-mysqlnd/) +# TODO: # - wddx: restore session support (not compiled in due DL extension check) # - deal with modules removed from php and not moved to PECL, still not obsoleted anywhere # - removed from php 5.0 (currently in php4): -# db, hyperwave, java, mcal, overload, qtdom +# db [pecl-svn], hyperwave [pecl-svn], java [pecl-svn], mcal [pecl-svn], overload [???], qtdom [pecl-svn] # - removed from php 5.1: -# cpdf, fam, oracle +# oracle [pecl-svn] # - removed from php 5.2: -# filepro, hw +# filepro [pecl-svn], hwapi [pecl-svn] # - removed from php 5.3: -# dbase, mime_magic, ming, ncurses, sybase +# ming [pecl-svn or ming.spec?] # - make additional headers and checking added by mail patch configurable # - modularize standard (output from pure php -m)? # - lib64 patch obsolete by $PHP_LIBDIR ? @@ -26,9 +26,9 @@ # Reflection # # Conditional build: -%bcond_with fdf # with FDF (PDF forms) module (BR: proprietary lib) %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 instantclient # build Oracle oci8 extension module against oracle-instantclient package %bcond_with system_gd # with system gd (we prefer internal since it enables few more features) %bcond_with litespeed # build litespeed module %bcond_without curl # without CURL extension module @@ -39,7 +39,7 @@ %bcond_without mm # without mm support for session storage %bcond_without mssql # without MS SQL extension module # don't turn it on by default; see TODO item for mysqlnd in this spec -%bcond_with mysqlnd # without mysqlnd support in mysql related extensions +%bcond_with mysqlnd # with mysqlnd support in mysql related extensions %bcond_without mysqli # without mysqli support (Requires mysql > 4.1) %bcond_without odbc # without ODBC extension module %bcond_without openssl # without OpenSSL support and OpenSSL extension (module) @@ -55,19 +55,30 @@ %bcond_without tidy # without Tidy extension module %bcond_without wddx # without WDDX extension module %bcond_without xmlrpc # without XML-RPC extension module -%bcond_without apache1 # disable building Apache 1.3.x module -%bcond_without apache2 # disable building Apache 2.x module +%bcond_without apache1 # disable building Apache 1.3.x SAPI +%bcond_without apache2 # disable building Apache 2.x SAPI %bcond_without zts # disable Zend Thread Safety -%bcond_without fpm # fpm patches from http://www.php-fpm.org/ +%bcond_without cgi # disable CGI/FCGI SAPI +%bcond_without fpm # disable FPM %bcond_without suhosin # with suhosin patch %bcond_with tests # default off; test process very often hangs on builders, approx run time 45m; perform "make test" +%bcond_with gcov # Enable Code coverage reporting %bcond_with type_hints # experimental support for strict typing/casting %define apxs1 /usr/sbin/apxs1 %define apxs2 /usr/sbin/apxs +%define litespeed_version 5.4 -# some problems with apache 2.x -%if %{with apache2} +# disable all sapis +%if %{with gcov} +%undefine with_apache1 +%undefine with_apache2 +%undefine with_cgi +%undefine with_litespeed +%endif + +# mm is not thread safe +%if %{with zts} %undefine with_mm %endif @@ -81,16 +92,18 @@ %undefine with_fpm %endif +%if 0 %if %{without apache1} && %{without apache2} ERROR: You need to select at least one Apache SAPI to build shared modules. %endif +%endif # filter depends on pcre %if %{without pcre} %undefine with_filter %endif -%define rel 5 +%define rel 9 Summary: PHP: Hypertext Preprocessor Summary(fr.UTF-8): Le langage de script embarque-HTML PHP Summary(pl.UTF-8): Język skryptowy PHP @@ -98,13 +111,13 @@ Summary(pt_BR.UTF-8): A linguagem de script PHP Summary(ru.UTF-8): PHP Версии 5 - язык препроцессирования HTML-файлов, выполняемый на сервере Summary(uk.UTF-8): PHP Версії 5 - мова препроцесування HTML-файлів, виконувана на сервері Name: php -Version: 5.3.2 +Version: 5.3.3 Release: %{rel}%{?with_type_hints:th} Epoch: 4 License: PHP Group: Libraries Source0: http://www.php.net/distributions/%{name}-%{version}.tar.bz2 -# Source0-md5: 46f500816125202c48a458d0133254a4 +# Source0-md5: 21ceeeb232813c10283a5ca1b4c87b48 Source2: %{name}-mod_%{name}.conf Source3: %{name}-cgi-fcgi.ini Source4: %{name}-apache.ini @@ -116,6 +129,8 @@ Source11: %{name}-fpm.logrotate Source12: %{name}-branch.sh Source13: dep-tests.sh Source14: skip-tests.sh +Source15: http://litespeedtech.com/packages/lsapi/%{name}-litespeed-%{litespeed_version}.tgz +# Source15-md5: 8738d9e3a232c2a0518c514802c66d73 Patch0: %{name}-shared.patch Patch1: %{name}-pldlogo.patch Patch2: %{name}-mail.patch @@ -152,7 +167,6 @@ Patch36: %{name}-mysql-charsetphpini.patch Patch37: %{name}-mysqli-charsetphpini.patch Patch38: %{name}-pdo_mysql-charsetphpini.patch Patch39: %{name}-use-prog_sendmail.patch -Patch40: %{name}-fpm.patch Patch41: %{name}-fpm-config.patch Patch42: %{name}-fpm-shared.patch Patch43: %{name}-silent-session-cleanup.patch @@ -166,6 +180,13 @@ Patch51: spl-shared.patch Patch52: pcre-shared.patch Patch53: fix-test-run.patch Patch54: mysqlnd-shared.patch +Patch55: bug-52078-fileinode.patch +Patch56: bug-51901.patch +Patch57: bug-52448.patch +Patch58: bug-52533.patch +Patch59: %{name}-systzdata.patch +Patch60: %{name}-oracle-instantclient.patch +Patch61: %{name}-krb5-ac.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} @@ -178,9 +199,9 @@ BuildRequires: cyrus-sasl-devel BuildRequires: db-devel >= 4.0 BuildRequires: elfutils-devel #BuildRequires: fcgi-devel -%{?with_fdf:BuildRequires: fdftk-devel} #BuildRequires: flex BuildRequires: pkgconfig +BuildRequires: sed >= 4.0 %if %{with mssql} || %{with sybase_ct} BuildRequires: freetds-devel >= 0.82 %endif @@ -191,7 +212,7 @@ BuildRequires: gd-devel(imagerotate) = 5.2.0 %endif BuildRequires: gdbm-devel BuildRequires: gmp-devel -%{?with_imap:BuildRequires: imap-devel >= 1:2001-0.BETA.200107022325.2} +%{?with_imap:BuildRequires: imap-devel >= 1:2007e-2} BuildRequires: libicu-devel BuildRequires: libjpeg-devel BuildRequires: libltdl-devel >= 1.4 @@ -211,7 +232,10 @@ BuildRequires: libxslt-devel >= 1.1.0 %if %{with openssl} || %{with ldap} BuildRequires: openssl-devel >= 0.9.7d %endif +%{?with_gcov:BuildRequires: lcov} +%{?with_snmp:%{?with_tests:BuildRequires: mibs-net-snmp}} %{?with_snmp:BuildRequires: net-snmp-devel >= 5.0.7} +%{?with_instantclient:BuildRequires: oracle-instantclient-devel} BuildRequires: pam-devel %{?with_pcre:BuildRequires: pcre-devel >= 6.6} BuildRequires: pkgconfig @@ -221,7 +245,7 @@ BuildRequires: readline-devel %{?with_recode:BuildRequires: recode-devel >= 3.5d-3} BuildRequires: rpm >= 4.4.9-56 BuildRequires: rpm-build >= 4.4.0 -BuildRequires: rpmbuild(macros) >= 1.527 +BuildRequires: rpmbuild(macros) >= 1.566 %{?with_sqlite:BuildRequires: sqlite-devel} %{?with_sqlite3:BuildRequires: sqlite3-devel >= 3.3.9} BuildRequires: t1lib-devel @@ -255,6 +279,10 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define zend_zts %{!?with_zts:0}%{?with_zts:1} %define php_debug %{!?debug:0}%{?debug:1} +%if %{with gcov} +%undefine with_ccache +%endif + %if %{with oci8} # ORACLE_HOME is required for oci8 ext to build %define _preserve_env %_preserve_env_base ORACLE_HOME @@ -404,6 +432,7 @@ Pakiet dostarczający dowiązanie symboliczne /usr/bin/php do PHP CLI. %package fpm Summary: PHP FastCGI Process Manager +Summary(pl.UTF-8): PHP FastCGI Process Manager - zarządca procesów FastCGI Group: Development/Languages/PHP URL: http://www.php-fpm.org/ Requires(post,preun): /sbin/chkconfig @@ -419,16 +448,21 @@ Provides: webserver(php) = %{version} %description fpm PHP FastCGI Process Manager. +%description fpm -l pl.UTF-8 +PHP FastCGI Process Manager - zarządca procesów FastCGI. + %package common -Summary: Common files needed by both Apache modules and CGI/CLI SAPI-s +Summary: Common files needed by both Apache modules and CGI/CLI SAPIs Summary(pl.UTF-8): Wspólne pliki dla modułu Apache'a i programu CGI Summary(ru.UTF-8): Разделяемые библиотеки для PHP Summary(uk.UTF-8): Бібліотеки спільного використання для PHP Group: Libraries +Requires(post): sed >= 4.0 # because of dlclose() bugs in glibc <= 2.3.4 causing SEGVs on exit Requires: glibc >= 6:2.3.5 Requires: php-dirs Requires: rpm-whiteout >= 1.28 +Requires: tzdata Provides: php(date) Provides: php(ereg) Provides: php(hash) @@ -446,13 +480,13 @@ Provides: php-reflection Provides: php-standard Provides: php5(debug) = %{php_debug} Provides: php5(thread-safety) = %{zend_zts} -Obsoletes: php-pecl-domxml %{!?with_mysqlnd:Obsoletes: php-mysqlnd} +Obsoletes: php-pecl-domxml Conflicts: php4-common < 3:4.4.4-8 Conflicts: rpm < 4.4.2-0.2 %description common -Common files needed by both Apache modules and CGI/CLI SAPI-s. +Common files needed by both Apache modules and CGI/CLI SAPIs. %description common -l pl.UTF-8 Wspólne pliki dla modułu Apache'a i programu CGI. @@ -534,19 +568,22 @@ precision math functions support. Moduł PHP umożliwiający korzystanie z dokładnych funkcji matematycznych takich jak w programie bc. -%package bzip2 +%package bz2 Summary: Bzip2 extension module for PHP Summary(pl.UTF-8): Moduł bzip2 dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.bzip2.php Requires: %{name}-common = %{epoch}:%{version}-%{release} +Provides: php(bz2) Provides: php(bzip2) +Provides: php-bzip2 = %{epoch}:%{version}-%{release} +Obsoletes: php-bzip2 -%description bzip2 +%description bz2 This is a dynamic shared object (DSO) for PHP that will add bzip2 compression support to PHP. -%description bzip2 -l pl.UTF-8 +%description bz2 -l pl.UTF-8 Moduł PHP umożliwiający używanie kompresji bzip2. %package calendar @@ -619,6 +656,7 @@ Requires: %{name}-common = %{epoch}:%{version}-%{release} Provides: php(dom) # it has some compatibility functions Provides: php(domxml) +Provides: php-domxml = %{epoch}:%{version}-%{release} Obsoletes: php-domxml <= 3:4.3.8-1 %description dom @@ -643,29 +681,15 @@ support in image files. %description exif -l pl.UTF-8 Moduł PHP dodający obsługę znaczników EXIF w plikach obrazków. -%package fdf -Summary: FDF extension module for PHP -Summary(pl.UTF-8): Moduł FDF dla PHP -Group: Libraries -URL: http://www.php.net/manual/en/book.fdf.php -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: php(fdf) - -%description fdf -This PHP module adds support for PDF Forms through Adobe FDFTK -library. - -%description fdf -l pl.UTF-8 -Moduł PHP dodający obsługę formularzy PDF poprzez bibliotekę Adobe -FDFTK. - %package fileinfo Summary: libmagic bindings +Summary(pl.UTF-8): Wiązania do libmagic Group: Libraries URL: http://www.php.net/manual/en/book.fileinfo.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pcre = %{epoch}:%{version}-%{release} Provides: php(fileinfo) +Obsoletes: php-mime_magic Obsoletes: php-pecl-fileinfo %description fileinfo @@ -676,6 +700,13 @@ etc... Additionally it can also be used to retrieve the MIME type for a particular file and for text files proper language encoding. +%description fileinfo -l pl.UTF-8 +To rozszerzenie pozwala na uzyskanie informacji dotyczących większości +plików. Informacje mogą zawierać wymiary, jakość, długość itp. + +Ponadto rozszerzenie można wykorzystać do odczytania typu MIME danego +pliku oraz kodowania plików tekstowych. + %package filter Summary: Extension for safely dealing with input parameters Summary(pl.UTF-8): Rozszerzenie do bezpiecznej obsługi danych wejściowych @@ -775,6 +806,7 @@ URL: http://www.php.net/manual/en/book.gmp.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Provides: php(hash) Provides: php(mhash) +Provides: php-mhash = %{epoch}:%{version}-%{release} Obsoletes: php-mhash Obsoletes: php-pecl-hash @@ -811,6 +843,7 @@ Group: Libraries URL: http://www.php.net/manual/en/book.imap.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: %{name}-pcre = %{epoch}:%{version}-%{release} +Requires: imap-lib >= 1:2007e-2 Provides: php(imap) %description imap @@ -841,7 +874,7 @@ Moduł PHP umożliwiający dostęp do baz danych InterBase i Firebird. %package intl Summary: Internationalization extension (ICU wrapper) -Summary(pl.UTF-8): Rozszerzenie do internacjonalizacji (wrapper ICU) +Summary(pl.UTF-8): Rozszerzenie do internacjonalizacji (interfejs do ICU) Group: Libraries URL: http://www.php.net/intl Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -855,8 +888,9 @@ their scripts. %description intl -l pl.UTF-8 Rozszerzenie do internacjonalizacji (dalej nazywane Intl) jest -wrapperem biblioteki ICU, pozwalającym programistom PHP na wykonywanie -w skryptach porównań zdgodnych z UCA oraz formatowań daty/czasu/walut. +interfejsem do biblioteki ICU, pozwalającym programistom PHP na +wykonywanie w skryptach porównań zgodnych z UCA oraz formatowania +daty/czasu/walut. %package json Summary: PHP C extension for JSON serialization @@ -940,28 +974,6 @@ databases support through FreeTDS library. Moduł PHP dodający obsługę baz danych MS SQL poprzez bibliotekę FreeTDS. -%package mysqlnd -Summary: MySQL Native Client Driver for PHP -Group: Libraries -URL: http://www.php.net/manual/en/book.mysqlnd.php -Requires: %{name}-common = %{epoch}:%{version}-%{release} -Provides: php(mysqlnd) - -%description mysqlnd -MySQL Native Driver is a replacement for the MySQL Client Library -(libmysql). - -Because MySQL Native Driver is written as a PHP extension, it is -tightly coupled to the workings of PHP. This leads to gains in -efficiency, especially when it comes to memory usage, as the driver -uses the PHP memory management system. It also supports the PHP memory -limit. Using MySQL Native Driver leads to comparable or better -performance than using MySQL Client Library, it always ensures the -most efficient use of memory. One example of the memory efficiency is -the fact that when using the MySQL Client Library, each row is stored -in memory twice, whereas with the MySQL Native Driver each row is only -stored once in memory. - %package mysql Summary: MySQL database module for PHP Summary(pl.UTF-8): Moduł bazy danych MySQL dla PHP @@ -1002,6 +1014,43 @@ Moduł PHP umożliwiający udoskonalony dostęp do bazy danych MySQL. Różnicą między nim a modułem mysql jest dostęp do funkcjonalności MySQL w wersji 4.1 i nowszych. +%package mysqlnd +Summary: MySQL Native Client Driver for PHP +Summary(pl.UTF-8): Sterownik natywnego klienta MySQL dla PHP +Group: Libraries +URL: http://www.php.net/manual/en/book.mysqlnd.php +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Provides: php(mysqlnd) + +%description mysqlnd +MySQL Native Driver is a replacement for the MySQL Client Library +(libmysql). + +Because MySQL Native Driver is written as a PHP extension, it is +tightly coupled to the workings of PHP. This leads to gains in +efficiency, especially when it comes to memory usage, as the driver +uses the PHP memory management system. It also supports the PHP memory +limit. Using MySQL Native Driver leads to comparable or better +performance than using MySQL Client Library, it always ensures the +most efficient use of memory. One example of the memory efficiency is +the fact that when using the MySQL Client Library, each row is stored +in memory twice, whereas with the MySQL Native Driver each row is only +stored once in memory. + +%description mysqlnd -l pl.UTF-8 +MySQL Native Driver (natywny sterownik MySQL) to zamiennik biblioteki +klienckiej MySQL (libmysql). + +Ponieważ sterownik natywny jest napisany jako rozszerzenie PHP, jest +ściśle powiązany z pracą PHP. Daje to większą wydajność, zwłaszcza +jeśli chodzi o wykorzystanie pamięci, jako że sterownik wykorzystuje +system zarządzania pamięcią PHP; obsługuje także ograniczenie pamięci +z PHP. Niniejszy sterownik ma wydajność porównywalną lub lepszą niż +biblioteka kliencka MySQL, a pamięć zawsze wykorzystuje efektywniej. +Przykładem tego może być fakt, że w przypadku biblioteki klienckiej +każdy wiersz jest przechowywany w pamięci dwukrotnie, natomiast przy +tym sterowniku - tylko raz. + %package oci8 Summary: Oracle 8+ database module for PHP Summary(pl.UTF-8): Moduł bazy danych Oracle 8+ dla PHP @@ -1422,7 +1471,7 @@ Moduł PHP dodający obsługę gniazdek. %package spl Summary: Standard PHP Library module for PHP -Summary(pl.UTF-8): Moduł SPL dla PHP +Summary(pl.UTF-8): Moduł biblioteki standardowej (Standard PHP Library) dla PHP Group: Libraries URL: http://php.net/manual/en/book.spl.php Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -1435,7 +1484,7 @@ This is a dynamic shared object (DSO) for PHP that will add Standard PHP Library support. %description spl -l pl.UTF-8 -Moduł PHP dodający obsługę gniazdek. +Moduł PHP z biblioteką standardową PHP (SPL - Standard PHP Library). %package sqlite Summary: SQLite extension module for PHP @@ -1503,7 +1552,6 @@ URL: http://www.php.net/manual/en/book.sybase.php Requires: %{name}-common = %{epoch}:%{version}-%{release} Provides: php(sybase-ct) Obsoletes: php-sybase -Conflicts: php-sybase %description sybase-ct This is a dynamic shared object (DSO) for PHP that will add Sybase and @@ -1791,7 +1839,6 @@ cp php.ini-production php.ini %patch38 -p1 %patch39 -p1 %if %{with fpm} -%patch40 -p1 %patch41 -p1 %patch42 -p1 %endif @@ -1808,6 +1855,14 @@ cp php.ini-production php.ini %patch52 -p1 %patch53 -p1 %patch54 -p1 +%undos ext/spl/tests/SplFileInfo_getInode_basic.phpt +%patch55 -p1 +%patch56 -p0 +%patch57 -p1 +%patch58 -p1 +%patch59 -p1 +%patch60 -p1 +%patch61 -p1 %if "%{pld_release}" != "ac" sed -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4 @@ -1817,23 +1872,24 @@ sed -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config. find '(' -name '*~' -o -name '*.orig' ')' -print0 | xargs -0 -r -l512 rm -f # conflict seems to be resolved by recode patches -rm -f ext/recode/config9.m4 +%{__rm} ext/recode/config9.m4 # remove all bundled libraries not to link with them accidentally -#rm -rf ext/sqlite/libsqlite -rm -rf ext/sqlite3/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 -r ext/xmlrpc/libxmlrpc +#%{__rm} -r ext/sqlite/libsqlite +%{__rm} -r ext/sqlite3/libsqlite +#%{__rm} -r ext/bcmath/libbcmath +#%{__rm} -r ext/date/lib +#%{__rm} -r ext/fileinfo/libmagic +#%{__rm} -r ext/dba/libcdb +#%{__rm} -r ext/dba/libflatfile +#%{__rm} -r ext/dba/libinifile +#%{__rm} -r ext/gd/libgd +#%{__rm} -r ext/mbstring/libmbfl +#%{__rm} -r ext/mbstring/oniguruma +%{__rm} -r ext/pcre/pcrelib +#%{__rm} -r ext/soap/interop +%{__rm} -r ext/xmlrpc/libxmlrpc +#%{__rm} -r ext/zip/lib cp -af Zend/LICENSE{,.Zend} install -p %{SOURCE13} dep-tests.sh @@ -1845,6 +1901,14 @@ sed -i -e 's#-fvisibility=hidden##g' configure* # says just "Terminated" twice and fails mv sapi/cli/tests/022.phpt{,.broken} +# php-5.3.3/ext/standard/tests/file/statpage.phpt +%{__rm} ext/standard/tests/file/statpage.phpt + +# idiotic test, it will fail if somebody else makes space on disk or if disk +# space is not yet allocated (xfs). report upstream to advice bogus test is +# probably pointless. +%{__rm} ext/standard/tests/file/disk_free_space_basic.phpt + sh -xe %{_sourcedir}/skip-tests.sh %build @@ -1882,7 +1946,10 @@ export CPPFLAGS="-DDEBUG_FASTCGI -DHAVE_STRNDUP %{rpmcppflags} \ -I%{_includedir}/xmlrpc-epi" sapis=" -cgi-fcgi cli +cli +%if %{with cgi} +cgi-fcgi +%endif %if %{with fpm} fpm %endif @@ -1907,10 +1974,10 @@ for sapi in $sapis; do sapi_args='--disable-cli' ;; cli) - sapi_args='--disable-cgi' + sapi_args='--disable-cgi %{?with_gcov:--enable-gcov}' ;; fpm) - sapi_args='--disable-cli --with-fpm' + sapi_args='--disable-cli --enable-fpm' ;; apxs1) ver=$(rpm -q --qf '%{V}' apache1-devel) @@ -1934,6 +2001,7 @@ for sapi in $sapis; do --with-config-file-path=%{_sysconfdir} \ --with-config-file-scan-dir=%{_sysconfdir}/conf.d \ --with-exec-dir=%{_bindir} \ + --with-system-tzdata \ --%{!?debug:dis}%{?debug:en}able-debug \ %{?with_zts:--enable-maintainer-zts} \ --enable-inline-optimization \ @@ -1957,11 +2025,6 @@ for sapi in $sapis; do --enable-hash=shared \ --enable-xmlwriter=shared \ %if %{with fpm} - --with-libevent=shared \ - --with-fpm-conf=%{_sysconfdir}/fpm.conf \ - --with-fpm-log=/var/log/fpm.log \ - --with-fpm-pid=/var/run/php/fpm.pid \ - --with-fpm-port=9000 \ --with-fpm-user=http \ --with-fpm-group=http \ %endif @@ -1973,7 +2036,7 @@ for sapi in $sapis; do %endif --with-mysql-sock=/var/lib/mysql/mysql.sock \ --with-pdo-mysql=shared%{?with_mysqlnd:,mysqlnd} \ - %{?with_oci8:--with-pdo-oci=shared} \ + %{?with_oci8:--with-pdo-oci=shared%{?with_instantclient:,instantclient,%{_libdir}}} \ %{?with_odbc:--with-pdo-odbc=shared,unixODBC,/usr} \ %{?with_pgsql:--with-pdo-pgsql=shared} \ %{?with_sqlite:--with-pdo-sqlite=shared,/usr} \ @@ -1999,7 +2062,6 @@ for sapi in $sapis; do --with-bz2=shared \ %{__with_without curl curl shared} \ --with-db4 \ - %{?with_fdf:--with-fdftk=shared} \ --with-iconv=shared \ --with-freetype-dir=shared \ --with-gettext=shared \ @@ -2016,7 +2078,7 @@ for sapi in $sapis; do %{?with_mysqlnd:--with-mysqlnd=shared} \ --with-mysql=shared%{?with_mysqlnd:,mysqlnd} \ %{?with_mysqli:--with-mysqli=shared%{?with_mysqlnd:,mysqlnd}} \ - %{?with_oci8:--with-oci8=shared} \ + %{?with_oci8:--with-oci8=shared%{?with_instantclient:,instantclient,%{_libdir}}} \ %{?with_openssl:--with-openssl=shared} \ --with-kerberos \ %{__with_without pcre pcre-regex /usr} \ @@ -2053,6 +2115,8 @@ sapis=$(awk '/^PHP_SAPI = /{print $3}' Makefile.* | sort -u | xargs) sed -i -e "s,@PHP_INSTALLED_SAPIS@,$sapis," "scripts/php-config.in" # must make libphp_common first, so modules can link against it. +cp -af php_config.h.cli main/php_config.h +cp -af Makefile.cli Makefile %{__make} libphp_common.la %{__make} build-modules @@ -2065,13 +2129,16 @@ sed -i -e "s,@PHP_INSTALLED_SAPIS@,$sapis," "scripts/php-config.in" %endif %if %{with litespeed} +gzip -dc %{SOURCE15} | tar xf - -C sapi/ %{__make} -f Makefile.litespeed %endif # CGI/FCGI +%if %{with cgi} cp -af php_config.h.cgi-fcgi main/php_config.h %{__make} -f Makefile.cgi-fcgi [ "$(echo ' run-tests.sh +#!/bin/sh export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 unset TZ LANG LC_ALL || : -%{__make} test RUN_TESTS_SETTINGS="-s test.log" -unset NO_INTERACTION REPORT_EXIT_STATUS MALLOC_CHECK_ +%{__make} test \ + EXTENSION_DIR=modules \ + PHP_TEST_SHARED_SYSTEM_EXTENSIONS= \ + RUN_TESTS_SETTINGS="-q $*" +EOF +chmod +x run-tests.sh +./run-tests.sh -w failed.log -s test.log # collect failed tests into cleanup script used in prep. sed -ne '/FAILED TEST SUMMARY/,/^===/p' test.log | sed -e '1,/^---/d;/^===/,$d' > tests-failed.log @@ -2147,10 +2230,14 @@ install -d $RPM_BUILD_ROOT{%{_libdir}/{php,apache{,1}},%{_sysconfdir}/{apache,cg $RPM_BUILD_ROOT/etc/{apache/conf.d,httpd/conf.d} \ $RPM_BUILD_ROOT%{_mandir}/man1 \ -# install the Apache modules' files -%{__make} install-headers install-build install-modules install-programs \ +cp -af php_config.h.cli main/php_config.h +cp -af Makefile.cli Makefile +%{__make} install \ INSTALL_ROOT=$RPM_BUILD_ROOT +# make link relative +ln -sfn phar.phar $RPM_BUILD_ROOT%{_bindir}/phar + # install Apache1 DSO module %if %{with apache1} libtool --silent --mode=install install sapi/apache/libphp5.la $RPM_BUILD_ROOT%{_libdir}/apache1 @@ -2173,14 +2260,18 @@ sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_c sed -i -e 's|libphp_common.la|$(libdir)/libphp_common.la|' $RPM_BUILD_ROOT%{_libdir}/php/build/acinclude.m4 # install CGI/FCGI +%if %{with cgi} libtool --silent --mode=install install sapi/cgi/php-cgi $RPM_BUILD_ROOT%{_bindir}/php.cgi ln -sf php.cgi $RPM_BUILD_ROOT%{_bindir}/php.fcgi +cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/php-cgi-fcgi.ini +%endif # install FCGI PM %if %{with fpm} -libtool --silent --mode=install install sapi/fpm/php-fpm $RPM_BUILD_ROOT%{_bindir}/php.fpm -cp -a sapi/fpm/php-fpm.1 $RPM_BUILD_ROOT%{_mandir}/man1/php-fpm.1 -cp -a sapi/fpm/php_fpm.conf $RPM_BUILD_ROOT%{_sysconfdir}/fpm.conf +install -d $RPM_BUILD_ROOT{%{_sysconfdir}/fpm.d,%{_sbindir}} +libtool --silent --mode=install install sapi/fpm/php-fpm $RPM_BUILD_ROOT%{_sbindir} +cp -a sapi/fpm/php-fpm.1 $RPM_BUILD_ROOT%{_mandir}/man1 +cp -a sapi/fpm/php-fpm.conf $RPM_BUILD_ROOT%{_sysconfdir} install -d $RPM_BUILD_ROOT/etc/rc.d/init.d install -p %{SOURCE10} $RPM_BUILD_ROOT/etc/rc.d/init.d/php-fpm install -d $RPM_BUILD_ROOT/etc/logrotate.d @@ -2195,9 +2286,7 @@ ln -sf php.cli $RPM_BUILD_ROOT%{_bindir}/php sed -e 's#%{_prefix}/lib/php#%{_libdir}/php#g' php.ini > $RPM_BUILD_ROOT%{_sysconfdir}/php.ini -install -d $RPM_BUILD_ROOT%{_sysconfdir} cp -a %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/php-cli.ini -cp -a %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/php-cgi-fcgi.ini cp -a %{SOURCE9} $RPM_BUILD_ROOT%{_sysconfdir}/browscap.ini %if %{with apache1} @@ -2234,10 +2323,6 @@ mv $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/readline.ini,cli.d} %endif ln -snf %{_bindir}/shtool $RPM_BUILD_ROOT%{_libdir}/php/build -# as a result of ext/pcre/pcrelib removal in %%prep, ext/pcre/php_pcre.h -# isn't installed by install-headers make target, we do it manually here. -# this header file is required by e.g. filter PECL extension -install -D ext/pcre/php_pcre.h $RPM_BUILD_ROOT%{_includedir}/php/ext/pcre/php_pcre.h # for php-pecl-mailparse install -d $RPM_BUILD_ROOT%{_includedir}/php/ext/mbstring cp -a ext/mbstring/libmbfl/mbfl/*.h $RPM_BUILD_ROOT%{_includedir}/php/ext/mbstring @@ -2288,8 +2373,15 @@ if [ "$1" = "0" ]; then %userremove http fi -%post common -p /sbin/ldconfig -%postun common -p /sbin/ldconfig +%post common +# PHP 5.3 requires timezone being setup, try setup it from tzdata +if ! grep -q '^date.timezone[[:space:]]*=' %{_sysconfdir}/php.ini && [ -f /etc/sysconfig/timezone ]; then + TIMEZONE= + . /etc/sysconfig/timezone + if [ "$TIMEZONE" ]; then + %{__sed} -i -e "s,^;date.timezone[[:space:]]*=.*,date.timezone = $TIMEZONE," %{_sysconfdir}/php.ini + fi +fi %posttrans common # minimizing apache restarts logics. we restart webserver: @@ -2338,14 +2430,13 @@ fi # extension scripts defines %extension_scripts bcmath -%extension_scripts bzip2 +%extension_scripts bz2 %extension_scripts calendar %extension_scripts ctype %extension_scripts curl %extension_scripts dba %extension_scripts dom %extension_scripts exif -%extension_scripts fdf %extension_scripts fileinfo %extension_scripts filter %extension_scripts ftp @@ -2362,9 +2453,9 @@ fi %extension_scripts mbstring %extension_scripts mcrypt %extension_scripts mssql -%extension_scripts mysqlnd %extension_scripts mysql %extension_scripts mysqli +%extension_scripts mysqlnd %extension_scripts oci8 %extension_scripts odbc %extension_scripts openssl @@ -2406,9 +2497,6 @@ fi %triggerun bcmath -- %{name}-bcmath < 4:5.0.4-9.1 %{__sed} -i -e '/^extension[[:space:]]*=[[:space:]]*bcmath\.so/d' %{_sysconfdir}/php.ini -%triggerun bzip2 -- %{name}-bzip2 < 4:5.0.4-9.1 -%{__sed} -i -e '/^extension[[:space:]]*=[[:space:]]*bzip2\.so/d' %{_sysconfdir}/php.ini - %triggerun calendar -- %{name}-calendar < 4:5.0.4-9.1 %{__sed} -i -e '/^extension[[:space:]]*=[[:space:]]*calendar\.so/d' %{_sysconfdir}/php.ini @@ -2427,9 +2515,6 @@ fi %triggerun exif -- %{name}-exif < 4:5.0.4-9.1 %{__sed} -i -e '/^extension[[:space:]]*=[[:space:]]*exif\.so/d' %{_sysconfdir}/php.ini -%triggerun fdf -- %{name}-fdf < 4:5.0.4-9.1 -%{__sed} -i -e '/^extension[[:space:]]*=[[:space:]]*fdf\.so/d' %{_sysconfdir}/php.ini - %triggerun ftp -- %{name}-ftp < 4:5.0.4-9.1 %{__sed} -i -e '/^extension[[:space:]]*=[[:space:]]*ftp\.so/d' %{_sysconfdir}/php.ini @@ -2581,12 +2666,14 @@ fi %attr(755,root,root) %{_sbindir}/php.litespeed %endif +%if %{with cgi} %files cgi %defattr(644,root,root,755) %dir %{_sysconfdir}/cgi-fcgi.d %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-cgi-fcgi.ini %attr(755,root,root) %{_bindir}/php.cgi %attr(755,root,root) %{_bindir}/php.fcgi +%endif %files cli %defattr(644,root,root,755) @@ -2603,10 +2690,11 @@ fi %if %{with fpm} %files fpm %defattr(644,root,root,755) -%doc %lang(ru) sapi/fpm/readme-ru.markdown -%doc sapi/fpm/nginx-site-conf.sample -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fpm.conf -%attr(755,root,root) %{_bindir}/php.fpm +%doc sapi/fpm/CREDITS +%doc sapi/fpm/LICENSE +%dir %{_sysconfdir}/fpm.d +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/php-fpm.conf +%attr(755,root,root) %{_sbindir}/php-fpm %{_mandir}/man1/php-fpm.1* %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/php-fpm %attr(754,root,root) /etc/rc.d/init.d/php-fpm @@ -2649,7 +2737,7 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/bcmath.ini %attr(755,root,root) %{php_extensiondir}/bcmath.so -%files bzip2 +%files bz2 %defattr(644,root,root,755) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/bz2.ini %attr(755,root,root) %{php_extensiondir}/bz2.so @@ -2681,12 +2769,10 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/dom.ini %attr(755,root,root) %{php_extensiondir}/dom.so -%if %{with fdf} -%files fdf +%files exif %defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/fdf.ini -%attr(755,root,root) %{php_extensiondir}/fdf.so -%endif +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/exif.ini +%attr(755,root,root) %{php_extensiondir}/exif.so %files fileinfo %defattr(644,root,root,755) @@ -2702,11 +2788,6 @@ fi %attr(755,root,root) %{php_extensiondir}/filter.so %endif -%files exif -%defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/exif.ini -%attr(755,root,root) %{php_extensiondir}/exif.so - %files ftp %defattr(644,root,root,755) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/ftp.ini @@ -2785,13 +2866,6 @@ fi %attr(755,root,root) %{php_extensiondir}/mssql.so %endif -%if %{with mysqlnd} -%files mysqlnd -%defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/MySQLND.ini -%attr(755,root,root) %{php_extensiondir}/mysqlnd.so -%endif - %files mysql %defattr(644,root,root,755) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/mysql.ini @@ -2804,6 +2878,13 @@ fi %attr(755,root,root) %{php_extensiondir}/mysqli.so %endif +%if %{with mysqlnd} +%files mysqlnd +%defattr(644,root,root,755) +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/MySQLND.ini +%attr(755,root,root) %{php_extensiondir}/mysqlnd.so +%endif + %if %{with oci8} %files oci8 %defattr(644,root,root,755) @@ -2901,6 +2982,8 @@ fi %defattr(644,root,root,755) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/phar.ini %attr(755,root,root) %{php_extensiondir}/phar.so +%attr(755,root,root) %{_bindir}/phar +%attr(755,root,root) %{_bindir}/phar.phar %endif %files posix @@ -2927,11 +3010,6 @@ fi %attr(755,root,root) %{php_extensiondir}/recode.so %endif -%files simplexml -%defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/simplexml.ini -%attr(755,root,root) %{php_extensiondir}/simplexml.so - %files session %defattr(644,root,root,755) %doc ext/session/mod_files.sh @@ -2943,6 +3021,11 @@ fi %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/shmop.ini %attr(755,root,root) %{php_extensiondir}/shmop.so +%files simplexml +%defattr(644,root,root,755) +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/simplexml.ini +%attr(755,root,root) %{php_extensiondir}/simplexml.so + %if %{with snmp} %files snmp %defattr(644,root,root,755)