X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=php.spec;h=1a5866789eb951a14d16a58e7874237c8a6d5a22;hb=ea5e903ec81e252690501d1c001ef6b8b2d980b8;hp=4310de32bb71a557bae0332c029744ef6c834e3d;hpb=c28a8d0cc6b349f361273d1c9ffb288f3cee8782;p=packages%2Fphp.git diff --git a/php.spec b/php.spec index 4310de3..1a58667 100644 --- a/php.spec +++ b/php.spec @@ -1,35 +1,18 @@ -# TODO -# - lost patches: -# +Patch11: %{name}-acam.patch -# +Patch13: %{name}-tsrmlsfetchgcc2.patch -# +Patch16: %{name}-sybase-fix.patch -# +Patch26: %{name}-pear.patch -# +Patch28: %{name}-bug-42952.patch -# +Patch30: %{name}-apr-apu.patch -# +Patch31: %{name}-fcgi-error_log-no-newlines.patch -# +Patch32: %{name}-curl-limit-speed.patch -# +Patch33: %{name}-mime_magic.patch -# +Patch34: %{name}-libtool.patch -# +Patch36: %{name}-mysql-charsetphpini.patch -# +Patch37: %{name}-mysqli-charsetphpini.patch -# +Patch38: %{name}-pdo_mysql-charsetphpini.patch -# +Patch44: %{name}-include_path.patch -# +Patch45: %{name}-imap-annotations.patch -# +Patch46: %{name}-imap-myrights.patch -# - php CLI has safe mode enabled off the box +# 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 ? -# - move mysqlnd out of libphp-common.so, or link again with mysql-devel? # - WARNING: Phar: sha256/sha512 signature support disabled if ext/hash is # built shared, also PHAR_HAVE_OPENSSL is false if openssl is built shared. # make it runtime dep and add Suggests (or php warning messages) @@ -40,14 +23,14 @@ # date #+ereg # libxml -#+mysqlnd # 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 %bcond_without filter # without filter extension module %bcond_without imap # without IMAP extension module @@ -55,6 +38,8 @@ %bcond_without ldap # without LDAP extension module %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 # 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) @@ -70,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; perform "make test" +%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 @@ -96,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 1.12 +%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 @@ -113,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.1 +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: 63e97ad450f0f7259e785100b634c797 +# Source0-md5: 21ceeeb232813c10283a5ca1b4c87b48 Source2: %{name}-mod_%{name}.conf Source3: %{name}-cgi-fcgi.ini Source4: %{name}-apache.ini @@ -128,6 +126,11 @@ Source5: %{name}-cli.ini Source9: %{name}_browscap.ini Source10: %{name}-fpm.init 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 @@ -139,8 +142,6 @@ Patch7: %{name}-sapi-ini-file.patch Patch8: %{name}-config-file-scan-dir.patch Patch9: %{name}-sh.patch Patch10: %{name}-ini.patch -# untill 5.3.2 when this gets released -Patch11: %{name}-bug-50458.patch %if %{with type_hints} Patch12: http://ilia.ws/patch/type_hint_53_v2.txt %endif @@ -155,19 +156,37 @@ Patch22: %{name}-both-apxs.patch Patch23: %{name}-builddir.patch Patch24: %{name}-zlib-for-getimagesize.patch Patch25: %{name}-stupidapache_version.patch +Patch26: %{name}-pear.patch Patch27: %{name}-config-dir.patch Patch29: %{name}-fcgi-graceful.patch +Patch31: %{name}-fcgi-error_log-no-newlines.patch +Patch32: %{name}-curl-limit-speed.patch +Patch34: %{name}-libtool.patch Patch35: %{name}-tds.patch +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 +Patch44: %{name}-include_path.patch +Patch45: %{name}-imap-annotations.patch +Patch46: %{name}-imap-myrights.patch Patch47: suhosin.patch Patch49: %{name}-m4-divert.patch Patch50: extension-shared-optional-dep.patch 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} @@ -179,10 +198,10 @@ BuildRequires: bzip2-devel BuildRequires: cyrus-sasl-devel BuildRequires: db-devel >= 4.0 BuildRequires: elfutils-devel -BuildRequires: fcgi-devel -%{?with_fdf:BuildRequires: fdftk-devel} -BuildRequires: flex +#BuildRequires: fcgi-devel +#BuildRequires: flex BuildRequires: pkgconfig +BuildRequires: sed >= 4.0 %if %{with mssql} || %{with sybase_ct} BuildRequires: freetds-devel >= 0.82 %endif @@ -193,36 +212,40 @@ 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 BuildRequires: libmcrypt-devel >= 2.4.4 BuildRequires: libpng-devel >= 1.0.8 -BuildRequires: libtiff-devel +#BuildRequires: libtiff-devel %if "%{pld_release}" != "ac" BuildRequires: libtool >= 2:2.2 %else BuildRequires: libtool >= 1.4.3 %endif -BuildRequires: libwrap-devel -BuildRequires: libxml2-devel >= 2.5.10 +#BuildRequires: libwrap-devel +BuildRequires: libxml2-devel >= 1:2.7.6-4 BuildRequires: libxslt-devel >= 1.1.0 %{?with_mm:BuildRequires: mm-devel >= 1.3.0} %{?with_ldap:BuildRequires: openldap-devel >= 2.3.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 %{?with_pgsql:BuildRequires: postgresql-backend-devel >= 7.2} %{?with_pgsql:BuildRequires: postgresql-devel} 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.519 +BuildRequires: rpmbuild(macros) >= 1.566 %{?with_sqlite:BuildRequires: sqlite-devel} %{?with_sqlite3:BuildRequires: sqlite3-devel >= 3.3.9} BuildRequires: t1lib-devel @@ -239,7 +262,7 @@ BuildRequires: apr-devel >= 1:1.0.0 BuildRequires: apr-util-devel >= 1:1.0.0 %endif %if %{with fpm} -BuildRequires: judy-devel +#BuildRequires: judy-devel BuildRequires: libevent-devel >= 1.4.7-3 %endif BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) @@ -256,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 @@ -269,7 +296,7 @@ non-commercial database management systems, so writing a database-enabled web page with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The mod_php module enables the Apache web server to understand and process -the embedded PHP language in web pages. This package contains php +the embedded PHP language in web pages. This package contains PHP version %{version}. %description -l fr.UTF-8 @@ -280,8 +307,8 @@ systemes de gestion de bases de donnees commerciaux et non-connerciaux, qui rent facile la creation de pages web liees avec des bases de donnees. L'utilisation la plus commune de PHP est probablement en remplacement de scripts CGI. Le module mod_php permet -au serveur web apache de comprendre et de traiter le langage PHP -integre dans des pages web. Ce package contient php version +au serveur web Apache de comprendre et de traiter le langage PHP +integre dans des pages web. Ce package contient PHP version %{version}. %description -l pl.UTF-8 @@ -292,7 +319,7 @@ danych dla kilku komercyjnych i niekomercyjnych systemów baz danych, co czyni tworzenie stron korzystających z baz danych w miarę łatwym. Najczęściej PHP jest używany prawdopodobnie jako zamiennik skryptów CGI. Moduł mod_php pozwala serwerowi WWW Apache rozumieć i przetwarzać -język PHP osadzony w stronach. Ten pakiet zawiera php w wersji +język PHP osadzony w stronach. Ten pakiet zawiera PHP w wersji %{version}. %description -l pt_BR.UTF-8 @@ -315,8 +342,8 @@ PHP - це мова написання скриптів, що вбудовуют використання PHP - заміна для CGI скриптів. %package -n apache1-mod_php -Summary: PHP DSO module for apache 1.3.x -Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) php dla apache 1.3.x +Summary: PHP DSO module for Apache 1.3.x +Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) PHP dla Apache 1.3.x Group: Development/Languages/PHP Requires(triggerpostun): sed >= 4.0 Requires: %{name}-common = %{epoch}:%{version}-%{release} @@ -327,14 +354,14 @@ Obsoletes: apache-mod_php < 1:4.1.1 Obsoletes: phpfi %description -n apache1-mod_php -PHP as DSO module for apache 1.3.x. +PHP as DSO module for Apache 1.3.x. %description -n apache1-mod_php -l pl.UTF-8 -php jako moduł DSO (Dynamic Shared Object) dla apache 1.3.x. +PHP jako moduł DSO (Dynamic Shared Object) dla Apache 1.3.x. %package -n apache-mod_php -Summary: PHP DSO module for apache 2.x -Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) php dla apache 2.x +Summary: PHP DSO module for Apache 2.x +Summary(pl.UTF-8): Moduł DSO (Dynamic Shared Object) PHP dla Apache 2.x Group: Development/Languages/PHP Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: apache(modules-api) = %{apache_modules_api} @@ -343,10 +370,23 @@ Provides: webserver(php) = %{version} Obsoletes: phpfi %description -n apache-mod_php -PHP as DSO module for apache 2.x. +PHP as DSO module for Apache 2.x. %description -n apache-mod_php -l pl.UTF-8 -php jako moduł DSO (Dynamic Shared Object) dla apache 2.x. +PHP jako moduł DSO (Dynamic Shared Object) dla Apache 2.x. + +%package litespeed +Summary: PHP for litespeed HTTP server +Summary(pl.UTF-8): PHP dla serwera HTTP litespeed +Group: Development/Languages/PHP +Requires: %{name}-common = %{epoch}:%{version}-%{release} +Provides: webserver(php) = %{version} + +%description litespeed +PHP for litespeed HTTP server. + +%description litespeed -l pl.UTF-8 +PHP dla serwera HTTP litespeed. %package cgi Summary: PHP as CGI/FastCGI program @@ -392,27 +432,39 @@ 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 +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/sbin/useradd Requires: %{name}-common = %{epoch}:%{version}-%{release} Requires: libevent >= 1.4.7-3 Requires: rc-scripts +Provides: user(http) 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(pl.UTF-8): Wspólne pliki dla modułu apache'a i programu CGI -Summary(ru.UTF-8): Разделяемые библиотеки для php -Summary(uk.UTF-8): Бібліотеки спільного використання для php +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) Provides: php(libxml) Provides: php(modules_api) = %{php_api_version} @@ -421,25 +473,31 @@ Provides: php(reflection) Provides: php(standard) Provides: php(zend_extension_api) = %{zend_extension_api} Provides: php(zend_module_api) = %{zend_module_api} +Provides: php-date +Provides: php-ereg +Provides: php-overload +Provides: php-reflection +Provides: php-standard Provides: php5(debug) = %{php_debug} Provides: php5(thread-safety) = %{zend_zts} +%{!?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 apacha i programu CGI. +Wspólne pliki dla modułu Apache'a i programu CGI. %description common -l ru.UTF-8 Этот пакет содержит общие файлы для разных вариантов реализации PHP -(самодостаточной и в качестве модуля apache). +(самодостаточной и в качестве модуля Apache). %description common -l uk.UTF-8 Цей пакет містить спільні файли для різних варіантів реалізації PHP -(самодостатньої та в якості модуля apache). +(самодостатньої та в якості модуля Apache). %package devel Summary: Files for PHP modules development @@ -464,14 +522,14 @@ Obsoletes: php4-devel %description devel The php-devel package lets you compile dynamic extensions to PHP. Included here is the source for the PHP extensions. Instead of -recompiling the whole php binary to add support for, say, oracle, +recompiling the whole PHP binary to add support for, say, oracle, install this package and use the new self-contained extensions support. For more information, read the file README.SELF-CONTAINED-EXTENSIONS. %description devel -l pl.UTF-8 Ten pakiet zawiera pliki potrzebne do kompilacji modułów PHP. Zamiast -rekompilować całe php aby dodać obsługę np. oracle, można przy użyciu +rekompilować całe PHP aby dodać obsługę np. oracle, można przy użyciu tego pakietu skompilować samodzielne rozszerzenie. Więcej informacji o samodzielnych rozszerzeniach można znaleźć w pliku README.SELF-CONTAINED-EXTENSIONS. @@ -483,14 +541,14 @@ módulos PHP. %description devel -l ru.UTF-8 Пакет php-devel дает возможность компилировать динамические расширения PHP. Пакет включает исходный код этих расширений. Вместо повторной -компиляции бинарного файла php для добавления, например, поддержки +компиляции бинарного файла PHP для добавления, например, поддержки oracle, установите этот пакет для компилирования отдельных расширений. Подробности - в файле README.SELF-CONTAINED-EXTENSIONS. %description devel -l uk.UTF-8 Пакет php-devel дає можливість компілювати динамічні розширення PHP. До пакету включено вихідний код для розширень. Замість повторної -компіляції бінарного файлу php для додання, наприклад, підтримки +компіляції бінарного файлу PHP для додання, наприклад, підтримки oracle, встановіть цей пакет для компіляції окремих розширень. Детальніша інформація - в файлі README.SELF-CONTAINED-EXTENSIONS. @@ -510,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 @@ -595,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 @@ -619,28 +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 @@ -651,12 +700,20 @@ 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 Group: Libraries URL: http://www.php.net/manual/en/book.filter.php Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-pcre = %{epoch}:%{version}-%{release} Provides: php(filter) Obsoletes: php-pecl-filter @@ -749,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 @@ -784,6 +842,8 @@ Summary(pt_BR.UTF-8): Um módulo para aplicações PHP que usam IMAP 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 @@ -814,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} @@ -828,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 @@ -920,6 +981,7 @@ Summary(pt_BR.UTF-8): Um módulo para aplicações PHP que usam bancos de dados Group: Libraries URL: http://www.php.net/manual/en/book.mysql.php Requires: %{name}-common = %{epoch}:%{version}-%{release} +%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}} Provides: php(mysql) %description mysql @@ -938,6 +1000,7 @@ Summary(pl.UTF-8): Moduł MySQLi dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.mysqli.php Requires: %{name}-common = %{epoch}:%{version}-%{release} +%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}} Requires: %{name}-spl = %{epoch}:%{version}-%{release} Provides: php(mysqli) @@ -951,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 @@ -1008,7 +1108,7 @@ Summary: Process Control extension module for PHP Summary(pl.UTF-8): Moduł Process Control dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.pcntl.php -Requires: %{name}-cli = %{epoch}:%{version}-%{release} +Requires: %{name}-common = %{epoch}:%{version}-%{release} Provides: php(pcntl) %description pcntl @@ -1093,6 +1193,7 @@ Summary(pl.UTF-8): Moduł PHP Data Objects (PDO) z obsługą MySQL-a Group: Libraries URL: http://www.php.net/manual/en/ref.pdo-mysql.php Requires: %{name}-common = %{epoch}:%{version}-%{release} +%{?with_mysqlnd:Requires: %{name}-mysqlnd = %{epoch}:%{version}-%{release}} Requires: %{name}-pdo = %{epoch}:%{version}-%{release} Provides: php(pdo-mysql) Obsoletes: php-pecl-PDO_MYSQL @@ -1312,6 +1413,7 @@ Summary(pl.UTF-8): Moduł prostego rozszerzenia XML dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.simplexml.php Requires: %{name}-common = %{epoch}:%{version}-%{release} +Requires: %{name}-spl = %{epoch}:%{version}-%{release} Provides: php(simplexml) %description simplexml @@ -1369,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} @@ -1382,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 @@ -1390,8 +1492,8 @@ Summary(pl.UTF-8): Moduł SQLite dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.sqlite.php Requires: %{name}-common = %{epoch}:%{version}-%{release} -Suggests: %{name}-pdo = %{epoch}:%{version}-%{release} -Suggests: %{name}-spl = %{epoch}:%{version}-%{release} +Requires: %{name}-pdo = %{epoch}:%{version}-%{release} +Requires: %{name}-spl = %{epoch}:%{version}-%{release} Provides: php(sqlite) %description sqlite @@ -1450,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 @@ -1555,7 +1656,10 @@ Summary(pl.UTF-8): Moduł wddx dla PHP Group: Libraries URL: http://www.php.net/manual/en/book.wddx.php Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: %{name}-session = %{epoch}:%{version}-%{release} +# - wddx doesn't require session as it's disabled at compile time: +# if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION) +# see also php.spec#rev1.120.2.22 +#Requires: %{name}-session = %{epoch}:%{version}-%{release} Requires: %{name}-xml = %{epoch}:%{version}-%{release} Provides: php(wddx) @@ -1721,16 +1825,27 @@ cp php.ini-production php.ini %patch23 -p1 %patch24 -p1 %patch25 -p1 +%patch26 -p1 %patch27 -p1 %patch29 -p1 +%patch31 -p1 +%patch32 -p1 +%if "%{pld_release}" != "ac" +%patch34 -p1 +%endif %patch35 -p1 +%patch36 -p1 +%patch37 -p1 +%patch38 -p1 %patch39 -p1 %if %{with fpm} -%patch40 -p1 %patch41 -p1 %patch42 -p1 %endif %patch43 -p1 +%patch44 -p1 +%patch45 -p1 +%patch46 -p1 %if %{with suhosin} %patch47 -p1 %endif @@ -1738,36 +1853,64 @@ cp php.ini-production php.ini %patch50 -p1 %patch51 -p1 %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 -%patch11 -p4 +%if "%{pld_release}" != "ac" +sed -i -e '/PHP_ADD_LIBRARY_WITH_PATH/s#xmlrpc,#xmlrpc-epi,#' ext/xmlrpc/config.m4 +%endif # cleanup backups after patching 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 -rf 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 # breaks build sed -i -e 's#-fvisibility=hidden##g' configure* +# disable broken tests +# 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 API=$(awk '/#define PHP_API_VERSION/{print $3}' main/php.h) if [ $API != %{php_api_version} ]; then @@ -1791,7 +1934,7 @@ export EXTENSION_DIR="%{php_extensiondir}" # configure once (for faster debugging purposes) if [ ! -f _built-conf ]; then # now remove Makefile copies - rm -f Makefile.{cgi-fcgi,fpm,cli,apxs{1,2}} + rm -f Makefile.{cgi-fcgi,fpm,cli,apxs1,apxs2,litespeed} %{__libtoolize} %{__aclocal} cp -f /usr/share/automake/config.* . @@ -1799,10 +1942,14 @@ if [ ! -f _built-conf ]; then touch _built-conf fi export PROG_SENDMAIL="/usr/lib/sendmail" -export CPPFLAGS="-DDEBUG_FASTCGI -DHAVE_STRNDUP" +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 @@ -1812,6 +1959,9 @@ apxs1 %if %{with apache2} apxs2 %endif +%if %{with litespeed} +litespeed +%endif " for sapi in $sapis; do : SAPI $sapi @@ -1824,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) @@ -1837,6 +1987,9 @@ for sapi in $sapis; do ver=$(rpm -q --qf '%{V}' apache-devel) sapi_args="--disable-cli --with-apxs2=%{apxs2} --with-apache-version=$ver" ;; + litespeed) + sapi_args='--with-litespeed' + ;; esac %configure \ @@ -1848,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 \ @@ -1871,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 @@ -1886,13 +2035,13 @@ for sapi in $sapis; do --with-pdo-firebird=shared,/usr \ %endif --with-mysql-sock=/var/lib/mysql/mysql.sock \ - --with-pdo-mysql=shared,mysqlnd \ - %{?with_oci8:--with-pdo-oci=shared} \ + --with-pdo-mysql=shared%{?with_mysqlnd:,mysqlnd} \ + %{?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} \ --without-libexpat-dir \ - --enable-mysqlnd-threading \ + --enable-overload=shared \ --enable-posix=shared \ --enable-shared \ --enable-session=shared \ @@ -1911,9 +2060,8 @@ for sapi in $sapis; do --enable-xml=shared \ --enable-xmlreader=shared \ --with-bz2=shared \ - %{!?with_curl:--without-curl}%{?with_curl:--with-curl=shared} \ + %{__with_without curl curl shared} \ --with-db4 \ - %{?with_fdf:--with-fdftk=shared} \ --with-iconv=shared \ --with-freetype-dir=shared \ --with-gettext=shared \ @@ -1927,16 +2075,17 @@ for sapi in $sapis; do --with-mcrypt=shared \ %{?with_mm:--with-mm} \ %{?with_mssql:--with-mssql=shared} \ - --with-mysql=shared,mysqlnd \ - %{?with_mysqli:--with-mysqli=shared,mysqlnd} \ - %{?with_oci8:--with-oci8=shared} \ + %{?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_instantclient:,instantclient,%{_libdir}}} \ %{?with_openssl:--with-openssl=shared} \ --with-kerberos \ - %{!?with_pcre:--without-pcre-regex}%{?with_pcre:--with-pcre-regex=/usr} \ - %{!?with_filter:--disable-filter}%{?with_filter:--enable-filter=shared} \ + %{__with_without pcre pcre-regex /usr} \ + %{__enable_disable filter filter shared} \ --with-pear=%{php_pear_dir} \ - %{!?with_pgsql:--without-pgsql}%{?with_pgsql:--with-pgsql=shared,/usr} \ - %{!?with_phar:--disable-phar}%{?with_phar:--enable-phar=shared} \ + %{__with_without pgsql pgsql shared,/usr} \ + %{__enable_disable phar phar shared} \ --with-png-dir=/usr \ %{?with_pspell:--with-pspell=shared} \ --with-readline=shared \ @@ -1945,11 +2094,11 @@ for sapi in $sapis; do %{?with_snmp:--with-snmp=shared} \ %{?with_sybase_ct:--with-sybase-ct=shared,/usr} \ %{!?with_sqlite:--without-sqlite --without-pdo-sqlite}%{?with_sqlite:--with-sqlite=shared,/usr --enable-sqlite-utf8} \ - %{!?with_sqlite3:--without-sqlite3}%{?with_sqlite3:--with-sqlite3=shared,/usr} \ + %{__with_without sqlite3 sqlite3 shared,/usr} \ --with-t1lib=shared \ %{?with_tidy:--with-tidy=shared} \ %{?with_odbc:--with-unixODBC=shared,/usr} \ - %{!?with_xmlrpc:--without-xmlrpc}%{?with_xmlrpc:--with-xmlrpc=shared,/usr} \ + %{__with_without xmlrpc xmlrpc shared,/usr} \ --with-xsl=shared \ --with-zlib=shared \ --with-zlib-dir=shared,/usr \ @@ -1966,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 @@ -1977,28 +2128,99 @@ sed -i -e "s,@PHP_INSTALLED_SAPIS@,$sapis," "scripts/php-config.in" %{__make} libtool-sapi LIBTOOL_SAPI=sapi/apache2handler/libphp5.la -f Makefile.apxs2 %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 ' /dev/null +%endif # CLI cp -af php_config.h.cli main/php_config.h %{__make} -f Makefile.cli [ "$(echo ' /dev/null +# check for stupid xml parse breakage where < and > just get lost in parse result +./sapi/cli/php -n -dextension_dir=modules -dextension=xml.so -r '$p = xml_parser_create(); xml_parse_into_struct($p, "<", $vals, $index); exit((int )empty($vals[0]["value"]));' + +# Generate stub .ini files for each extension +rm -rf conf.d +install -d conf.d +generate_inifiles() { + for so in modules/*.so; do + mod=$(basename $so .so) + conf="$mod.ini" + # xml needs to be loaded before wddx + [ "$mod" = "wddx" ] && conf="xml_$mod.ini" + # pre needs to be loaded before SPL + [ "$mod" = "pcre" ] && conf="PCRE.ini" + # spl needs to be loaded before mysqli + [ "$mod" = "spl" ] && conf="SPL.ini" + # mysqlnd needs to be loaded before mysql,mysqli,pdo_mysqli + [ "$mod" = "mysqlnd" ] && conf="MySQLND.ini" + echo "+ $conf" + cat > conf.d/$conf <<-EOF + ; Enable $mod extension module + extension=$mod.so + EOF + done +} +generate_inifiles + +# Check that the module inner-dependencies are intact +PHP=./sapi/cli/php EXTENSION_DIR=modules CONFIG_DIR=conf.d ./dep-tests.sh > dep-tests.log +if grep -v OK dep-tests.log; then + echo >&2 "The results above were not expected" + exit 1 +fi + +%if %{with gcov} +# Use CLI SAPI +cp -af php_config.h.cli main/php_config.h +cp -af Makefile.cli Makefile +%{__make} lcov +# you really don't want to package result of gcov build +exit 1 %endif %if %{with tests} # Run tests, using the CLI SAPI +cp -af php_config.h.cli main/php_config.h +cp -af Makefile.cli Makefile + +cat <<'EOF' > run-tests.sh +#!/bin/sh export NO_INTERACTION=1 REPORT_EXIT_STATUS=1 MALLOC_CHECK_=2 unset TZ LANG LC_ALL || : -%{__make} test -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 +sed -ne '/\[.*\]/{s/\(.*\) \[\(.*\)\]/# \1\nmv \2{,.skip}/p}' tests-failed.log \ + >> %{_sourcedir}/skip-tests.sh + +failed=$(wc -l < tests-failed.log) +if [ "$failed" != 0 ]; then + exit 1 +fi %endif %install @@ -2008,20 +2230,29 @@ 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 -# install apache1 DSO module +# 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 %endif -# install apache2 DSO module +# install Apache2 DSO module %if %{with apache2} libtool --silent --mode=install install sapi/apache2handler/libphp5.la $RPM_BUILD_ROOT%{_libdir}/apache %endif +# install litespeed sapi +%if %{with litespeed} +libtool --silent --mode=install install sapi/litespeed/php $RPM_BUILD_ROOT%{_sbindir}/php.litespeed +%endif + libtool --silent --mode=install install libphp_common.la $RPM_BUILD_ROOT%{_libdir} # fix install paths, avoid evil rpaths sed -i -e "s|^libdir=.*|libdir='%{_libdir}'|" $RPM_BUILD_ROOT%{_libdir}/libphp_common.la @@ -2029,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 @@ -2051,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} @@ -2068,32 +2301,14 @@ cp -a %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/php-apache2handler.ini rm -f $RPM_BUILD_ROOT%{_libdir}/apache/libphp5.la %endif -# Generate stub .ini files for each subpackage install -d $RPM_BUILD_ROOT%{_sysconfdir}/conf.d -generate_inifiles() { - for so in modules/*.so; do - mod=$(basename $so .so) - conf="%{_sysconfdir}/conf.d/$mod.ini" - # xml needs to be loaded before wddx - [ "$mod" = "wddx" ] && conf="%{_sysconfdir}/conf.d/xml_$mod.ini" - # pre needs to be loaded before SPL - [ "$mod" = "pcre" ] && conf="%{_sysconfdir}/conf.d/PCRE.ini" - # spl needs to be loaded before mysqli - [ "$mod" = "spl" ] && conf="%{_sysconfdir}/conf.d/SPL.ini" - echo "+ $conf" - cat > $RPM_BUILD_ROOT$conf <<-EOF - ; Enable $mod extension module - extension=$mod.so - EOF - done -} -generate_inifiles +cp -a conf.d/*.ini $RPM_BUILD_ROOT%{_sysconfdir}/conf.d # per SAPI ini directories install -d $RPM_BUILD_ROOT%{_sysconfdir}/{cgi-fcgi,cli,apache,apache2handler}.d # for CLI SAPI only -mv $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/{pcntl,readline}.ini,cli.d} +mv $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/readline.ini,cli.d} # use system automake and {lib,sh}tool %if "%{pld_release}" != "ac" @@ -2108,10 +2323,6 @@ mv $RPM_BUILD_ROOT%{_sysconfdir}/{conf.d/{pcntl,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 @@ -2144,6 +2355,9 @@ if [ "$1" = "0" ]; then %service -q httpd restart fi +%pre fpm +%useradd -u 51 -r -s /bin/false -c "HTTP User" -g http http + %post fpm /sbin/chkconfig --add php-fpm %service php-fpm restart @@ -2154,8 +2368,20 @@ if [ "$1" = 0 ]; then /sbin/chkconfig --del php-fpm fi -%post common -p /sbin/ldconfig -%postun common -p /sbin/ldconfig +%postun fpm +if [ "$1" = "0" ]; then + %userremove http +fi + +%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: @@ -2181,7 +2407,7 @@ sed -i -e ' %endif %if %{with apache2} -%triggerpostun -n apache-mod_php -- php < 4:5.0.4-7.1, php < 4:5.0.4-7.1 +%triggerpostun -n apache-mod_php -- 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} @@ -2204,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 @@ -2230,6 +2455,7 @@ fi %extension_scripts mssql %extension_scripts mysql %extension_scripts mysqli +%extension_scripts mysqlnd %extension_scripts oci8 %extension_scripts odbc %extension_scripts openssl @@ -2271,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 @@ -2292,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 @@ -2440,12 +2660,20 @@ fi %attr(755,root,root) %{_libdir}/apache/libphp5.so %endif +%if %{with litespeed} +%files litespeed +%defattr(644,root,root,755) +%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) @@ -2462,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 @@ -2508,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 @@ -2540,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) @@ -2561,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 @@ -2656,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) @@ -2679,7 +2908,7 @@ fi %files pcntl %defattr(644,root,root,755) -%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/cli.d/pcntl.ini +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/conf.d/pcntl.ini %attr(755,root,root) %{php_extensiondir}/pcntl.so %if %{with pcre} @@ -2753,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 @@ -2779,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 @@ -2795,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)