diff options
Diffstat (limited to 'lang/php4')
23 files changed, 658 insertions, 3776 deletions
diff --git a/lang/php4/Makefile b/lang/php4/Makefile index f8fa9fd1f98d..ec0728682ea9 100644 --- a/lang/php4/Makefile +++ b/lang/php4/Makefile @@ -4,59 +4,25 @@ # # $FreeBSD$ # -# There are many ways to select which extensions you want to enable, either -# in interactive mode or in batch mode. -# -# By default, the enabled extensions are: CTYPE, MYSQL, OVERLOAD, PCRE, POSIX, -# SESSION, TOKENIZER, XML and ZLIB. This behaviour can be changed overriding -# the PHP4_OPTIONS variable (e.g. PHP4_OPTIONS="EXT1 EXT2 EXT3"). -# -# Another way is to use the WITH_<EXT> and WITHOUT_<EXT> knobs, for additional -# and default extensions respectively (implies batch mode). -# -# The last way reads an "extension" file, located in ~/php4_options (the -# location is overridable by the PHP4_OPTFILE variable). You may find an -# example in scripts/php4_options (interactive mode only). -# PORTNAME= php4 PORTVERSION= 4.3.8 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES?= lang devel www MASTER_SITES= ${MASTER_SITE_PHP:S,$,:release,} \ http://downloads.php.net/ilia/:rc \ http://downloads.php.net/jani/:rc MASTER_SITE_SUBDIR= distributions/:release -.if defined(WITHOUT_CLI) && !defined(WITHOUT_APACHE) -PKGNAMEPREFIX= mod_ -.else -.if defined(WITHOUT_APACHE) -.if defined(WITHOUT_CLI) -PKGNAMESUFFIX= -cgi -.else -PKGNAMESUFFIX= -cli -.endif -.endif -.endif DISTNAME= php-${PORTVERSION:S/.r/RC/} DISTFILES= ${DISTNAME}${EXTRACT_SUFX}:release MAINTAINER?= ale@FreeBSD.org COMMENT?= PHP Scripting Language (Apache Module and CLI) -.if defined(WITHOUT_APACHE) -.if defined(WITHOUT_CLI) -COMMENT= PHP Common Gateway Interface -.else -COMMENT= PHP Command Line Interpreter -.endif -.else -.if defined(WITHOUT_CLI) -COMMENT= PHP Apache Module -.endif -.endif + +LATEST_LINK= ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX} USE_BZIP2= yes -USE_SUBMAKE= yes +.if !defined(PKGNAMESUFFIX) || ${PKGNAMESUFFIX} == "-cgi" || ${PKGNAMESUFFIX} == "-cli" GNU_CONFIGURE= yes USE_BISON= yes USE_REINPLACE= yes @@ -64,7 +30,6 @@ USE_REINPLACE= yes CONFIGURE_ARGS= --enable-versioning \ --enable-memory-limit \ --with-layout=GNU \ - --with-zlib-dir=/usr \ --disable-all .if !defined(WITH_REGEX_TYPE) || ${WITH_REGEX_TYPE} == "php" @@ -79,469 +44,63 @@ CONFIGURE_ARGS+=--with-regex=apache .endif .endif -EXT_DIR= 20020429 -SAPI_FILE= "@comment " - -CONFLICTS= php4-cli-4* mod_php4-4* php4-cgi-4* -.if defined(WITHOUT_APACHE) -.if defined(WITHOUT_CLI) -CONFLICTS= php4-4* php4-cli-4* mod_php4-4* -.else -CONFLICTS= php4-4* php4-cgi-4* mod_php4-4* -.endif -.else -.if defined(WITHOUT_CLI) -CONFLICTS= php4-4* php4-cli-4* php4-cgi-4* -.endif -.endif -CONFLICTS+= php5-5* php5-cli-5* mod_php5-5* php5-cgi-5* - -.if defined(WITHOUT_APACHE) -.if defined(WITHOUT_CLI) -.if defined(WITH_FASTCGI) -CONFIGURE_ARGS+=--enable-fastcgi -.else -CONFIGURE_ARGS+=--enable-discard-path -.endif -SAPI_FILE= bin/php +.if !defined(PKGNAMEPREFIX) && !defined(PKGNAMESUFFIX) +PHP_SAPI= full +WITH_APACHE= yes .else -CONFIGURE_ARGS+=--disable-cgi -.endif -PLIST_SUB+= APACHE="@comment " -.else -PLIST_SUB+= APACHE="" -.endif -.if defined(WITHOUT_CLI) -CONFIGURE_ARGS+=--disable-cli -PLIST_SUB+= CLI="@comment " +.if !defined(PKGNAMEPREFIX) +PHP_SAPI= ${PKGNAMESUFFIX:S/-//} .else -.if !defined(WITHOUT_PEAR) -CONFIGURE_ARGS+=--with-pear -PLIST_SUB+= PEAR="" -.else -PLIST_SUB+= PEAR="@comment " -.endif -MAN1= php.1 -PLIST_SUB+= CLI="" +PHP_SAPI= ${PKGNAMEPREFIX:S/_//} +WITH_APACHE= yes .endif - -ALL_OPTIONS= BCMATH BZIP2 CALENDAR CDB CRACK CTYPE CURL DB4 DBASE DBX DIO \ - DOMXML DOMXSLT EXIF FILEPRO FRIBIDI FTP GD GDBM GETTEXT \ - GMP HYPERWAVE ICONV IMAP INTERBASE INIFILE MBSTRING MCAL MCVE \ - MCRYPT MHASH MIME MING MNOGOSEARCH MSSQL MYSQL NCURSES \ - OPENLDAP OPENSSL ORACLE OVERLOAD PCNTL PCRE POSIX \ - POSTGRESQL PSPELL READLINE RECODE SESSION SHMOP SNMP SOCKETS \ - SYBASEDB SYBASECT SYSVMSG SYSVSEM SYSVSHM TOKENIZER UNIXODBC \ - WDDX XML XMLRPC XSLT YAZ YP ZIP ZLIB - -.for opt in ${ALL_OPTIONS} -.if defined(WITH_${opt}) || defined(WITHOUT_${opt}) -BATCH= yes .endif -.endfor -.if !defined(BATCH) && !defined(PACKAGE_BUILDING) -IS_INTERACTIVE= yes +.if defined(WITH_APACHE) +PKGMESSAGE= ${PKGDIR}/pkg-message.mod .endif -WRKDIR?= ${WRKDIRPREFIX}${.CURDIR}/work -PHP4_OPTFILE?= ${HOME}/php4_options - -PHP4_OPTIONS?= CTYPE MYSQL OVERLOAD PCRE POSIX SESSION TOKENIZER XML ZLIB - -.for opt in ${ALL_OPTIONS} -.if defined(WITH_${opt}) -SEL_OPTIONS+= ${opt} +.if ${PHP_SAPI} == "cgi" +OPTIONS= REDIRECT "Enable force-cgi-redirect support" off \ + DISCARD "Enable discard-path support" off \ + FASTCGI "Enable fastcgi support" off \ + PATHINFO "Enable path-info-check support" on .endif -.endfor -.for opt in ${PHP4_OPTIONS} -.if !defined(WITHOUT_${opt}) -SEL_OPTIONS+= ${opt} -.if !exists(${WRKDIR}/Makefile.inc) -WITH_${opt}= yes -.endif -.endif -SCRIPTS_ENV+= WITH_${opt}=ON -.endfor - -SCRIPTS_ENV+= SEL_OPTIONS="${SEL_OPTIONS}" \ - OPTION_FILE="${PHP4_OPTFILE}" \ - WRKDIR="${WRKDIR}" \ - CAT="${CAT}" \ - SED="${SED}" - -.if exists(${WRKDIR}/Makefile.inc) -.include "${WRKDIR}/Makefile.inc" -.endif - -.if !defined(WITHOUT_CLI) && !defined(WITHOUT_PEAR) -WITH_PCRE= yes -WITH_XML= yes -.endif - -.if defined(WITH_CDB) || defined(WITH_DB4) || defined(WITH_GDBM) || defined(WITH_INIFILE) -WITH_DBA= yes +.if defined(WITH_APACHE) +OPTIONS= APACHE2 "Use apache 2.x instead of apache 1.3.x" off .endif +OPTIONS+= DEBUG "Enable debug" off \ + IPV6 "Enable ipv6 support" on -.if defined(WITH_DOMXSLT) -WITH_DOMXML= yes -.endif - -.if defined(WITH_XMLRPC) || defined(WITH_XSLT) -WITH_ICONV_DEP= yes -.endif - -.if defined(WITH_MCVE) || defined(WITH_SNMP) -WITH_OPENSSL_DEP= yes -.endif - -.if defined(WITH_XMLRPC) || defined(WITH_XSLT) -WITH_XML_DEP= yes -.endif +EXT_DIR= 20020429 -.if defined(WITH_WDDX) -WITH_XML= yes -.endif +CONFLICTS?= php4-cli-4* mod_php4-4* php4-cgi-4* +CONFLICTS+= php5-5* php5-cli-5* mod_php5-5* php5-cgi-5* -.if defined(WITH_BCMATH) -CONFIGURE_ARGS+=--enable-bcmath +.if ${PHP_SAPI} == "cgi" || ${PHP_SAPI} == "mod" +CONFIGURE_ARGS+=--disable-cli .endif -.if defined(WITH_BZIP2) -.if exists(/usr/bin/bzip2) -BZIP2BASE= /usr +.if ${PHP_SAPI} == "full" || ${PHP_SAPI} == "cli" +PLIST_SUB+= CLI="" +MAN1= php.1 .else -BZIP2BASE= ${LOCALBASE} -LIB_DEPENDS+= bz2.1:${PORTSDIR}/archivers/bzip2 -.endif -CONFIGURE_ARGS+=--with-bz2=${BZIP2BASE} -.endif - -.if defined(WITH_CALENDAR) -CONFIGURE_ARGS+=--enable-calendar -.endif - -.if defined(WITH_CDB) -CONFIGURE_ARGS+=--with-cdb -.endif - -.if defined(WITH_CRACK) -BUILD_DEPENDS+= ${LOCALBASE}/lib/libcrack.a:${PORTSDIR}/security/cracklib -RUN_DEPENDS+= ${LOCALBASE}/lib/libcrack.a:${PORTSDIR}/security/cracklib -CONFIGURE_ARGS+=--with-crack=${LOCALBASE} -.endif - -.if defined(WITH_CTYPE) -CONFIGURE_ARGS+=--enable-ctype -.endif - -.if defined(WITH_CURL) -LIB_DEPENDS+= curl.3:${PORTSDIR}/ftp/curl -CONFIGURE_ARGS+=--with-curl=${LOCALBASE} +PLIST_SUB+= CLI="@comment " .endif -.if defined(WITH_DB4) -WITH_DB4_VER?= 41 -.if ${WITH_DB4_VER} == 42 -LIB_DEPENDS+= db-4.2.2:${PORTSDIR}/databases/db42 -.else -.if ${WITH_DB4_VER} == 4 -LIB_DEPENDS+= db4.0:${PORTSDIR}/databases/db4 +.if defined(WITH_APACHE) +PLIST_SUB+= APACHE="" .else -LIB_DEPENDS+= db41.1:${PORTSDIR}/databases/db41 -.endif -.endif -CONFIGURE_ARGS+=--with-db4=${LOCALBASE} -.endif - -.if defined(WITH_DBA) -CONFIGURE_ARGS+=--enable-dba -.endif - -.if defined(WITH_DBASE) -CONFIGURE_ARGS+=--enable-dbase -.endif - -.if defined(WITH_DBX) -CONFIGURE_ARGS+=--enable-dbx -.endif - -.if defined(WITH_DIO) -CONFIGURE_ARGS+=--enable-dio -.endif - -.if defined(WITH_DOMXML) -LIB_DEPENDS+= xml2.5:${PORTSDIR}/textproc/libxml2 -CONFIGURE_ARGS+=--with-dom=${LOCALBASE} -.endif - -.if defined(WITH_DOMXSLT) -LIB_DEPENDS+= xslt.2:${PORTSDIR}/textproc/libxslt -CONFIGURE_ARGS+=--with-dom-xslt=${LOCALBASE} --with-dom-exslt=${LOCALBASE} -.endif - -.if defined(WITH_EXIF) -CONFIGURE_ARGS+=--enable-exif -.endif - -.if defined(WITH_FILEPRO) -CONFIGURE_ARGS+=--enable-filepro -.endif - -.if defined(WITH_FRIBIDI) -LIB_DEPENDS+= fribidi.0:${PORTSDIR}/converters/fribidi -CONFIGURE_ARGS+=--with-fribidi=${LOCALBASE} -.endif - -.if defined(WITH_FTP) -CONFIGURE_ARGS+=--enable-ftp -.endif - -.if defined(WITH_GD) -LIB_DEPENDS+= freetype.9:${PORTSDIR}/print/freetype2 -LIB_DEPENDS+= t1.5:${PORTSDIR}/devel/t1lib -LIB_DEPENDS+= png.5:${PORTSDIR}/graphics/png -LIB_DEPENDS+= jpeg.9:${PORTSDIR}/graphics/jpeg -CONFIGURE_ARGS+=--with-gd \ - --enable-gd-native-ttf \ - --with-freetype-dir=${LOCALBASE} \ - --with-t1lib=${LOCALBASE} \ - --with-jpeg-dir=${LOCALBASE} \ - --with-png-dir=${LOCALBASE} -.if !defined(WITHOUT_X11) -USE_XPM= yes -CONFIGURE_ARGS+=--with-xpm-dir=${X11BASE} -.endif -.if defined(WITH_LZW) -CONFIGURE_ARGS+=--enable-gd-lzw-gif -.endif -.endif - -.if defined(WITH_GDBM) -LIB_DEPENDS+= gdbm.3:${PORTSDIR}/databases/gdbm -CONFIGURE_ARGS+=--with-gdbm=${LOCALBASE} -.endif - -.if defined(WITH_GETTEXT) -USE_GETTEXT= yes -CONFIGURE_ARGS+=--with-gettext=${LOCALBASE} -.endif - -.if defined(WITH_GMP) -LIB_DEPENDS+= gmp.6:${PORTSDIR}/math/libgmp4 -CONFIGURE_ARGS+=--with-gmp=${LOCALBASE} -.endif - -.if defined(WITH_HYPERWAVE) -CONFIGURE_ARGS+=--with-hyperwave -.endif - -.if defined(WITH_ICONV) || defined(WITH_ICONV_DEP) -USE_ICONV= yes -CONFIGURE_ARGS+=--with-iconv-dir=${LOCALBASE} -.endif - -.if defined(WITH_ICONV) -CONFIGURE_ARGS+=--with-iconv=${LOCALBASE} -.endif - -.if defined(WITH_INIFILE) -CONFIGURE_ARGS+=--with-inifile -.endif - -.if defined(WITH_INTERBASE) -LIB_DEPENDS+= gds.1:${PORTSDIR}/databases/firebird -CONFIGURE_ARGS+=--with-interbase=${LOCALBASE}/firebird -.endif - -.if defined(WITH_MBSTRING) -CONFIGURE_ARGS+=--enable-mbstring -.endif - -.if defined(WITH_MCAL) -LIB_DEPENDS+= mcal.0:${PORTSDIR}/misc/libmcal -CONFIGURE_ARGS+=--with-mcal=${LOCALBASE} -.endif - -.if defined(WITH_MCVE) -LIB_DEPENDS+= mcve.3:${PORTSDIR}/devel/libmcve -CONFIGURE_ARGS+=--with-mcve=${LOCALBASE} -.endif - -.if defined(WITH_MCRYPT) -LIB_DEPENDS+= mcrypt.8:${PORTSDIR}/security/libmcrypt -USE_LIBLTDL= yes -CONFIGURE_ARGS+=--with-mcrypt=${LOCALBASE} -.endif - -.if defined(WITH_MHASH) -LIB_DEPENDS+= mhash.2:${PORTSDIR}/security/mhash -CONFIGURE_ARGS+=--with-mhash=${LOCALBASE} -.endif - -.if defined(WITH_MIME) -CONFIGURE_ARGS+=--with-mime-magic=/usr/share/misc/magic.mime -.endif - -.if defined(WITH_MING) -LIB_DEPENDS+= ming.3:${PORTSDIR}/graphics/ming -CONFIGURE_ARGS+=--with-ming=${LOCALBASE} -.endif - -.if defined(WITH_MNOGOSEARCH) -LIB_DEPENDS+= udmsearch.1:${PORTSDIR}/www/mnogosearch -CONFIGURE_ARGS+=--with-mnogosearch=${LOCALBASE} -.endif - -.if defined(WITH_MSSQL) -LIB_DEPENDS+= sybdb.4:${PORTSDIR}/databases/freetds-msdblib -CONFIGURE_ARGS+=--with-mssql=${LOCALBASE} -.endif - -.if defined(WITH_MYSQL) -USE_MYSQL= yes -CONFIGURE_ARGS+=--with-mysql=${LOCALBASE} -.endif - -.if defined(WITH_OPENLDAP) -USE_OPENLDAP= yes -CONFIGURE_ARGS+=--with-ldap=${LOCALBASE} -.endif - -.if defined(WITH_OPENSSL) || defined(WITH_OPENSSL_DEP) -USE_OPENSSL= yes -LDFLAGS+= -lcrypto -lssl -CONFIGURE_ENV+= LDFLAGS="${LDFLAGS}" -CONFIGURE_ARGS+=--with-openssl-dir=${OPENSSLBASE} -.endif - -.if defined(WITH_OPENSSL) -CONFIGURE_ARGS+=--with-openssl=${OPENSSLBASE} -.endif - -.if defined(WITH_ORACLE) -BUILD_DEPENDS+= ${LOCALBASE}/oracle7/lib/libcore3.a:${PORTSDIR}/databases/oracle7-client -RUN_DEPENDS+= ${LOCALBASE}/oracle7/lib/libcore3.a:${PORTSDIR}/databases/oracle7-client -CONFIGURE_ARGS+=--with-oracle=${LOCALBASE}/oracle7 -.endif - -.if defined(WITH_OVERLOAD) -CONFIGURE_ARGS+=--enable-overload -.endif - -.if defined(WITH_PCNTL) -CONFIGURE_ARGS+=--enable-pcntl -.endif - -.if defined(WITH_PCRE) -CONFIGURE_ARGS+=--with-pcre-regex=yes -.endif - -.if defined(WITH_POSIX) -CONFIGURE_ARGS+=--enable-posix -.endif - -.if defined(WITH_POSTGRESQL) -POSTGRESQL_PORT?= databases/postgresql7 -LIB_DEPENDS+= pq.3:${PORTSDIR}/${POSTGRESQL_PORT} -CONFIGURE_ARGS+=--with-pgsql=${LOCALBASE} -.endif - -.if defined(WITH_PSPELL) -LIB_DEPENDS+= aspell.15:${PORTSDIR}/textproc/aspell -CONFIGURE_ARGS+=--with-pspell=${LOCALBASE} -.endif - -.if defined(WITH_READLINE) -CONFIGURE_ARGS+=--with-readline -.endif - -.if defined(WITH_RECODE) -LIB_DEPENDS+= recode.3:${PORTSDIR}/converters/recode -CONFIGURE_ARGS+=--with-recode=${LOCALBASE} -.endif - -.if defined(WITH_SESSION) -CONFIGURE_ARGS+=--enable-session -.endif - -.if defined(WITH_SHMOP) -CONFIGURE_ARGS+=--enable-shmop -.endif - -.if defined(WITH_SOCKETS) -CONFIGURE_ARGS+=--enable-sockets -.endif - -.if defined(WITH_SYBASEDB) -LIB_DEPENDS+= sybdb.4:${PORTSDIR}/databases/freetds -CONFIGURE_ARGS+=--with-sybase=${LOCALBASE} -.endif - -.if defined(WITH_SYBASECT) -LIB_DEPENDS+= ct.2:${PORTSDIR}/databases/freetds -CONFIGURE_ARGS+=--with-sybase-ct=${LOCALBASE} -.endif - -.if defined(WITH_SYSVMSG) -CONFIGURE_ARGS+=--enable-sysvmsg -.endif - -.if defined(WITH_SYSVSEM) -CONFIGURE_ARGS+=--enable-sysvsem -.endif - -.if defined(WITH_SYSVSHM) -CONFIGURE_ARGS+=--enable-sysvshm -.endif - -.if defined(WITH_TOKENIZER) -CONFIGURE_ARGS+=--enable-tokenizer -.endif - -.if defined(WITH_UNIXODBC) -LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC -CONFIGURE_ARGS+=--with-unixODBC=${LOCALBASE} -.endif - -.if defined(WITH_WDDX) -CONFIGURE_ARGS+=--enable-wddx -.endif - -.if defined(WITH_XML) || defined(WITH_XML_DEP) -LIB_DEPENDS+= expat.5:${PORTSDIR}/textproc/expat2 -CONFIGURE_ARGS+=--with-expat-dir=${LOCALBASE} -.endif - -.if defined(WITH_XML) -CONFIGURE_ARGS+=--enable-xml -.endif - -.if defined(WITH_XMLRPC) -CONFIGURE_ARGS+=--with-xmlrpc -.endif - -.if defined(WITH_XSLT) -LIB_DEPENDS+= sablot.70:${PORTSDIR}/textproc/sablotron -CONFIGURE_ARGS+=--enable-xslt --with-xslt-sablot=${LOCALBASE} -.endif - -.if defined(WITH_YAZ) -LIB_DEPENDS+= yaz.2:${PORTSDIR}/net/yaz -CONFIGURE_ARGS+=--with-yaz=${LOCALBASE}/bin -.endif - -.if defined(WITH_YP) -CONFIGURE_ARGS+=--enable-yp +PLIST_SUB+= APACHE="@comment " .endif -.if defined(WITH_ZIP) -LIB_DEPENDS+= zzip.10:${PORTSDIR}/devel/zziplib -CONFIGURE_ARGS+=--with-zip=${LOCALBASE} +.if ${PHP_SAPI} == "cli" +CONFIGURE_ARGS+=--disable-cgi +SAPI_FILE= "@comment " .endif -.if defined(WITH_ZLIB) -CONFIGURE_ARGS+=--with-zlib=yes +.if ${PHP_SAPI} == "cgi" +SAPI_FILE= bin/php .endif .include <bsd.port.pre.mk> @@ -553,7 +112,7 @@ CONFIGURE_ENV= ac_cv_pthreads_lib=${WITH_PTHREAD_LIBS} \ ac_cv_pthreads_cflags=${WITH_PTHREAD_CFLAGS} .endif -.if !defined(WITHOUT_APACHE) +.if defined(WITH_APACHE) .if exists(${LOCALBASE}/include/apache2/httpd.h) WITH_APACHE2= yes APACHE_MPM!= ${APXS} -q MPM_NAME @@ -586,78 +145,30 @@ PLIST_SUB+= SAPI_FILE=${SAPI_FILE} CONFIGURE_ARGS+=--disable-ipv6 .endif -.if defined(WITH_IMAP) -LIB_DEPENDS+= c-client4.8:${PORTSDIR}/mail/cclient -.if !exists(${LOCALBASE}/lib/libc-client4.so) -.if !defined(WITHOUT_SSL) -CONFIGURE_ARGS+=--with-imap=${LOCALBASE} --with-imap-ssl=${LOCALBASE} -.else -CONFIGURE_ARGS+=--with-imap=${LOCALBASE} +.if ${PHP_SAPI} == "cgi" +.if defined(WITH_REDIRECT) +CONFIGURE_ARGS+=--enable-force-cgi-redirect .endif -.else -WITH_IMAP_SSL!= /usr/bin/ldd ${LOCALBASE}/lib/libc-client4.so | ${GREP} libssl || ${TRUE} -.if !empty(WITH_IMAP_SSL) -CONFIGURE_ARGS+=--with-imap=${LOCALBASE} --with-imap-ssl=${LOCALBASE} -.else -CONFIGURE_ARGS+=--with-imap=${LOCALBASE} -.endif -.endif -.endif - -.if defined(WITH_NCURSES) -.if ${OSVERSION} < 400000 -NCURSESBASE= ${LOCALBASE} -LIB_DEPENDS+= ncurses.5:${PORTSDIR}/devel/ncurses -.else -NCURSESBASE= /usr +.if defined(WITH_DISCARD) +CONFIGURE_ARGS+=--enable-discard-path .endif -CONFIGURE_ARGS+=--with-ncurses=${NCURSESBASE} +.if defined(WITH_FASTCGI) +CONFIGURE_ARGS+=--enable-fastcgi .endif - -.if defined(WITH_SNMP) -.if exists(${LOCALBASE}/lib/libsnmp.so.4) || defined(WITH_SNMP4) -LIB_DEPENDS+= snmp.4:${PORTSDIR}/net-mgmt/net-snmp4 -.else -LIB_DEPENDS+= netsnmp.6:${PORTSDIR}/net-mgmt/net-snmp +.if defined(WITHOUT_PATHINFO) +CONFIGURE_ARGS+=--disable-path-info-check .endif -CONFIGURE_ARGS+=--with-snmp=${LOCALBASE} --enable-ucd-snmp-hack .endif _PORTSDIR!= ${REALPATH} ${PORTSDIR} PHP_PORT= ${.CURDIR:S|^${_PORTSDIR}||:S|^/||} -pre-patch: - @${SETENV} ${SCRIPTS_ENV} ${SH} ${SCRIPTDIR}/configure.php - post-patch: - @${REINPLACE_CMD} -e "s|orainst/unix.rgs|ocommon/install/partial.prd|g" \ - ${WRKSRC}/configure - @${SED} "s|%%PREFIX%%|${PREFIX}|g" \ - ${WRKSRC}/pear/scripts/pearcmd.php > ${WRKSRC}/pear/scripts/pear + @${TOUCH} ${WRKSRC}/ext/php_config.h +.if ${PHP_SAPI} == "full" pre-configure: @${ECHO_CMD} "" -.if defined(WITH_IMAP) && defined(WITH_RECODE) - @${ECHO_CMD} "You cannot define WITH_IMAP *and* WITH_RECODE!" - @${FALSE} -.endif -.if defined(WITH_IMAP) && defined(WITH_YAZ) - @${ECHO_CMD} "You cannot define WITH_IMAP *and* WITH_YAZ!" - @${FALSE} -.endif -.if defined(WITH_RECODE) && defined(WITH_YAZ) - @${ECHO_CMD} "You cannot define WITH_RECODE *and* WITH_YAZ!" - @${FALSE} -.endif -.if defined(WITH_SYBASEDB) && defined(WITH_SYBASECT) - @${ECHO_CMD} "You cannot define WITH_SYBASEDB *and* WITH_SYBASECT!" - @${FALSE} -.endif -.if defined(WITH_GD) && !defined(WITH_LZW) - @${ECHO_CMD} "To enable LZW-compressed GIF support in GD define the WITH_LZW knob." - @${ECHO_CMD} "" -.endif -.if !defined(WITHOUT_APACHE) && !defined(WITHOUT_CLI) @${ECHO_CMD} "You are building the Apache Module and the Command Line Interpreter of PHP." @${ECHO_CMD} "" @${ECHO_CMD} "Use port:" @@ -672,55 +183,23 @@ post-build: @${ECHO_CMD} "PHP_VERSION=${PORTVERSION}" >> ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_EXT_DIR=${EXT_DIR}" >> ${WRKDIR}/php.conf @${ECHO_CMD} "PHP_PORT=\$${PORTSDIR}/${PHP_PORT}" >> ${WRKDIR}/php.conf -.if !defined(WITHOUT_CLI) && !defined(WITHOUT_PEAR) - @${ECHO_CMD} "PHP_PEAR=yes" >> ${WRKDIR}/php.conf -.else - @${ECHO_CMD} "PHP_PEAR=no" >> ${WRKDIR}/php.conf -.endif -.if !defined(WITHOUT_APACHE) && !defined(WITHOUT_CLI) - @${ECHO_CMD} "PHP_SAPI=full" >> ${WRKDIR}/php.conf -.else -.if defined(WITHOUT_APACHE) && !defined(WITHOUT_CLI) - @${ECHO_CMD} "PHP_SAPI=cli" >> ${WRKDIR}/php.conf -.endif -.if !defined(WITHOUT_APACHE) && defined(WITHOUT_CLI) - @${ECHO_CMD} "PHP_SAPI=mod" >> ${WRKDIR}/php.conf -.endif -.if defined(WITHOUT_APACHE) && defined(WITHOUT_CLI) - @${ECHO_CMD} "PHP_SAPI=cgi" >> ${WRKDIR}/php.conf -.endif -.endif -.if !defined(WITHOUT_CLI) - @${ECHO_CMD} "You may run the tests from the PHP test framework, typing 'make test' now." - @${ECHO_CMD} "(It is safe to ignore errors about timestamp-related tests," - @${ECHO_CMD} "since they are due to the different FreeBSD mktime() implementation)." - @${ECHO_CMD} "" -.endif - -.if !defined(WITHOUT_CLI) -test: all - @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} \ - ${MAKEFILE} ${MAKE_ARGS} ${.TARGET}) -.endif + @${ECHO_CMD} "PHP_SAPI=${PHP_SAPI}" >> ${WRKDIR}/php.conf post-install: -.if !defined(WITHOUT_CLI) && !defined(WITHOUT_PEAR) - @${INSTALL_SCRIPT} ${WRKSRC}/pear/scripts/pear ${PREFIX}/bin -.endif @${INSTALL_DATA} ${WRKSRC}/php.ini-dist ${PREFIX}/etc @${INSTALL_DATA} ${WRKSRC}/php.ini-recommended ${PREFIX}/etc @${INSTALL_DATA} ${WRKDIR}/php.conf ${PREFIX}/etc -.if !defined(WITHOUT_APACHE) - @${ECHO_CMD} "*****************************************************************************" - @${ECHO_CMD} "" - @${ECHO_CMD} "Make sure index.php is part of your DirectoryIndex." - @${ECHO_CMD} "" - @${ECHO_CMD} "You should add the following lines to your Apache configuration file:" - @${ECHO_CMD} "" - @${ECHO_CMD} "AddType application/x-httpd-php .php" - @${ECHO_CMD} "AddType application/x-httpd-php-source .phps" - @${ECHO_CMD} "" - @${ECHO_CMD} "*****************************************************************************" + @${TOUCH} ${PREFIX}/etc/php.ini + @${TOUCH} ${PREFIX}/include/php/ext/php_config.h +.if defined(WITH_APACHE) + @${CAT} ${PKGMESSAGE} .endif +.else +.if ${PKGNAMESUFFIX} == "-pear" +.include "${MASTERDIR}/Makefile.pear" +.else +.include "${MASTERDIR}/Makefile.ext" +.endif +.endif .include <bsd.port.post.mk> diff --git a/lang/php4/Makefile.ext b/lang/php4/Makefile.ext new file mode 100644 index 000000000000..3c240d1b2dbe --- /dev/null +++ b/lang/php4/Makefile.ext @@ -0,0 +1,473 @@ +COMMENT= The ${PHP_MODNAME} shared extension for php + +USE_PHP= yes +USE_PHPEXT= yes +PHP_MODNAME= ${PKGNAMESUFFIX:S/-//} + +WRKSRC= ${WRKDIR}/php-${PORTVERSION:S/.r/RC/}/ext/${PHP_MODNAME} +PATCHDIR= ${.CURDIR}/files +PLIST= ${NONEXISTENT} + +.if ${PHP_MODNAME} == "bcmath" +CONFIGURE_ARGS+=--enable-bcmath + +PHP_HEADER_DIRS=libbcmath libbcmath/src +.endif + +.if ${PHP_MODNAME} == "bz2" +.if exists(/usr/bin/bzip2) +BZ2BASE= /usr +.else +BZ2BASE= ${LOCALBASE} +LIB_DEPENDS+= bz2.1:${PORTSDIR}/archivers/bzip2 +.endif +CONFIGURE_ARGS+=--with-bz2=${BZ2BASE} +.endif + +.if ${PHP_MODNAME} == "calendar" +CONFIGURE_ARGS+=--enable-calendar +.endif + +.if ${PHP_MODNAME} == "crack" +BUILD_DEPENDS+= ${LOCALBASE}/lib/libcrack.a:${PORTSDIR}/security/cracklib +RUN_DEPENDS+= ${LOCALBASE}/lib/libcrack.a:${PORTSDIR}/security/cracklib + +CONFIGURE_ARGS+=--with-crack=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "ctype" +CONFIGURE_ARGS+=--enable-ctype +.endif + +.if ${PHP_MODNAME} == "curl" +LIB_DEPENDS+= curl.3:${PORTSDIR}/ftp/curl + +CONFIGURE_ARGS+=--with-curl=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "dba" +CONFIGURE_ARGS+=--enable-dba + +OPTIONS= CDB "cdb database support" on \ + DB4 "Berkeley DB4 support" off \ + GDBM "GDBM database support" off \ + INIFILE "INI file support" on \ + FLATFILE "flatfile support" on + +PHP_HEADER_DIRS= libcdb libflatfile libinifile +.endif + +.if ${PHP_MODNAME} == "dbase" +CONFIGURE_ARGS+=--enable-dbase +.endif + +.if ${PHP_MODNAME} == "dbx" +CONFIGURE_ARGS+=--enable-dbx +.endif + +.if ${PHP_MODNAME} == "dio" +CONFIGURE_ARGS+=--enable-dio +.endif + +.if ${PHP_MODNAME} == "domxml" +CONFIGURE_ARGS+=--with-dom=${LOCALBASE} \ + --with-zlib-dir=/usr + +USE_GNOME= libxml2 + +OPTIONS= XSLT "Include DOM (E)XSLT support" on +.endif + +.if ${PHP_MODNAME} == "exif" +CONFIGURE_ARGS+=--enable-exif +.endif + +.if ${PHP_MODNAME} == "filepro" +CONFIGURE_ARGS+=--enable-filepro +.endif + +.if ${PHP_MODNAME} == "ftp" +CONFIGURE_ARGS+=--enable-ftp +.endif + +.if ${PHP_MODNAME} == "gd" +LIB_DEPENDS= freetype.9:${PORTSDIR}/print/freetype2 \ + png.5:${PORTSDIR}/graphics/png \ + jpeg.9:${PORTSDIR}/graphics/jpeg +. if !defined(WITHOUT_X11) +USE_XPM= yes +. endif + +CONFIGURE_ARGS+=--with-gd \ + --with-freetype-dir=${LOCALBASE} \ + --with-jpeg-dir=${LOCALBASE} \ + --with-png-dir=${LOCALBASE} \ + --with-zlib-dir=/usr +. if !defined(WITHOUT_X11) +CONFIGURE_ARGS+=--with-xpm-dir=${X11BASE} +. endif + +OPTIONS= T1LIB "Include T1lib support" on \ + TRUETYPE "Enable TrueType string function" on \ + JIS "Enable JIS-mapped Japanese font support" off \ + LZW "Enable LZW-compressed GIF write support" off + +PHP_HEADER_DIRS=libgd +.endif + +.if ${PHP_MODNAME} == "gettext" +CONFIGURE_ARGS+=--with-gettext=${LOCALBASE} + +USE_GETTEXT= yes +.endif + +.if ${PHP_MODNAME} == "gmp" +LIB_DEPENDS+= gmp.6:${PORTSDIR}/math/libgmp4 + +CONFIGURE_ARGS+=--with-gmp=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "iconv" +CONFIGURE_ARGS+=--with-iconv=${LOCALBASE} \ + --with-iconv-dir=${LOCALBASE} + +USE_ICONV= yes +.endif + +.if ${PHP_MODNAME} == "imap" +LIB_DEPENDS+= c-client4.8:${PORTSDIR}/mail/cclient + +CONFIGURE_ARGS+=--with-imap=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "interbase" +LIB_DEPENDS+= gds.1:${PORTSDIR}/databases/firebird + +CONFIGURE_ARGS+=--with-interbase=${LOCALBASE}/firebird +.endif + +.if ${PHP_MODNAME} == "ldap" +CONFIGURE_ARGS+=--with-ldap=${LOCALBASE} + +USE_OPENLDAP= yes +.endif + +.if ${PHP_MODNAME} == "mbstring" +CONFIGURE_ARGS+=--enable-mbstring + +OPTIONS= REGEX "Enable multibyte regex support" on + +PHP_HEADER_DIRS=libmbfl libmbfl/filters libmbfl/mbfl libmbfl/nls +.endif + +.if ${PHP_MODNAME} == "mcal" +LIB_DEPENDS+= mcal.0:${PORTSDIR}/misc/libmcal + +CONFIGURE_ARGS+=--with-mcal=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "mcrypt" +LIB_DEPENDS+= mcrypt.8:${PORTSDIR}/security/libmcrypt + +CONFIGURE_ARGS+=--with-mcrypt=${LOCALBASE} + +USE_LIBLTDL= yes +.endif + +.if ${PHP_MODNAME} == "mcve" +LIB_DEPENDS+= mcve.3:${PORTSDIR}/devel/libmcve + +CONFIGURE_ARGS+=--with-mcve=${LOCALBASE} \ + --with-openssl-dir=${OPENSSLBASE} + +LDFLAGS+= -lcrypto -lssl +USE_OPENSSL= yes +.endif + +.if ${PHP_MODNAME} == "mhash" +LIB_DEPENDS+= mhash.2:${PORTSDIR}/security/mhash + +CONFIGURE_ARGS+=--with-mhash=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "ming" +LIB_DEPENDS+= ming.3:${PORTSDIR}/graphics/ming + +CONFIGURE_ARGS+=--with-ming=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "mnogosearch" +LIB_DEPENDS+= udmsearch.1:${PORTSDIR}/www/mnogosearch + +CONFIGURE_ARGS+=--with-mnogosearch=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "mssql" +LIB_DEPENDS+= sybdb.4:${PORTSDIR}/databases/freetds-msdblib + +CONFIGURE_ARGS+=--with-mssql=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "mysql" +CONFIGURE_ARGS+=--with-mysql=${LOCALBASE} \ + --with-zlib-dir=/usr + +USE_MYSQL= yes +.endif + +.if ${PHP_MODNAME} == "ncurses" +CONFIGURE_ARGS+=--with-ncurses=/usr +.endif + +.if ${PHP_MODNAME} == "odbc" +LIB_DEPENDS+= odbc.1:${PORTSDIR}/databases/unixODBC + +CONFIGURE_ARGS+=--with-unixODBC=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "openssl" +CONFIGURE_ARGS+=--with-openssl=${OPENSSLBASE} \ + --with-openssl-dir=${OPENSSLBASE} + +LDFLAGS+= -lcrypto -lssl +USE_OPENSSL= yes +.endif + +.if ${PHP_MODNAME} == "oracle" +BUILD_DEPENDS+= ${LOCALBASE}/oracle7/lib/libcore3.a:${PORTSDIR}/databases/oracle7-client +RUN_DEPENDS+= ${LOCALBASE}/oracle7/lib/libcore3.a:${PORTSDIR}/databases/oracle7-client + +CONFIGURE_ARGS+=--with-oracle=${LOCALBASE}/oracle7 +.endif + +.if ${PHP_MODNAME} == "overload" +CONFIGURE_ARGS+=--enable-overload +.endif + +.if ${PHP_MODNAME} == "pcntl" +CONFIGURE_ARGS+=--enable-pcntl +.endif + +.if ${PHP_MODNAME} == "pcre" +CONFIGURE_ARGS+=--with-pcre-regex=yes + +PHP_HEADER_DIRS=pcrelib +.endif + +.if ${PHP_MODNAME} == "pgsql" +POSTGRESQL_PORT?= databases/postgresql7 +LIB_DEPENDS+= pq.3:${PORTSDIR}/${POSTGRESQL_PORT} + +CONFIGURE_ARGS+=--with-pgsql=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "posix" +CONFIGURE_ARGS+=--enable-posix +.endif + +.if ${PHP_MODNAME} == "pspell" +LIB_DEPENDS+= aspell.15:${PORTSDIR}/textproc/aspell + +CONFIGURE_ARGS+=--with-pspell=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "readline" +CONFIGURE_ARGS+=--with-readline=/usr +.endif + +.if ${PHP_MODNAME} == "recode" +LIB_DEPENDS+= recode.3:${PORTSDIR}/converters/recode + +CONFIGURE_ARGS+=--with-recode=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "session" +CONFIGURE_ARGS+=--enable-session +.endif + +.if ${PHP_MODNAME} == "shmop" +CONFIGURE_ARGS+=--enable-shmop +.endif + +.if ${PHP_MODNAME} == "snmp" +CONFIGURE_ARGS+=--with-snmp=${LOCALBASE} \ + --with-openssl-dir=${OPENSSLBASE} \ + --enable-ucd-snmp-hack + +LDFLAGS+= -lcrypto -lssl +USE_OPENSSL= yes + +OPTIONS= SNMP4 "Use old UCD SNMP instead of the new NET SNMP" off +.endif + +.if ${PHP_MODNAME} == "sockets" +CONFIGURE_ARGS+=--enable-sockets +.endif + +.if ${PHP_MODNAME} == "sybase" +LIB_DEPENDS+= sybdb.4:${PORTSDIR}/databases/freetds + +CONFIGURE_ARGS+=--with-sybase=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "sybase_ct" +LIB_DEPENDS+= ct.2:${PORTSDIR}/databases/freetds + +CONFIGURE_ARGS+=--with-sybase-ct=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "sysvmsg" +CONFIGURE_ARGS+=--enable-sysvmsg +.endif + +.if ${PHP_MODNAME} == "sysvsem" +CONFIGURE_ARGS+=--enable-sysvsem +.endif + +.if ${PHP_MODNAME} == "sysvshm" +CONFIGURE_ARGS+=--enable-sysvshm +.endif + +.if ${PHP_MODNAME} == "tokenizer" +CONFIGURE_ARGS+=--enable-tokenizer +.endif + +.if ${PHP_MODNAME} == "wddx" +CONFIGURE_ARGS+=--enable-wddx + +USE_PHP= xml session +USE_PHP_BUILD= yes +.endif + +.if ${PHP_MODNAME} == "xml" +LIB_DEPENDS+= expat.5:${PORTSDIR}/textproc/expat2 + +CONFIGURE_ARGS+=--enable-xml \ + --with-expat-dir=${LOCALBASE} +.endif + +.if ${PHP_MODNAME} == "xmlrpc" +LIB_DEPENDS+= expat.5:${PORTSDIR}/textproc/expat2 + +CONFIGURE_ARGS+=--with-xmlrpc \ + --with-expat-dir=${LOCALBASE} \ + --with-iconv-dir=${LOCALBASE} + +USE_ICONV= yes + +PHP_HEADER_DIRS=libxmlrpc +.endif + +.if ${PHP_MODNAME} == "xslt" +LIB_DEPENDS+= sablot.70:${PORTSDIR}/textproc/sablotron \ + expat.5:${PORTSDIR}/textproc/expat2 + +CONFIGURE_ARGS+=--enable-xslt \ + --with-xslt-sablot=${LOCALBASE} \ + --with-expat-dir=${LOCALBASE} \ + --with-iconv-dir=${LOCALBASE} + +USE_ICONV= yes +.endif + +.if ${PHP_MODNAME} == "yp" +CONFIGURE_ARGS+=--enable-yp +.endif + +.if ${PHP_MODNAME} == "zlib" +CONFIGURE_ARGS+=--with-zlib=/usr +.endif + +.include <bsd.port.pre.mk> + +.if ${PHP_MODNAME} == "dba" +. if defined(WITHOUT_CDB) +CONFIGURE_ARGS+=--without-cdb +. endif +. if defined(WITH_DB4) +WITH_DB4_VER?= 41 +. if ${WITH_DB4_VER} == 42 +LIB_DEPENDS+= db-4.2.2:${PORTSDIR}/databases/db42 +. else +. if ${WITH_DB4_VER} == 4 +LIB_DEPENDS+= db4.0:${PORTSDIR}/databases/db4 +. else +LIB_DEPENDS+= db41.1:${PORTSDIR}/databases/db41 +. endif +. endif +CONFIGURE_ARGS+=--with-db4=${LOCALBASE} +. endif +. if defined(WITH_GDBM) +LIB_DEPENDS+= gdbm.3:${PORTSDIR}/databases/gdbm + +CONFIGURE_ARGS+=--with-gdbm=${LOCALBASE} +. endif +. if defined(WITHOUT_INIFILE) +CONFIGURE_ARGS+=--without-inifile +. endif +. if defined(WITHOUT_FLATFILE) +CONFIGURE_ARGS+=--without-flatfile +. endif +.endif + +.if ${PHP_MODNAME} == "domxml" +. if !defined(WITHOUT_XSLT) +CONFIGURE_ARGS+=--with-dom-xslt=${LOCALBASE} \ + --with-dom-exslt=${LOCALBASE} +USE_GNOME+= libxslt +. endif +.endif + +.if ${PHP_MODNAME} == "gd" +. if !defined(WITHOUT_T1LIB) +LIB_DEPENDS+= t1.5:${PORTSDIR}/devel/t1lib + +CONFIGURE_ARGS+=--with-t1lib=${LOCALBASE} +. endif +. if !defined(WITHOUT_TRUETYPE) +CONFIGURE_ARGS+=--enable-gd-native-ttf +. endif +. if defined(WITH_JIS) +CONFIGURE_ARGS+=--enable-gd-jis-conv +. endif +. if defined(WITH_LZW) +CONFIGURE_ARGS+=--enable-gd-lzw-gif +. endif +.endif + +.if ${PHP_MODNAME} == "imap" +. if !exists(${LOCALBASE}/lib/libc-client4.so) +. if !defined(WITHOUT_SSL) +CONFIGURE_ARGS+=--with-imap-ssl=${LOCALBASE} +. endif +. else +WITH_IMAP_SSL!= /usr/bin/ldd ${LOCALBASE}/lib/libc-client4.so | ${GREP} libssl || ${TRUE} +. if !empty(WITH_IMAP_SSL) +CONFIGURE_ARGS+=--with-imap-ssl=${LOCALBASE} +. endif +. endif +.endif + +.if ${PHP_MODNAME} == "mbstring" +. if defined(WITHOUT_REGEX) +CONFIGURE_ARGS+=--disable-mbregex +. endif +.endif + +.if ${PHP_MODNAME} == "openssl" +post-extract: + @${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4 +.endif + +.if ${PHP_MODNAME} == "snmp" +. if defined(WITH_SNMP4) || exists(${LOCALBASE}/lib/libsnmp.so.4) +LIB_DEPENDS+= snmp.4:${PORTSDIR}/net-mgmt/net-snmp4 +. else +LIB_DEPENDS+= netsnmp.6:${PORTSDIR}/net-mgmt/net-snmp +. endif +.endif + +.if ${PHP_MODNAME} == "zlib" +post-extract: + @${MV} ${WRKSRC}/config0.m4 ${WRKSRC}/config.m4 +.endif diff --git a/lang/php4/Makefile.pear b/lang/php4/Makefile.pear new file mode 100644 index 000000000000..e116b8af42fa --- /dev/null +++ b/lang/php4/Makefile.pear @@ -0,0 +1,29 @@ +LIB_DEPENDS+= expat.5:${PORTSDIR}/textproc/expat2 + +GNU_CONFIGURE= yes + +CONFIGURE_ARGS= --with-layout=GNU \ + --disable-cgi \ + --disable-all \ + --with-pcre-regex=yes \ + --enable-xml \ + --with-expat-dir=${LOCALBASE} \ + --with-zlib-dir=/usr \ + --with-pear + +NO_BUILD= yes + +INSTALL_TARGET= install-pear + +USE_PHP= pcre xml +WANT_PHP_SCR= yes + +.include <bsd.port.pre.mk> + +post-patch: + @${SED} "s|%%PREFIX%%|${PREFIX}|g" \ + ${WRKSRC}/pear/scripts/pearcmd.php > ${WRKSRC}/pear/scripts/pear + +post-install: + @${INSTALL_SCRIPT} ${WRKSRC}/pear/scripts/pear ${PREFIX}/bin + @${SED} "s|\$${LOCALBASE}|${LOCALBASE}|g;s|\$${PREFIX}|${PREFIX}|g" < ${PKGMESSAGE} diff --git a/lang/php4/files/patch-configure b/lang/php4/files/patch-configure deleted file mode 100644 index 205890b0aff7..000000000000 --- a/lang/php4/files/patch-configure +++ /dev/null @@ -1,477 +0,0 @@ ---- configure.orig Thu Mar 25 15:03:34 2004 -+++ configure Mon Mar 29 09:54:06 2004 -@@ -617,6 +617,8 @@ - ac_help="$ac_help - --enable-gd-jis-conv GD: Enable JIS-mapped Japanese font support." - ac_help="$ac_help -+ --enable-gd-lzw-gif GD: Enable LZW-compressed GIF support." -+ac_help="$ac_help - --with-gettext[=DIR] Include GNU gettext support." - ac_help="$ac_help - --with-gmp[=DIR] Include GNU MP support" -@@ -23147,6 +23149,14 @@ - THIS_PREFIX=$i - THIS_INCLUDE=$i/db4/db.h - break -+ elif test -f "$i/include/db42/db.h"; then -+ THIS_PREFIX=$i -+ THIS_INCLUDE=$i/include/db42/db.h -+ break -+ elif test -f "$i/include/db41/db.h"; then -+ THIS_PREFIX=$i -+ THIS_INCLUDE=$i/include/db41/db.h -+ break - elif test -f "$i/include/db4/db.h"; then - THIS_PREFIX=$i - THIS_INCLUDE=$i/include/db4/db.h -@@ -23166,7 +23176,7 @@ - fi - done - -- for LIB in db-4.2 db-4.1 db-4.0 db-4 db4 db; do -+ for LIB in db-4.2 db-4.1 db-4.0 db-4 db41 db4 db; do - if test -f $THIS_PREFIX/lib/lib$LIB.a -o -f $THIS_PREFIX/lib/lib$LIB.$SHLIB_SUFFIX_NAME; then - - old_LDFLAGS=$LDFLAGS -@@ -29711,6 +29721,31 @@ - - - -+echo $ac_n "checking whether to enable LZW-compressed GIF support in GD""... $ac_c" 1>&6 -+echo "configure:28220: checking whether to enable LZW-compressed GIF support in GD" >&5 -+# Check whether --enable-gd-lzw-gif or --disable-gd-lzw-gif was given. -+if test "${enable_gd_lzw_gif+set}" = set; then -+ enableval="$enable_gd_lzw_gif" -+ PHP_GD_LZW_GIF=$enableval -+else -+ -+ PHP_GD_LZW_GIF=no -+ -+ if test "$PHP_ENABLE_ALL" && test "no" = "yes"; then -+ PHP_GD_LZW_GIF=$PHP_ENABLE_ALL -+ fi -+ -+fi -+ -+ -+ext_output=$PHP_GD_LZW_GIF -+echo "$ac_t""$ext_output" 1>&6 -+ -+ -+ -+ -+ -+ - - - -@@ -29863,7 +29898,7 @@ - libgd/gd_io_file.c libgd/gd_ss.c libgd/gd_io_ss.c libgd/gd_png.c libgd/gd_jpeg.c \ - libgd/gdxpm.c libgd/gdfontt.c libgd/gdfonts.c libgd/gdfontmb.c libgd/gdfontl.c \ - libgd/gdfontg.c libgd/gdtables.c libgd/gdft.c libgd/gdcache.c libgd/gdkanji.c \ -- libgd/wbmp.c libgd/gd_wbmp.c libgd/gdhelpers.c libgd/gd_topal.c libgd/gd_gif_in.c \ -+ libgd/wbmp.c libgd/gd_wbmp.c libgd/gdhelpers.c libgd/gd_topal.c libgd/gd_gif_in.c libgd/gd_biggif_out.c libgd/gd_lzw_out.c libgd/gd_gif_out.c \ - libgd/xbm.c" - - for ac_func in fabsf floorf -@@ -29938,6 +29973,11 @@ - fi - - -+ if test "$PHP_GD_LZW_GIF" = "yes"; then -+ USE_GD_LZW_GIF=1 -+ fi -+ -+ - if test "$PHP_JPEG_DIR" != "no"; then - - for i in $PHP_JPEG_DIR /usr/local /usr; do -@@ -31649,6 +31689,9 @@ - - cat >> confdefs.h <<\EOF - #define HAVE_GD_BUNDLED 1 -+#define HAVE_GD_GIF_CREATE 1 -+#define HAVE_GD_GIF_CTX 1 -+#define HAVE_GD_GIF_ANIM 1 - EOF - - cat >> confdefs.h <<\EOF -@@ -31703,6 +31746,14 @@ - GDLIB_CFLAGS="$GDLIB_CFLAGS -DJISX0208" - fi - -+ if test -n "$USE_GD_LZW_GIF"; then -+ cat >> confdefs.h <<\EOF -+#define LZW_LICENCED 1 -+EOF -+ -+ GDLIB_CFLAGS="$GDLIB_CFLAGS -DLZW_LICENCED" -+ fi -+ - else - - if test "$PHP_GD" != "no"; then -@@ -36052,6 +36103,137 @@ - esac - done - -+ echo $ac_n "checking for gdImageGifAnimBegin in -lgd""... $ac_c" 1>&6 -+echo "configure:32250: checking for gdImageGifAnimBegin in -lgd" >&5 -+ac_lib_var=`echo gd'_'gdImageGifAnimBegin | sed 'y%./+-%__p_%'` -+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then -+ echo $ac_n "(cached) $ac_c" 1>&6 -+else -+ ac_save_LIBS="$LIBS" -+LIBS="-lgd $LIBS" -+cat > conftest.$ac_ext <<EOF -+#line 32258 "configure" -+#include "confdefs.h" -+/* Override any gcc2 internal prototype to avoid an error. */ -+/* We use char because int might match the return type of a gcc2 -+ builtin and then its argument prototype would still apply. */ -+char gdImageGifAnimBegin(); -+ -+int main() { -+gdImageGifAnimBegin() -+; return 0; } -+EOF -+if { (eval echo configure:32269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then -+ rm -rf conftest* -+ eval "ac_cv_lib_$ac_lib_var=yes" -+else -+ echo "configure: failed program was:" >&5 -+ cat conftest.$ac_ext >&5 -+ rm -rf conftest* -+ eval "ac_cv_lib_$ac_lib_var=no" -+fi -+rm -f conftest* -+LIBS="$ac_save_LIBS" -+ -+fi -+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then -+ echo "$ac_t""yes" 1>&6 -+ -+ LDFLAGS=$save_old_LDFLAGS -+ ext_shared=$save_ext_shared -+ cat >> confdefs.h <<\EOF -+#define HAVE_GD_GIF_ANIM 1 -+EOF -+ -+ -+else -+ echo "$ac_t""no" 1>&6 -+ -+ LDFLAGS=$save_old_LDFLAGS -+ ext_shared=$save_ext_shared -+ unset ac_cv_func_gd -+ -+ -+fi -+ -+ -+ save_old_LDFLAGS=$LDFLAGS -+ ac_stuff=" -L$GD_LIB $GD_SHARED_LIBADD " -+ -+ save_ext_shared=$ext_shared -+ ext_shared=yes -+ -+ for ac_i in $ac_stuff; do -+ case $ac_i in -+ -l*) -+ ac_ii=`echo $ac_i|cut -c 3-` -+ -+ -+ case $ac_ii in -+ c|c_r|pthread*) ;; -+ *) -+ if test "$ext_shared" = "yes"; then -+ LDFLAGS="$LDFLAGS -l$ac_ii" -+ else -+ -+ -+ case $ac_ii in -+ c|c_r|pthread*) ;; -+ *) -+ LIBS="$LIBS -l$ac_ii" -+ ;; -+ esac -+ -+ -+ fi -+ ;; -+ esac -+ -+ -+ ;; -+ -L*) -+ ac_ii=`echo $ac_i|cut -c 3-` -+ -+ if test "$ac_ii" != "/usr/lib"; then -+ -+ if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then -+ ai_p=$ac_ii -+ else -+ -+ ep_dir="`echo $ac_ii|sed 's%/*[^/][^/]*/*$%%'`" -+ -+ ep_realdir="`(cd \"$ep_dir\" && pwd)`" -+ ai_p="$ep_realdir/`basename \"$ac_ii\"`" -+ fi -+ -+ -+ if test "$ext_shared" = "yes"; then -+ LDFLAGS="$ld_runpath_switch$ai_p -L$ai_p $LDFLAGS" -+ else -+ -+ -+ -+ unique=`echo $ai_p|sed 's/[^a-zA-Z0-9]/_/g'` -+ -+ cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" -+ if test -n "$unique" && test "`eval $cmd`" = "" ; then -+ eval "LIBPATH$unique=set" -+ -+ test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" -+ LDFLAGS="$LDFLAGS -L$ai_p" -+ PHP_RPATHS="$PHP_RPATHS $ai_p" -+ -+ fi -+ -+ -+ fi -+ -+ fi -+ -+ ;; -+ esac -+ done -+ - echo $ac_n "checking for gdCacheCreate in -lgd""... $ac_c" 1>&6 - echo "configure:36057: checking for gdCacheCreate in -lgd" >&5 - ac_lib_var=`echo gd'_'gdCacheCreate | sed 'y%./+-%__p_%'` -@@ -62586,6 +62768,102 @@ - - - if test "$ext_shared" = "yes"; then -+ ORACLE_SHARED_LIBADD="-lwrap $ORACLE_SHARED_LIBADD" -+ if test -n "$ORACLE_DIR/lib"; then -+ -+ if test "$ORACLE_DIR/lib" != "/usr/lib"; then -+ -+ if test -z "$ORACLE_DIR/lib" || echo "$ORACLE_DIR/lib" | grep '^/' >/dev/null ; then -+ ai_p=$ORACLE_DIR/lib -+ else -+ -+ ep_dir="`echo $ORACLE_DIR/lib|sed 's%/*[^/][^/]*/*$%%'`" -+ -+ ep_realdir="`(cd \"$ep_dir\" && pwd)`" -+ ai_p="$ep_realdir/`basename \"$ORACLE_DIR/lib\"`" -+ fi -+ -+ -+ if test "$ext_shared" = "yes"; then -+ ORACLE_SHARED_LIBADD="$ld_runpath_switch$ai_p -L$ai_p $ORACLE_SHARED_LIBADD" -+ else -+ -+ -+ -+ unique=`echo $ai_p|sed 's/[^a-zA-Z0-9]/_/g'` -+ -+ cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" -+ if test -n "$unique" && test "`eval $cmd`" = "" ; then -+ eval "LIBPATH$unique=set" -+ -+ test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" -+ LDFLAGS="$LDFLAGS -L$ai_p" -+ PHP_RPATHS="$PHP_RPATHS $ai_p" -+ -+ fi -+ -+ -+ fi -+ -+ fi -+ -+ fi -+ else -+ -+ -+ if test -n "$ORACLE_DIR/lib"; then -+ -+ if test "$ORACLE_DIR/lib" != "/usr/lib"; then -+ -+ if test -z "$ORACLE_DIR/lib" || echo "$ORACLE_DIR/lib" | grep '^/' >/dev/null ; then -+ ai_p=$ORACLE_DIR/lib -+ else -+ -+ ep_dir="`echo $ORACLE_DIR/lib|sed 's%/*[^/][^/]*/*$%%'`" -+ -+ ep_realdir="`(cd \"$ep_dir\" && pwd)`" -+ ai_p="$ep_realdir/`basename \"$ORACLE_DIR/lib\"`" -+ fi -+ -+ -+ -+ -+ -+ unique=`echo $ai_p|sed 's/[^a-zA-Z0-9]/_/g'` -+ -+ cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\"" -+ if test -n "$unique" && test "`eval $cmd`" = "" ; then -+ eval "LIBPATH$unique=set" -+ -+ test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p" -+ LDFLAGS="$LDFLAGS -L$ai_p" -+ PHP_RPATHS="$PHP_RPATHS $ai_p" -+ -+ fi -+ -+ -+ -+ fi -+ -+ fi -+ -+ -+ case wrap in -+ c|c_r|pthread*) ;; -+ *) -+ LIBS="-lwrap $LIBS" -+ ;; -+ esac -+ -+ -+ -+ -+ fi -+ -+ -+ -+ -+ if test "$ext_shared" = "yes"; then - ORACLE_SHARED_LIBADD="-lnlsrtl3 $ORACLE_SHARED_LIBADD" - if test -n "$ORACLE_DIR/lib"; then - -@@ -79741,29 +80019,6 @@ - else - - -- case cs in -- c|c_r|pthread*) ;; -- *) -- if test "$ext_shared" = "yes"; then -- SYBASE_CT_SHARED_LIBADD="-lcs $SYBASE_CT_SHARED_LIBADD" -- else -- -- -- case cs in -- c|c_r|pthread*) ;; -- *) -- LIBS="-lcs $LIBS" -- ;; -- esac -- -- -- fi -- ;; -- esac -- -- -- -- - case ct in - c|c_r|pthread*) ;; - *) -@@ -79787,52 +80042,7 @@ - - - -- case comn in -- c|c_r|pthread*) ;; -- *) -- if test "$ext_shared" = "yes"; then -- SYBASE_CT_SHARED_LIBADD="-lcomn $SYBASE_CT_SHARED_LIBADD" -- else -- -- -- case comn in -- c|c_r|pthread*) ;; -- *) -- LIBS="-lcomn $LIBS" -- ;; -- esac -- -- -- fi -- ;; -- esac -- -- -- -- -- case intl in -- c|c_r|pthread*) ;; -- *) -- if test "$ext_shared" = "yes"; then -- SYBASE_CT_SHARED_LIBADD="-lintl $SYBASE_CT_SHARED_LIBADD" -- else -- -- -- case intl in -- c|c_r|pthread*) ;; -- *) -- LIBS="-lintl $LIBS" -- ;; -- esac -- -- -- fi -- ;; -- esac -- -- -- -- SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lcs -lct -lcomn -lintl" -+ SYBASE_CT_LIBS="-L$SYBASE_CT_LIBDIR -lct" - - - save_old_LDFLAGS=$LDFLAGS -@@ -79967,38 +80177,6 @@ - c|c_r|pthread*) ;; - *) - LIBS="-ltcl $LIBS" -- ;; -- esac -- -- -- fi -- ;; -- esac -- -- -- -- --else -- echo "$ac_t""no" 1>&6 -- -- LDFLAGS=$save_old_LDFLAGS -- ext_shared=$save_ext_shared -- unset ac_cv_func_tcl -- -- -- -- case sybtcl in -- c|c_r|pthread*) ;; -- *) -- if test "$ext_shared" = "yes"; then -- SYBASE_CT_SHARED_LIBADD="-lsybtcl $SYBASE_CT_SHARED_LIBADD" -- else -- -- -- case sybtcl in -- c|c_r|pthread*) ;; -- *) -- LIBS="-lsybtcl $LIBS" - ;; - esac - diff --git a/lang/php4/files/patch-ext::gd::gd.c b/lang/php4/files/patch-ext::gd::gd.c deleted file mode 100644 index 98be8d330e4e..000000000000 --- a/lang/php4/files/patch-ext::gd::gd.c +++ /dev/null @@ -1,50 +0,0 @@ ---- ext/gd/gd.c.orig Wed Jun 4 02:22:30 2003 -+++ ext/gd/gd.c Sat Jun 28 15:47:56 2003 -@@ -206,6 +206,11 @@ - #ifdef HAVE_GD_GIF_CREATE - PHP_FE(imagegif, NULL) - #endif -+#ifdef HAVE_GD_GIF_ANIM -+ PHP_FE(imagegifanimbegin, NULL) -+ PHP_FE(imagegifanimadd, NULL) -+ PHP_FE(imagegifanimend, NULL) -+#endif - #ifdef HAVE_GD_JPG - PHP_FE(imagejpeg, NULL) - #endif -@@ -1707,11 +1712,35 @@ - #ifdef HAVE_GD_GIF_CTX - _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIF, "GIF", gdImageGifCtx); - #else -+ -+#ifdef HAVE_GD_BUNDLED -+#error "I really think there should be ctx version of imagegif in the bundled GD library. Fix the configuration." -+#endif -+ - _php_image_output(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIF, "GIF", gdImageGif); - #endif - } - /* }}} */ - #endif /* HAVE_GD_GIF_CREATE */ -+ -+#ifdef HAVE_GD_GIF_ANIM -+/* {{{ proto int imagegifanimbegin(int im [, string filename [, int GlobalColormap [, int Loops]]]) -+ Begin GIF animation. Image parameter is only used for size and colormap, -+ all animation frames must be added separately. */ -+PHP_FUNCTION(imagegifanimbegin) -+{ -+ _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIFANIMBEGIN, "GIF", gdImageGifAnimBeginCtx); -+} -+/* }}} */ -+ -+/* {{{ proto int imagegifanimadd(int im [, string filename [, int LocalColormap [, LeftOfs [, int TopOfs [, int Delay [, int Disposal]]]]]]) -+ Append GIF image to animation */ -+PHP_FUNCTION(imagegifanimadd) -+{ -+ _php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_GIFANIMADD, "GIF", gdImageGifAnimAddCtx); -+} -+/* }}} */ -+#endif /* HAVE_GD_GIF_ANIM */ - - #ifdef HAVE_GD_PNG - /* {{{ proto int imagepng(int im [, string filename]) diff --git a/lang/php4/files/patch-ext::gd::gd_ctx.c b/lang/php4/files/patch-ext::gd::gd_ctx.c deleted file mode 100644 index 14ce90f1a83c..000000000000 --- a/lang/php4/files/patch-ext::gd::gd_ctx.c +++ /dev/null @@ -1,158 +0,0 @@ ---- ext/gd/gd_ctx.c.orig Wed Mar 12 05:16:31 2003 -+++ ext/gd/gd_ctx.c Sat Jun 28 15:47:56 2003 -@@ -24,17 +24,22 @@ - - static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, void (*func_p)()) - { -- zval **imgind, **file, **quality; -+ zval **imgind, **file, **quality, **lo, **to, **del, **dis; - gdImagePtr im; - char *fn = NULL; - FILE *fp = NULL; - int argc = ZEND_NUM_ARGS(); - int q = -1, i; -+#ifdef HAVE_GD_GIF_ANIM -+ int LeftOfs = -1, TopOfs = -1, Delay = -1, Disposal = -1; -+#endif /* HAVE_GD_GIF_ANIM */ - gdIOCtx *ctx; - - /* The quality parameter for Wbmp stands for the threshold when called from image2wbmp() */ -+ /* The quality parameter for GIF animation stands for colormap inclusion. 1==include local/global colormap */ -+ /* The LeftOfs parameter for GIF animation begin stands for NETSCAPE2.0 Loop count extension. */ - -- if (argc < 1 || argc > 3 || zend_get_parameters_ex(argc, &imgind, &file, &quality) == FAILURE) -+ if (argc < 1 || argc > 7 || zend_get_parameters_ex(argc, &imgind, &file, &quality, &lo, &to, &del, &dis) == FAILURE) - { - WRONG_PARAM_COUNT; - } -@@ -44,11 +49,29 @@ - if (argc > 1) { - convert_to_string_ex(file); - fn = Z_STRVAL_PP(file); -- if (argc == 3) { -- convert_to_long_ex(quality); -- q = Z_LVAL_PP(quality); -- } - } -+ if (argc >= 3) { -+ convert_to_long_ex(quality); -+ q = Z_LVAL_PP(quality); -+ } -+#ifdef HAVE_GD_GIF_ANIM -+ if (argc >= 4) { -+ convert_to_long_ex(lo); -+ LeftOfs = Z_LVAL_PP(lo); -+ } -+ if (argc >= 5) { -+ convert_to_long_ex(to); -+ TopOfs = Z_LVAL_PP(to); -+ } -+ if (argc >= 6) { -+ convert_to_long_ex(del); -+ Delay = Z_LVAL_PP(del); -+ } -+ if (argc >= 7) { -+ convert_to_long_ex(dis); -+ Disposal = Z_LVAL_PP(dis); -+ } -+#endif /* HAVE_GD_GIF_ANIM */ - - if ((argc == 2) || (argc > 2 && Z_STRLEN_PP(file))) { - if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC)) { -@@ -56,7 +79,7 @@ - RETURN_FALSE; - } - -- fp = VCWD_FOPEN(fn, "wb"); -+ fp = VCWD_FOPEN(fn, PHP_GDIMG_TYPE_GIFANIMADD == image_type ? "ab" : "wb"); - if (!fp) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' for writing", fn); - RETURN_FALSE; -@@ -94,6 +117,14 @@ - } - (*func_p)(im, i, ctx); - break; -+#ifdef HAVE_GD_GIF_ANIM -+ case PHP_GDIMG_TYPE_GIFANIMBEGIN: -+ (*func_p)(im, ctx, q, LeftOfs); -+ break; -+ case PHP_GDIMG_TYPE_GIFANIMADD: -+ (*func_p)(im, ctx, q, LeftOfs, TopOfs, Delay, Disposal); -+ break; -+#endif /* HAVE_GD_GIF_ANIM */ - default: - (*func_p)(im, ctx); - break; -@@ -112,3 +143,72 @@ - - RETURN_TRUE; - } -+ -+#ifdef HAVE_GD_GIF_ANIM -+/* {{{ proto int imagegifanimend([string filename]) -+ Write end mark to gif animation. */ -+PHP_FUNCTION(imagegifanimend) -+{ -+ zval **file; -+ char *fn = NULL; -+ FILE *fp = NULL; -+ int argc = ZEND_NUM_ARGS(); -+ gdIOCtx *ctx; -+ -+ if (argc < 0 || argc > 1 || zend_get_parameters_ex(argc, &file) == FAILURE) { -+ ZEND_WRONG_PARAM_COUNT(); -+ } -+ -+ if (argc >= 1) { -+ convert_to_string_ex(file); -+ fn = Z_STRVAL_PP(file); -+ } -+ -+ if ((argc == 1) || (argc > 1 && Z_STRLEN_PP(file))) { -+ if (!fn || fn == empty_string || php_check_open_basedir(fn TSRMLS_CC)) { -+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid filename '%s'", fn); -+ RETURN_FALSE; -+ } -+ -+ fp = VCWD_FOPEN(fn, "ab"); -+ if (!fp) { -+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' for writing", fn); -+ RETURN_FALSE; -+ } -+ -+ ctx = gdNewFileCtx(fp); -+ } else { -+ ctx = emalloc(sizeof(gdIOCtx)); -+ ctx->putC = _php_image_output_putc; -+ ctx->putBuf = _php_image_output_putbuf; -+#if HAVE_LIBGD204 -+ ctx->gd_free = _php_image_output_ctxfree; -+#else -+ ctx->free = _php_image_output_ctxfree; -+#endif -+ -+#if APACHE && defined(CHARSET_EBCDIC) -+ /* XXX this is unlikely to work any more thies@thieso.net */ -+ /* This is a binary file already: avoid EBCDIC->ASCII conversion */ -+ ap_bsetflag(php3_rqst->connection->client, B_EBCDIC2ASCII, 0); -+#endif -+ } -+ -+ /* This could be coded in here, as it only outputs ';' */ -+ gdImageGifAnimEndCtx(ctx); -+ -+#if HAVE_LIBGD204 -+ ctx->gd_free(ctx); -+#else -+ ctx->free(ctx); -+#endif -+ -+ if(fp) { -+ fflush(fp); -+ fclose(fp); -+ } -+ -+ RETURN_TRUE; -+} -+/* }}} */ -+#endif /* HAVE_GD_GIF_ANIM */ diff --git a/lang/php4/files/patch-ext::gd::libgd::gd.h b/lang/php4/files/patch-ext::gd::libgd::gd.h deleted file mode 100644 index 6d675747c60f..000000000000 --- a/lang/php4/files/patch-ext::gd::libgd::gd.h +++ /dev/null @@ -1,45 +0,0 @@ ---- ext/gd/libgd/gd.h.orig Wed Apr 9 03:55:56 2003 -+++ ext/gd/libgd/gd.h Sat Jun 28 15:47:56 2003 -@@ -446,6 +446,30 @@ - gdImagePtr gdImageCreateFromGifCtx(gdIOCtxPtr in); - gdImagePtr gdImageCreateFromGifSource(gdSourcePtr in); - -+void gdImageLzw(gdImagePtr im, FILE *out); -+void* gdImageLzwPtr(gdImagePtr im, int *size); -+void gdImageLzwCtx(gdImagePtr im, gdIOCtxPtr out); -+ -+void gdImageBigGif(gdImagePtr im, FILE *out); -+void* gdImageBigGifPtr(gdImagePtr im, int *size); -+void gdImageBigGifCtx(gdImagePtr im, gdIOCtxPtr out); -+ -+void gdImageGifAnimBegin(gdImagePtr im, FILE *outFile, int GlobalCM, int Loops); -+void gdImageGifAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void gdImageLzwAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void gdImageBigGifAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void gdImageGifAnimEnd(FILE *outFile); -+void gdImageGifAnimBeginCtx(gdImagePtr im, gdIOCtx *out, int GlobalCM, int Loops); -+void gdImageGifAnimAddCtx(gdImagePtr im, gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void gdImageLzwAnimAddCtx(gdImagePtr im, gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void gdImageBigGifAnimAddCtx(gdImagePtr im, gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void gdImageGifAnimEndCtx(gdIOCtx *out); -+void *gdImageGifAnimBeginPtr(gdImagePtr im, int *size, int GlobalCM, int Loops); -+void *gdImageGifAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void *gdImageLzwAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void *gdImageBigGifAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal); -+void *gdImageGifAnimEndPtr(int *size); -+ - /* A custom data sink. For backwards compatibility. Use - gdIOCtx instead. */ - /* The sink function must return -1 on error, otherwise the number -@@ -457,6 +481,11 @@ - } gdSink, *gdSinkPtr; - - void gdImagePngToSink(gdImagePtr im, gdSinkPtr out); -+ -+void gdImageGif (gdImagePtr im, FILE *out); -+void* gdImageGifPtr (gdImagePtr im, int *size); -+void gdImageGifCtx (gdImagePtr im, gdIOCtxPtr out); -+void gdImageGifToSink (gdImagePtr im, gdSinkPtr out); - - void gdImageGd(gdImagePtr im, FILE *out); - void gdImageGd2(gdImagePtr im, FILE *out, int cs, int fmt); diff --git a/lang/php4/files/patch-ext::gd::libgd::gd_biggif_out.c b/lang/php4/files/patch-ext::gd::libgd::gd_biggif_out.c deleted file mode 100644 index e18fc2f9b4e1..000000000000 --- a/lang/php4/files/patch-ext::gd::libgd::gd_biggif_out.c +++ /dev/null @@ -1,1087 +0,0 @@ ---- ext/gd/libgd/gd_biggif_out.c.orig Sat Jun 28 15:47:56 2003 -+++ ext/gd/libgd/gd_biggif_out.c Sat Jun 28 15:47:56 2003 -@@ -0,0 +1,1084 @@ -+#include <stdio.h> -+#include <math.h> -+#include <string.h> -+#include <stdlib.h> -+#include "gd.h" -+#include "gdhelpers.h" -+ -+/* -+** Wrapper functions for this module. -+*/ -+ -+void gdImageBigGif(gdImagePtr im, FILE *outFile) -+{ -+ gdIOCtx *out = gdNewFileCtx(outFile); -+ gdImageBigGifCtx(im, out); -+ out->gd_free(out); -+} -+ -+void* gdImageBigGifPtr(gdImagePtr im, int *size) -+{ -+ void *rv; -+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL); -+ gdImageBigGifCtx(im, out); -+ rv = gdDPExtractData(out,size); -+ out->gd_free(out); -+ return rv; -+} -+ -+void gdImageGifAnimBegin(gdImagePtr im, FILE *outFile, int GlobalCM, int Loops) -+{ -+ gdIOCtx *out = gdNewFileCtx(outFile); -+ gdImageGifAnimBeginCtx(im, out, GlobalCM, Loops); -+ out->gd_free(out); -+} -+ -+void *gdImageGifAnimBeginPtr(gdImagePtr im, int *size, int GlobalCM, int Loops) -+{ -+ void *rv; -+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL); -+ gdImageGifAnimBeginCtx(im, out, GlobalCM, Loops); -+ rv = gdDPExtractData(out,size); -+ out->gd_free(out); -+ return rv; -+} -+ -+void gdImageBigGifAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+ gdIOCtx *out = gdNewFileCtx(outFile); -+ gdImageBigGifAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+ out->gd_free(out); -+} -+ -+void *gdImageBigGifAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+ void *rv; -+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL); -+ gdImageBigGifAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+ rv = gdDPExtractData(out,size); -+ out->gd_free(out); -+ return rv; -+} -+ -+void gdImageGifAnimEnd(FILE *outFile) -+{ -+#if 1 -+ putc (';', outFile); -+#else -+ gdIOCtx *out = gdNewFileCtx(outFile); -+ gdImageGifAnimEndCtx(out); -+ out->gd_free(out); -+#endif -+} -+ -+void* gdImageGifAnimEndPtr(int *size) -+{ -+ char *rv = (char *) gdMalloc (1); -+ *rv = ';'; -+ *size = 1; -+ return (void *)rv; -+} -+ -+ -+/* Code drawn from ppmtogif.c, from the pbmplus package -+** -+** Based on GIFENCOD by David Rowley <mgardi@watdscu.waterloo.edu>. A -+** Lempel-Zim compression based on "compress". -+** -+** Modified by Marcel Wijkstra <wijkstra@fwi.uva.nl> -+** -+** Copyright (C) 1989 by Jef Poskanzer. -+** -+** Permission to use, copy, modify, and distribute this software and its -+** documentation for any purpose and without fee is hereby granted, provided -+** that the above copyright notice appear in all copies and that both that -+** copyright notice and this permission notice appear in supporting -+** documentation. This software is provided "as is" without express or -+** implied warranty. -+** -+** The Graphics Interchange Format(c) is the Copyright property of -+** CompuServe Incorporated. GIF(sm) is a Service Mark property of -+** CompuServe Incorporated. -+* -+* Heavily modified by Mouse, 1998-02-12. -+* Remove LZW compression. -+* Added miGIF run length compression. -+* -+*/ -+ -+/* -+ * a code_int must be able to hold 2**GIFBITS values of type int, and also -1 -+ */ -+typedef int code_int; -+ -+static int colorstobpp(int colors); -+static void BumpPixel (void); -+static int GIFNextPixel (gdImagePtr im); -+static void GIFEncode (gdIOCtx *fp, int GWidth, int GHeight, int GInterlace, int Background, int Transparent, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im); -+static void GIFAnimEncode(gdIOCtx *fp, int IWidth, int IHeight, int LeftOfs, int TopOfs, int GInterlace, int Transparent, int Delay, int Disposal, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im); -+/*static void Putword (int w, gdIOCtx *fp); */ -+static void GIFcompress (int, gdIOCtx *, gdImagePtr); -+static void output (code_int code); -+ -+/* UNUSED -+* static void char_init (void); -+* static void char_out (int c); -+*/ -+ -+/* Allows for reuse */ -+static void init_statics(void); -+ -+void gdImageBigGifCtx(gdImagePtr im, gdIOCtx *out) -+{ -+ int interlace, transparent, BitsPerPixel; -+ -+ interlace = im->interlace; -+ transparent = im->transparent; -+ -+ BitsPerPixel = colorstobpp(im->colorsTotal); -+ /* Clear any old values in statics strewn through the GIF code */ -+ init_statics(); -+ /* All set, let's do it. */ -+ GIFEncode( -+ out, im->sx, im->sy, interlace, 0, transparent, BitsPerPixel, -+ im->red, im->green, im->blue, im); -+} -+ -+void gdImageGifAnimBeginCtx(gdImagePtr im, gdIOCtx *out, int GlobalCM, int Loops) -+{ -+ int B; -+ int RWidth, RHeight; -+ int Resolution; -+ int ColorMapSize; -+ int BitsPerPixel; -+ int Background = 0; -+ int i; -+ -+ BitsPerPixel = colorstobpp(im->colorsTotal); -+ ColorMapSize = 1 << BitsPerPixel; -+ -+ RWidth = im->sx; -+ RHeight = im->sy; -+ -+ Resolution = BitsPerPixel; -+ -+ /* -+ * Write the Magic header -+ */ -+ gdPutBuf( "GIF89a", 6, out ); -+ -+ /* -+ * Write out the screen width and height -+ */ -+ Putword( RWidth, out ); -+ Putword( RHeight, out ); -+ -+ /* -+ * Indicate that there is a global colour map -+ */ -+ B = GlobalCM > 0 ? 0x80 : 0; -+ -+ /* -+ * OR in the resolution -+ */ -+ B |= (Resolution - 1) << 5; -+ -+ /* -+ * OR in the Bits per Pixel -+ */ -+ B |= (BitsPerPixel - 1); -+ -+ /* -+ * Write it out -+ */ -+ gdPutC( B, out ); -+ -+ /* -+ * Write out the Background colour -+ */ -+ gdPutC( Background, out ); -+ -+ /* -+ * Byte of 0's (future expansion) -+ */ -+ gdPutC( 0, out ); -+ -+ /* -+ * Write out the Global Colour Map -+ */ -+ if (GlobalCM > 0) -+ for( i=0; i<ColorMapSize; ++i ) { -+ gdPutC( im->red[i], out ); -+ gdPutC( im->green[i], out ); -+ gdPutC( im->blue[i], out ); -+ } -+ if (Loops >= 0) { -+ gdPutBuf( "!\377\13NETSCAPE2.0\3\1", 16, out ); -+ gdPutC( (unsigned char)(Loops & 255), out ); -+ gdPutC( (unsigned char)((Loops >> 8) & 255), out ); -+ gdPutC( 0, out ); -+ } -+} -+ -+void gdImageBigGifAnimAddCtx(gdImagePtr im, gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+ int interlace, transparent, BitsPerPixel; -+ -+ interlace = im->interlace; -+ transparent = im->transparent; -+ -+ BitsPerPixel = colorstobpp(im->colorsTotal); -+ /* Clear any old values in statics strewn through the GIF code */ -+ init_statics(); -+ /* All set, let's do it. */ -+ GIFAnimEncode( -+ out, im->sx, im->sy, LeftOfs, TopOfs, interlace, transparent, -+ Delay, Disposal, BitsPerPixel, -+ LocalCM > 0 ? im->red : 0, im->green, im->blue, im); -+} -+ -+void gdImageGifAnimEndCtx(gdIOCtx *out) -+{ -+ /* -+ * Write the GIF file terminator -+ */ -+ gdPutC( ';', out ); -+} -+ -+ -+static int -+colorstobpp(int colors) -+{ -+ int bpp = 0; -+ -+ if ( colors <= 2 ) -+ bpp = 1; -+ else if ( colors <= 4 ) -+ bpp = 2; -+ else if ( colors <= 8 ) -+ bpp = 3; -+ else if ( colors <= 16 ) -+ bpp = 4; -+ else if ( colors <= 32 ) -+ bpp = 5; -+ else if ( colors <= 64 ) -+ bpp = 6; -+ else if ( colors <= 128 ) -+ bpp = 7; -+ else if ( colors <= 256 ) -+ bpp = 8; -+ return bpp; -+ } -+ -+/***************************************************************************** -+ * -+ * GIFENCODE.C - GIF Image compression interface -+ * -+ * GIFEncode( FName, GHeight, GWidth, GInterlace, Background, Transparent, -+ * BitsPerPixel, Red, Green, Blue, gdImagePtr ) -+ * -+ *****************************************************************************/ -+ -+#define TRUE 1 -+#define FALSE 0 -+ -+static int Width, Height; -+static int curx, cury; -+static long CountDown; -+static int Pass = 0; -+static int Interlace; -+ -+/* -+ * Bump the 'curx' and 'cury' to point to the next pixel -+ */ -+static void -+BumpPixel(void) -+{ -+ /* -+ * Bump the current X position -+ */ -+ ++curx; -+ -+ /* -+ * If we are at the end of a scan line, set curx back to the beginning -+ * If we are interlaced, bump the cury to the appropriate spot, -+ * otherwise, just increment it. -+ */ -+ if( curx == Width ) { -+ curx = 0; -+ -+ if( !Interlace ) -+ ++cury; -+ else { -+ switch( Pass ) { -+ -+ case 0: -+ cury += 8; -+ if( cury >= Height ) { -+ ++Pass; -+ cury = 4; -+ } -+ break; -+ -+ case 1: -+ cury += 8; -+ if( cury >= Height ) { -+ ++Pass; -+ cury = 2; -+ } -+ break; -+ -+ case 2: -+ cury += 4; -+ if( cury >= Height ) { -+ ++Pass; -+ cury = 1; -+ } -+ break; -+ -+ case 3: -+ cury += 2; -+ break; -+ } -+ } -+ } -+} -+ -+/* -+ * Return the next pixel from the image -+ */ -+static int -+GIFNextPixel(gdImagePtr im) -+{ -+ int r; -+ -+ if( CountDown == 0 ) -+ return EOF; -+ -+ --CountDown; -+ -+ r = gdImageGetPixel(im, curx, cury); -+ -+ BumpPixel(); -+ -+ return r; -+} -+ -+/* public */ -+ -+static void -+GIFEncode(gdIOCtx *fp, int GWidth, int GHeight, int GInterlace, int Background, int Transparent, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im) -+{ -+ int B; -+ int RWidth, RHeight; -+ int LeftOfs, TopOfs; -+ int Resolution; -+ int ColorMapSize; -+ int InitCodeSize; -+ int i; -+ -+ Interlace = GInterlace; -+ -+ ColorMapSize = 1 << BitsPerPixel; -+ -+ RWidth = Width = GWidth; -+ RHeight = Height = GHeight; -+ LeftOfs = TopOfs = 0; -+ -+ Resolution = BitsPerPixel; -+ -+ /* -+ * Calculate number of bits we are expecting -+ */ -+ CountDown = (long)Width * (long)Height; -+ -+ /* -+ * Indicate which pass we are on (if interlace) -+ */ -+ Pass = 0; -+ -+ /* -+ * The initial code size -+ */ -+ if( BitsPerPixel <= 1 ) -+ InitCodeSize = 2; -+ else -+ InitCodeSize = BitsPerPixel; -+ -+ /* -+ * Set up the current x and y position -+ */ -+ curx = cury = 0; -+ -+ /* -+ * Write the Magic header -+ */ -+ gdPutBuf( Transparent < 0 ? "GIF87a" : "GIF89a", 6, fp ); -+ -+ /* -+ * Write out the screen width and height -+ */ -+ Putword( RWidth, fp ); -+ Putword( RHeight, fp ); -+ -+ /* -+ * Indicate that there is a global colour map -+ */ -+ B = 0x80; /* Yes, there is a color map */ -+ -+ /* -+ * OR in the resolution -+ */ -+ B |= (Resolution - 1) << 5; -+ -+ /* -+ * OR in the Bits per Pixel -+ */ -+ B |= (BitsPerPixel - 1); -+ -+ /* -+ * Write it out -+ */ -+ gdPutC( B, fp ); -+ -+ /* -+ * Write out the Background colour -+ */ -+ gdPutC( Background, fp ); -+ -+ /* -+ * Byte of 0's (future expansion) -+ */ -+ gdPutC( 0, fp ); -+ -+ /* -+ * Write out the Global Colour Map -+ */ -+ for( i=0; i<ColorMapSize; ++i ) { -+ gdPutC( Red[i], fp ); -+ gdPutC( Green[i], fp ); -+ gdPutC( Blue[i], fp ); -+ } -+ -+ /* -+ * Write out extension for transparent colour index, if necessary. -+ */ -+ if ( Transparent >= 0 ) { -+ gdPutC( '!', fp ); -+ gdPutC( 0xf9, fp ); -+ gdPutC( 4, fp ); -+ gdPutC( 1, fp ); -+ gdPutC( 0, fp ); -+ gdPutC( 0, fp ); -+ gdPutC( (unsigned char) Transparent, fp ); -+ gdPutC( 0, fp ); -+ } -+ -+ /* -+ * Write an Image separator -+ */ -+ gdPutC( ',', fp ); -+ -+ /* -+ * Write the Image header -+ */ -+ -+ Putword( LeftOfs, fp ); -+ Putword( TopOfs, fp ); -+ Putword( Width, fp ); -+ Putword( Height, fp ); -+ -+ /* -+ * Write out whether or not the image is interlaced -+ */ -+ if( Interlace ) -+ gdPutC( 0x40, fp ); -+ else -+ gdPutC( 0x00, fp ); -+ -+ /* -+ * Write out the initial code size -+ */ -+ gdPutC( InitCodeSize, fp ); -+ -+ /* -+ * Go and actually compress the data -+ */ -+ GIFcompress( InitCodeSize+1, fp, im ); -+ -+ /* -+ * Write out a Zero-length packet (to end the series) -+ */ -+ gdPutC( 0, fp ); -+ -+ /* -+ * Write the GIF file terminator -+ */ -+ gdPutC( ';', fp ); -+} -+ -+static void -+GIFAnimEncode(gdIOCtx *fp, int IWidth, int IHeight, int LeftOfs, int TopOfs, int GInterlace, int Transparent, int Delay, int Disposal, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im) -+{ -+ int ColorMapSize; -+ int InitCodeSize; -+ int i; -+ -+ if (LeftOfs < 0) LeftOfs = 0; -+ if (TopOfs < 0) TopOfs = 0; -+ if (Delay < 0) Delay = 100; -+ if (Disposal < 0) Disposal = 2; -+ -+ Interlace = GInterlace; -+ -+ ColorMapSize = 1 << BitsPerPixel; -+ -+ Width = IWidth; -+ Height = IHeight; -+ -+ /* -+ * Calculate number of bits we are expecting -+ */ -+ CountDown = (long)Width * (long)Height; -+ -+ /* -+ * Indicate which pass we are on (if interlace) -+ */ -+ Pass = 0; -+ -+ /* -+ * The initial code size -+ */ -+ if( BitsPerPixel <= 1 ) -+ InitCodeSize = 2; -+ else -+ InitCodeSize = BitsPerPixel; -+ -+ /* -+ * Set up the current x and y position -+ */ -+ curx = cury = 0; -+ -+ /* -+ * Write out extension for image animation and looping -+ */ -+ gdPutC( '!', fp ); -+ gdPutC( 0xf9, fp ); -+ gdPutC( 4, fp ); -+ gdPutC( (Transparent >= 0 ? 1 : 0) -+ | (Disposal << 2), fp ); -+ gdPutC( (unsigned char)(Delay & 255), fp ); -+ gdPutC( (unsigned char)((Delay >> 8) & 255), fp ); -+ gdPutC( (unsigned char) Transparent, fp ); -+ gdPutC( 0, fp ); -+ -+ /* -+ * Write an Image separator -+ */ -+ gdPutC( ',', fp ); -+ -+ /* -+ * Write the Image header -+ */ -+ -+ Putword( LeftOfs, fp ); -+ Putword( TopOfs, fp ); -+ Putword( Width, fp ); -+ Putword( Height, fp ); -+ -+ /* -+ * Write out whether or not the image is interlaced -+ * and if it includes local colour map. -+ */ -+ gdPutC( (Interlace ? 0x40 : 0) -+ | (Red ? 0x80 : 0) -+ | (Red ? BitsPerPixel - 1 : 0), fp ); -+ -+ /* -+ * Write out the Local Colour Map -+ */ -+ if (Red) -+ for( i=0; i<ColorMapSize; ++i ) { -+ gdPutC( Red[i], fp ); -+ gdPutC( Green[i], fp ); -+ gdPutC( Blue[i], fp ); -+ } -+ -+ /* -+ * Write out the initial code size -+ */ -+ gdPutC( InitCodeSize, fp ); -+ -+ /* -+ * Go and actually compress the data -+ */ -+ GIFcompress( InitCodeSize+1, fp, im ); -+ -+ /* -+ * Write out a Zero-length packet (to end the series) -+ */ -+ gdPutC( 0, fp ); -+} -+ -+/* Write out a word to the GIF file */ -+/*static void */ -+/*Putword(int w, gdIOCtx *fp) */ -+/*{ */ -+/* fputc( w & 0xff, fp ); */ -+/* fputc( (w / 256) & 0xff, fp ); */ -+/*} */ -+ -+#define GIFBITS 12 -+ -+/*----------------------------------------------------------------------- -+ * -+ * miGIF Compression - mouse and ivo's GIF-compatible compression -+ * -+ * -run length encoding compression routines- -+ * -+ * Copyright (C) 1998 Hutchison Avenue Software Corporation -+ * http://www.hasc.com -+ * info@hasc.com -+ * -+ * Permission to use, copy, modify, and distribute this software and its -+ * documentation for any purpose and without fee is hereby granted, provided -+ * that the above copyright notice appear in all copies and that both that -+ * copyright notice and this permission notice appear in supporting -+ * documentation. This software is provided "AS IS." The Hutchison Avenue -+ * Software Corporation disclaims all warranties, either express or implied, -+ * including but not limited to implied warranties of merchantability and -+ * fitness for a particular purpose, with respect to this code and accompanying -+ * documentation. -+ * -+ * The miGIF compression routines do not, strictly speaking, generate files -+ * conforming to the GIF spec, since the image data is not LZW-compressed -+ * (this is the point: in order to avoid transgression of the Unisys patent -+ * on the LZW algorithm.) However, miGIF generates data streams that any -+ * reasonably sane LZW decompresser will decompress to what we want. -+ * -+ * miGIF compression uses run length encoding. It compresses horizontal runs -+ * of pixels of the same color. This type of compression gives good results -+ * on images with many runs, for example images with lines, text and solid -+ * shapes on a solid-colored background. It gives little or no compression -+ * on images with few runs, for example digital or scanned photos. -+ * -+ * der Mouse -+ * mouse@rodents.montreal.qc.ca -+ * 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B -+ * -+ * ivo@hasc.com -+ * -+ * The Graphics Interchange Format(c) is the Copyright property of -+ * CompuServe Incorporated. GIF(sm) is a Service Mark property of -+ * CompuServe Incorporated. -+ * -+ */ -+ -+static int rl_pixel; -+static int rl_basecode; -+static int rl_count; -+static int rl_table_pixel; -+static int rl_table_max; -+static int just_cleared; -+static int out_bits; -+static int out_bits_init; -+static int out_count; -+static int out_bump; -+static int out_bump_init; -+static int out_clear; -+static int out_clear_init; -+static int max_ocodes; -+static int code_clear; -+static int code_eof; -+static unsigned int obuf; -+static int obits; -+static gdIOCtx *ofile; -+static unsigned char oblock[256]; -+static int oblen; -+ -+/* Used only when debugging GIF compression code */ -+/* #define DEBUGGING_ENVARS */ -+ -+#ifdef DEBUGGING_ENVARS -+ -+static int verbose_set = 0; -+static int verbose; -+#define VERBOSE (verbose_set?verbose:set_verbose()) -+ -+static int set_verbose(void) -+{ -+ verbose = !!getenv("GIF_VERBOSE"); -+ verbose_set = 1; -+ return(verbose); -+} -+ -+#else -+ -+#define VERBOSE 0 -+ -+#endif -+ -+ -+static const char *binformat(unsigned int v, int nbits) -+{ -+ static char bufs[8][64]; -+ static int bhand = 0; -+ unsigned int bit; -+ int bno; -+ char *bp; -+ -+ bhand --; -+ if (bhand < 0) bhand = (sizeof(bufs)/sizeof(bufs[0]))-1; -+ bp = &bufs[bhand][0]; -+ for (bno=nbits-1,bit=1U<<bno;bno>=0;bno--,bit>>=1) -+ { *bp++ = (v & bit) ? '1' : '0'; -+ if (((bno&3) == 0) && (bno != 0)) *bp++ = '.'; -+ } -+ *bp = '\0'; -+ return(&bufs[bhand][0]); -+} -+ -+static void write_block(void) -+{ -+ int i; -+ -+ if (VERBOSE) -+ { printf("write_block %d:",oblen); -+ for (i=0;i<oblen;i++) printf(" %02x",oblock[i]); -+ printf("\n"); -+ } -+ gdPutC(oblen,ofile); -+ gdPutBuf(&oblock[0],oblen,ofile); -+ oblen = 0; -+} -+ -+static void block_out(unsigned char c) -+{ -+ if (VERBOSE) printf("block_out %s\n",binformat(c,8)); -+ oblock[oblen++] = c; -+ if (oblen >= 255) write_block(); -+} -+ -+static void block_flush(void) -+{ -+ if (VERBOSE) printf("block_flush\n"); -+ if (oblen > 0) write_block(); -+} -+ -+static void output(int val) -+{ -+ if (VERBOSE) printf("output %s [%s %d %d]\n",binformat(val,out_bits),binformat(obuf,obits),obits,out_bits); -+ obuf |= val << obits; -+ obits += out_bits; -+ while (obits >= 8) -+ { block_out(obuf&0xff); -+ obuf >>= 8; -+ obits -= 8; -+ } -+ if (VERBOSE) printf("output leaving [%s %d]\n",binformat(obuf,obits),obits); -+} -+ -+static void output_flush(void) -+{ -+ if (VERBOSE) printf("output_flush\n"); -+ if (obits > 0) block_out(obuf); -+ block_flush(); -+} -+ -+static void did_clear(void) -+{ -+ if (VERBOSE) printf("did_clear\n"); -+ out_bits = out_bits_init; -+ out_bump = out_bump_init; -+ out_clear = out_clear_init; -+ out_count = 0; -+ rl_table_max = 0; -+ just_cleared = 1; -+} -+ -+static void output_plain(int c) -+{ -+ if (VERBOSE) printf("output_plain %s\n",binformat(c,out_bits)); -+ just_cleared = 0; -+ output(c); -+ out_count ++; -+ if (out_count >= out_bump) -+ { out_bits ++; -+ out_bump += 1 << (out_bits - 1); -+ } -+ if (out_count >= out_clear) -+ { output(code_clear); -+ did_clear(); -+ } -+} -+ -+static unsigned int isqrt(unsigned int x) -+{ -+ unsigned int r; -+ unsigned int v; -+ -+ if (x < 2) return(x); -+ for (v=x,r=1;v;v>>=2,r<<=1) ; -+ while (1) -+ { v = ((x / r) + r) / 2; -+ if ((v == r) || (v == r+1)) return(r); -+ r = v; -+ } -+} -+ -+static unsigned int compute_triangle_count(unsigned int count, unsigned int nrepcodes) -+{ -+ unsigned int perrep; -+ unsigned int cost; -+ -+ cost = 0; -+ perrep = (nrepcodes * (nrepcodes+1)) / 2; -+ while (count >= perrep) -+ { cost += nrepcodes; -+ count -= perrep; -+ } -+ if (count > 0) -+ { unsigned int n; -+ n = isqrt(count); -+ while ((n*(n+1)) >= 2*count) n --; -+ while ((n*(n+1)) < 2*count) n ++; -+ cost += n; -+ } -+ return(cost); -+} -+ -+static void max_out_clear(void) -+{ -+ out_clear = max_ocodes; -+} -+ -+static void reset_out_clear(void) -+{ -+ out_clear = out_clear_init; -+ if (out_count >= out_clear) -+ { output(code_clear); -+ did_clear(); -+ } -+} -+ -+static void rl_flush_fromclear(int count) -+{ -+ int n; -+ -+ if (VERBOSE) printf("rl_flush_fromclear %d\n",count); -+ max_out_clear(); -+ rl_table_pixel = rl_pixel; -+ n = 1; -+ while (count > 0) -+ { if (n == 1) -+ { rl_table_max = 1; -+ output_plain(rl_pixel); -+ count --; -+ } -+ else if (count >= n) -+ { rl_table_max = n; -+ output_plain(rl_basecode+n-2); -+ count -= n; -+ } -+ else if (count == 1) -+ { rl_table_max ++; -+ output_plain(rl_pixel); -+ count = 0; -+ } -+ else -+ { rl_table_max ++; -+ output_plain(rl_basecode+count-2); -+ count = 0; -+ } -+ if (out_count == 0) n = 1; else n ++; -+ } -+ reset_out_clear(); -+ if (VERBOSE) printf("rl_flush_fromclear leaving table_max=%d\n",rl_table_max); -+} -+ -+static void rl_flush_clearorrep(int count) -+{ -+ int withclr; -+ -+ if (VERBOSE) printf("rl_flush_clearorrep %d\n",count); -+ withclr = 1 + compute_triangle_count(count,max_ocodes); -+ if (withclr < count) -+ { output(code_clear); -+ did_clear(); -+ rl_flush_fromclear(count); -+ } -+ else -+ { for (;count>0;count--) output_plain(rl_pixel); -+ } -+} -+ -+static void rl_flush_withtable(int count) -+{ -+ int repmax; -+ int repleft; -+ int leftover; -+ -+ if (VERBOSE) printf("rl_flush_withtable %d\n",count); -+ repmax = count / rl_table_max; -+ leftover = count % rl_table_max; -+ repleft = (leftover ? 1 : 0); -+ if (out_count+repmax+repleft > max_ocodes) -+ { repmax = max_ocodes - out_count; -+ leftover = count - (repmax * rl_table_max); -+ repleft = 1 + compute_triangle_count(leftover,max_ocodes); -+ } -+ if (VERBOSE) printf("rl_flush_withtable repmax=%d leftover=%d repleft=%d\n",repmax,leftover,repleft); -+ if (1+compute_triangle_count(count,max_ocodes) < repmax+repleft) -+ { output(code_clear); -+ did_clear(); -+ rl_flush_fromclear(count); -+ return; -+ } -+ max_out_clear(); -+ for (;repmax>0;repmax--) output_plain(rl_basecode+rl_table_max-2); -+ if (leftover) -+ { if (just_cleared) -+ { rl_flush_fromclear(leftover); -+ } -+ else if (leftover == 1) -+ { output_plain(rl_pixel); -+ } -+ else -+ { output_plain(rl_basecode+leftover-2); -+ } -+ } -+ reset_out_clear(); -+} -+ -+static void rl_flush(void) -+{ -+ /* UNUSED int table_reps; */ -+ /* UNUSED int table_extra; */ -+ -+ if (VERBOSE) printf("rl_flush [ %d %d\n",rl_count,rl_pixel); -+ if (rl_count == 1) -+ { output_plain(rl_pixel); -+ rl_count = 0; -+ if (VERBOSE) printf("rl_flush ]\n"); -+ return; -+ } -+ if (just_cleared) -+ { rl_flush_fromclear(rl_count); -+ } -+ else if ((rl_table_max < 2) || (rl_table_pixel != rl_pixel)) -+ { rl_flush_clearorrep(rl_count); -+ } -+ else -+ { rl_flush_withtable(rl_count); -+ } -+ if (VERBOSE) printf("rl_flush ]\n"); -+ rl_count = 0; -+} -+ -+static void GIFcompress(int init_bits, gdIOCtx *outfile, gdImagePtr im) -+{ -+ int c; -+ -+ ofile = outfile; -+ obuf = 0; -+ obits = 0; -+ oblen = 0; -+ code_clear = 1 << (init_bits - 1); -+ code_eof = code_clear + 1; -+ rl_basecode = code_eof + 1; -+ out_bump_init = (1 << (init_bits - 1)) - 1; -+ /* for images with a lot of runs, making out_clear_init larger will -+ give better compression. */ -+ out_clear_init = (init_bits <= 3) ? 9 : (out_bump_init-1); -+#ifdef DEBUGGING_ENVARS -+ { const char *ocienv; -+ ocienv = getenv("GIF_OUT_CLEAR_INIT"); -+ if (ocienv) -+ { out_clear_init = atoi(ocienv); -+ if (VERBOSE) printf("[overriding out_clear_init to %d]\n",out_clear_init); -+ } -+ } -+#endif -+ out_bits_init = init_bits; -+ max_ocodes = (1 << GIFBITS) - ((1 << (out_bits_init - 1)) + 3); -+ did_clear(); -+ output(code_clear); -+ rl_count = 0; -+ while (1) -+ { c = GIFNextPixel(im); -+ if ((rl_count > 0) && (c != rl_pixel)) rl_flush(); -+ if (c == EOF) break; -+ if (rl_pixel == c) -+ { rl_count ++; -+ } -+ else -+ { rl_pixel = c; -+ rl_count = 1; -+ } -+ } -+ output(code_eof); -+ output_flush(); -+} -+ -+/*----------------------------------------------------------------------- -+ * -+ * End of miGIF section - See copyright notice at start of section. -+ * -+ *----------------------------------------------------------------------- -+*/ -+ -+/****************************************************************************** -+ * -+ * GIF Specific routines -+ * -+ ******************************************************************************/ -+ -+/* -+ * Number of characters so far in this 'packet' -+ */ -+static int a_count; -+ -+/* -+ * Set up the 'byte output' routine -+ */ -+ -+/* UNUSED -+* static void -+* char_init(void) -+* { -+* a_count = 0; -+* } -+*/ -+ -+/* -+ * Define the storage for the packet accumulator -+ */ -+ -+/* UNUSED static char accum[ 256 ]; */ -+ -+static void init_statics(void) { -+ /* Some of these are properly initialized later. What I'm doing -+ here is making sure code that depends on C's initialization -+ of statics doesn't break when the code gets called more -+ than once. */ -+ Width = 0; -+ Height = 0; -+ curx = 0; -+ cury = 0; -+ CountDown = 0; -+ Pass = 0; -+ Interlace = 0; -+ a_count = 0; -+} -+ -+ -+/* +-------------------------------------------------------------------+ */ -+/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -+/* | Permission to use, copy, modify, and distribute this software | */ -+/* | and its documentation for any purpose and without fee is hereby | */ -+/* | granted, provided that the above copyright notice appear in all | */ -+/* | copies and that both that copyright notice and this permission | */ -+/* | notice appear in supporting documentation. This software is | */ -+/* | provided "as is" without express or implied warranty. | */ -+/* +-------------------------------------------------------------------+ */ -+ diff --git a/lang/php4/files/patch-ext::gd::libgd::gd_gif_out.c b/lang/php4/files/patch-ext::gd::libgd::gd_gif_out.c deleted file mode 100644 index b55a6c82c008..000000000000 --- a/lang/php4/files/patch-ext::gd::libgd::gd_gif_out.c +++ /dev/null @@ -1,73 +0,0 @@ ---- ext/gd/libgd/gd_gif_out.c.orig Sat Jun 28 15:47:56 2003 -+++ ext/gd/libgd/gd_gif_out.c Sat Jun 28 16:07:33 2003 -@@ -0,0 +1,70 @@ -+#include <stdio.h> -+#include <math.h> -+#include <string.h> -+#include <stdlib.h> -+#include "gd.h" -+ -+/* -+** Wrapper functions for GIF output. -+*/ -+ -+void gdImageGifToSink(gdImagePtr im, gdSinkPtr outSink) -+{ -+ gdIOCtx *out = gdNewSSCtx(NULL,outSink); -+ gdImageGifCtx(im, out); -+ out->gd_free(out); -+} -+ -+void gdImageGifCtx(gdImagePtr im, gdIOCtx *out) -+{ -+#ifdef LZW_LICENCED -+ gdImageLzwCtx(im, out); -+#else -+ gdImageBigGifCtx(im, out); -+#endif -+} -+ -+void gdImageGif(gdImagePtr im, FILE *outFile) -+{ -+#ifdef LZW_LICENCED -+ gdImageLzw(im, outFile); -+#else -+ gdImageBigGif(im, outFile); -+#endif -+} -+ -+void* gdImageGifPtr(gdImagePtr im, int *size) -+{ -+#ifdef LZW_LICENCED -+ return gdImageLzwPtr(im, size); -+#else -+ return gdImageBigGifPtr(im, size); -+#endif -+} -+ -+void gdImageGifAnimAddCtx(gdImagePtr im, gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+#ifdef LZW_LICENCED -+ gdImageLzwAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+#else -+ gdImageBigGifAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+#endif -+} -+ -+void gdImageGifAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+#ifdef LZW_LICENCED -+ gdImageLzwAnimAdd(im, outFile, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+#else -+ gdImageBigGifAnimAdd(im, outFile, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+#endif -+} -+ -+void *gdImageGifAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+#ifdef LZW_LICENCED -+ return gdImageLzwAnimAddPtr(im, size, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+#else -+ return gdImageBigGifAnimAddPtr(im, size, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+#endif -+} diff --git a/lang/php4/files/patch-ext::gd::libgd::gd_lzw_out.c b/lang/php4/files/patch-ext::gd::libgd::gd_lzw_out.c deleted file mode 100644 index 4371aa49d6b9..000000000000 --- a/lang/php4/files/patch-ext::gd::libgd::gd_lzw_out.c +++ /dev/null @@ -1,939 +0,0 @@ ---- ext/gd/libgd/gd_lzw_out.c.orig Sat Jun 28 15:47:56 2003 -+++ ext/gd/libgd/gd_lzw_out.c Sat Jun 28 16:01:04 2003 -@@ -0,0 +1,936 @@ -+#ifdef HAVE_MALLOC_H -+ #include <malloc.h> -+#endif -+#include <stdio.h> -+#include <math.h> -+#include <string.h> -+#include <stdlib.h> -+#include "gd.h" -+ -+/* Code drawn from ppmtogif.c, from the pbmplus package -+** -+** Based on GIFENCOD by David Rowley <mgardi@watdscu.waterloo.edu>. A -+** Lempel-Zim compression based on "compress". -+** -+** Modified by Marcel Wijkstra <wijkstra@fwi.uva.nl> -+** -+** Copyright (C) 1989 by Jef Poskanzer. -+** -+** Permission to use, copy, modify, and distribute this software and its -+** documentation for any purpose and without fee is hereby granted, provided -+** that the above copyright notice appear in all copies and that both that -+** copyright notice and this permission notice appear in supporting -+** documentation. This software is provided "as is" without express or -+** implied warranty. -+** -+** The Graphics Interchange Format(c) is the Copyright property of -+** CompuServe Incorporated. GIF(sm) is a Service Mark property of -+** CompuServe Incorporated. -+*/ -+ -+/* -+ * a code_int must be able to hold 2**GIFBITS values of type int, and also -1 -+ */ -+typedef int code_int; -+ -+#ifdef SIGNED_COMPARE_SLOW -+typedef unsigned long int count_int; -+typedef unsigned short int count_short; -+#else /*SIGNED_COMPARE_SLOW*/ -+typedef long int count_int; -+#endif /*SIGNED_COMPARE_SLOW*/ -+ -+static int colorstobpp(int colors); -+static void BumpPixel (void); -+static int GIFNextPixel (gdImagePtr im); -+static void GIFEncode (gdIOCtx *fp, int GWidth, int GHeight, int GInterlace, int Background, int Transparent, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im); -+static void GIFAnimEncode(gdIOCtx *fp, int IWidth, int IHeight, int LeftOfs, int TopOfs, int GInterlace, int Transparent, int Delay, int Disposal, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im); -+/*static void Putword (int w, gdIOCtx *fp); */ -+static void compress (int init_bits, gdIOCtx *outfile, gdImagePtr im); -+static void output (code_int code); -+static void cl_block (void); -+static void cl_hash (register count_int hsize); -+static void char_init (void); -+static void char_out (int c); -+static void flush_char (void); -+/* Allows for reuse */ -+static void init_statics(void); -+ -+void gdImageLzwCtx(gdImagePtr im, gdIOCtx *out) -+{ -+ int interlace, transparent, BitsPerPixel; -+ -+ interlace = im->interlace; -+ transparent = im->transparent; -+ -+ BitsPerPixel = colorstobpp(im->colorsTotal); -+ /* Clear any old values in statics strewn through the GIF code */ -+ init_statics(); -+ /* All set, let's do it. */ -+ GIFEncode( -+ out, im->sx, im->sy, interlace, 0, transparent, BitsPerPixel, -+ im->red, im->green, im->blue, im); -+} -+ -+void gdImageLzw(gdImagePtr im, FILE *outFile) -+{ -+ gdIOCtx *out = gdNewFileCtx(outFile); -+ gdImageLzwCtx(im, out); -+ out->gd_free(out); -+} -+ -+void* gdImageLzwPtr(gdImagePtr im, int *size) -+{ -+ void *rv; -+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL); -+ gdImageLzwCtx(im, out); -+ rv = gdDPExtractData(out,size); -+ out->gd_free(out); -+ return rv; -+} -+ -+void gdImageLzwAnimAddCtx(gdImagePtr im, gdIOCtx *out, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+ int interlace, transparent, BitsPerPixel; -+ -+ interlace = im->interlace; -+ transparent = im->transparent; -+ -+ BitsPerPixel = colorstobpp(im->colorsTotal); -+ /* Clear any old values in statics strewn through the GIF code */ -+ init_statics(); -+ /* All set, let's do it. */ -+ GIFAnimEncode( -+ out, im->sx, im->sy, LeftOfs, TopOfs, interlace, transparent, -+ Delay, Disposal, BitsPerPixel, -+ LocalCM > 0 ? im->red : 0, im->green, im->blue, im); -+} -+ -+void gdImageLzwAnimAdd(gdImagePtr im, FILE *outFile, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+ gdIOCtx *out = gdNewFileCtx(outFile); -+ gdImageLzwAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+ out->gd_free(out); -+} -+ -+void* gdImageLzwAnimAddPtr(gdImagePtr im, int *size, int LocalCM, int LeftOfs, int TopOfs, int Delay, int Disposal) -+{ -+ void *rv; -+ gdIOCtx *out = gdNewDynamicCtx(2048, NULL); -+ gdImageLzwAnimAddCtx(im, out, LocalCM, LeftOfs, TopOfs, Delay, Disposal); -+ rv = gdDPExtractData(out,size); -+ out->gd_free(out); -+ return rv; -+} -+ -+ -+ -+static int -+colorstobpp(int colors) -+{ -+ int bpp = 0; -+ -+ if ( colors <= 2 ) -+ bpp = 1; -+ else if ( colors <= 4 ) -+ bpp = 2; -+ else if ( colors <= 8 ) -+ bpp = 3; -+ else if ( colors <= 16 ) -+ bpp = 4; -+ else if ( colors <= 32 ) -+ bpp = 5; -+ else if ( colors <= 64 ) -+ bpp = 6; -+ else if ( colors <= 128 ) -+ bpp = 7; -+ else if ( colors <= 256 ) -+ bpp = 8; -+ return bpp; -+ } -+ -+/***************************************************************************** -+ * -+ * GIFENCODE.C - GIF Image compression interface -+ * -+ * GIFEncode( FName, GHeight, GWidth, GInterlace, Background, Transparent, -+ * BitsPerPixel, Red, Green, Blue, gdImagePtr ) -+ * -+ *****************************************************************************/ -+ -+#define TRUE 1 -+#define FALSE 0 -+ -+static int Width, Height; -+static int curx, cury; -+static long CountDown; -+static int Pass = 0; -+static int Interlace; -+ -+/* -+ * Bump the 'curx' and 'cury' to point to the next pixel -+ */ -+static void -+BumpPixel(void) -+{ -+ /* -+ * Bump the current X position -+ */ -+ ++curx; -+ -+ /* -+ * If we are at the end of a scan line, set curx back to the beginning -+ * If we are interlaced, bump the cury to the appropriate spot, -+ * otherwise, just increment it. -+ */ -+ if( curx == Width ) { -+ curx = 0; -+ -+ if( !Interlace ) -+ ++cury; -+ else { -+ switch( Pass ) { -+ -+ case 0: -+ cury += 8; -+ if( cury >= Height ) { -+ ++Pass; -+ cury = 4; -+ } -+ break; -+ -+ case 1: -+ cury += 8; -+ if( cury >= Height ) { -+ ++Pass; -+ cury = 2; -+ } -+ break; -+ -+ case 2: -+ cury += 4; -+ if( cury >= Height ) { -+ ++Pass; -+ cury = 1; -+ } -+ break; -+ -+ case 3: -+ cury += 2; -+ break; -+ } -+ } -+ } -+} -+ -+/* -+ * Return the next pixel from the image -+ */ -+static int -+GIFNextPixel(gdImagePtr im) -+{ -+ int r; -+ -+ if( CountDown == 0 ) -+ return EOF; -+ -+ --CountDown; -+ -+ r = gdImageGetPixel(im, curx, cury); -+ -+ BumpPixel(); -+ -+ return r; -+} -+ -+/* public */ -+ -+static void -+GIFEncode(gdIOCtx *fp, int GWidth, int GHeight, int GInterlace, int Background, int Transparent, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im) -+{ -+ int B; -+ int RWidth, RHeight; -+ int LeftOfs, TopOfs; -+ int Resolution; -+ int ColorMapSize; -+ int InitCodeSize; -+ int i; -+ -+ Interlace = GInterlace; -+ -+ ColorMapSize = 1 << BitsPerPixel; -+ -+ RWidth = Width = GWidth; -+ RHeight = Height = GHeight; -+ LeftOfs = TopOfs = 0; -+ -+ Resolution = BitsPerPixel; -+ -+ /* -+ * Calculate number of bits we are expecting -+ */ -+ CountDown = (long)Width * (long)Height; -+ -+ /* -+ * Indicate which pass we are on (if interlace) -+ */ -+ Pass = 0; -+ -+ /* -+ * The initial code size -+ */ -+ if( BitsPerPixel <= 1 ) -+ InitCodeSize = 2; -+ else -+ InitCodeSize = BitsPerPixel; -+ -+ /* -+ * Set up the current x and y position -+ */ -+ curx = cury = 0; -+ -+ /* -+ * Write the Magic header -+ */ -+ gdPutBuf( Transparent < 0 ? "GIF87a" : "GIF89a", 6, fp ); -+ -+ /* -+ * Write out the screen width and height -+ */ -+ Putword( RWidth, fp ); -+ Putword( RHeight, fp ); -+ -+ /* -+ * Indicate that there is a global colour map -+ */ -+ B = 0x80; /* Yes, there is a color map */ -+ -+ /* -+ * OR in the resolution -+ */ -+ B |= (Resolution - 1) << 5; -+ -+ /* -+ * OR in the Bits per Pixel -+ */ -+ B |= (BitsPerPixel - 1); -+ -+ /* -+ * Write it out -+ */ -+ gdPutC( B, fp ); -+ -+ /* -+ * Write out the Background colour -+ */ -+ gdPutC( Background, fp ); -+ -+ /* -+ * Byte of 0's (future expansion) -+ */ -+ gdPutC( 0, fp ); -+ -+ /* -+ * Write out the Global Colour Map -+ */ -+ for( i=0; i<ColorMapSize; ++i ) { -+ gdPutC( Red[i], fp ); -+ gdPutC( Green[i], fp ); -+ gdPutC( Blue[i], fp ); -+ } -+ -+ /* -+ * Write out extension for transparent colour index, if necessary. -+ */ -+ if ( Transparent >= 0 ) { -+ gdPutC( '!', fp ); -+ gdPutC( 0xf9, fp ); -+ gdPutC( 4, fp ); -+ gdPutC( 1, fp ); -+ gdPutC( 0, fp ); -+ gdPutC( 0, fp ); -+ gdPutC( (unsigned char) Transparent, fp ); -+ gdPutC( 0, fp ); -+ } -+ -+ /* -+ * Write an Image separator -+ */ -+ gdPutC( ',', fp ); -+ -+ /* -+ * Write the Image header -+ */ -+ -+ Putword( LeftOfs, fp ); -+ Putword( TopOfs, fp ); -+ Putword( Width, fp ); -+ Putword( Height, fp ); -+ -+ /* -+ * Write out whether or not the image is interlaced -+ */ -+ if( Interlace ) -+ gdPutC( 0x40, fp ); -+ else -+ gdPutC( 0x00, fp ); -+ -+ /* -+ * Write out the initial code size -+ */ -+ gdPutC( InitCodeSize, fp ); -+ -+ /* -+ * Go and actually compress the data -+ */ -+ compress( InitCodeSize+1, fp, im ); -+ -+ /* -+ * Write out a Zero-length packet (to end the series) -+ */ -+ gdPutC( 0, fp ); -+ -+ /* -+ * Write the GIF file terminator -+ */ -+ gdPutC( ';', fp ); -+} -+ -+static void -+GIFAnimEncode(gdIOCtx *fp, int IWidth, int IHeight, int LeftOfs, int TopOfs, int GInterlace, int Transparent, int Delay, int Disposal, int BitsPerPixel, int *Red, int *Green, int *Blue, gdImagePtr im) -+{ -+ int ColorMapSize; -+ int InitCodeSize; -+ int i; -+ -+ if (LeftOfs < 0) LeftOfs = 0; -+ if (TopOfs < 0) TopOfs = 0; -+ if (Delay < 0) Delay = 100; -+ if (Disposal < 0) Disposal = 2; -+ -+ Interlace = GInterlace; -+ -+ ColorMapSize = 1 << BitsPerPixel; -+ -+ Width = IWidth; -+ Height = IHeight; -+ -+ /* -+ * Calculate number of bits we are expecting -+ */ -+ CountDown = (long)Width * (long)Height; -+ -+ /* -+ * Indicate which pass we are on (if interlace) -+ */ -+ Pass = 0; -+ -+ /* -+ * The initial code size -+ */ -+ if( BitsPerPixel <= 1 ) -+ InitCodeSize = 2; -+ else -+ InitCodeSize = BitsPerPixel; -+ -+ /* -+ * Set up the current x and y position -+ */ -+ curx = cury = 0; -+ -+ /* -+ * Write out extension for image animation and looping -+ */ -+ gdPutC( '!', fp ); -+ gdPutC( 0xf9, fp ); -+ gdPutC( 4, fp ); -+ gdPutC( (Transparent >= 0 ? 1 : 0) -+ | (Disposal << 2), fp ); -+ gdPutC( (unsigned char)(Delay & 255), fp ); -+ gdPutC( (unsigned char)((Delay >> 8) & 255), fp ); -+ gdPutC( (unsigned char) Transparent, fp ); -+ gdPutC( 0, fp ); -+ -+ /* -+ * Write an Image separator -+ */ -+ gdPutC( ',', fp ); -+ -+ /* -+ * Write the Image header -+ */ -+ -+ Putword( LeftOfs, fp ); -+ Putword( TopOfs, fp ); -+ Putword( Width, fp ); -+ Putword( Height, fp ); -+ -+ /* -+ * Write out whether or not the image is interlaced -+ * and if it includes local colour map. -+ */ -+ gdPutC( (Interlace ? 0x40 : 0) -+ | (Red ? 0x80 : 0) -+ | (Red ? BitsPerPixel - 1 : 0), fp ); -+ -+ /* -+ * Write out the Local Colour Map -+ */ -+ if (Red) -+ for( i=0; i<ColorMapSize; ++i ) { -+ gdPutC( Red[i], fp ); -+ gdPutC( Green[i], fp ); -+ gdPutC( Blue[i], fp ); -+ } -+ -+ /* -+ * Write out the initial code size -+ */ -+ gdPutC( InitCodeSize, fp ); -+ -+ /* -+ * Go and actually compress the data -+ */ -+ compress( InitCodeSize+1, fp, im ); -+ -+ /* -+ * Write out a Zero-length packet (to end the series) -+ */ -+ gdPutC( 0, fp ); -+} -+ -+/* */ -+/* * Write out a word to the GIF file */ -+/* */ -+/*static void */ -+/*Putword(int w, FILE *fp) */ -+/*{ */ -+/* fputc( w & 0xff, fp ); */ -+/* fputc( (w / 256) & 0xff, fp ); */ -+/*} */ -+ -+ -+/*************************************************************************** -+ * -+ * GIFCOMPR.C - GIF Image compression routines -+ * -+ * Lempel-Ziv compression based on 'compress'. GIF modifications by -+ * David Rowley (mgardi@watdcsu.waterloo.edu) -+ * -+ ***************************************************************************/ -+ -+/* -+ * General DEFINEs -+ */ -+ -+#define GIFBITS 12 -+ -+#define HSIZE 5003 /* 80% occupancy */ -+ -+#ifdef NO_UCHAR -+ typedef char char_type; -+#else /*NO_UCHAR*/ -+ typedef unsigned char char_type; -+#endif /*NO_UCHAR*/ -+ -+/* -+ * -+ * GIF Image compression - modified 'compress' -+ * -+ * Based on: compress.c - File compression ala IEEE Computer, June 1984. -+ * -+ * By Authors: Spencer W. Thomas (decvax!harpo!utah-cs!utah-gr!thomas) -+ * Jim McKie (decvax!mcvax!jim) -+ * Steve Davies (decvax!vax135!petsd!peora!srd) -+ * Ken Turkowski (decvax!decwrl!turtlevax!ken) -+ * James A. Woods (decvax!ihnp4!ames!jaw) -+ * Joe Orost (decvax!vax135!petsd!joe) -+ * -+ */ -+#include <ctype.h> -+ -+#define ARGVAL() (*++(*argv) || (--argc && *++argv)) -+ -+static int n_bits; /* number of bits/code */ -+static int maxbits = GIFBITS; /* user settable max # bits/code */ -+static code_int maxcode; /* maximum code, given n_bits */ -+static code_int maxmaxcode = (code_int)1 << GIFBITS; /* should NEVER generate this code */ -+#ifdef COMPATIBLE /* But wrong! */ -+# define MAXCODE(n_bits) ((code_int) 1 << (n_bits) - 1) -+#else /*COMPATIBLE*/ -+# define MAXCODE(n_bits) (((code_int) 1 << (n_bits)) - 1) -+#endif /*COMPATIBLE*/ -+ -+static count_int htab [HSIZE]; -+static unsigned short codetab [HSIZE]; -+#define HashTabOf(i) htab[i] -+#define CodeTabOf(i) codetab[i] -+ -+static code_int hsize = HSIZE; /* for dynamic table sizing */ -+ -+/* -+ * To save much memory, we overlay the table used by compress() with those -+ * used by decompress(). The tab_prefix table is the same size and type -+ * as the codetab. The tab_suffix table needs 2**GIFBITS characters. We -+ * get this from the beginning of htab. The output stack uses the rest -+ * of htab, and contains characters. There is plenty of room for any -+ * possible stack (stack used to be 8000 characters). -+ */ -+ -+#define tab_prefixof(i) CodeTabOf(i) -+#define tab_suffixof(i) ((char_type*)(htab))[i] -+#define de_stack ((char_type*)&tab_suffixof((code_int)1<<GIFBITS)) -+ -+static code_int free_ent = 0; /* first unused entry */ -+ -+/* -+ * block compression parameters -- after all codes are used up, -+ * and compression rate changes, start over. -+ */ -+static int clear_flg = 0; -+ -+static int offset; -+static long int in_count = 1; /* length of input */ -+static long int out_count = 0; /* # of codes output (for debugging) */ -+ -+/* -+ * compress stdin to stdout -+ * -+ * Algorithm: use open addressing double hashing (no chaining) on the -+ * prefix code / next character combination. We do a variant of Knuth's -+ * algorithm D (vol. 3, sec. 6.4) along with G. Knott's relatively-prime -+ * secondary probe. Here, the modular division first probe is gives way -+ * to a faster exclusive-or manipulation. Also do block compression with -+ * an adaptive reset, whereby the code table is cleared when the compression -+ * ratio decreases, but after the table fills. The variable-length output -+ * codes are re-sized at this point, and a special CLEAR code is generated -+ * for the decompressor. Late addition: construct the table according to -+ * file size for noticeable speed improvement on small files. Please direct -+ * questions about this implementation to ames!jaw. -+ */ -+ -+static int g_init_bits; -+static gdIOCtx* g_outfile; -+ -+static int ClearCode; -+static int EOFCode; -+ -+static void -+compress(int init_bits, gdIOCtx *outfile, gdImagePtr im) -+{ -+ register long fcode; -+ register code_int i /* = 0 */; -+ register int c; -+ register code_int ent; -+ register code_int disp; -+ register code_int hsize_reg; -+ register int hshift; -+ -+ /* -+ * Set up the globals: g_init_bits - initial number of bits -+ * g_outfile - pointer to output file -+ */ -+ g_init_bits = init_bits; -+ g_outfile = outfile; -+ -+ /* -+ * Set up the necessary values -+ */ -+ offset = 0; -+ out_count = 0; -+ clear_flg = 0; -+ in_count = 1; -+ maxcode = MAXCODE(n_bits = g_init_bits); -+ -+ ClearCode = (1 << (init_bits - 1)); -+ EOFCode = ClearCode + 1; -+ free_ent = ClearCode + 2; -+ -+ char_init(); -+ -+ ent = GIFNextPixel( im ); -+ -+ hshift = 0; -+ for ( fcode = (long) hsize; fcode < 65536L; fcode *= 2L ) -+ ++hshift; -+ hshift = 8 - hshift; /* set hash code range bound */ -+ -+ hsize_reg = hsize; -+ cl_hash( (count_int) hsize_reg); /* clear hash table */ -+ -+ output( (code_int)ClearCode ); -+ -+#ifdef SIGNED_COMPARE_SLOW -+ while ( (c = GIFNextPixel( im )) != (unsigned) EOF ) { -+#else /*SIGNED_COMPARE_SLOW*/ -+ while ( (c = GIFNextPixel( im )) != EOF ) { /* } */ -+#endif /*SIGNED_COMPARE_SLOW*/ -+ -+ ++in_count; -+ -+ fcode = (long) (((long) c << maxbits) + ent); -+ i = (((code_int)c << hshift) ^ ent); /* xor hashing */ -+ -+ if ( HashTabOf (i) == fcode ) { -+ ent = CodeTabOf (i); -+ continue; -+ } else if ( (long)HashTabOf (i) < 0 ) /* empty slot */ -+ goto nomatch; -+ disp = hsize_reg - i; /* secondary hash (after G. Knott) */ -+ if ( i == 0 ) -+ disp = 1; -+probe: -+ if ( (i -= disp) < 0 ) -+ i += hsize_reg; -+ -+ if ( HashTabOf (i) == fcode ) { -+ ent = CodeTabOf (i); -+ continue; -+ } -+ if ( (long)HashTabOf (i) > 0 ) -+ goto probe; -+nomatch: -+ output ( (code_int) ent ); -+ ++out_count; -+ ent = c; -+#ifdef SIGNED_COMPARE_SLOW -+ if ( (unsigned) free_ent < (unsigned) maxmaxcode) { -+#else /*SIGNED_COMPARE_SLOW*/ -+ if ( free_ent < maxmaxcode ) { /* } */ -+#endif /*SIGNED_COMPARE_SLOW*/ -+ CodeTabOf (i) = free_ent++; /* code -> hashtable */ -+ HashTabOf (i) = fcode; -+ } else -+ cl_block(); -+ } -+ /* -+ * Put out the final code. -+ */ -+ output( (code_int)ent ); -+ ++out_count; -+ output( (code_int) EOFCode ); -+} -+ -+/***************************************************************** -+ * TAG( output ) -+ * -+ * Output the given code. -+ * Inputs: -+ * code: A n_bits-bit integer. If == -1, then EOF. This assumes -+ * that n_bits =< (long)wordsize - 1. -+ * Outputs: -+ * Outputs code to the file. -+ * Assumptions: -+ * Chars are 8 bits long. -+ * Algorithm: -+ * Maintain a GIFBITS character long buffer (so that 8 codes will -+ * fit in it exactly). Use the VAX insv instruction to insert each -+ * code in turn. When the buffer fills up empty it and start over. -+ */ -+ -+static unsigned long cur_accum = 0; -+static int cur_bits = 0; -+ -+static unsigned long masks[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, -+ 0x001F, 0x003F, 0x007F, 0x00FF, -+ 0x01FF, 0x03FF, 0x07FF, 0x0FFF, -+ 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; -+ -+static void -+output(code_int code) -+{ -+ cur_accum &= masks[ cur_bits ]; -+ -+ if( cur_bits > 0 ) -+ cur_accum |= ((long)code << cur_bits); -+ else -+ cur_accum = code; -+ -+ cur_bits += n_bits; -+ -+ while( cur_bits >= 8 ) { -+ char_out( (unsigned int)(cur_accum & 0xff) ); -+ cur_accum >>= 8; -+ cur_bits -= 8; -+ } -+ -+ /* -+ * If the next entry is going to be too big for the code size, -+ * then increase it, if possible. -+ */ -+ if ( free_ent > maxcode || clear_flg ) { -+ -+ if( clear_flg ) { -+ -+ maxcode = MAXCODE (n_bits = g_init_bits); -+ clear_flg = 0; -+ -+ } else { -+ -+ ++n_bits; -+ if ( n_bits == maxbits ) -+ maxcode = maxmaxcode; -+ else -+ maxcode = MAXCODE(n_bits); -+ } -+ } -+ -+ if( code == EOFCode ) { -+ /* -+ * At EOF, write the rest of the buffer. -+ */ -+ while( cur_bits > 0 ) { -+ char_out( (unsigned int)(cur_accum & 0xff) ); -+ cur_accum >>= 8; -+ cur_bits -= 8; -+ } -+ -+ flush_char(); -+ -+/* fflush( g_outfile ); */ -+/* */ -+/* if( ferror( g_outfile ) ) */ -+/* return; */ -+ } -+} -+ -+/* -+ * Clear out the hash table -+ */ -+static void -+cl_block (void) /* table clear for block compress */ -+{ -+ -+ cl_hash ( (count_int) hsize ); -+ free_ent = ClearCode + 2; -+ clear_flg = 1; -+ -+ output( (code_int)ClearCode ); -+} -+ -+static void -+cl_hash(register count_int hsize) /* reset code table */ -+ -+{ -+ -+ register count_int *htab_p = htab+hsize; -+ -+ register long i; -+ register long m1 = -1; -+ -+ i = hsize - 16; -+ do { /* might use Sys V memset(3) here */ -+ *(htab_p-16) = m1; -+ *(htab_p-15) = m1; -+ *(htab_p-14) = m1; -+ *(htab_p-13) = m1; -+ *(htab_p-12) = m1; -+ *(htab_p-11) = m1; -+ *(htab_p-10) = m1; -+ *(htab_p-9) = m1; -+ *(htab_p-8) = m1; -+ *(htab_p-7) = m1; -+ *(htab_p-6) = m1; -+ *(htab_p-5) = m1; -+ *(htab_p-4) = m1; -+ *(htab_p-3) = m1; -+ *(htab_p-2) = m1; -+ *(htab_p-1) = m1; -+ htab_p -= 16; -+ } while ((i -= 16) >= 0); -+ -+ for ( i += 16; i > 0; --i ) -+ *--htab_p = m1; -+} -+ -+/****************************************************************************** -+ * -+ * GIF Specific routines -+ * -+ ******************************************************************************/ -+ -+/* -+ * Number of characters so far in this 'packet' -+ */ -+static int a_count; -+ -+/* -+ * Set up the 'byte output' routine -+ */ -+static void -+char_init(void) -+{ -+ a_count = 0; -+} -+ -+/* -+ * Define the storage for the packet accumulator -+ */ -+static char accum[ 256 ]; -+ -+/* -+ * Add a character to the end of the current packet, and if it is 254 -+ * characters, flush the packet to disk. -+ */ -+static void -+char_out(int c) -+{ -+ accum[ a_count++ ] = c; -+ if( a_count >= 254 ) -+ flush_char(); -+} -+ -+/* -+ * Flush the packet to disk, and reset the accumulator -+ */ -+static void -+flush_char(void) -+{ -+ if( a_count > 0 ) { -+ gdPutC( a_count, g_outfile ); -+ gdPutBuf( accum, a_count, g_outfile ); -+ a_count = 0; -+ } -+} -+ -+static void init_statics(void) { -+ /* Some of these are properly initialized later. What I'm doing -+ here is making sure code that depends on C's initialization -+ of statics doesn't break when the code gets called more -+ than once. */ -+ Width = 0; -+ Height = 0; -+ curx = 0; -+ cury = 0; -+ CountDown = 0; -+ Pass = 0; -+ Interlace = 0; -+ a_count = 0; -+ cur_accum = 0; -+ cur_bits = 0; -+ g_init_bits = 0; -+ g_outfile = 0; -+ ClearCode = 0; -+ EOFCode = 0; -+ free_ent = 0; -+ clear_flg = 0; -+ offset = 0; -+ in_count = 1; -+ out_count = 0; -+ hsize = HSIZE; -+ n_bits = 0; -+ maxbits = GIFBITS; -+ maxcode = 0; -+ maxmaxcode = (code_int)1 << GIFBITS; -+} -+ -+ -+/* +-------------------------------------------------------------------+ */ -+/* | Copyright 1990, 1991, 1993, David Koblas. (koblas@netcom.com) | */ -+/* | Permission to use, copy, modify, and distribute this software | */ -+/* | and its documentation for any purpose and without fee is hereby | */ -+/* | granted, provided that the above copyright notice appear in all | */ -+/* | copies and that both that copyright notice and this permission | */ -+/* | notice appear in supporting documentation. This software is | */ -+/* | provided "as is" without express or implied warranty. | */ -+/* +-------------------------------------------------------------------+ */ diff --git a/lang/php4/files/patch-ext::gd::php_gd.h b/lang/php4/files/patch-ext::gd::php_gd.h deleted file mode 100644 index c4b8dc8462f7..000000000000 --- a/lang/php4/files/patch-ext::gd::php_gd.h +++ /dev/null @@ -1,21 +0,0 @@ ---- ext/gd/php_gd.h.orig Mon Mar 31 10:49:30 2003 -+++ ext/gd/php_gd.h Sat Jun 28 15:47:56 2003 -@@ -40,6 +40,8 @@ - #define PHP_GDIMG_TYPE_GD 8 - #define PHP_GDIMG_TYPE_GD2 9 - #define PHP_GDIMG_TYPE_GD2PART 10 -+#define PHP_GDIMG_TYPE_GIFANIMBEGIN 11 -+#define PHP_GDIMG_TYPE_GIFANIMADD 12 - - #ifdef PHP_WIN32 - #define PHP_GD_API __declspec(dllexport) -@@ -137,6 +139,9 @@ - PHP_FUNCTION(imagefontheight); - - PHP_FUNCTION(imagegif ); -+PHP_FUNCTION(imagegifanimbegin); -+PHP_FUNCTION(imagegifanimadd); -+PHP_FUNCTION(imagegifanimend); - PHP_FUNCTION(imagejpeg ); - PHP_FUNCTION(imagepng); - PHP_FUNCTION(imagewbmp); diff --git a/lang/php4/files/patch-ext::mssql::php_mssql.c b/lang/php4/files/patch-ext::mssql::php_mssql.c deleted file mode 100644 index 40ec852b4dad..000000000000 --- a/lang/php4/files/patch-ext::mssql::php_mssql.c +++ /dev/null @@ -1,11 +0,0 @@ ---- ext/mssql/php_mssql.c.orig Wed Apr 21 01:31:39 2004 -+++ ext/mssql/php_mssql.c Tue Jun 8 15:19:55 2004 -@@ -336,7 +336,7 @@ - dbsetlogintime(MS_SQL_G(connect_timeout)); - if (MS_SQL_G(timeout) < 0) MS_SQL_G(timeout) = 60; - dbsettime(MS_SQL_G(timeout)); -- dbsetmaxprocs((SHORT)MS_SQL_G(max_procs)); -+ dbsetmaxprocs((TDS_SHORT)MS_SQL_G(max_procs)); - - return SUCCESS; - } diff --git a/lang/php4/files/patch-ext::mssql::php_mssql.h b/lang/php4/files/patch-ext::mssql::php_mssql.h deleted file mode 100644 index a624d918a819..000000000000 --- a/lang/php4/files/patch-ext::mssql::php_mssql.h +++ /dev/null @@ -1,13 +0,0 @@ ---- ext/mssql/php_mssql.h.orig Tue Jun 8 11:24:27 2004 -+++ ext/mssql/php_mssql.h Tue Jun 8 11:23:39 2004 -@@ -37,9 +37,7 @@ - #include "sqldb.h" - - #if HAVE_FREETDS --#ifndef SHORT --typedef short SHORT; --#endif -+typedef short TDS_SHORT; - #define SQLTEXT SYBTEXT - #define SQLCHAR SYBCHAR - #define SQLVARCHAR SYBVARCHAR diff --git a/lang/php4/files/patch-main::php_config.h.in b/lang/php4/files/patch-main::php_config.h.in index 678defab7f25..3ae3854baa43 100644 --- a/lang/php4/files/patch-main::php_config.h.in +++ b/lang/php4/files/patch-main::php_config.h.in @@ -1,12 +1,12 @@ ---- main/php_config.h.in.orig Thu Jun 19 00:06:40 2003 -+++ main/php_config.h.in Sat Jun 28 15:47:56 2003 -@@ -1523,6 +1523,9 @@ - #undef HAVE_GD_GIF_CREATE +--- main/php_config.h.in.orig Tue Jul 6 16:37:01 2004 ++++ main/php_config.h.in Tue Jul 6 16:40:24 2004 +@@ -2452,6 +2452,9 @@ + /* Whether to build zip as dynamic module */ + #undef COMPILE_DL_ZIP - /* */ -+#undef HAVE_GD_GIF_ANIM ++/* Include external shared modules configurations */ ++#include "ext/php_config.h" + -+/* */ - #undef HAVE_GD_WBMP + /* Whether sprintf is broken */ + #undef ZEND_BROKEN_SPRINTF - /* */ diff --git a/lang/php4/files/patch-pear::scripts::pearcmd.php b/lang/php4/files/patch-pear::scripts::pearcmd.php index 642fc7e118a1..ec3bf13f8645 100644 --- a/lang/php4/files/patch-pear::scripts::pearcmd.php +++ b/lang/php4/files/patch-pear::scripts::pearcmd.php @@ -1,17 +1,19 @@ --- pear/scripts/pearcmd.php.orig Fri May 16 17:31:37 2003 +++ pear/scripts/pearcmd.php Fri May 16 17:36:10 2003 @@ -1,3 +1,4 @@ -+#!%%PREFIX%%/bin/php -n -dsafe_mode=0 -doutput_buffering=1 ++#!%%PREFIX%%/bin/php -n -q -dsafe_mode=0 -doutput_buffering=1 <?php // // +----------------------------------------------------------------------+ -@@ -24,9 +25,7 @@ +@@ -24,9 +25,9 @@ /** * @nodep Gtk */ -if ('@include_path@' != '@'.'include_path'.'@') { - ini_set('include_path', '@include_path@'); -} ++dl('pcre.so'); ++dl('xml.so'); +ini_set('include_path', '%%PREFIX%%/share/pear:%%PREFIX%%/share/pear/bootstrap'); ini_set('allow_url_fopen', true); set_time_limit(0); diff --git a/lang/php4/files/patch-scripts::Makefile.frag b/lang/php4/files/patch-scripts::Makefile.frag index 41071ae08901..6a3f941cb2ff 100644 --- a/lang/php4/files/patch-scripts::Makefile.frag +++ b/lang/php4/files/patch-scripts::Makefile.frag @@ -1,11 +1,17 @@ ---- scripts/Makefile.frag.orig Mon Jun 28 10:35:58 2004 -+++ scripts/Makefile.frag Mon Jun 28 10:36:57 2004 -@@ -31,6 +31,8 @@ - ext/xml \ - ext/xml/expat \ +--- scripts/Makefile.frag.orig Wed Jul 7 13:15:53 2004 ++++ scripts/Makefile.frag Wed Jul 7 13:16:07 2004 +@@ -27,14 +27,7 @@ + Zend \ + TSRM \ + ext/standard \ +- ext/session \ +- ext/xml \ +- ext/xml/expat \ main \ -+ ext/gd \ -+ ext/gd/libgd \ - ext/mbstring \ - ext/mbstring/libmbfl \ - ext/mbstring/libmbfl/mbfl \ +- ext/mbstring \ +- ext/mbstring/libmbfl \ +- ext/mbstring/libmbfl/mbfl \ +- ext/pgsql \ + regex + + install-headers: diff --git a/lang/php4/pkg-message b/lang/php4/pkg-message deleted file mode 100644 index f25442446668..000000000000 --- a/lang/php4/pkg-message +++ /dev/null @@ -1,18 +0,0 @@ -***************************************************************************** - -You have installed the php4 package. - -Have a look at the php4 port if you need additional extensions other than -CTYPE, MYSQL, OVERLOAD, PCRE, POSIX, SESSION, TOKENIZER, XML and ZLIB. - -You can find it at -ftp://ftp.freebsd.org/pub/FreeBSD/FreeBSD-current/ports/lang/php4.tar - -Make sure index.php is part of your DirectoryIndex. - -You should add the following to your Apache configuration file: - -AddType application/x-httpd-php .php -AddType application/x-httpd-php-source .phps - -***************************************************************************** diff --git a/lang/php4/pkg-message.mod b/lang/php4/pkg-message.mod new file mode 100644 index 000000000000..555f5b053ae8 --- /dev/null +++ b/lang/php4/pkg-message.mod @@ -0,0 +1,10 @@ +*************************************************************** + +Make sure index.php is part of your DirectoryIndex. + +You should add the following to your Apache configuration file: + +AddType application/x-httpd-php .php +AddType application/x-httpd-php-source .phps + +*************************************************************** diff --git a/lang/php4/pkg-message.pear b/lang/php4/pkg-message.pear new file mode 100644 index 000000000000..53827dba00cc --- /dev/null +++ b/lang/php4/pkg-message.pear @@ -0,0 +1,8 @@ +********************************************************* + +To use PEAR you have to add the correct include path into +your ${LOCALBASE}/etc/php.ini configuration file, like: + +include_path = ".:${PREFIX}/share/pear" + +********************************************************* diff --git a/lang/php4/pkg-plist b/lang/php4/pkg-plist index 714cf84eacf6..6123c9682e99 100644 --- a/lang/php4/pkg-plist +++ b/lang/php4/pkg-plist @@ -1,9 +1,10 @@ -%%CLI%%%%PEAR%%bin/pear %%CLI%%bin/php bin/php-config bin/phpextdist bin/phpize etc/php.conf +@exec touch %D/etc/php.ini +@unexec [ -s %D/etc/php.ini ] || rm %D/etc/php.ini etc/php.ini-dist etc/php.ini-recommended include/php/TSRM/TSRM.h @@ -58,43 +59,6 @@ include/php/Zend/zend_static_allocator.h include/php/Zend/zend_types.h include/php/Zend/zend_variables.h include/php/acconfig.h -include/php/ext/gd/gdcache.h -include/php/ext/gd/gdttf.h -include/php/ext/gd/libgd/gd.h -include/php/ext/gd/libgd/gd_io.h -include/php/ext/gd/libgd/gdcache.h -include/php/ext/gd/libgd/gdfontg.h -include/php/ext/gd/libgd/gdfontl.h -include/php/ext/gd/libgd/gdfontmb.h -include/php/ext/gd/libgd/gdfonts.h -include/php/ext/gd/libgd/gdfontt.h -include/php/ext/gd/libgd/gdhelpers.h -include/php/ext/gd/libgd/jisx0208.h -include/php/ext/gd/libgd/wbmp.h -include/php/ext/gd/php_gd.h -include/php/ext/mbstring/mbstring.h -include/php/ext/mbstring/php_mbregex.h -include/php/ext/mbstring/php_unicode.h -include/php/ext/mbstring/unicode_data.h -include/php/ext/mbstring/libmbfl/mbfl/mbfilter.h -include/php/ext/mbstring/libmbfl/mbfl/mbfilter_8bit.h -include/php/ext/mbstring/libmbfl/mbfl/mbfilter_pass.h -include/php/ext/mbstring/libmbfl/mbfl/mbfilter_wchar.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_allocators.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_consts.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_convert.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_defs.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_filter_output.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_ident.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_language.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.h -include/php/ext/mbstring/libmbfl/mbfl/mbfl_string.h -include/php/ext/pgsql/php_pgsql.h -include/php/ext/session/mod_files.h -include/php/ext/session/mod_mm.h -include/php/ext/session/mod_user.h -include/php/ext/session/php_session.h include/php/ext/standard/aggregation.h include/php/ext/standard/base64.h include/php/ext/standard/basic_functions.h @@ -153,19 +117,8 @@ include/php/ext/standard/uniqid.h include/php/ext/standard/url.h include/php/ext/standard/url_scanner.h include/php/ext/standard/url_scanner_ex.h -include/php/ext/xml/expat/ascii.h -include/php/ext/xml/expat/asciitab.h -include/php/ext/xml/expat/expat.h -include/php/ext/xml/expat/iasciitab.h -include/php/ext/xml/expat/internal.h -include/php/ext/xml/expat/latin1tab.h -include/php/ext/xml/expat/nametab.h -include/php/ext/xml/expat/utf8tab.h -include/php/ext/xml/expat/winconfig.h -include/php/ext/xml/expat/xmlrole.h -include/php/ext/xml/expat/xmltok.h -include/php/ext/xml/expat/xmltok_impl.h -include/php/ext/xml/php_xml.h +@exec touch %D/include/php/ext/php_config.h +@unexec [ -s %D/include/php/ext/php_config.h ] || rm %D/include/php/ext/php_config.h include/php/main/SAPI.h include/php/main/build-defs.h include/php/main/config.nw.h @@ -215,60 +168,12 @@ lib/php/build/shtool %%SAPI_FILE%% %%APACHE%%@exec %D/sbin/apxs -e -a -n php4 %f %%APACHE%%@unexec %D/sbin/apxs -e -A -n php4 %f -%%CLI%%%%PEAR%%share/pear/bootstrap/Archive/Tar.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR.php -%%CLI%%%%PEAR%%share/pear/bootstrap/System.php -%%CLI%%%%PEAR%%share/pear/bootstrap/Console/Getopt.php -%%CLI%%%%PEAR%%share/pear/bootstrap/OS/Guess.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Auth.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Build.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Common.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Config.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Install.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Mirror.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Package.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Registry.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command/Remote.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Autoloader.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Builder.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Command.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Common.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Config.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Dependency.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Downloader.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/ErrorStack.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Frontend/CLI.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Installer.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Packager.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Registry.php -%%CLI%%%%PEAR%%share/pear/bootstrap/PEAR/Remote.php -%%CLI%%%%PEAR%%share/pear/bootstrap/XML/RPC.php -%%CLI%%%%PEAR%%share/pear/bootstrap/XML/RPC/Server.php @dirrm include/php/TSRM @dirrm include/php/Zend -@dirrm include/php/ext/gd/libgd -@dirrm include/php/ext/gd -@dirrm include/php/ext/mbstring/libmbfl/mbfl -@dirrm include/php/ext/mbstring/libmbfl -@dirrm include/php/ext/mbstring -@dirrm include/php/ext/pgsql -@dirrm include/php/ext/session @dirrm include/php/ext/standard -@dirrm include/php/ext/xml/expat -@dirrm include/php/ext/xml -@dirrm include/php/ext +@unexec rmdir %D/include/php/ext 2> /dev/null || true @dirrm include/php/main @dirrm include/php/regex -@dirrm include/php/ +@unexec rmdir %D/include/php 2> /dev/null || true @dirrm lib/php/build @unexec rmdir %D/lib/php 2> /dev/null || true -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/Archive -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/Console -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/OS -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/PEAR/Command -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/PEAR/Frontend -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/PEAR -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/XML/RPC -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap/XML -%%CLI%%%%PEAR%%@dirrm share/pear/bootstrap -%%CLI%%%%PEAR%%@unexec rmdir %D/share/pear 2> /dev/null || true diff --git a/lang/php4/pkg-plist.pear b/lang/php4/pkg-plist.pear new file mode 100644 index 000000000000..f04740d29725 --- /dev/null +++ b/lang/php4/pkg-plist.pear @@ -0,0 +1,40 @@ +bin/pear +share/pear/bootstrap/Archive/Tar.php +share/pear/bootstrap/PEAR.php +share/pear/bootstrap/System.php +share/pear/bootstrap/Console/Getopt.php +share/pear/bootstrap/OS/Guess.php +share/pear/bootstrap/PEAR/Command/Auth.php +share/pear/bootstrap/PEAR/Command/Build.php +share/pear/bootstrap/PEAR/Command/Common.php +share/pear/bootstrap/PEAR/Command/Config.php +share/pear/bootstrap/PEAR/Command/Install.php +share/pear/bootstrap/PEAR/Command/Mirror.php +share/pear/bootstrap/PEAR/Command/Package.php +share/pear/bootstrap/PEAR/Command/Registry.php +share/pear/bootstrap/PEAR/Command/Remote.php +share/pear/bootstrap/PEAR/Autoloader.php +share/pear/bootstrap/PEAR/Builder.php +share/pear/bootstrap/PEAR/Command.php +share/pear/bootstrap/PEAR/Common.php +share/pear/bootstrap/PEAR/Config.php +share/pear/bootstrap/PEAR/Dependency.php +share/pear/bootstrap/PEAR/Downloader.php +share/pear/bootstrap/PEAR/ErrorStack.php +share/pear/bootstrap/PEAR/Frontend/CLI.php +share/pear/bootstrap/PEAR/Installer.php +share/pear/bootstrap/PEAR/Packager.php +share/pear/bootstrap/PEAR/Registry.php +share/pear/bootstrap/PEAR/Remote.php +share/pear/bootstrap/XML/RPC.php +share/pear/bootstrap/XML/RPC/Server.php +@dirrm share/pear/bootstrap/Archive +@dirrm share/pear/bootstrap/Console +@dirrm share/pear/bootstrap/OS +@dirrm share/pear/bootstrap/PEAR/Command +@dirrm share/pear/bootstrap/PEAR/Frontend +@dirrm share/pear/bootstrap/PEAR +@dirrm share/pear/bootstrap/XML/RPC +@dirrm share/pear/bootstrap/XML +@dirrm share/pear/bootstrap +@unexec rmdir %D/share/pear 2> /dev/null || true diff --git a/lang/php4/scripts/configure.php b/lang/php4/scripts/configure.php deleted file mode 100644 index 112483ef6d8d..000000000000 --- a/lang/php4/scripts/configure.php +++ /dev/null @@ -1,111 +0,0 @@ -#!/bin/sh -# $FreeBSD$ - -if [ -f ${WRKDIR}/Makefile.inc ]; then - exit -fi - -tempfile=`/usr/bin/mktemp -t checklist` - -if [ "${BATCH}" ]; then - echo "${SEL_OPTIONS}" > $tempfile -else - if [ -f "${OPTION_FILE}" ]; then - for i in `${CAT} ${OPTION_FILE}` - do - export $i - done - fi - /usr/bin/dialog --title "PHP configuration options" --clear --checklist "\n\ -Please select desired options:" -1 -1 16 \ -BCMATH "bc style precision math functions" ${WITH_BCMATH:-OFF} \ -BZIP2 "bzip2 library support" ${WITH_BZIP2:-OFF} \ -CALENDAR "calendar conversion support" ${WITH_CALENDAR:-OFF} \ -CDB "cdb database support (dba)" ${WITH_CDB:-OFF} \ -CRACK "crack support" ${WITH_CRACK:-OFF} \ -CTYPE "ctype functions" ${WITH_CTYPE:-OFF} \ -CURL "CURL support" ${WITH_CURL:-OFF} \ -DB4 "Berkeley DB4 support" ${WITH_DB4:-OFF} \ -DBASE "dBase library support" ${WITH_DBASE:-OFF} \ -DBX "dbx support" ${WITH_DBX:-OFF} \ -DIO "Direct I/O support" ${WITH_DIO:-OFF} \ -DOMXML "DOM support" ${WITH_DOMXML:-OFF} \ -DOMXSLT "DOM XSLT and EXSLT support (implies DOMXML)" ${WITH_DOMXSLT:-OFF} \ -EXIF "EXIF support" ${WITH_EXIF:-OFF} \ -FILEPRO "filePro support" ${WITH_FILEPRO:-OFF} \ -FRIBIDI "FriBidi support" ${WITH_FRIBIDI:-OFF} \ -FTP "FTP support" ${WITH_FTP:-OFF} \ -GD "GD library support" ${WITH_GD:-OFF} \ -GDBM "GDBM database support (dba)" ${WITH_GDBM:-OFF} \ -GETTEXT "gettext library support" ${WITH_GETTEXT:-OFF} \ -GMP "GNU MP support" ${WITH_GMP:-OFF} \ -HYPERWAVE "Hyperwave support" ${WITH_HYPERWAVE:-OFF} \ -ICONV "iconv support" ${WITH_ICONV:-OFF} \ -IMAP "IMAP support" ${WITH_IMAP:-OFF} \ -INIFILE "INI file support (dba)" ${WITH_INIFILE:-OFF} \ -INTERBASE "Interbase 6 database support (Firebird)" ${WITH_INTERBASE:-OFF} \ -MBSTRING "multibyte string support" ${WITH_MBSTRING:-OFF} \ -MCAL "Modular Calendar Access Library support" ${WITH_MCAL:-OFF} \ -MCVE "MCVE support (implies OPENSSL)" ${WITH_MCVE:-OFF} \ -MCRYPT "Encryption support" ${WITH_MCRYPT:-OFF} \ -MHASH "Crypto-hashing support" ${WITH_MHASH:-OFF} \ -MIME "mime_magic support" ${WITH_MIME:-OFF} \ -MING "ming shockwave flash support" ${WITH_MING:-OFF} \ -MNOGOSEARCH "mnoGoSearch support" ${WITH_MNOGOSEARCH:-OFF} \ -MSSQL "MS-SQL database support" ${WITH_MSSQL:-OFF} \ -MYSQL "MySQL database support" ${WITH_MYSQL:-OFF} \ -NCURSES "ncurses support (CLI only)" ${WITH_NCURSES:-OFF} \ -OPENLDAP "OpenLDAP support" ${WITH_OPENLDAP:-OFF} \ -OPENSSL "OpenSSL support" ${WITH_OPENSSL:-OFF} \ -ORACLE "Oracle support" ${WITH_ORACLE:-OFF} \ -OVERLOAD "user-space object overloading support" ${WITH_OVERLOAD:-OFF} \ -PCNTL "pcntl support (CLI only)" ${WITH_PCNTL:-OFF} \ -PCRE "Perl Compatible Regular Expression support" ${WITH_PCRE:-OFF} \ -POSIX "POSIX-like functions" ${WITH_POSIX:-OFF} \ -POSTGRESQL "PostgreSQL database support" ${WITH_POSTGRESQL:-OFF} \ -PSPELL "pspell support" ${WITH_PSPELL:-OFF} \ -READLINE "readline support (CLI only)" ${WITH_READLINE:-OFF} \ -RECODE "recode support" ${WITH_RECODE:-OFF} \ -SESSION "session support" ${WITH_SESSION:-OFF} \ -SHMOP "shmop support" ${WITH_SHMOP:-OFF} \ -SNMP "SNMP support (implies OPENSSL)" ${WITH_SNMP:-OFF} \ -SOCKETS "sockets support" ${WITH_SOCKETS:-OFF} \ -SYBASEDB "Sybase database support (DB-lib)" ${WITH_SYBASEDB:-OFF} \ -SYBASECT "Sybase database support (CT-lib)" ${WITH_SYBASECT:-OFF} \ -SYSVMSG "System V message support" ${WITH_SYSVMSG:-OFF} \ -SYSVSEM "System V semaphore support" ${WITH_SYSVSEM:-OFF} \ -SYSVSHM "System V shared memory support" ${WITH_SYSVSHM:-OFF} \ -TOKENIZER "tokenizer support" ${WITH_TOKENIZER:-OFF} \ -UNIXODBC "unixODBC support" ${WITH_UNIXODBC:-OFF} \ -WDDX "WDDX support (implies XML)" ${WITH_WDDX:-OFF} \ -XML "XML support" ${WITH_XML:-OFF} \ -XMLRPC "XMLRPC-EPI support" ${WITH_XMLRPC:-OFF} \ -XSLT "XSLT Sablotron support" ${WITH_XSLT:-OFF} \ -YAZ "YAZ support (ANSI/NISO Z39.50)" ${WITH_YAZ:-OFF} \ -YP "YP/NIS support" ${WITH_YP:-OFF} \ -ZIP "ZIP support" ${WITH_ZIP:-OFF} \ -ZLIB "ZLIB support" ${WITH_ZLIB:-OFF} \ -2> $tempfile -fi - -retval=$? - -if [ -s $tempfile ]; then - set `${CAT} $tempfile | ${SED} 's|"||g'` -fi -rm -f $tempfile - -case $retval in - 0) if [ -z "$*" ]; then - echo "Nothing selected" - fi - ;; - 1) echo "Cancel pressed." - exit 1 - ;; -esac -exec > ${WRKDIR}/Makefile.inc -while [ $1 ]; do - echo "WITH_$1=yes"; - shift -done diff --git a/lang/php4/scripts/php4_options b/lang/php4/scripts/php4_options deleted file mode 100644 index 762459bf7cc1..000000000000 --- a/lang/php4/scripts/php4_options +++ /dev/null @@ -1,67 +0,0 @@ -WITH_BCMATH=OFF -WITH_BZIP2=OFF -WITH_CALENDAR=OFF -WITH_CDB=OFF -WITH_CRACK=OFF -WITH_CTYPE=ON -WITH_CURL=OFF -WITH_DB4=OFF -WITH_DBASE=OFF -WITH_DBX=OFF -WITH_DIO=OFF -WITH_DOMXML=OFF -WITH_DOMXSLT=OFF -WITH_EXIF=OFF -WITH_FILEPRO=OFF -WITH_FRIBIDI=OFF -WITH_FTP=OFF -WITH_GD=OFF -WITH_GDBM=OFF -WITH_GETTEXT=OFF -WITH_GMP=OFF -WITH_HYPERWAVE=OFF -WITH_ICONV=OFF -WITH_IMAP=OFF -WITH_INIFILE=OFF -WITH_INTERBASE=OFF -WITH_MBSTRING=OFF -WITH_MCAL=OFF -WITH_MCVE=OFF -WITH_MCRYPT=OFF -WITH_MHASH=OFF -WITH_MIME=OFF -WITH_MING=OFF -WITH_MNOGOSEARCH=OFF -WITH_MSSQL=OFF -WITH_MYSQL=ON -WITH_NCURSES=OFF -WITH_OPENLDAP=OFF -WITH_OPENSSL=OFF -WITH_ORACLE=OFF -WITH_OVERLOAD=ON -WITH_PCNTL=OFF -WITH_PCRE=ON -WITH_POSIX=ON -WITH_POSTGRESQL=OFF -WITH_PSPELL=OFF -WITH_READLINE=OFF -WITH_RECODE=OFF -WITH_SESSION=ON -WITH_SHMOP=OFF -WITH_SNMP=OFF -WITH_SOCKETS=OFF -WITH_SYBASEDB=OFF -WITH_SYBASECT=OFF -WITH_SYSVMSG=OFF -WITH_SYSVSEM=OFF -WITH_SYSVSHM=OFF -WITH_TOKENIZER=ON -WITH_UNIXODBC=OFF -WITH_WDDX=OFF -WITH_XML=ON -WITH_XMLRPC=OFF -WITH_XSLT=OFF -WITH_YAZ=OFF -WITH_YP=OFF -WITH_ZIP=OFF -WITH_ZLIB=ON |