diff --git a/php.spec b/php.spec index d89053e..3171322 100644 --- a/php.spec +++ b/php.spec @@ -1,32 +1,21 @@ -# HTML cgi-bin directory exists under -# %define contentdir /var/www - - -# Language sets that we bundle with php -# %define manual_langs de en es fr it ja ko pt_BR +ExcludeArch: x86_64 # For those wanting to recompile with Oracle libraries # rpm --rebuild --define 'oracle 1' php4.2.1-x.src.rpm # %{!?oracle:%define oracle 0} - -# RPM Informational headers -# Summary: The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor) Name: php Version: 4.2.2 -Release: 8.0.8 -License: The PHP License, version 2.02 +Release: 10 +License: The PHP License Group: Development/Languages URL: http://www.php.net/ - -# The one true source and manuals -# Source0: http://www.php.net/distributions/php-%{version}.tar.gz Source1: http://www.php.net/distributions/manual/php_manual_de.tar.bz2 Source2: http://www.php.net/distributions/manual/php_manual_en.tar.bz2 @@ -37,121 +26,40 @@ Source6: http://www.php.net/distributions/manual/php_manual_ja.tar.bz2 Source7: http://www.php.net/distributions/manual/php_manual_ko.tar.bz2 Source8: http://www.php.net/distributions/manual/php_manual_pt_BR.tar.bz2 - -# httpd configuration file. -# Source50: php.conf - -# Patches (old) -# -# Patch for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=58801 -# Patch0: php-4.1.1-domxml.patch -# -# Patch for https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=60515 -# Patch1: php-4.1.2-mysql-path.patch -# -# Patch to tweak the default php.ini -# Patch2: php-4.1.2-php.ini-dist.patch -# -# Patch in repsonse to bugzilla entry #60855 -# Patch3: php-4.1.2-bug-60855.patch - - -# Patches (current) -# - # Patch to get around a dumb assumption that size_t is always 4 bytes Patch0: php-4.2.1-64bit-iconv.patch - - -# Argh! openldap 2.1.x changed it's API! This is needed only for openldap 2.1.x and higher +# Fix for ldap module Patch1: php-4.2.1-ldap-TSRM.patch - - -# Patch to tweak the default php.ini to something a little more unix like +# php.ini defaults Patch2: php-4.2.1-php.ini-dist.patch - - -# Patch to pass in -DUCD_COMPATIBLE to the net-snmp package +# use -DUCD_COMPATIBLE to make net-snmp backwards-compatible Patch3: php-4.2.1-snmp.patch - - -# Patch to fix a problem where, given multiple cookies to set, -# only the last one would be made (#67853) +# Fix for #67853 Patch4: php-4.2.2-cookies.patch - - -# Apache httpd 2.0.40 compatibility fixes +# Apache 2.0 compatibility fixes Patch5: php-4.2.2-apache2.patch - - # Patch to get around php dropping variables Patch6: php-4.1.2-missing-vars.patch - -# Fix mail() security issues -Patch7: php-4.2.2-mailsec.patch - -# Fix wordwrap() security issues -Patch8: php-4.2.2-wrap.patch - -Patch9: php-4.2.2-exit.patch -Patch10: php-4.2.2-sockets.patch -Patch11: php-4.2.2-sessid.patch -Patch12: php-4.2.2-snmp.patch +# Fixes for libdir = /usr/lib64; based on SuSE's patches. +Patch9: php-4.2.2-lib64.patch # Where are we going to build the install set to? # BuildRoot: %{_tmppath}/%{name}-root - -# Kill off some old history that we no longer wish to see -# -Obsoletes: mod_php, php3, phpfi - - -# Ok, you wanna build it, you gotta have these packages around -# -BuildRequires: bzip2-devel -BuildRequires: curl-devel -BuildRequires: db4-devel -BuildRequires: expat-devel -BuildRequires: freetype-devel -BuildRequires: gd-devel >= 1.8.4 -BuildRequires: gdbm-devel -BuildRequires: gmp-devel -BuildRequires: httpd-devel >= 2.0.40-6 -BuildRequires: libjpeg-devel -BuildRequires: libpng-devel -BuildRequires: libstdc++-devel -BuildRequires: libxml2-devel -BuildRequires: ncurses-devel -BuildRequires: openssl-devel -BuildRequires: pam-devel -BuildRequires: pspell-devel +BuildRequires: bzip2-devel, curl-devel >= 7.9, db4-devel, expat-devel, freetype-devel +BuildRequires: gd-devel >= 1.8.4, gdbm-devel, gmp-devel, pspell-devel +BuildRequires: httpd-devel >= 2.0.40-6, libjpeg-devel, libpng-devel, pam-devel +BuildRequires: libstdc++-devel, libxml2-devel, ncurses-devel, openssl-devel BuildRequires: zlib-devel -BuildRequires: imap-devel - - -# What we obsolete -# -Obsoletes: php-dbg - - -# To install, you must be /this/ high... -# Basically it's a list of items php itself during the build doesn't -# directly touch eg fileutils for mkdir, perl for the install scripts -# etc. We require httpd-mmn which is a provides from httpd. ie it doesn't -# show up in rpm -qa use rpm -q --whatprovides httpd-mmn instead. -# Personally I'm not fond of the way the version number is aquired but -# if it works,... -# -BuildPrereq: bzip2 -BuildPrereq: fileutils +BuildRequires: bzip2, fileutils +Obsoletes: php-dbg, mod_php, php3, phpfi PreReq: perl +# Enforce Apache module ABI compatibility Requires: httpd-mmn = %(cat %{_includedir}/httpd/.mmn) - %description PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated webpages. PHP also @@ -162,26 +70,21 @@ 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. - %package devel Group: Development/Libraries Summary: Files needed for building PHP extensions. - %description devel The php-devel package contains the files needed for building PHP extensions. If you need to compile your own PHP extensions, you will need to install this package. - %package imap Summary: An Apache module for PHP applications that use IMAP. Group: Development/Languages Prereq: php = %{version}-%{release}, perl Obsoletes: mod_php3-imap -BuildRequires: krb5-devel -BuildRequires: openssl-devel - +BuildRequires: krb5-devel, openssl-devel, imap-devel %description imap The php-imap package contains a dynamic shared object (DSO) for the @@ -192,16 +95,12 @@ servers. PHP is an HTML-embedded scripting language. If you need IMAP support for PHP applications, you will need to install this package and the php package. - %package ldap Summary: A module for PHP applications that use LDAP. Group: Development/Languages Prereq: php = %{version}-%{release}, perl Obsoletes: mod_php3-ldap -BuildRequires: cyrus-sasl-devel -BuildRequires: openldap-devel -BuildRequires: openssl-devel - +BuildRequires: cyrus-sasl-devel, openldap-devel, openssl-devel %description ldap The php-ldap package is a dynamic shared object (DSO) for the Apache @@ -211,20 +110,17 @@ services over the Internet. PHP is an HTML-embedded scripting language. If you need LDAP support for PHP applications, you will need to install this package in addition to the php package. - %package manual Obsoletes: mod_php3-manual Group: Documentation Summary: The PHP manual, in HTML format. Prereq: php = %{version}-%{release} - %description manual The php-manual package provides comprehensive documentation for the PHP HTML-embedded scripting language, in HTML format. PHP is an HTML-embedded scripting language. - %package mysql Summary: A module for PHP applications that use MySQL databases. Group: Development/Languages @@ -235,7 +131,6 @@ BuildRequires: mysql-devel Requires: mysql Requires: zlib - %description mysql The php-mysql package contains a dynamic shared object that will add MySQL database support to PHP. MySQL is an object-relational database @@ -243,21 +138,17 @@ management system. PHP is an HTML-embeddable scripting language. If you need MySQL support for PHP applications, you will need to install this package and the php or mod_php package. - %package pgsql Summary: A PostgreSQL database module for PHP. Group: Development/Languages Prereq: php = %{version}-%{release}, perl Provides: php_database Obsoletes: mod_php3-pgsql -BuildRequires: krb5-devel -BuildRequires: openssl-devel -BuildRequires: postgresql-devel +BuildRequires: krb5-devel, openssl-devel, postgresql-devel Requires: krb5-libs Requires: openssl Requires: postgresql-libs - %description pgsql The php-pgsql package includes a dynamic shared object (DSO) that can be compiled in to the Apache Web server to add PostgreSQL database @@ -267,7 +158,6 @@ HTML-embedded scripting language. If you need back-end support for PostgreSQL, you should install this package in addition to the main php package. - %package odbc Group: Development/Languages Prereq: php = %{version}-%{release}, perl, grep @@ -276,7 +166,6 @@ Provides: php_database BuildRequires: unixODBC-devel Requires: unixODBC - %description odbc The php-odbc package contains a dynamic shared object that will add database support through ODBC to PHP. ODBC is an open specification @@ -286,7 +175,6 @@ HTML-embeddable scripting language. If you need ODBC support for PHP applications, you will need to install this package and the php package. - %if %{oracle} %package oci8 Group: Development/Languages @@ -295,100 +183,74 @@ Prereq: perl Summary: A module for PHP applications that use OCI8 databases. Provides: php_database - %description oci8 The php-oci8 package contains a dynamic shared object that will add support for accessing OCI8 databases to PHP. %endif - %package snmp Summary: A module for PHP applications that query SNMP-managed devices. Group: Development/Languages Prereq: php = %{version}-%{release}, perl BuildRequires: net-snmp-devel - %description snmp The php-snmp package contains a dynamic shared object that will add support for querying SNMP devices to PHP. PHP is an HTML-embeddable scripting language. If you need SNMP support for PHP applications, you will need to install this package and the php package. - %prep %setup -q - - -# Weld the patchs into the main source -# %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 -%patch5 -p1 -b .apache2 +%patch5 -p1 -b .ap2 %patch6 -p1 -%patch7 -p1 -%patch8 -p1 -%patch9 -p1 -b .exit -%patch10 -p1 -b .socket -%patch11 -p1 -b .sessid -%patch12 -p1 -b .snmp +%patch9 -p1 -# %doc gets confused about LICENSE & Zend/LICENSE -# lets just help it out,... -# +# Prevent %doc confusion over LICENSE & Zend/LICENSE cp Zend/LICENSE Zend/ZEND_LICENSE +# Source is built twice: once for /usr/bin/php, once for the Apache DSO. +mkdir build-cgi build-apache -# We build php (normal cgi, apache_module) -# Need some spare directories for to do that -# -mkdir build-cgi -mkdir build-apache - +# Use correct libdir +perl -pi -e 's|\$\(prefix\)/lib|%{_libdir}|' pear/Makefile.in %build - -# Add -fPIC to RPM_OPT_FLAGS. -# CFLAGS="$RPM_OPT_FLAGS -fPIC"; export CFLAGS - # Add the Kerberos library path to the default LDFLAGS so that the IMAP checks # will be able to find the GSSAPI libraries. -# LDFLAGS="-L/usr/kerberos/lib"; export LDFLAGS - # Configure may or may not catch these (mostly second-order) dependencies. -# LIBS="-lttf -lfreetype -lpng -ljpeg -lz -lnsl"; export LIBS - # This causes the shared extension modules to be installed into %{_libdir}/php4. -# EXTENSION_DIR=%{_libdir}/php4; export EXTENSION_DIR - # This pulls the static /usr/lib/libc-client.a into the IMAP extension module. -# IMAP_SHARED_LIBADD=-lc-client ; export IMAP_SHARED_LIBADD +# pull latest ltmain.sh, AC_PROG_LIBTOOL +libtoolize --force --copy +# force aclocal run during buildconf +touch acinclude.m4 # Regenerate configure scripts (patches change config.m4's) -# ./buildconf - # Shell function to configure and build a PHP tree. -# build() { ln -sf ../configure %configure \ --prefix=%{_prefix} \ + --cache-file=../config.cache \ --with-config-file-path=%{_sysconfdir} \ --enable-force-cgi-redirect \ --disable-debug \ @@ -457,49 +319,33 @@ ln -sf ../configure --enable-mcal \ $* - # Fixup the config_vars to not include the '-a' on lines which call apxs. # cat config_vars.mk > config_vars.mk.old awk '/^INSTALL_IT.*apxs.*-a -n/ {sub("-a -n ","-n ");} {print $0;}' \ config_vars.mk.old > config_vars.mk -make %{_smp_mflags} +make %{?_smp_mflags} } - -# First, build a CGI tree. Remember that nice handy build() { ... } above? -# +# Build standalone /usr/bin/php pushd build-cgi -build \ - --enable-force-cgi-redirect +build --enable-force-cgi-redirect popd - -# Second, build an Apache tree. -# +# Build Apache module pushd build-apache - - -# Add the buildroot location to the front of the libexecdir. -# Again use the build() call -# -build \ - --with-apxs2=%{_sbindir}/apxs +build --with-apxs2=%{_sbindir}/apxs popd - %install [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT - -# First, install the CGI tree. -# +# Install from CGI tree pushd build-cgi make install INSTALL_ROOT=$RPM_BUILD_ROOT popd - # Second, install the Apache tree. Note that this overwrites the modules which # were installed as part of the CGI build. Lucky for us they're compatible. # @@ -507,7 +353,6 @@ pushd build-apache make install INSTALL_ROOT=$RPM_BUILD_ROOT INSTALL_IT="echo " popd - # Install the default configuration file and some icons which can be used to # indicate that this site uses PHP. # @@ -516,19 +361,14 @@ install -m 644 php.ini-dist $RPM_BUILD_ROOT%{_sysconfdir}/php.ini install -m 755 -d $RPM_BUILD_ROOT%{contentdir}/icons install -m 644 *.gif $RPM_BUILD_ROOT%{contentdir}/icons/ +# install the DSO +install -m 755 -d $RPM_BUILD_ROOT%{_libdir}/httpd/modules +install -m 755 build-apache/libs/libphp4.so $RPM_BUILD_ROOT%{_libdir}/httpd/modules -# Gurrrr @!!$#? apxs/buildroot mess -# -install -m 755 -d $RPM_BUILD_ROOT/usr/lib/httpd/modules -install -m 755 build-apache/libs/libphp4.so $RPM_BUILD_ROOT/usr/lib/httpd/modules - - -# Install the httpd configuration file -# +# Apache config fragment install -m 755 -d $RPM_BUILD_ROOT/etc/httpd/conf.d install -m 644 $RPM_SOURCE_DIR/php.conf $RPM_BUILD_ROOT/etc/httpd/conf.d - # Manuals -- we'll place English (en) in the location where the only version # of the manual was before, and langify the rest. # Hence we don't specify %lang(en) in the files section for the manual rpm @@ -543,42 +383,33 @@ for lang in %{manual_langs} ; do bzip2 -dc $RPM_SOURCE_DIR/php_manual_${lang}.tar.bz2 | tar -x -C $RPM_BUILD_ROOT%{contentdir}/manual/mod/mod_php4/${target_lang} -f - done +# Remove unpackaged files +rm -f $RPM_BUILD_ROOT%{_libdir}/php4/*.a \ + $RPM_BUILD_ROOT%{_bindir}/{phptar,pearize} %clean [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT - -################################################################################ -# PHP ########################################################################## -# +### Files for main package %files - %defattr(-,root,root) - %doc CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* - %doc Zend/ZEND_* - %config(noreplace) %{_sysconfdir}/php.ini - %{_bindir}/php - %{_bindir}/pear - %{_datadir}/pear - %dir %{_libdir}/php4 - %{_libdir}/httpd/modules/libphp4.so - %config(noreplace) %{_sysconfdir}/httpd/conf.d/php.conf +%defattr(-,root,root) +%doc CODING_STANDARDS CREDITS EXTENSIONS INSTALL LICENSE NEWS README* +%doc Zend/ZEND_* +%config(noreplace) %{_sysconfdir}/php.ini +%{_bindir}/php +%{_bindir}/pear +%{_datadir}/pear +%{_libdir}/httpd/modules/libphp4.so +%config(noreplace) %{_sysconfdir}/httpd/conf.d/php.conf -%post -p /sbin/ldconfig - -%postun -p /sbin/ldconfig - - -################################################################################ -# devel ######################################################################## -# +### Files for -devel package %files devel - %defattr(-,root,root) - %{_bindir}/php-config - %{_bindir}/phpize - %{_bindir}/phpextdist - %{_includedir}/php - %{_libdir}/php - +%defattr(-,root,root) +%{_bindir}/php-config +%{_bindir}/phpize +%{_bindir}/phpextdist +%{_includedir}/php +%{_libdir}/php ################################################################################ # From here on in we need to make php-(extension) alter the php.ini @@ -588,7 +419,6 @@ done # file extensions from .so to .dll # - ################################################################################ # pgsql ######################################################################## # @@ -607,13 +437,11 @@ done fi fi - %preun pgsql if [ $1 = 0 -a -f %{_sysconfdir}/php.ini ] ; then %{__perl} -pi -e "s|^extension=pgsql.so|;extension=pgsql.so|" %{_sysconfdir}/php.ini fi - if [ $1 = 0 -a -f %{_sysconfdir}/php.ini.rpmnew ] ; then %{__perl} -pi -e "s|^extension=pgsql.so|;extension=pgsql.so|" %{_sysconfdir}/php.ini.rpmnew fi @@ -625,7 +453,6 @@ done %defattr(-,root,root) %{_libdir}/php4/mysql.so - %post mysql if %{__grep} -q "extension=mysql.so" %{_sysconfdir}/php.ini; then %{__perl} -pi -e "s|^;extension=mysql.so|extension=mysql.so|" %{_sysconfdir}/php.ini @@ -653,7 +480,6 @@ done %defattr(-,root,root) %{_libdir}/php4/odbc.so - %post odbc if %{__grep} -q "extension=odbc.so" %{_sysconfdir}/php.ini; then %{__perl} -pi -e "s|^;extension=odbc.so|extension=odbc.so|" %{_sysconfdir}/php.ini @@ -682,7 +508,6 @@ done %defattr(-,root,root) %{_libdir}/php4/oci8.so - %post oci8 if %{__grep} -q "extension=oci8.so" %{_sysconfdir}/php.ini; then %{__perl} -pi -e "s|^;extension=oci8.so|extension=oci8.so|" %{_sysconfdir}/php.ini @@ -711,7 +536,6 @@ done %defattr(-,root,root) %{_libdir}/php4/imap.so - %post imap if %{__grep} -q "extension=imap.so" %{_sysconfdir}/php.ini; then %{__perl} -pi -e "s|^;extension=imap.so|extension=imap.so|" %{_sysconfdir}/php.ini @@ -739,7 +563,6 @@ done %defattr(-,root,root) %{_libdir}/php4/ldap.so - %post ldap if %{__grep} -q "extension=ldap.so" %{_sysconfdir}/php.ini; then %{__perl} -pi -e "s|^;extension=ldap.so|extension=ldap.so|" %{_sysconfdir}/php.ini @@ -767,7 +590,6 @@ done %defattr(-,root,root) %{_libdir}/php4/snmp.so - %post snmp if %{__grep} -q "extension=snmp.so" %{_sysconfdir}/php.ini; then %{__perl} -pi -e "s|^;extension=snmp.so|extension=snmp.so|" %{_sysconfdir}/php.ini @@ -792,7 +614,6 @@ done ################################################################################ - %files manual %defattr(-,root,root) %{contentdir}/icons/* @@ -806,19 +627,20 @@ done %lang(ko) %{contentdir}/manual/mod/mod_php4/ko %lang(pt) %{contentdir}/manual/mod/mod_php4/pt_BR - %changelog -* Wed Jun 11 2003 Joe Orton 4.2.2-8.0.8 -- add bug fixes for #74761, #84828, #85820, #91019, #91279 -- add security fix for CAN-2003-0442 +* Mon Dec 2 2002 Joe Orton 4.2.2-10 +- remove ldconfig invocation in post/postun +- add fixes for #73516, #78586, #75029, #75712, #75878 -* Wed Jan 22 2003 Joe Orton 4.2.2-8.0.7 -- security fix for wordwrap() overflow, CAN-2002-1396 -- bug fixes in Apache httpd 2.0 compatibility: #73516 (partially), #74396, - #75029, #75712, #75878, #78586 -- add missing buildprereqs for zlib-devel, imap-devel (#74819) -- own the /usr/lib/php4 directory (#73894) -- pass _smp_mflags to make +* Wed Nov 6 2002 Joe Orton 4.2.2-9 +- fixes for libdir=/usr/lib64, based on SuSE's patches. +- add build prereqs for zlib-devel, imap-devel, curl-devel (#74819) +- remove unpackaged files from install root +- libtoolize; use configure cache to speed up build + +* Mon Sep 23 2002 Philip Copeland 4.2.2-8.0.6 +- PHP cannot determine which UID is being used, so safe + mode restrictions were always applied. Fixed. (#74396) * Tue Sep 3 2002 Philip Copeland 4.2.2-8.0.4 - zts support seems to crash out httpd on a *second* sighup