ports/89896: [PATCH] Add support for multiple versions of php

Melvyn Sopacua melvyn at melvyn.homeunix.org
Sat Dec 3 21:30:18 UTC 2005


>Number:         89896
>Category:       ports
>Synopsis:       [PATCH] Add support for multiple versions of php
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Dec 03 21:30:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Melvyn Sopacua
>Release:        FreeBSD 5.4-STABLE i386
>Organization:
>Environment:
System: FreeBSD sarevok.lan.melvyn.homeunix.org 5.4-STABLE FreeBSD 5.4-STABLE #3: Sun Nov 20 03:52:04 CET 2005 root at sarevok.lan.ginseng.game-server.cc:/usr/obj/usr/src/sys/GENERIC i386


	
>Description:
	Currently, only one version of php can be installed using ports. This patch
	adds support to install both php4 and php5 using the ports system, for people
	that know what they're doing(tm).
	While it is possible, to install a different version by yourself, this does
	not take advantage of the patches and research done by the ports maintainers as
	well as portaudit's security features.
>How-To-Repeat:
	Install php4 and try to install php5 with extensions.
>Fix:

	Using the following MAKE_ARGS in pkgtools.conf and provided patch it is now
	possible to have a 'stable' apache/php4 installation in ${LOCALBASE} and an
	'expirimental' installation in /usr/local/apache2. Very convenient for
	developers who want to test the code on their laptops by just changing the
	port number of the website :p

	MAKE_ARGS = {
	'*/php5-*'	=> [
				'DISABLE_CONFLICTS=yes',
				'PHP_PREFIX=/usr/local/apache2',
			],
	'lang/php5'	=> [
				'WITH_APACHE2=yes',
				'APXS=/usr/local/apache2/sbin/apxs',
				'PREFIX=/usr/local/apache2',
				'DISABLE_CONFLICTS=yes',
			],
	'www/apache2*'	=> [
				'DISABLE_CONFLICTS=yes',
				'PREFIX=/usr/local/apache2',
			],
	}

	Patch:
Index: bsd.php.mk
===================================================================
RCS file: /home/ncvs/ports/Mk/bsd.php.mk,v
retrieving revision 1.20
diff -u -r1.20 bsd.php.mk
--- bsd.php.mk	20 Nov 2005 20:35:40 -0000	1.20
+++ bsd.php.mk	3 Dec 2005 21:10:36 -0000
@@ -29,14 +29,20 @@
 # WANT_PHP_WEB=yes  - Want the Apache Module or the CGI version of PHP.
 # WANT_PHP_PEAR=yes - Want the PEAR framework.
 #
+# User tunable:
+# PHP_PREFIX        - Prefix for the used version of php. Defaults to $LOCALBASE
+# APACHE_PREFIX     - Prefix for apache. Defaults to $PHP_PREFIX
+#
 # You may combine multiple WANT_PHP_* knobs.
 # Don't specify any WANT_PHP_* knob if your port will work with every PHP SAPI.
 #
 
 PHP_Include_MAINTAINER=	ale at FreeBSD.org
+PHP_PREFIX?=${LOCALBASE}
+APACHE_PREFIX?=${PHP_PREFIX}
 
-.if exists(${LOCALBASE}/etc/php.conf)
-.include "${LOCALBASE}/etc/php.conf"
+.if exists(${PHP_PREFIX}/etc/php.conf)
+.include "${PHP_PREFIX}/etc/php.conf"
 .endif
 
 DEFAULT_PHP_VER?=	4
@@ -48,8 +54,8 @@
 .else
 PHP_EXT_DIR=	20041030
 .endif
-.if exists(${LOCALBASE}/include/apache2/httpd.h)
-APXS?=		${LOCALBASE}/sbin/apxs
+.if exists(${APACHE_PREFIX}/include/apache2/httpd.h)
+APXS?=		${APACHE_PREFIX}/sbin/apxs
 APACHE_MPM!=	${APXS} -q MPM_NAME
 .if ${APACHE_MPM} == "worker"
 PHP_EXT_DIR:=	${PHP_EXT_DIR}-zts
@@ -160,18 +166,18 @@
 .endif
 
 .if defined(USE_PHP_BUILD)
-BUILD_DEPENDS+=	${LOCALBASE}/include/php/main/php.h:${PHP_PORT}
+BUILD_DEPENDS+=	${PHP_PREFIX}/include/php/main/php.h:${PHP_PORT}
 .endif
-RUN_DEPENDS+=	${LOCALBASE}/include/php/main/php.h:${PHP_PORT}
+RUN_DEPENDS+=	${PHP_PREFIX}/include/php/main/php.h:${PHP_PORT}
 
 PLIST_SUB+=	PHP_EXT_DIR=${PHP_EXT_DIR}
 SUB_LIST+=	PHP_EXT_DIR=${PHP_EXT_DIR}
 
 .if defined(USE_PHPIZE) || defined(USE_PHPEXT)
-BUILD_DEPENDS+=	phpize:${PHP_PORT}
+BUILD_DEPENDS+=	${PHP_PREFIX}/bin/phpize:${PHP_PORT}
 GNU_CONFIGURE=	YES
 USE_AUTOTOOLS+=	autoconf:259:env
-CONFIGURE_ARGS+=--with-php-config=${LOCALBASE}/bin/php-config
+CONFIGURE_ARGS+=--with-php-config=${PHP_PREFIX}/bin/php-config
 
 configure-message: phpize-message do-phpize
 
@@ -179,12 +185,13 @@
 	@${ECHO_MSG} "===>  PHPizing for ${PKGNAME}"
 
 do-phpize:
-	@(cd ${WRKSRC}; ${SETENV} ${SCRIPTS_ENV} ${LOCALBASE}/bin/phpize)
+	@(cd ${WRKSRC}; ${SETENV} ${SCRIPTS_ENV} ${PHP_PREFIX}/bin/phpize)
 .endif
 
 .if defined(USE_PHPEXT)
 PHP_MODNAME?=	${PORTNAME}
 PHP_HEADER_DIRS?=	""
+PREFIX=${PHP_PREFIX}
 
 do-install:
 	@${MKDIR} ${PREFIX}/lib/php/${PHP_EXT_DIR}
@@ -341,9 +348,9 @@
 .		if ${_USE_PHP_VER${PHP_VER}:M${extension}} != ""
 .			if ${PHP_EXT_INC:M${extension}} == ""
 .				if defined(USE_PHP_BUILD)
-BUILD_DEPENDS+=	${LOCALBASE}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
+BUILD_DEPENDS+=	${PHP_PREFIX}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
 .				endif
-RUN_DEPENDS+=	${LOCALBASE}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
+RUN_DEPENDS+=	${PHP_PREFIX}/lib/php/${PHP_EXT_DIR}/${extension}.so:${PORTSDIR}/${${extension}_DEPENDS}
 .			endif
 .		else
 isyes=		${extension}
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list