diff options
Diffstat (limited to 'php')
-rw-r--r-- | php/PKGBUILD | 324 | ||||
-rw-r--r-- | php/apache.conf | 9 | ||||
-rw-r--r-- | php/db-configure.patch | 51 | ||||
-rw-r--r-- | php/gd-info-segfault.patch | 26 | ||||
-rw-r--r-- | php/php.ini.patch | 120 |
5 files changed, 530 insertions, 0 deletions
diff --git a/php/PKGBUILD b/php/PKGBUILD new file mode 100644 index 0000000..79806a9 --- /dev/null +++ b/php/PKGBUILD @@ -0,0 +1,324 @@ +# $Id$ +# Maintainer: Pierre Schmitz <pierre@archlinux.de> + +pkgbase=php +pkgname=('php' + 'php-cgi' + 'php-apache' + 'php-pear' + 'php-curl' + 'php-enchant' + 'php-gd' + 'php-gmp' + 'php-intl' + 'php-ldap' + 'php-mcrypt' + 'php-odbc' + 'php-pgsql' + 'php-pspell' + 'php-snmp' + 'php-sqlite' + 'php-tidy' + 'php-xsl') +pkgver=5.3.0 +pkgrel=3 +_suhosinver=${pkgver}-0.9.8-BETA-1 +arch=('i686' 'x86_64') +license=('PHP') +url='http://www.php.net' +makedepends=('apache' 'imap' 'postgresql-libs' 'mysql' 'libldap' 'postfix' + 'sqlite3' 'unixodbc' 'net-snmp' 'libzip' 'enchant' 'file' + 'libmcrypt' 'tidyhtml' 'aspell' 'libtool' 'gd' 'icu' + 'curl' 'libxslt' 'openssl' 'bzip2' 'db' 'gmp') +options=('!makeflags') +source=("http://www.php.net/distributions/${pkgbase}-${pkgver}.tar.bz2" + "http://download.suhosin.org/suhosin-patch-${_suhosinver}.patch.gz" + 'php.ini.patch' 'apache.conf' 'db-configure.patch' 'gd-info-segfault.patch') +md5sums=('846760cd655c98dfd86d6d97c3d964b0' + '62dc36545b86bf86e44ada1fccc17d0a' + '67c63d2c8a976a333bbd2216cdd60413' + '96ca078be6729b665be8a865535a97bf' + '45ecb6fb0aadfd3462097e3bab951aa5' + '1c1a50aae7207b12d27bdecd8967e7ce') + +build() { + phpconfig="--prefix=/usr \ + --sysconfdir=/etc/php \ + --with-layout=GNU \ + --with-config-file-path=/etc/php \ + --with-config-file-scan-dir=/etc/php/conf.d \ + --enable-inline-optimization \ + --disable-debug \ + --disable-rpath \ + --disable-static \ + --enable-shared \ + --mandir=/usr/share/man \ + --without-pear \ + " + + phpextensions="--enable-bcmath=shared \ + --enable-calendar=shared \ + --enable-dba=shared \ + --enable-exif=shared \ + --enable-ftp=shared \ + --enable-gd-native-ttf \ + --enable-intl=shared \ + --enable-json=shared \ + --enable-mbregex \ + --enable-mbstring \ + --enable-pdo=shared \ + --enable-phar=shared \ + --enable-posix=shared \ + --enable-session \ + --enable-shmop=shared \ + --enable-soap=shared \ + --enable-sockets=shared \ + --enable-sqlite-utf8 \ + --enable-sysvmsg=shared \ + --enable-sysvsem=shared \ + --enable-sysvshm=shared \ + --enable-xml \ + --enable-zip=shared \ + --with-bz2=shared \ + --with-curl=shared \ + --with-db4=shared \ + --with-enchant=shared,/usr \ + --with-freetype-dir=shared,/usr \ + --with-gd=shared,/usr \ + --with-gdbm=shared \ + --with-gettext=shared \ + --with-gmp=shared \ + --with-iconv=shared \ + --with-icu-dir=/usr \ + --with-imap-ssl=shared \ + --with-imap=shared \ + --with-jpeg-dir=shared,/usr \ + --with-ldap=shared \ + --with-mcrypt=shared \ + --with-mysql-sock=/tmp/mysql.sock \ + --with-mysql=shared,mysqlnd \ + --with-mysqli=shared,mysqlnd \ + --with-openssl=shared \ + --with-pcre-regex=/usr \ + --with-pdo-mysql=shared,mysqlnd \ + --with-pdo-odbc=shared,unixODBC,/usr \ + --with-pdo-pgsql=shared \ + --with-pdo-sqlite=shared,/usr \ + --with-pgsql=shared \ + --with-png-dir=shared,/usr \ + --with-pspell=shared \ + --with-regex=php \ + --with-snmp=shared \ + --with-sqlite3=shared,/usr \ + --with-sqlite=shared \ + --with-tidy=shared \ + --with-unixODBC=shared,/usr \ + --with-xmlrpc=shared \ + --with-xsl=shared \ + --with-zlib \ + --without-db2 \ + --without-db3 \ + " + + EXTENSION_DIR=/usr/lib/php/modules + export EXTENSION_DIR + PEAR_INSTALLDIR=/usr/share/pear + export PEAR_INSTALLDIR + + cd ${srcdir}/${pkgbase}-${pkgver} + + # avoid linking against old db version + patch -p0 -i ${srcdir}/db-configure.patch || return 1 + + # apply suhosin patch + patch -p1 -i ${srcdir}/suhosin-patch-${_suhosinver}.patch || return 1 + + # adjust paths + patch -p0 -i ${srcdir}/php.ini.patch || return 1 + + # fix gd segfault; http://bugs.php.net/bug.php?id=49193 + patch -p0 -i ${srcdir}/gd-info-segfault.patch || return 1 + + # php + mkdir ${srcdir}/build-php + cd ${srcdir}/build-php + ln -s ../${pkgbase}-${pkgver}/configure + ./configure --srcdir=../${pkgbase}-${pkgver} \ + ${phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + ${phpextensions} || return 1 + make || return 1 + + # cgi and fcgi + # reuse the previous run; this will save us a lot of time + cp -a ${srcdir}/build-php ${srcdir}/build-cgi + cd ${srcdir}/build-cgi + ./configure --srcdir=../${pkgbase}-${pkgver} \ + ${phpconfig} \ + --enable-cgi \ + --disable-cli \ + ${phpextensions} || return 1 + make || return 1 + + # apache + cp -a ${srcdir}/build-php ${srcdir}/build-apache + cd ${srcdir}/build-apache + ./configure --srcdir=../${pkgbase}-${pkgver} \ + ${phpconfig} \ + --with-apxs2 \ + --disable-cli \ + ${phpextensions} || return 1 + make || return 1 + + # pear + cp -a ${srcdir}/build-php ${srcdir}/build-pear + cd ${srcdir}/build-pear + ./configure --srcdir=../${pkgbase}-${pkgver} \ + ${phpconfig} \ + --disable-cgi \ + --with-readline \ + --enable-pcntl \ + --with-pear \ + ${phpextensions} || return 1 + make || return 1 +} + +package_php() { + pkgdesc='An HTML-embedded scripting language' + depends=('pcre' 'libxml2' 'bzip2' 'openssl') + replaces=('php-fileinfo') + provides=('php-fileinfo') + conflicts=('php-fileinfo') + backup=('etc/php/php.ini') + + cd ${srcdir}/build-php + make INSTALL_ROOT=${pkgdir} install || return 1 + install -d -m755 ${pkgdir}/usr/share/pear + # fix broken link + ln -sf phar.phar $pkgdir/usr/bin/phar + # install php.ini + install -D -m644 ${srcdir}/${pkgbase}-${pkgver}/php.ini-production ${pkgdir}/etc/php/php.ini + install -d -m755 ${pkgdir}/etc/php/conf.d/ + + # remove static modules + rm -f ${pkgdir}/usr/lib/php/modules/*.a + # remove modules provided by sub packages + rm -f ${pkgdir}/usr/lib/php/modules/{curl,enchant,gd,gmp,intl,ldap,mcrypt,odbc,pdo_odbc,pgsql,pdo_pgsql,pspell,snmp,sqlite3,pdo_sqlite,tidy,xsl}.so +} + +package_php-cgi() { + pkgdesc='CGI and FCGI SAPI for PHP' + depends=('php' 'pcre' 'libxml2') + + install -D -m755 ${srcdir}/build-cgi/sapi/cgi/php-cgi ${pkgdir}/usr/bin/php-cgi +} + +package_php-apache() { + pkgdesc='Apache SAPI for PHP' + depends=('php' 'apache' 'pcre' 'libxml2') + backup=('etc/httpd/conf/extra/php5_module.conf') + + install -D -m755 ${srcdir}/build-apache/libs/libphp5.so ${pkgdir}/usr/lib/httpd/modules/libphp5.so + install -D -m644 ${srcdir}/apache.conf ${pkgdir}/etc/httpd/conf/extra/php5_module.conf +} + +package_php-pear() { + pkgdesc='PHP Extension and Application Repository' + depends=('php' 'bash') + backup=("etc/php/pear.conf") + + cd ${srcdir}/build-pear + make install-pear INSTALL_ROOT=${pkgdir} + for i in $(find ${pkgdir}/ -name '.*'); do + [ -e $i ] && rm -rf $i + done +} + +package_php-curl() { + depends=('php' 'curl') + pkgdesc="curl module for PHP" + install -D -m755 ${srcdir}/build-php/modules/curl.so ${pkgdir}/usr/lib/php/modules/curl.so +} + +package_php-enchant() { + depends=('php' 'enchant') + pkgdesc="enchant module for PHP" + install -D -m755 ${srcdir}/build-php/modules/enchant.so ${pkgdir}/usr/lib/php/modules/enchant.so +} + +package_php-gd() { + depends=('php' 'gd') + pkgdesc="gd module for PHP" + install -D -m755 ${srcdir}/build-php/modules/gd.so ${pkgdir}/usr/lib/php/modules/gd.so +} + +package_php-gmp() { + depends=('php' 'gmp') + pkgdesc="gmp module for PHP" + install -D -m755 ${srcdir}/build-php/modules/gmp.so ${pkgdir}/usr/lib/php/modules/gmp.so +} + +package_php-intl() { + depends=('php' 'icu') + pkgdesc="intl module for PHP" + install -D -m755 ${srcdir}/build-php/modules/intl.so ${pkgdir}/usr/lib/php/modules/intl.so +} + +package_php-ldap() { + depends=('php' 'libldap') + pkgdesc="ldap module for PHP" + install -D -m755 ${srcdir}/build-php/modules/ldap.so ${pkgdir}/usr/lib/php/modules/ldap.so +} + +package_php-mcrypt() { + depends=('php' 'libmcrypt' 'libtool') + pkgdesc="mcrypt module for PHP" + install -D -m755 ${srcdir}/build-php/modules/mcrypt.so ${pkgdir}/usr/lib/php/modules/mcrypt.so +} + +package_php-odbc() { + depends=('php' 'unixodbc') + pkgdesc="ODBC modules for PHP" + install -D -m755 ${srcdir}/build-php/modules/odbc.so ${pkgdir}/usr/lib/php/modules/odbc.so + install -D -m755 ${srcdir}/build-php/modules/pdo_odbc.so ${pkgdir}/usr/lib/php/modules/pdo_odbc.so +} + +package_php-pgsql() { + depends=('php' 'postgresql-libs') + pkgdesc="PostgreSQL modules for PHP" + install -D -m755 ${srcdir}/build-php/modules/pgsql.so ${pkgdir}/usr/lib/php/modules/pgsql.so + install -D -m755 ${srcdir}/build-php/modules/pdo_pgsql.so ${pkgdir}/usr/lib/php/modules/pdo_pgsql.so +} + +package_php-pspell() { + depends=('php' 'aspell') + pkgdesc="pspell module for PHP" + install -D -m755 ${srcdir}/build-php/modules/pspell.so ${pkgdir}/usr/lib/php/modules/pspell.so +} + +package_php-snmp() { + depends=('php' 'net-snmp') + pkgdesc="snmp module for PHP" + install -D -m755 ${srcdir}/build-php/modules/snmp.so ${pkgdir}/usr/lib/php/modules/snmp.so +} + +package_php-sqlite() { + depends=('php' 'sqlite3') + pkgdesc="sqlite3 module for PHP" + install -D -m755 ${srcdir}/build-php/modules/sqlite3.so ${pkgdir}/usr/lib/php/modules/sqlite3.so + install -D -m755 ${srcdir}/build-php/modules/pdo_sqlite.so ${pkgdir}/usr/lib/php/modules/pdo_sqlite.so +} + +package_php-tidy() { + depends=('php' 'tidyhtml') + pkgdesc="tidy module for PHP" + install -D -m755 ${srcdir}/build-php/modules/tidy.so ${pkgdir}/usr/lib/php/modules/tidy.so +} + +package_php-xsl() { + depends=('php' 'libxslt') + pkgdesc="xsl module for PHP" + install -D -m755 ${srcdir}/build-php/modules/xsl.so ${pkgdir}/usr/lib/php/modules/xsl.so +} diff --git a/php/apache.conf b/php/apache.conf new file mode 100644 index 0000000..86344c8 --- /dev/null +++ b/php/apache.conf @@ -0,0 +1,9 @@ +# Required modules: dir_module, php5_module + +<IfModule dir_module> + <IfModule php5_module> + DirectoryIndex index.php index.html + AddHandler application/x-httpd-php .php + AddHandler application/x-httpd-php-source .phps + </IfModule> +</IfModule>
\ No newline at end of file diff --git a/php/db-configure.patch b/php/db-configure.patch new file mode 100644 index 0000000..1d2c818 --- /dev/null +++ b/php/db-configure.patch @@ -0,0 +1,51 @@ +--- configure.orig 2009-06-29 17:46:18.000000000 +0200 ++++ configure 2009-08-14 08:34:52.000000000 +0200 +@@ -29088,43 +29088,15 @@ + + unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT + +- dbdp="/usr/local/BerkeleyDB.4." +- for i in $PHP_DB4 ${dbdp}6 ${dbdp}5 ${dbdp}4 ${dbdp}3 ${dbdp}2 ${dbdp}1 ${dbdp}0 /usr/local /usr; do +- if test -f "$i/db4/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/db4/db.h +- break +- elif test -f "$i/include/db4.6/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.6/db.h +- break +- elif test -f "$i/include/db4.5/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.5/db.h +- break +- elif test -f "$i/include/db4/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4/db.h +- break +- elif test -f "$i/include/db/db4.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db/db4.h +- break +- elif test -f "$i/include/db4.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db4.h +- break +- elif test -f "$i/include/db.h"; then +- THIS_PREFIX=$i +- THIS_INCLUDE=$i/include/db.h +- break +- fi +- done ++ if test -f "/usr/include/db.h"; then ++ THIS_PREFIX=/usr ++ THIS_INCLUDE=/usr/include/db.h ++ fi + + if test -z "$THIS_INCLUDE"; then + { echo "configure: error: DBA: Could not find necessary header file(s)." 1>&2; exit 1; } + fi +- for LIB in db-4.6 db-4.5 db-4.4 db-4.3 db-4.2 db-4.1 db-4.0 db-4 db4 db; do ++ for LIB in db; do + if test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.a || test -f $THIS_PREFIX/$PHP_LIBDIR/lib$LIB.$SHLIB_SUFFIX_NAME; then + lib_found=""; + diff --git a/php/gd-info-segfault.patch b/php/gd-info-segfault.patch new file mode 100644 index 0000000..846a19e --- /dev/null +++ b/php/gd-info-segfault.patch @@ -0,0 +1,26 @@ +Index: ext/gd/libgd/gd_compat.c +=================================================================== +--- ext/gd/libgd/gd_compat.c (Revision 286947) ++++ ext/gd/libgd/gd_compat.c (Revision 286948) +@@ -14,7 +14,7 @@ + return JPEG_LIB_VERSION; + } + +-int gdJpegGetVersionString() ++const char * gdJpegGetVersionString() + { + switch(JPEG_LIB_VERSION) { + case 62: +Index: ext/gd/libgd/gd_compat.h +=================================================================== +--- ext/gd/libgd/gd_compat.h (Revision 286947) ++++ ext/gd/libgd/gd_compat.h (Revision 286948) +@@ -8,7 +8,7 @@ + #endif + + const char * gdPngGetVersionString(); +-int gdJpegGetVersionString(); ++const char * gdJpegGetVersionString(); + int gdJpegGetVersionInt(); + int overflow2(int a, int b); + diff --git a/php/php.ini.patch b/php/php.ini.patch new file mode 100644 index 0000000..cd91d50 --- /dev/null +++ b/php/php.ini.patch @@ -0,0 +1,120 @@ +--- php.ini-production 2009-06-30 01:05:38.000000000 +0200 ++++ php.ini 2009-06-30 01:02:15.000000000 +0200 +@@ -376,7 +376,7 @@ + ; or per-virtualhost web server configuration file. This directive is + ; *NOT* affected by whether Safe Mode is turned On or Off. + ; http://php.net/open-basedir +-;open_basedir = ++open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/ + + ; This directive allows you to disable certain functions for security reasons. + ; It receives a comma-delimited list of function names. This directive is +@@ -785,7 +785,7 @@ + ;;;;;;;;;;;;;;;;;;;;;;;;; + + ; UNIX: "/path1:/path2" +-;include_path = ".:/php/includes" ++include_path = ".:/usr/share/pear" + ; + ; Windows: "\path1;\path2" + ;include_path = ".;c:\php\includes" +@@ -808,7 +808,7 @@ + + ; Directory in which the loadable extensions (modules) reside. + ; http://php.net/extension-dir +-; extension_dir = "./" ++extension_dir = "/usr/lib/php/modules/" + ; On windows: + ; extension_dir = "ext" + +@@ -945,47 +945,49 @@ + ; extension folders as well as the separate PECL DLL download (PHP 5). + ; Be sure to appropriately set the extension_dir directive. + ; +-;extension=php_bz2.dll +-;extension=php_curl.dll +-;extension=php_dba.dll +-;extension=php_exif.dll +-;extension=php_fileinfo.dll +-;extension=php_gd2.dll +-;extension=php_gettext.dll +-;extension=php_gmp.dll +-;extension=php_intl.dll +-;extension=php_imap.dll +-;extension=php_interbase.dll +-;extension=php_ldap.dll +-;extension=php_mbstring.dll +-;extension=php_ming.dll +-;extension=php_mssql.dll +-;extension=php_mysql.dll +-;extension=php_mysqli.dll +-;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client +-;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client +-;extension=php_openssl.dll +-;extension=php_pdo_firebird.dll +-;extension=php_pdo_mssql.dll +-;extension=php_pdo_mysql.dll +-;extension=php_pdo_oci.dll +-;extension=php_pdo_odbc.dll +-;extension=php_pdo_pgsql.dll +-;extension=php_pdo_sqlite.dll +-;extension=php_pgsql.dll +-;extension=php_phar.dll +-;extension=php_pspell.dll +-;extension=php_shmop.dll +-;extension=php_snmp.dll +-;extension=php_soap.dll +-;extension=php_sockets.dll +-;extension=php_sqlite.dll +-;extension=php_sqlite3.dll +-;extension=php_sybase_ct.dll +-;extension=php_tidy.dll +-;extension=php_xmlrpc.dll +-;extension=php_xsl.dll +-;extension=php_zip.dll ++;extension=bcmath.so ++;extension=bz2.so ++;extension=calendar.so ++;extension=curl.so ++;extension=dba.so ++;extension=enchant.so ++;extension=exif.so ++;extension=ftp.so ++;extension=gd.so ++extension=gettext.so ++;extension=gmp.so ++;extension=iconv.so ++;extension=imap.so ++;extension=intl.so ++;extension=json.so ++;extension=ldap.so ++;extension=mcrypt.so ++;extension=mysql.so ++;extension=mysqli.so ++;extension=odbc.so ++;extension=openssl.so ++;extension=pdo.so ++;extension=pdo_mysql.so ++;extension=pdo_odbc.so ++;extension=pdo_pgsql.so ++;extension=pdo_sqlite.so ++;extension=pgsql.so ++;extension=phar.so ++;extension=posix.so ++;extension=pspell.so ++;extension=shmop.so ++;extension=snmp.so ++;extension=soap.so ++;extension=sockets.so ++;extension=sqlite.so ++;extension=sqlite3.so ++;extension=sysvmsg.so ++;extension=sysvsem.so ++;extension=sysvshm.so ++;extension=tidy.so ++;extension=xmlrpc.so ++;extension=xsl.so ++;extension=zip.so + + ;;;;;;;;;;;;;;;;;;; + ; Module Settings ; |