Import sfw build 129
Bugs Fixed
----------
6479874 OpenSSL should support RSA key by reference/hardware keystores
6732677 make check to trigger Solaris specific code automatic in the PKCS#11 engine
6744125 libpcap should be IPv6 capable
6745178 update libxml2 to 2.7.1 (or later)
6790767 default lighttpd.conf need to reflect opesolararis file locations
6801093 snmpd is core dumping on s10u6_07b
6808014 tcpdump to be included into SFW consolidation
6812193 lighttpd14 should take advantage of lua after snv_110
6832483 Python libxml not available for 2.5, 2.6
6841989 libpcap needs to be updated version 1.0.0
6849500 libxslt need to be updated within opensolaris
6863377 libpcap needs to be built to support BPF
6871383 Update Ruby in OpenSolaris to patch level 174
6871386 Update RubyGems in OpenSolaris to 1.3.3 or later
6871404 Update Lighttpd in OpenSolaris to v1.4.23
6875538 deliver mod_fcgid 2.3.4
6877619 remove redundant PHP DTrace extension
6879769 Lighttpd community recommends not to use multiple Lighttpd workers
6893914 split 3rd party extensions into its own packages
6896677 PKCS#11 engine's hw_pk11_err.h needs to be split
6898539 upgrade OpenSSL to 0.9.8l
6899783 tspi library can leak auth session handles
6900785 Tspi library prompts too many times for change auth
6901297 reserved_offset in APC should be true global (not a thread local)
6901646 Ruby DTrace probes not available to ruby programs run with the dtrace '-
6903738 CUPS 1.4 usb backend appears to be broken
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Copyright 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
#pragma ident "@(#)Makefile.sfw 1.31 09/11/20 SMI"
PHP_REL=5.2
#
# This value is generated based on the NAME and VERSION values in the METADATA
# file in this directory. You should not update it directly, instead update
# the METADATA file values that it is derived from.
#
PHP_VER=$(COMPONENT_VERSION:sh)
PHP_DIR=php-$(PHP_VER)
PHP_CGI=$(PHP_DIR)-cgi
PHP_CGI_BIN=$(PWD)/$(PHP_DIR)-cgi/sapi/cgi/php-cgi
TOP_DIR=/usr/php/$(PHP_REL)
CONF_DIR=/etc/php/$(PHP_REL)
PEAR_DIR=/var/php/$(PHP_REL)/pear
SAMPLES_DIR=$(TOP_DIR)/samples
MYSQL_VERSION=5.1
MYSQL_DIR=/usr/mysql/$(MYSQL_VERSION)
MYSQL_LIBDIR=$(MYSQL_DIR)/lib/mysql
SUHOSIN_VERSION=0.9.29
SUHOSIN_DIR=suhosin-$(SUHOSIN_VERSION)
TCPWRAP_VERSION=1.1.3
TCPWRAP_DIR=tcpwrap-$(TCPWRAP_VERSION)
IDN_VERSION=0.2.0
IDN_DIR=idn-$(IDN_VERSION)
APC_VERSION=3.0.19
APC_DIR=APC-$(APC_VERSION)
XDEBUG_VERSION=2.0.5
XDEBUG_DIR=xdebug-$(XDEBUG_VERSION)
MEMCACHE_VERSION=2.2.5
MEMCACHE_DIR=memcache-$(MEMCACHE_VERSION)
IMAP_CLIENT_VERSION=-2007e
IMAP_CLIENT_DIR=$(PWD)/imap$(IMAP_CLIENT_VERSION)/c-client
IMAP_DIR=$(PWD)/imap$(IMAP_CLIENT_VERSION)
PHP_LFS=-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
PHP_CFLAGS_i386=-xjobs=16
PHP_CFLAGS_sparc=-dalign -xjobs=16
PHP_CFLAGS=-fsimple=2 -xnorunpath -xO4 -xalias_level=basic -xipo=0 \
-xlibmopt -xprefetch_level=1 -xprefetch=auto -xstrconst -zlazyload
all: build_php build_php_extensions
test: test_php
install: install_php install_php_extensions
ksh93 ./install-php5
clean: clean_php clean_php_extensions clean_pear
-rm -f php-config-proto phpize-proto package.xml package2.xml \
phpize php-config php.ini-patched
clean_php:
-rm -rf $(PHP_DIR) $(PHP_CGI) $(IMAP_DIR) \
$(ROOT)/$(TOP_DIR) $(ROOT)/$(CONF_DIR)
clean_php_extensions:
-rm -rf $(SUHOSIN_DIR) $(TCPWRAP_DIR) $(IDN_DIR) \
$(APC_DIR) $(XDEBUG_DIR) $(MEMCACHE_DIR)
clean_pear:
-rm -rf $(ROOT)/$(PEAR_DIR)
include ../Makefile.cmd
include $(SRC)/cmd/apache2/apache.build.env
PRECONF_ENVLINE= \
PATH=/usr/gnu/bin:/usr/bin \
MAKE=$(GMAKE)
CONF_ENVLINE=CC=$(CC) \
CXX=$(CCC) \
LD="$(CCC) -norunpath" \
CPPFLAGS="-I../CPPFLAGSTEST -D_POSIX_PTHREAD_SEMANTICS" \
CFLAGS="$(CFLAGS) $(PHP_LFS) $(PHP_CFLAGS) $(PHP_CFLAGS_$(MACH))" \
LDFLAGS="-L$(ROOT)/usr/postgres/8.3/lib -L$(ROOT)$(MYSQL_LIBDIR) -lrt" \
LIBS="-lsocket -lnsl -ldl -lposix4" \
EXTENSION_DIR=/usr/php/$(PHP_REL)/modules \
PHP_PEAR_CACHE_DIR=/var/tmp/pear/cache \
PHP_PEAR_DOWNLOAD_DIR=/var/tmp/pear/cache \
PHP_PEAR_EXTENSION_DIR=/var/php/$(PHP_REL)/modules \
PHP_PEAR_INSTALL_DIR=/var/php/$(PHP_REL)/pear \
PHP_PEAR_SIG_BIN=/usr/gnu/bin/gpg \
PATH=$(SFW_PATH) \
MAKE=$(CCSMAKE) \
DESTDIR=$(ROOT) \
INSTALL_ROOT=$(ROOT) \
INSTALL=/usr/ucb/install
ENVLINE= \
LD_OPTIONS="-M $(SRC)/cmd/mapfile_noexstk" \
$(CONF_ENVLINE)
# ----- Main PHP Targets -----
#
# SAPI Support
# ------------
# The various SAPI configure options are mutually exclusive. This means
# that a separate './configure ; make' build cycle must be done for each SAPI
# which needs to be built.
#
# Currently mod_php (for Apache) and fast/cgi support get built.
#
# The source tree extracted into $(PHP_DIR) is the primary build tree. It
# is used to build not only mod_php but also all other extensions. The main
# install target is invoked only in this tree.
#
# The $(PHP_CGI) source tree is used only to build fast/cgi support and
# only files relevant to that feature are installed off this tree.
#
#
# Configuration Notes
# -------------------
#
# The following flags appear to build fine today but are not yet included:
#
# --with-pspell=shared \ LSARC/2006/231 obsoleted SUNWaspell
#
# The following flags can't be built with components available in sfw today.
# These can be added as the dependencies become available.
# See here for dependency info:
# http://mail.opensolaris.org/pipermail/webstack-discuss/2007-August/000146.html
#
# --with-gdbm W - DEP.2
#
# --with-gmp W - DEP.3
#
# --with-ldap-sasl W - DEP.5
#
# --enable-embedded-mysqli E - DEP.6
#
# --with-mssql W - DEP.7
# --with-pdo-dblib W - DEP.7
#
# --with-ncurses W - DEP.8
#
# --with-pdo-odbc W,unixODBC - DEP.9
#
# --with-unixODBC
build_imap: $(IMAP_CLIENT_DIR)/libc-client.a
build_php: build_imap $(PHP_DIR)/config.status
# Building main PHP source tree
(cd $(PHP_DIR); env - $(ENVLINE) $(CCSMAKE) -e all)
# Building fast/cgi support tree
(cd $(PHP_CGI); env - $(ENVLINE) $(CCSMAKE) -e all)
test_php: build_php
(cd $(PHP_CGI); env - $(ENVLINE) $(CCSMAKE) -e test)
install_php: clean_pear build_php
mkdir -p $(ROOT)/var/tmp/pear/cache
(cd $(PHP_DIR); env - $(ENVLINE) $(CCSMAKE) -e install)
# The following options are shared by the different SAPI compilation targets:
COMMON_CONFIG_OPTIONS= \
--bindir=$(TOP_DIR)/bin \
--datadir=$(TOP_DIR)/share \
--disable-dbase \
--disable-debug \
--disable-dmalloc \
--disable-inline-optimization \
--disable-libgcc \
--disable-libtool-lock \
--disable-rpath \
--disable-static \
--enable-bcmath \
--enable-calendar \
--enable-ctype \
--enable-cli \
--enable-dom \
--enable-dtrace \
--enable-exif \
--enable-flatfile \
--enable-filter \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--enable-hash \
--enable-inifile \
--enable-ipv6 \
--enable-json \
--enable-magic-quotes \
--enable-mbregex \
--enable-mbstring \
--enable-mod-charset \
--enable-pcntl \
--enable-posix \
--enable-reflection \
--with-libxml-dir=/usr \
--enable-libxml \
--enable-sqlite-utf8 \
--enable-session \
--enable-shared \
--enable-shmop \
--enable-short-tags \
--enable-simplexml \
--enable-soap \
--enable-sockets \
--enable-spl \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-tokenizer \
--enable-xml \
--enable-xmlreader \
--enable-xmlwriter \
--enable-zend-multibyte \
--enable-zip \
--exec-prefix=$(TOP_DIR) \
--includedir=$(TOP_DIR)/include \
--libdir=$(TOP_DIR)/lib \
--libexecdir=$(TOP_DIR)/modules \
--mandir=$(TOP_DIR)/man \
--oldincludedir=$(TOP_DIR)/share \
--prefix=$(TOP_DIR) \
--sbindir=$(TOP_DIR)/sbin \
--sysconfdir=$(CONF_DIR) \
--with-cdb \
--with-config-file-path=$(CONF_DIR) \
--with-config-file-scan-dir=$(CONF_DIR)/conf.d \
--with-exec-dir=$(TOP_DIR)/bin \
--with-freetype-dir=/usr/sfw \
--with-jpeg-dir=/usr \
--with-kerberos \
--with-layout=PHP \
--with-mcrypt=shared,$(ROOT)/usr \
--with-pcre-dir=$(ROOT)/usr \
--with-pcre-regex \
--with-png-dir=/usr \
--with-xmlrpc \
--with-xpm-dir=/usr/openwin \
--with-xsl \
--with-zend-vm=CALL \
--without-dbm \
--without-t1lib
# The following options are used only apache SAPI compilation.
# However, modules compiled as shared can also used by other SAPI's.
$(PHP_DIR)/config.status: $(PHP_DIR)/configure
# Configuring main PHP source tree
(cd $(PHP_DIR); env - $(CONF_ENVLINE) \
LD_LIBRARY_PATH="$(ROOT)/usr/apr/1.3/lib:$(ROOT)/usr/apr-util/1.3/lib" \
./configure \
$(COMMON_CONFIG_OPTIONS) \
--disable-cgi \
--disable-fastcgi \
--enable-discard-path \
--enable-ftp=shared \
--enable-pdo=shared \
--with-apxs2=$(ROOT)$(APACHE_USR_PREFIX)/bin/apxs \
--with-bz2=shared \
--with-curl=shared,$(ROOT)/usr \
--with-curlwrappers \
--with-gd=shared \
--with-gettext=shared \
--with-iconv=shared \
--with-imap=shared,$(IMAP_DIR) \
--with-imap-ssl=shared,$(ROOT)/usr \
--with-ldap=shared \
--with-mysql=shared,$(ROOT)$(MYSQL_DIR) \
--with-mysql-sock=/tmp/mysql.sock \
--with-mysqli=shared,$(ROOT)$(MYSQL_DIR)/bin/mysql_config \
--with-openssl=shared \
--with-pear=$(PEAR_DIR) \
--with-pdo-mysql=shared,$(ROOT)$(MYSQL_DIR) \
--with-pdo-pgsql=shared,$(ROOT)/usr/postgres/8.3 \
--with-pdo-sqlite=shared \
--with-pgsql=shared,$(ROOT)/usr/postgres/8.3 \
--with-snmp=shared,$(ROOT)/usr \
--with-sqlite=shared \
--with-tidy=shared,$(ROOT)/usr \
--with-zlib=shared \
--without-tsrm-pthreads )
# Configuring fast/cgi source tree
(cd $(PHP_CGI); env - $(CONF_ENVLINE) \
./configure \
--disable-all \
$(COMMON_CONFIG_OPTIONS) \
--disable-discard-path \
--enable-cgi \
--enable-fastcgi \
--enable-force-cgi-redirect )
$(PHP_DIR)/configure: $(PHP_DIR).tar.bz2
bunzip2 -dc $(PHP_DIR).tar.bz2 | tar xopf -
(cp /usr/include/zlib.h $(PHP_DIR)/ext/zlib/my_zlib.h)
# avoid running apxs with -a option when installing mod_php
# because we move libphp later
(cd $(PHP_DIR) && \
gpatch -p1 -i ../patches/php_build_config.m4.patch && \
gpatch -p1 -i ../patches/php_dtrace.patch && \
gpatch -p1 -i ../patches/php_Makefile.global.patch && \
gpatch -p1 -i ../patches/php_dl.c.patch && \
gpatch -p1 -i ../patches/php_6818228.patch && \
gpatch -p1 -i ../patches/php_6825797.patch && \
gpatch -p1 -i ../patches/php_run-tests.php.patch)
(cd $(PHP_DIR); env - $(PRECONF_ENVLINE) \
./buildconf --force )
(cd $(PHP_DIR); \
cat configure | \
sed -e "s#-i -a -n php5#-i -n php5#" > configure.tmp; \
mv configure configure.orig; \
mv configure.tmp configure; \
chmod 755 configure )
touch $(PHP_DIR)/configure
# duplicate the source tree for fast/cgi compilation
mkdir -p $(PHP_CGI)
(cd $(PHP_DIR); tar cf - .) | (cd $(PHP_CGI); tar xpf -)
# Build IMap C-Client
$(IMAP_CLIENT_DIR)/libc-client.a:
gunzip -dc imap$(IMAP_CLIENT_VERSION).tar.gz | tar xopf -
(cd $(IMAP_DIR) && \
gpatch -p1 -i ../patches/imap_Makefile.patch && \
gpatch -p1 -i ../patches/imap_unix_Makefile.patch && \
gpatch -p1 -i ../patches/imap_os_soln.h.patch && \
gpatch -p1 -i ../patches/imap_flocksim.c.patch )
(cd $(IMAP_DIR); env - \
MAKE=$(CCSMAKE) \
CC=$(CC) \
CFLAGS="$(CFLAGS) $(PHP_LFS) $(PHP_CFLAGS) $(PHP_CFLAGS_$(MACH))" \
$(CCSMAKE) -e soc c-client; \
mv $(IMAP_DIR)/c-client/c-client.a \
$(IMAP_DIR)/c-client/libc-client.a)
# ----- Main extension targets -----
build_php_extensions: extensions_setup \
build_suhosin build_tcpwrap build_idn \
build_apc build_xdebug build_memcache
install_php_extensions: build_php_extensions \
install_suhosin install_tcpwrap install_idn \
install_apc install_xdebug install_memcache
extensions_setup: phpize-proto php-config-proto
phpize-proto: build_php
cat $(PHP_DIR)/scripts/phpize | \
sed -e "s#^prefix=.*#prefix=`pwd`/$(PHP_DIR)#" | \
sed -e "s#^includedir=.*#includedir=`pwd`/$(PHP_DIR)#" | \
sed -e "s#^phpdir=.*#phpdir=`pwd`/$(PHP_DIR)#" | \
sed -e "s#phpdir/phpize.m4#phpdir/scripts/phpize.m4#" | \
sed -e 's#cd "$$phpdir" && cp $$FILES_BUILD "$$builddir"/build#cd "$$phpdir/build" \&\& cp $$FILES_BUILD "$$builddir"/build#' \
> phpize-proto
chmod 755 phpize-proto
php-config-proto: build_php
cat $(PHP_DIR)/scripts/php-config | \
sed -e "s#^prefix=.*#prefix=`pwd`/$(PHP_DIR)#" | \
sed -e "s#^include_dir=.*#include_dir=`pwd`/$(PHP_DIR)#" \
> php-config-proto
chmod 755 php-config-proto
# ----- Extension targets for: suhosin -----
build_suhosin: extensions_setup $(SUHOSIN_DIR)/config.status
(cd $(SUHOSIN_DIR); $(CCSMAKE) -e)
install_suhosin: build_suhosin
/usr/ucb/install $(SUHOSIN_DIR)/modules/suhosin.so \
$(ROOT)/$(TOP_DIR)/modules/
$(SUHOSIN_DIR)/config.status: $(SUHOSIN_DIR)/configure
(cd $(SUHOSIN_DIR); \
env - $(ENVLINE) ../phpize-proto; \
env - $(ENVLINE) sh ./configure \
--enable-suhosin \
--with-php-config=../php-config-proto )
$(SUHOSIN_DIR)/configure: $(SUHOSIN_DIR).tar.gz
gzip -dc $(SUHOSIN_DIR).tar.gz | tar xopf -
touch $(SUHOSIN_DIR)/configure
# ----- Extension targets for: tcpwrap -----
build_tcpwrap: extensions_setup $(TCPWRAP_DIR)/config.status
(cd $(TCPWRAP_DIR); $(CCSMAKE) -e)
install_tcpwrap: build_tcpwrap
/usr/ucb/install $(TCPWRAP_DIR)/modules/tcpwrap.so \
$(ROOT)/$(TOP_DIR)/modules/
$(SRC)/tools/post_process_so $(ROOT)/$(TOP_DIR)/modules/tcpwrap.so
$(TCPWRAP_DIR)/config.status: $(TCPWRAP_DIR)/configure
(cd $(TCPWRAP_DIR); \
env - $(ENVLINE) ../phpize-proto; \
env - $(ENVLINE) sh ./configure \
--with-tcpwrap=$(ROOT)/usr/sfw \
--with-php-config=../php-config-proto )
$(TCPWRAP_DIR)/configure: $(TCPWRAP_DIR).tar.gz
gzip -dc $(TCPWRAP_DIR).tar.gz | tar xopf -
(cd $(TCPWRAP_DIR) && \
gpatch -p1 -i ../patches/tcpwrap_config.patch )
touch $(TCPWRAP_DIR)/configure
# ----- Extension targets for: idn -----
build_idn: extensions_setup $(IDN_DIR)/config.status
(cd $(IDN_DIR); $(CCSMAKE) -e)
install_idn: build_idn
/usr/ucb/install $(IDN_DIR)/modules/idn.so \
$(ROOT)/$(TOP_DIR)/modules/
$(IDN_DIR)/config.status: $(IDN_DIR)/configure
(cd $(IDN_DIR); \
env - $(ENVLINE) ../phpize-proto; \
env - $(ENVLINE) sh ./configure \
--with-idn \
--with-php-config=../php-config-proto )
$(IDN_DIR)/configure: $(IDN_DIR).tar.gz
gzip -dc $(IDN_DIR).tar.gz | tar xopf -
(cd $(IDN_DIR) && \
gpatch -p1 -i ../patches/idn_config.patch)
touch $(IDN_DIR)/configure
# ----- Extension targets for: APC -----
build_apc: extensions_setup $(APC_DIR)/config.status
(cd $(APC_DIR); \
$(CCSMAKE) -e)
install_apc: build_apc
/usr/ucb/install $(APC_DIR)/modules/apc.so \
$(ROOT)/$(TOP_DIR)/modules/
mkdir -p $(ROOT)/$(SAMPLES_DIR)/apc/
/usr/ucb/install -m 0555 $(APC_DIR)/apc.php $(ROOT)/$(SAMPLES_DIR)/apc/
$(APC_DIR)/config.status: $(APC_DIR)/configure
(cd $(APC_DIR); \
env - $(ENVLINE) ../phpize-proto; \
env - $(ENVLINE) sh ./configure \
--enable-apc \
--enable-apc-mmap \
--with-php-config=../php-config-proto )
$(APC_DIR)/configure: $(APC_DIR).tar.gz
gzip -dc $(APC_DIR).tar.gz | tar xopf -
(cd $(APC_DIR) && \
gpatch -p1 -i ../patches/apc_pool.c.patch && \
gpatch -p1 -i ../patches/apc_cache.c.patch && \
gpatch -p1 -i ../patches/apc_main.c.patch && \
gpatch -p1 -i ../patches/apc_sem.c.patch && \
gpatch -p1 -i ../patches/apc_reserved_offset.patch)
touch $(APC_DIR)/configure
# ----- Extension targets for: Xdebug -----
build_xdebug: extensions_setup $(XDEBUG_DIR)/config.status
(cd $(XDEBUG_DIR); $(CCSMAKE) -e)
install_xdebug: build_xdebug
/usr/ucb/install $(XDEBUG_DIR)/modules/xdebug.so \
$(ROOT)/$(TOP_DIR)/modules/
$(XDEBUG_DIR)/config.status: $(XDEBUG_DIR)/configure
(cd $(XDEBUG_DIR); \
env - $(ENVLINE) ../phpize-proto; \
env - $(ENVLINE) sh ./configure \
--enable-xdebug \
--with-php-config=../php-config-proto )
$(XDEBUG_DIR)/configure: $(XDEBUG_DIR).tar.gz
gzip -dc $(XDEBUG_DIR).tar.gz | tar xopf -
touch $(XDEBUG_DIR)/configure
# ----- Extension targets for: Memcache -----
build_memcache: extensions_setup $(MEMCACHE_DIR)/config.status
(cd $(MEMCACHE_DIR); $(CCSMAKE) -e)
install_memcache: build_memcache
/usr/ucb/install $(MEMCACHE_DIR)/modules/memcache.so \
$(ROOT)/$(TOP_DIR)/modules/
mkdir -p $(ROOT)/$(SAMPLES_DIR)/memcache/
/usr/ucb/install -m 0555 $(MEMCACHE_DIR)/memcache.php $(ROOT)/$(SAMPLES_DIR)/memcache/
$(MEMCACHE_DIR)/config.status: $(MEMCACHE_DIR)/configure
(cd $(MEMCACHE_DIR); \
env - $(ENVLINE) ../phpize-proto; \
env - $(ENVLINE) sh ./configure \
--disable-debug \
--enable-memcache \
--with-php-config=../php-config-proto \
--with-zlib-dir=$(ROOT)/usr )
$(MEMCACHE_DIR)/configure: $(MEMCACHE_DIR).tar.gz
gzip -dc $(MEMCACHE_DIR).tar.gz | tar xopf -
touch $(MEMCACHE_DIR)/configure
# ----- End of Extension targets -----
include ../Makefile.targ