ports/157269: [PATCH] devel/pear: add support for autoplist and channels
Martin Matuska
mm at FreeBSD.org
Mon May 23 12:30:12 UTC 2011
>Number: 157269
>Category: ports
>Synopsis: [PATCH] devel/pear: add support for autoplist and channels
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Mon May 23 12:30:11 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator: Martin Matuska
>Release: FreeBSD 8.2-STABLE amd64
>Organization:
>Environment:
System: FreeBSD neo.vx.sk 8.2-STABLE FreeBSD 8.2-STABLE #0 r221263M: Sat Apr 30 18:15:14 CEST
>Description:
Add support for channels and automatic plist generation to pear.
Added file(s):
- pear-deinstall.in
Removed file(s):
- pear-deinstall
Port maintainer (miwi at FreeBSD.org) is cc'd.
Generated with FreeBSD Port Tools 0.99
>How-To-Repeat:
>Fix:
--- pear-1.9.2.patch begins here ---
Index: bsd.pear.mk
===================================================================
RCS file: /home/pcvs/ports/devel/pear/bsd.pear.mk,v
retrieving revision 1.11
diff -u -r1.11 bsd.pear.mk
--- bsd.pear.mk 25 Feb 2011 01:43:50 -0000 1.11
+++ bsd.pear.mk 23 May 2011 12:21:43 -0000
@@ -25,11 +25,19 @@
NO_BUILD= yes
.endif
+.if defined(PEAR_CHANNEL) && ${PEAR_CHANNEL} != ""
+PKGNAMEPREFIX= pear-${PEAR_CHANNEL}-
+PEARPKGREF= ${PEAR_CHANNEL}/${PORTNAME}
+.else
+PEARPKGREF= ${PORTNAME}
+.endif
+
.if exists(${LOCALBASE}/bin/php-config)
PHP_BASE!= ${LOCALBASE}/bin/php-config --prefix
.else
PHP_BASE= ${LOCALBASE}
.endif
+PEAR= ${LOCALBASE}/bin/pear
LPEARDIR= share/pear
LPKGREGDIR= ${LPEARDIR}/packages/${PKGNAME}
LDATADIR= ${LPEARDIR}/data/${PORTNAME}
@@ -53,6 +61,8 @@
.endif
INSTDIR= ${PHP_BASE}/${LINSTDIR}
+SUB_LIST+= PEAR_CHANNEL=${PEAR_CHANNEL}
+
.if !defined(USE_PHPIZE) && !exists(${.CURDIR}/pkg-plist)
PLIST= ${WRKDIR}/PLIST
.endif
@@ -61,7 +71,7 @@
SCRIPTFILESDIR=${LCRIPTSDIR}
PKGINSTALL?= ${PORTSDIR}/devel/pear/pear-install
-PKGDEINSTALL?= ${PORTSDIR}/devel/pear/pear-deinstall
+PKGDEINSTALL?= ${WRKDIR}/pear-deinstall
FILES?=
DATA?=
@@ -167,9 +177,32 @@
. endif
. endfor
-pre-install: do-generate-plist
+do-autogenerate-plist:
+ @${ECHO_MSG} "===> Generating packing list with pear"
+ @${ECHO_CMD} "${LPKGREGDIR}/package.xml" > ${PLIST}
+ @FILES=`${PEAR} list-files ${WRKDIR}/package.xml | ${TAIL} +4 | \
+ ${AWK} '{ print $$2 }' | ${SED} -e "s|${PREFIX}/||g"`; \
+ for f in $${FILES}; do ${ECHO_CMD} $${f} >> ${PLIST}; done; \
+ for d in $${FILES}; do ${ECHO_CMD} $${d}; done | ${DIRFILTER} | \
+ while read dir; do ${ECHO_CMD} "@dirrmtry $${dir}" >> ${PLIST}; \
+ done;
+ @${ECHO_CMD} "@dirrm ${LPKGREGDIR}" >> ${PLIST}
+ @${ECHO_CMD} "@dirrmtry ${LPKGREGDIR:H}" >> ${PLIST}
+
+. if defined(PEAR_AUTOINSTALL)
+pre-install: do-autogenerate-plist do-generate-deinstall-script
+do-install: do-auto-install
+
+. else
+pre-install: do-generate-plist do-generate-deinstall-script
do-install: do-install-files do-install-docs do-install-tests do-install-sqls \
do-install-scriptfiles do-install-examples do-install-data
+. endif
+
+do-auto-install:
+ @${ECHO_MSG} "===> Installing package with pear"
+ @${LN} -sf ${WRKDIR}/package.xml ${WRKSRC}/package.xml
+ @cd ${WRKSRC} && ${PEAR} install -n -f package.xml
do-install-files: do-install-files-msg
@${MKDIR} ${INSTDIR}
@@ -253,8 +286,13 @@
. endif
.endif
+do-generate-deinstall-script:
+ @${SED} ${_SUB_LIST_TEMP} -e '/^@comment /d' ${PORTSDIR}/devel/pear/pear-deinstall.in > ${WRKDIR}/pear-deinstall
+
post-install:
@${MKDIR} ${PKGREGDIR}
@${INSTALL_DATA} ${WRKDIR}/package.xml ${PKGREGDIR}
+.if !defined(PEAR_AUTOINSTALL)
@${SETENV} PKG_PREFIX=${PREFIX} \
${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL
+.endif
Index: pear-deinstall
===================================================================
RCS file: pear-deinstall
diff -N pear-deinstall
--- pear-deinstall 9 Dec 2005 18:58:03 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,15 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD: ports/devel/pear/pear-deinstall,v 1.1 2005/12/09 18:58:03 ale Exp $
-#
-# Remove package declaration from PEAR's registry.
-
-if [ x$2 != xDEINSTALL ]; then
- exit
-fi
-PKG_NAME=${1%%-[0-9._]*}
-PACKAGE=$(echo $PKG_NAME | sed 's/pear-//')
-
-PEAR=${PKG_PREFIX}/bin/pear
-
-${PEAR} uninstall -r -n ${PACKAGE} || true
Index: pear-deinstall.in
===================================================================
RCS file: pear-deinstall.in
diff -N pear-deinstall.in
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pear-deinstall.in 23 May 2011 12:21:43 -0000
@@ -0,0 +1,21 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# Remove package declaration from PEAR's registry.
+
+if [ x$2 != xDEINSTALL ]; then
+ exit
+fi
+
+PKG_NAME=${1%%-[0-9._]*}
+CHANNEL=%%PEAR_CHANNEL%%
+PEAR=${PKG_PREFIX}/bin/pear
+
+if [ -z "$CHANNEL" ]; then
+ PACKAGE=$(echo $PKG_NAME | sed "s/pear-//")
+ ${PEAR} uninstall -r -n ${PACKAGE} || true
+else
+ PACKAGE=$(echo $PKG_NAME | sed "s/pear-${CHANNEL}-//")
+ ${PEAR} uninstall -r -n ${CHANNEL}/${PACKAGE} || true
+fi
--- pear-1.9.2.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list