ports/59418: [Maintainer Update] Port: PHP 4 (handling dependencies)

Alex Dupre sysadmin at alexdupre.com
Tue Nov 18 15:20:20 UTC 2003


>Number:         59418
>Category:       ports
>Synopsis:       [Maintainer Update] Port: PHP 4 (handling dependencies)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          maintainer-update
>Submitter-Id:   current-users
>Arrival-Date:   Tue Nov 18 07:20:15 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Alex Dupre
>Release:        FreeBSD 5.1-CURRENT i386
>Organization:
>Environment:
System: FreeBSD armada.alexdupre.com 5.1-CURRENT FreeBSD 5.1-CURRENT #0: Thu Nov 13 00:04:58 CET 2003 alex at armada.alexdupre.com:/usr/obj/usr/src/sys/ARMADA i386


	
>Description:
A completely new bsd.php.mk file for checking and selecting dependencies
on various php ports. The system is backward compatible and adds the
WANT_PHP_PEAR knob and support for PHP5 (lang/php5 will be updated in a
next PR). It works much better and is more flexible (a future addition will
be support for Apache 2 compiled with threads).
This is the last step before moving the bsd.php.mk file into /usr/ports/Mk
with the addition of USE_PHP={yes,4,5} global knob.

While I'm here, remove the DEBUG option from the extension list and change the
postgresql dependency.
	
>How-To-Repeat:
	
>Fix:

	

--- php4.diff begins here ---
diff -ruN php4.orig/Makefile php4/Makefile
--- php4.orig/Makefile	Tue Nov 18 11:32:52 2003
+++ php4/Makefile	Tue Nov 18 15:50:44 2003
@@ -21,7 +21,7 @@
 
 PORTNAME=	php4
 PORTVERSION=	4.3.4
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES?=	lang devel www
 MASTER_SITES=	http://www.php.net/distributions/:release \
 		http://it.php.net/distributions/:release \
@@ -87,6 +87,11 @@
 EXT_DIR=	20020429
 SAPI_FILE=	"@comment "
 
+.if defined(WITH_DEBUG)
+CONFIGURE_ARGS+=--enable-debug
+EXT_DIR:=	${EXT_DIR}-debug
+.endif
+
 CONFLICTS=	php4-cli-4* mod_php4-4* php4-cgi-4*
 .if defined(WITHOUT_APACHE)
 .if defined(WITHOUT_CLI)
@@ -125,7 +130,7 @@
 .endif
 
 ALL_OPTIONS=	BCMATH BZIP2 CALENDAR CDB CRACK CTYPE CURL DB4 DBASE DBX \
-		DEBUG DOMXML DOMXSLT EXIF FILEPRO FRIBIDI FTP GD GDBM GETTEXT \
+		DOMXML DOMXSLT EXIF FILEPRO FRIBIDI FTP GD GDBM GETTEXT \
 		GMP HYPERWAVE ICONV IMAP INTERBASE INIFILE MBSTRING MCAL MCVE \
 		MCRYPT MHASH MIME MING MNOGOSEARCH MYSQL NCURSES OPENLDAP \
 		OPENSSL ORACLE OVERLOAD PCNTL PCRE PDFLIB POSIX POSTGRESQL \
@@ -251,11 +256,6 @@
 CONFIGURE_ARGS+=--enable-dbx
 .endif
 
-.if defined(WITH_DEBUG)
-CONFIGURE_ARGS+=--enable-debug
-EXT_DIR:=${EXT_DIR}-debug
-.endif
-
 .if defined(WITH_DOMXML)
 LIB_DEPENDS+=	xml2.5:${PORTSDIR}/textproc/libxml2
 CONFIGURE_ARGS+=--with-dom=${LOCALBASE}
@@ -427,7 +427,7 @@
 .endif
 
 .if defined(WITH_POSTGRESQL)
-LIB_DEPENDS+=	pq.3:${PORTSDIR}/databases/postgresql7
+LIB_DEPENDS+=	pq.3:${PORTSDIR}/databases/postgresql7-client
 CONFIGURE_ARGS+=--with-pgsql=${LOCALBASE}
 .endif
 
@@ -626,13 +626,37 @@
 	@${ECHO_CMD} ""
 .endif
 
-.if !defined(WITHOUT_CLI)
 post-build:
+	@${ECHO_CMD} "PHP_VER=4" > ${WRKDIR}/php.conf
+	@${ECHO_CMD} "PHP_VERSION=${PORTVERSION}" >> ${WRKDIR}/php.conf
+	@${ECHO_CMD} "PHP_EXT_DIR=${EXT_DIR}" >> ${WRKDIR}/php.conf
+	@${ECHO_CMD} "PHP_PORT=${.CURDIR}" >> ${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})
@@ -644,6 +668,7 @@
 .endif
 	@${INSTALL_DATA} ${WRKSRC}/php.ini-dist ${PREFIX}/etc
 	@${INSTALL_DATA} ${WRKSRC}/php.ini-recommended ${PREFIX}/etc
+	@${INSTALL_DATA} ${WRKDIR}/php.conf ${PREFIX}/etc
 	@${TOUCH} ${PREFIX}/lib/php/${EXT_DIR}/.php
 .if !defined(WITHOUT_APACHE)
 	@${ECHO_CMD} "*****************************************************************************"
diff -ruN php4.orig/bsd.php.mk php4/bsd.php.mk
--- php4.orig/bsd.php.mk	Tue Nov 18 11:32:52 2003
+++ php4/bsd.php.mk	Tue Nov 18 15:49:39 2003
@@ -2,90 +2,128 @@
 #
 # The user/port can now set this options in the makefiles.
 #
-# USE_PHPIZE=yes   - Use to build a php extension.
-# WANT_PHP_CLI=yes - Want the CLI version of PHP.
-# WANT_PHP_CGI=yes - Want the CGI version of PHP.
-# WANT_PHP_MOD=yes - Want the Apache Module for PHP.
-# WANT_PHP_WEB=yes - Want the Apache Module or the CGI version of PHP.
+# USE_PHPIZE=yes    - Use to build a PHP extension.
+# WANT_PHP_CLI=yes  - Want the CLI version of PHP.
+# WANT_PHP_CGI=yes  - Want the CGI version of PHP.
+# WANT_PHP_MOD=yes  - Want the Apache Module for PHP.
+# WANT_PHP_WEB=yes  - Want the Apache Module or the CGI version of PHP.
+# WANT_PHP_PEAR=yes - Want the PEAR framework.
 #
 # You may combine multiple WANT_PHP_* knobs.
 # Don't specify any WANT_PHP_* knob if your port will work with every PHP SAPI.
 #
 
-.if exists(${LOCALBASE}/bin/php) && exists(${LOCALBASE}/bin/pear)
-HAVE_PHP_CLI=	yes
-HAVE_PHP=	yes
-PHP_PORT=	${PORTSDIR}/lang/php4-cli
-.endif
-.if exists(${LOCALBASE}/bin/php) && !exists(${LOCALBASE}/bin/pear)
-HAVE_PHP_CGI=	yes
-HAVE_PHP=	yes
-PHP_PORT=	${PORTSDIR}/www/php4-cgi
-.endif
-.if exists(${LOCALBASE}/libexec/apache/libphp4.so) || exists(${LOCALBASE}/libexec/apache2/libphp4.so)
-HAVE_PHP_MOD=	yes
-HAVE_PHP=	yes
-PHP_PORT=	${PORTSDIR}/www/mod_php4
-.endif
-.if defined(HAVE_PHP_CLI) && defined(HAVE_PHP_MOD)
-PHP_PORT=	${PORTSDIR}/lang/php4
-.endif
-
-.if defined(WANT_PHP_CGI) && (defined(WANT_PHP_CLI) || defined(WANT_PHP_MOD))
-.BEGIN:
-	@${ECHO_CMD} "The CGI version of PHP avoids the installation of other SAPIs."
-	@${ECHO_CMD} "Do not use WANT_PHP_CGI with other WANT_PHP_* knobs."
-	@${FALSE}
+.if exists(${LOCALBASE}/etc/php.conf)
+.include "${LOCALBASE}/etc/php.conf"
 .endif
 
-.if defined(WANT_PHP_CLI) && !defined(WANT_PHP_MOD)
-.if defined(HAVE_PHP) && !defined(HAVE_PHP_CLI)
-.BEGIN:
-	@${ECHO_CMD} "This port requires the CLI version of PHP, but you have already"
-	@${ECHO_CMD} "installed a conflicting PHP port without CLI."
-	@${FALSE}
+PHP_VER?=	4
+.if !defined(WITH_DEBUG)
+PHP_EXT_DIR?=	20020429
 .else
-PHP_PORT?=	${PORTSDIR}/lang/php4-cli
+PHP_EXT_DIR?=	20020429-debug
 .endif
+.if !defined(WITHOUT_PEAR)
+PHP_PEAR?=	yes
+.else
+PHP_PEAR?=	no
+.endif
+PHP_SAPI?=	""
+
+.if defined(BROKEN_WITH_PHP)
+.       for VER in ${BROKEN_WITH_PHP}
+.               if (${PHP_VER} == "${VER}")
+BROKEN=         "Doesn't work with PHP version : ${PHP_VER} (Doesn't support PHP ${BROKEN_WITH_PHP})"
+.               endif
+.       endfor
 .endif
 
 .if defined(WANT_PHP_WEB)
-.if defined(HAVE_PHP) && !defined(HAVE_PHP_CGI) && !defined(HAVE_PHP_MOD)
+.	if defined(WANT_PHP_CGI) || defined(WANT_PHP_MOD)
+.BEGIN:
+		@${ECHO_CMD} "If you define WANT_PHP_WEB you cannot set also WANT_PHP_CGI"
+		@${ECHO_CMD} "or WANT_PHP_MOD. Use only one of them."
+		@${FALSE}
+.	else
+.	if defined(PHP_VERSION) && ${PHP_SAPI} == "cli"
 .BEGIN:
-        @${ECHO_CMD} "This port requires the Apache Module or the CGI version of PHP, but you have"
-        @${ECHO_CMD} "already installed a conflicting PHP port without them."
-        @${FALSE}
+		@${ECHO_CMD} "This port requires the Apache Module or the CGI version of PHP, but you have"
+		@${ECHO_CMD} "already installed a conflicting PHP port without them."
+		@${FALSE}
+.	else
+.	if defined(WANT_PHP_CLI) || defined(WANT_PHP_PEAR)
+PHP_PORT?=	${PORTSDIR}/lang/php${PHP_VER}
+.	else
+PHP_PORT?=	${PORTSDIR}/www/mod_php${PHP_VER}
+PHP_PEAR?=	no
+.	endif
+.	endif
+.	endif
 .else
-PHP_PORT?=	${PORTSDIR}/www/mod_php4
-.endif
-.endif
 
 .if defined(WANT_PHP_CGI)
-.if defined(HAVE_PHP) && !defined(HAVE_PHP_CGI)
+.	if defined(WANT_PHP_CLI) || defined(WANT_PHP_MOD)
+.BEGIN:
+		@${ECHO_CMD} "The CGI version of PHP avoids the installation of other SAPIs."
+		@${ECHO_CMD} "Do not use WANT_PHP_CGI with other WANT_PHP_* knobs."
+		@${FALSE}
+.	else
+.	if defined(PHP_VERSION) && ${PHP_SAPI} != "cgi"
 .BEGIN:
-	@${ECHO_CMD} "This port requires the CGI version of PHP, but you have already"
-	@${ECHO_CMD} "installed a conflicting PHP port without CGI."
-	@${FALSE}
+		@${ECHO_CMD} "This port requires the CGI version of PHP, but you have already"
+		@${ECHO_CMD} "installed a conflicting PHP port without CGI."
+		@${FALSE}
+.	else
+PHP_PORT?=	${PORTSDIR}/www/php${PHP_VER}-cgi
+PHP_PEAR?=	no
+.	endif
+.	endif
+.else
+
+.if defined(WANT_PHP_CLI) && !defined(WANT_PHP_MOD)
+.	if defined(PHP_VERSION) && ${PHP_SAPI} != "full" && ${PHP_SAPI} != "cli"
+.BEGIN:
+		@${ECHO_CMD} "This port requires the CLI version of PHP, but you have already"
+		@${ECHO_CMD} "installed a conflicting PHP port without CLI."
+		@${FALSE}
+.	else
+PHP_PORT?=	${PORTSDIR}/lang/php${PHP_VER}-cli
+.	endif
 .else
-PHP_PORT?=	${PORTSDIR}/www/php4-cgi
-.endif
-.endif
 
-.if defined(WANT_PHP_MOD) && !defined(WANT_PHP_CLI)
-.if defined(HAVE_PHP) && !defined(HAVE_PHP_MOD)
+.if !defined(WANT_PHP_CLI) && defined(WANT_PHP_MOD)
+.	if defined(PHP_VERSION) && (${PHP_SAPI} != "full" && ${PHP_SAPI} != "mod")
 .BEGIN:
-	@${ECHO_CMD} "This port requires the Apache Module for PHP, but you have already"
-	@${ECHO_CMD} "installed a conflicting PHP port without the Apache Module."
-	@${FALSE}
+		@${ECHO_CMD} "This port requires the Apache Module for PHP, but you have already"
+		@${ECHO_CMD} "installed a conflicting PHP port without the Apache Module."
+		@${FALSE}
+.	else
+.	if defined(WANT_PHP_PEAR)
+PHP_PORT?=	${PORTSDIR}/lang/php${PHP_VER}
+.	else
+PHP_PORT?=	${PORTSDIR}/www/mod_php${PHP_VER}
+PHP_PEAR?=	no
+.	endif
+.	endif
 .else
-PHP_PORT?=	${PORTSDIR}/www/mod_php4
+
+PHP_PORT?=	${PORTSDIR}/lang/php${PHP_VER}
+
 .endif
+
+.endif
+
+.endif
+
+.endif
+
+.if defined(WANT_PHP_PEAR) && ${PHP_PEAR} == "no"
+BROKEN=	"This port requires the PEAR framework, but you have already" \
+	"installed a PHP port without PEAR"
 .endif
 
-PHP_PORT?=	${PORTSDIR}/lang/php4
 RUN_DEPENDS+=	${LOCALBASE}/include/php/main/php.h:${PHP_PORT}
 
-PHP_EXT_DIR?=	20020429
 PLIST_SUB+=	PHP_EXT_DIR=${PHP_EXT_DIR}
 
 .if defined(USE_PHPIZE)
diff -ruN php4.orig/pkg-plist php4/pkg-plist
--- php4.orig/pkg-plist	Tue Nov 18 11:32:52 2003
+++ php4/pkg-plist	Tue Nov 18 11:54:43 2003
@@ -3,6 +3,7 @@
 bin/php-config
 bin/phpextdist
 bin/phpize
+etc/php.conf
 etc/php.ini-dist
 etc/php.ini-recommended
 include/php/TSRM/TSRM.h
diff -ruN php4.orig/scripts/configure.php php4/scripts/configure.php
--- php4.orig/scripts/configure.php	Tue Nov 18 11:32:52 2003
+++ php4/scripts/configure.php	Tue Nov 18 11:34:54 2003
@@ -28,7 +28,6 @@
 DB4		"Berkeley DB4 support" ${WITH_DB4:-OFF} \
 DBASE		"dBase library support" ${WITH_DBASE:-OFF} \
 DBX		"dbx support" ${WITH_DBX:-OFF} \
-DEBUG		"debug support" ${WITH_DEBUG:-OFF} \
 DOMXML		"DOM support" ${WITH_DOMXML:-OFF} \
 DOMXSLT		"DOM XSLT and EXSLT support (implies DOMXML)" ${WITH_DOMXSLT:-OFF} \
 EXIF		"EXIF support" ${WITH_EXIF:-OFF} \
diff -ruN php4.orig/scripts/php4_options php4/scripts/php4_options
--- php4.orig/scripts/php4_options	Tue Nov 18 11:32:52 2003
+++ php4/scripts/php4_options	Tue Nov 18 11:35:01 2003
@@ -8,7 +8,6 @@
 WITH_DB4=OFF
 WITH_DBASE=OFF
 WITH_DBX=OFF
-WITH_DEBUG=OFF
 WITH_DOMXML=OFF
 WITH_DOMXSLT=OFF
 WITH_EXIF=OFF
--- php4.diff ends here ---



>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list