]> git.pld-linux.org Git - packages/php.git/blobdiff - php.spec
- added session-unregister patch to avoid httpd SEGVs with msession module
[packages/php.git] / php.spec
index 23aaad67f8264ba911c02690a1fa5b5b2c51b015..af1f470c8817e927bb5d08365c95d817cfc2cbaa 100644 (file)
--- a/php.spec
+++ b/php.spec
@@ -1,4 +1,8 @@
 #
+# TODO:
+# - pear - isn't built now, what is still needed???
+# - fastcgi option in cgi SAPI? or separate fcgi SAPI?
+#
 # Automatic pear requirements finding:
 %include       /usr/lib/rpm/macros.php
 
@@ -67,29 +71,36 @@ Source4:    %{name}-module-install
 Source5:       %{name}-mod_%{name}.conf
 Source6:       %{name}-cgi.ini
 Source7:       %{name}-apache.ini
+Source8:       %{name}-cli.ini
 Patch0:                %{name}-shared.patch
 Patch1:                %{name}-pldlogo.patch
+Patch2:                %{name}-xml-expat-fix.patch
 #Patch2:               %{name}-mysql-socket.patch
 Patch3:                %{name}-mail.patch
-#Patch4:               %{name}-link-libs.patch
+Patch4:                %{name}-link-libs.patch
 #Patch5:               %{name}-fastcgi.patch
 Patch6:                %{name}-libpq_fs_h_path.patch
 Patch7:                %{name}-wddx-fix.patch
 Patch8:                %{name}-cpdf-fix.patch
 #Patch9:               %{name}-session-fix-shared.patch
 Patch10:       %{name}-hyperwave-fix.patch
+Patch11:       %{name}-odbc-fix.patch
 #Patch11:      %{name}-openssl-for-ext-only.patch
-Patch12:       %{name}-java-fix.patch
+Patch12:       %{name}-java-norpath.patch
 Patch13:       %{name}-mcal-shared-lib.patch
 Patch14:       %{name}-msession-shared-lib.patch
 Patch15:       %{name}-build_modules.patch
-#Patch16:      %{name}-sapi-ini-file.patch
+Patch16:       %{name}-sapi-ini-file.patch
+Patch17:       %{name}-dl-zlib.patch
+Patch18:       %{name}-dl-pcre.patch
+Patch19:       %{name}-session-unregister.patch
 #Patch17:      %{name}-%{name}_iconv_string_declaration.patch
 #Patch18:      %{name}-pear-cosmetic.patch
 #Patch19:      %{name}-mnogosearch.patch
 Patch20:       %{name}-ini.patch
 Patch21:       %{name}-acam.patch
 Patch22:       %{name}-xmlrpc-fix.patch
+Patch23:       %{name}-libtool.patch
 #Patch23:      %{name}-iconv-bug18039.patch
 Patch24:       %{name}-db4.patch
 Icon:          php4.gif
@@ -155,7 +166,7 @@ BuildRequires:      yaz-devel >= 1.9
 BuildRequires: zip
 BuildRequires: zlib-devel >= 1.0.9
 BuildRequires: zziplib-devel
-#BuildRequires:        fastcgi-devkit
+#BuildRequires:        fcgi-devel
 # apache 1.3 vs apache 2.0
 %if %{_apache2}
 PreReq:                apache >= 2.0.40
@@ -173,6 +184,7 @@ Obsoletes:  apache-mod_php
 
 %define                _sysconfdir     /etc/php
 %define                extensionsdir   %{_libdir}/php
+%define                httpdir         /home/services/httpd
 
 %description
 PHP is an HTML-embedded scripting language. PHP attempts to make it
@@ -243,8 +255,9 @@ PHP4 - 
 %package cgi
 Summary:       PHP as CGI program
 Summary(pl):   PHP jako program CGI
-Group:         Libraries
+Group:         Development/Languages/PHP
 PreReq:                %{name}-common = %{version}
+Provides:      php-program = %{version}
 
 %description cgi
 PHP as CGI program.
@@ -252,6 +265,19 @@ PHP as CGI program.
 %description cgi -l pl
 PHP jako program CGI.
 
+%package cli
+Summary:       PHP as CLI interpreter
+Summary(pl):   PHP jako interpreter dzia³aj±cy z linii poleceñ
+Group:         Development/Languages/PHP
+PreReq:                %{name}-common = %{version}
+Provides:      php-program = %{version}
+
+%description cli
+PHP as CLI interpreter.
+
+%description cli -l pl
+PHP jako interpreter dzia³aj±cy z linii poleceñ.
+
 %package common
 Summary:       Common files nneded by both apache module and CGI
 Summary(pl):   Wspólne pliki dla modu³u apache'a i programu CGI
@@ -681,10 +707,18 @@ This is a dynamic shared object (DSO) for Apache that will add JAVA
 support to PHP. This extension provides a simple and effective means
 for creating and invoking methods on Java objects from PHP.
 
+Note: it requires setting LD_LIBRARY_PATH to JRE directories
+containing JVM libraries (e.g. libjava.so, libverify.so and libjvm.so
+for Sun's JRE) before starting Apache or PHP interpreter.
+
 %description java -l pl
 Modu³ PHP dodaj±cy wsparcie dla Javy. Umo¿liwia odwo³ywanie siê do
 obiektów Javy z poziomu PHP.
 
+Uwaga: modu³ wymaga ustawienia LD_LIBRARY_PATH na katalogi JRE
+zawieraj±ce biblioteki JVM (np. libjava.so, libverify.so i libjvm.so
+dla JRE Suna) przed uruchomieniem Apache'a lub interpretera PHP.
+
 %package ldap
 Summary:       LDAP extension module for PHP
 Summary(pl):   Modu³ LDAP dla PHP
@@ -919,8 +953,8 @@ Uwaga: to jest modu
 Summary:       Process Control extension module for PHP
 Summary(pl):   Modu³ Process Control dla PHP
 Group:         Libraries
-Requires(post,preun):%{name}-cgi = %{version}
-Requires:      %{name}-cgi = %{version}
+Requires(post,preun):%{name}-program = %{version}
+Requires:      %{name}-program = %{version}
 
 %description pcntl
 This is a dynamic shared object (DSO) for Apache that will add process
@@ -1211,6 +1245,7 @@ Summary(pl):      Modu
 Group:         Libraries
 Requires(post,preun):%{name}-common = %{version}
 Requires:      %{name}-common = %{version}
+Requires:      yaz >= 1.9
 
 %description yaz
 This is a dynamic shared object (DSO) for Apache that will add yaz
@@ -1315,23 +1350,28 @@ Repozytorium Aplikacji. Ten pakiet zawiera aplikacje potrzebne do
 
 %prep
 %setup -q
-#%patch0 -p1   -- needs update!
+%patch0 -p1
 %patch1 -p1
 #%patch2 -p1   -- obsolete
+%patch2 -p1
 %patch3 -p1
-#%patch4 -p1   -- seems obsolete
-#%patch5 -p1   -- obsolete (fastcgi SAPI removed)
+%patch4 -p1
+#%patch5 -p1   -- obsolete (fastcgi interface changed)
 %patch6 -p1
-#%patch7 -p1   -- partially obsolete, the rest to check (too many changes)
+%patch7 -p1
 %patch8 -p1
 #%patch9 -p1   -- obsolete
 %patch10 -p1
+%patch11 -p1
 #%patch11 -p1  -- obsolete (openssl used also in common part)
-#%patch12 -p1  -- needs update? to check
+%patch12 -p1
 %patch13 -p1
 %patch14 -p1
 %patch15 -p1
-#%patch16 -p1  -- uhm... php allows _separate_ (not included) php-${SAPI}.ini files now
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
 #%patch17 -p1  -- obsolete
 #%patch18 -p1  -- obsolete? - no such file
 #%patch19 -p1  -- obsolete
@@ -1341,6 +1381,7 @@ cp php.ini-dist php.ini
 # conditionally...
 %patch21 -p1
 %patch22 -p1
+%patch23 -p1
 #%patch23 -p1  -- obsolete
 %patch24 -p1
 
@@ -1354,12 +1395,13 @@ EXTENSION_DIR="%{extensionsdir}"; export EXTENSION_DIR
 %{__libtoolize}
 %{__aclocal}
 autoconf
-#for i in cgi fastcgi apxs ; do
 PROG_SENDMAIL="/usr/lib/sendmail"; export PROG_SENDMAIL
-for i in cgi apxs ; do
+for i in cgi cli apxs ; do
 %configure \
        `[ $i = cgi ] && echo --enable-discard-path` \
-       `[ $i = fastcgi ] && echo --enable-discard-path --with-fastcgi=/usr` \
+       `[ $i != cli ] && echo --disable-cli` \
+       `[ $i = cli ] && echo --disable-cgi` \
+       `[ $i = fcgi ] && echo --enable-fastcgi --with-fastcgi=/usr` \
 %if %{_apache2}
        `[ $i = apxs ] && echo --with-apxs2=%{apxs}` \
 %else
@@ -1370,7 +1412,6 @@ for i in cgi apxs ; do
        --%{!?debug:dis}%{?debug:en}able-debug \
        --enable-bcmath=shared \
        --enable-calendar=shared \
-       --disable-cli \
        --enable-ctype=shared \
        --enable-dba=shared \
        --enable-dbx=shared \
@@ -1414,7 +1455,7 @@ for i in cgi apxs ; do
        --with-filepro=shared \
        --with-freetype-dir=shared \
        --with-gettext=shared \
-       --with-gd=shared \
+       --with-gd=shared,/usr \
        --with-gdbm \
        --with-gmp=shared \
        --with-hyperwave=shared \
@@ -1455,9 +1496,9 @@ for i in cgi apxs ; do
        --with-zip=shared \
        --with-zlib=shared \
        --with-zlib-dir=shared,/usr
-done
 
-#      --with-sablot-js=shared,no
+cp -f Makefile Makefile.$i
+done
 
 # for now session_mm doesn't work with shared session module...
 # --enable-session=shared
@@ -1467,35 +1508,45 @@ done
 #      --with-qtdom=shared
 
 %{__make}
-%{__make} CFLAGS="%{rpmcflags} -DDISCARD_PATH=1" -C sapi/cgi
 
-# Kill -rpath from php binary and libphp4.so
-perl -pi -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
-perl -pi -e 's|^runpath_var=.*|runpath_var=|g' libtool
-%{__make} CFLAGS="%{rpmcflags} -DDISCARD_PATH=1" php
+# fix install paths, avoid evil rpaths
+perl -pi -e "s|^libdir=.*|libdir='%{_libdir}'|" libphp_common.la
+perl -pi -e "s|^libdir=.*|libdir='%{_libdir}/apache'|" libphp4.la
+perl -pi -e "s|^(relink_command=.* -rpath )[^ ]*/libs |\1%{_libdir}/apache |" libphp4.la
 
-perl -pi -e 's|^hardcode_into_libs=.*|hardcode_into_libs=no|g' libtool
-rm libphp4.la ; %{__make} libphp4.la
+# notes:
+# -DENABLE_CHROOT_FUNC=1 (cgi,fcgi) is used in ext/standard/dir.c (libphp_common)
+# -DPHP_WRITE_STDOUT is used also for cli, but not set by its config.m4
+
+%{__make} sapi/cgi/php -f Makefile.cgi \
+       CFLAGS_CLEAN="%{rpmcflags} -DDISCARD_PATH=1 -DENABLE_PATHINFO_CHECK=1 -DFORCE_CGI_REDIRECT=0 -DPHP_WRITE_STDOUT=1"
+
+%{__make} sapi/cli/php -f Makefile.cli
+
+# for fcgi: -DDISCARD_PATH=0 -DENABLE_PATHINFO_CHECK=1 -DFORCE_CGI_REDIRECT=0
+# -DHAVE_FILENO_PROTO=1 -DHAVE_FPOS=1 -DHAVE_LIBNSL=1(die) -DHAVE_SYS_PARAM_H=1
+# -DPHP_FASTCGI=1 -DPHP_FCGI_STATIC=1 -DPHP_WRITE_STDOUT=1
 
 %install
 rm -rf $RPM_BUILD_ROOT
 install -d $RPM_BUILD_ROOT{%{_libdir}/{php,apache},%{_sysconfdir}/{apache,cgi}} \
-       $RPM_BUILD_ROOT/home/services/httpd/icons \
+       $RPM_BUILD_ROOT%{httpdir}/icons \
        $RPM_BUILD_ROOT{%{_sbindir},%{_bindir}} \
        $RPM_BUILD_ROOT/var/run/php \
        $RPM_BUILD_ROOT/etc/httpd/httpd.conf
 
-%{__make} install \
+%{__make} install install-build install-programs install-headers \
        INSTALL_ROOT=$RPM_BUILD_ROOT \
-       INSTALL_IT="install libs/libphp4.so $RPM_BUILD_ROOT%{_libdir}/apache/ ; install libs/libphp_common*.so.*.*.* $RPM_BUILD_ROOT%{_libdir}"
+       INSTALL_IT="\$(LIBTOOL) --mode=install install libphp_common.la $RPM_BUILD_ROOT%{_libdir} ; \$(LIBTOOL) --mode=install install libphp4.la $RPM_BUILD_ROOT%{_libdir}/apache ; \$(LIBTOOL) --mode=install install sapi/cgi/php $RPM_BUILD_ROOT%{_bindir}/php.cgi ; \$(LIBTOOL) --mode=install install sapi/cli/php $RPM_BUILD_ROOT%{_bindir}/php.cli"
 
-%{?_with_java:install ext/java/php_java.jar $RPM_BUILD_ROOT%{_libdir}}
+# compatibility (/usr/bin/php used to be CGI SAPI)
+ln -sf php.cgi $RPM_BUILD_ROOT%{_bindir}/php
 
-install .libs/php $RPM_BUILD_ROOT%{_bindir}/php
+%{?_with_java:install ext/java/php_java.jar $RPM_BUILD_ROOT%{extensionsdir}}
 
 install php.ini        $RPM_BUILD_ROOT%{_sysconfdir}/php.ini
-install %{SOURCE6} %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}
-install %{SOURCE2} php.gif $RPM_BUILD_ROOT/home/services/httpd/icons
+install %{SOURCE6} %{SOURCE7} %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}
+install %{SOURCE2} php.gif $RPM_BUILD_ROOT%{httpdir}/icons
 install %{SOURCE4} $RPM_BUILD_ROOT%{_sbindir}
 install %{SOURCE5} $RPM_BUILD_ROOT/etc/httpd/httpd.conf/70_mod_php.conf
 
@@ -1503,7 +1554,7 @@ install %{SOURCE1} .
 
 mv -f Zend/LICENSE{,.Zend}
 
-mkdir $RPM_BUILD_ROOT%{php_pear_dir}/{Auth,Science,HTML/Template}
+install -d $RPM_BUILD_ROOT%{php_pear_dir}/{Auth,Science,HTML/Template}
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -1838,11 +1889,21 @@ if [ "$1" = "0" ]; then
 fi
 
 %post pcntl
+if [ -f %{_sysconfdir}/php-cgi.ini ]; then
 %{_sbindir}/php-module-install install pcntl %{_sysconfdir}/php-cgi.ini
+fi
+if [ -f %{_sysconfdir}/php-cli.ini ]; then
+%{_sbindir}/php-module-install install pcntl %{_sysconfdir}/php-cli.ini
+fi
 
 %preun pcntl
 if [ "$1" = "0" ]; then
+       if [ -f %{_sysconfdir}/php-cgi.ini ]; then
        %{_sbindir}/php-module-install remove pcntl %{_sysconfdir}/php-cgi.ini
+       fi
+       if [ -f %{_sysconfdir}/php-cli.ini ]; then
+       %{_sbindir}/php-module-install remove pcntl %{_sysconfdir}/php-cli.ini
+       fi
 fi
 
 %post pcre
@@ -2023,9 +2084,15 @@ fi
 
 %files cgi
 %defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/php.cgi
 %attr(755,root,root) %{_bindir}/php
 %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/php-cgi.ini
 
+%files cli
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_bindir}/php.cli
+%config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/php-cli.ini
+
 %files common
 %defattr(644,root,root,755)
 %doc php.ini-*
@@ -2037,18 +2104,20 @@ fi
 %attr(644,root,root) %config(noreplace) %verify(not size mtime md5) %{_sysconfdir}/php.ini
 %attr(730,root,http) %dir %verify(not group mode) /var/run/php
 
-/home/services/httpd/icons/*
+%{httpdir}/icons/*
 %attr(755,root,root) %{_sbindir}/*
-%attr(755,root,root) %{_libdir}/libphp_common*.so.*.*.*
+%attr(755,root,root) %{_libdir}/libphp_common-*.so
 %dir %{extensionsdir}
 
 %files devel
 %defattr(644,root,root,755)
-%{_includedir}/php
-%{_libdir}/php/build
 %attr(755,root,root) %{_bindir}/phpextdist
 %attr(755,root,root) %{_bindir}/phpize
 %attr(755,root,root) %{_bindir}/php-config
+%attr(755,root,root) %{_libdir}/libphp_common.so
+%{_libdir}/libphp_common.la
+%{_includedir}/php
+%{_libdir}/php/build
 
 %files doc
 %defattr(644,root,root,755)
@@ -2154,7 +2223,7 @@ fi
 %files java
 %defattr(644,root,root,755)
 %attr(755,root,root) %{extensionsdir}/java.so
-%{_libdir}/php_java.jar
+%{extensionsdir}/php_java.jar
 %endif
 
 %if %{?_without_ldap:0}%{!?_without_ldap:1}
@@ -2344,6 +2413,8 @@ fi
 %defattr(644,root,root,755)
 %attr(755,root,root) %{extensionsdir}/zlib.so
 
+# not built yet
+%if 0
 %files pear
 %defattr(644,root,root,755)
 %dir %{php_pear_dir}
@@ -2383,3 +2454,4 @@ fi
 #%attr(755,root,root) %{_bindir}/pear
 %attr(755,root,root) %{_bindir}/pearize
 %attr(755,root,root) %{_bindir}/phptar
+%endif
This page took 0.040372 seconds and 4 git commands to generate.