Date: Thu, 4 May 2006 11:00:12 +0200 From: Jean-Baptiste Quenot <jbq@caraldi.com> To: Herve Quiroz <herve.quiroz@esil.univ-mrs.fr> Cc: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/95627: Maintainer update: www/cocoon 2.1.9 Message-ID: <20060504090012.GB68374@vision.anyware> In-Reply-To: <20060425215907.GA65876@arabica.esil.univ-mrs.fr> References: <200604240849.k3O8nZ6u023402@freefall.freebsd.org> <20060425215907.GA65876@arabica.esil.univ-mrs.fr>
next in thread | previous in thread | raw e-mail | index | archive | help
--45Z9DzgjV8m4Oswq Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Please find attached an updated patch. Can you review it? Be careful, files have moved. -- Jean-Baptiste Quenot aka John Banana Qwerty http://caraldi.com/jbq/ --45Z9DzgjV8m4Oswq Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: attachment; filename=cocoon219 Content-Transfer-Encoding: 8bit diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/Makefile ./Makefile --- /usr/ports/www/cocoon/Makefile Tue Nov 22 00:07:06 2005 +++ ./Makefile Thu May 4 10:52:18 2006 @@ -6,7 +6,7 @@ # PORTNAME= cocoon -PORTVERSION= 2.1.8 +PORTVERSION= 2.1.9 CATEGORIES= www java MASTER_SITES= ${MASTER_SITE_APACHE} MASTER_SITE_SUBDIR= ${PORTNAME} @@ -15,21 +15,17 @@ MAINTAINER= jb.quenot@caraldi.com COMMENT= XML Web Development Framework -USE_RC_SUBR= yes +USE_RC_SUBR= ${PORTNAME}.sh USE_JAVA= yes JAVA_VERSION= 1.3+ USE_PYTHON= 1.6+ -USE_REINPLACE= YES MAKE_ENV= JAVA_HOME=${JAVA_HOME} WRKSRC= ${WRKDIR}/${PDISTNAME} APP_NAME?= ${PORTNAME} APP_HOME?= ${PREFIX}/${APP_NAME} LATEST_LINK= ${APP_NAME} PLIST= ${WRKDIR}/pkg-plist -PKGMESSAGE= ${WRKDIR}/pkg-message PDISTNAME= ${PORTNAME}-${PORTVERSION} -PKGINSTALL= ${WRKDIR}/pkg-install -PKGDEINSTALL= ${WRKDIR}/pkg-deinstall COCOON_LIB= ${JAVASHAREDIR}/${APP_NAME} PLIST_SUB+= "COCOON_LIB=${COCOON_LIB}" @@ -44,22 +40,29 @@ GID?= 80 LOG_FILE?= ${APP_HOME}/${APP_NAME}.log -SUBSTITUTIONS= \ - -e "s|%%APP_HOME%%|${APP_HOME}|g" \ - -e "s|%%APP_NAME%%|${APP_NAME}|g" \ - -e "s|%%RC_SUBR%%|${RC_SUBR}|g" \ - -e "s|%%PREFIX%%|${PREFIX}|g" \ - -e "s|%%PORT%%|${PORT}|g" \ - -e "s|%%COCOON_LIB%%|${COCOON_LIB}|g" \ - -e "s|%%JAVA_HOME%%|${JAVA_HOME}|g" \ - -e "s|%%JAVA%%|${JAVA}|g" \ - -e "s|%%PID_FILE%%|${PID_FILE}|g" \ - -e "s|%%RUNASUSER%%|${RUNASUSER}|g" \ - -e "s|%%RUNASUID%%|${RUNASUID}|g" \ - -e "s|%%GROUP%%|${GROUP}|g" \ - -e "s|%%GID%%|${GID}|g" \ - -e "s|%%LOG_FILE%%|${LOG_FILE}|g" \ - -e "s|%%PYTHON_CMD%%|${PYTHON_CMD}|g" +SUB_LIST= \ + APP_HOME=${APP_HOME} \ + APP_NAME=${APP_NAME} \ + RC_SUBR=${RC_SUBR} \ + PREFIX=${PREFIX} \ + PORT=${PORT} \ + COCOON_LIB=${COCOON_LIB} \ + JAVA_HOME=${JAVA_HOME} \ + JAVA=${JAVA} \ + PID_FILE=${PID_FILE} \ + RUNASUSER=${RUNASUSER} \ + RUNASUID=${RUNASUID} \ + GROUP=${GROUP} \ + GID=${GID} \ + LOG_FILE=${LOG_FILE} \ + PYTHON_CMD=${PYTHON_CMD} + +SUB_FILES= \ + pkg-install \ + pkg-deinstall \ + ${APP_NAME}ctl \ + ${APP_NAME}.sh \ + pkg-message # Load options (before including bsd.port.pre.mk) .include "${.CURDIR}/Makefile.options" @@ -119,27 +122,20 @@ @${CAT} ${MASTERDIR}/pkg-plist >> ${PLIST} - @${SED} ${SUBSTITUTIONS} ${FILESDIR}/pkg-install > ${PKGINSTALL} - @${SED} ${SUBSTITUTIONS} ${FILESDIR}/pkg-deinstall > ${PKGDEINSTALL} - do-install: @${ECHO_MSG} "===> Installing ${COPYDIRS}" @${MKDIR} ${APP_HOME} @cd ${WRKSRC} && ${FIND} -H ${COPYDIRS} | ${CPIO} -pdmuL -R ${LIBOWN}:${LIBGRP} ${APP_HOME} @${ECHO_MSG} "===> Installing into ${PREFIX}/sbin" - @${SED} ${SUBSTITUTIONS} ${WRKSRC}/cocoon.sh > ${WRKDIR}/${APP_NAME}.sh @${INSTALL_SCRIPT} ${WRKDIR}/${APP_NAME}.sh ${PREFIX}/sbin - @${SED} ${SUBSTITUTIONS} ${FILESDIR}/${APP_NAME}ctl > ${WRKDIR}/${APP_NAME}ctl @${INSTALL_SCRIPT} ${WRKDIR}/${APP_NAME}ctl ${PREFIX}/sbin @${ECHO_MSG} "===> Installing ${PREFIX}/etc/rc.d/${APP_NAME}.sh" - @${SED} ${SUBSTITUTIONS} ${FILESDIR}/${APP_NAME}.sh > ${WRKDIR}/${APP_NAME}.sh @${INSTALL_SCRIPT} ${WRKDIR}/${APP_NAME}.sh ${PREFIX}/etc/rc.d post-install: @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL - @${SED} ${SUBSTITUTIONS} ${MASTERDIR}/pkg-message > ${PKGMESSAGE} @${ECHO_CMD} @${ECHO_CMD} "********************************************************************************" @${FMT} -w80 ${PKGMESSAGE} diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/Makefile.options ./Makefile.options --- /usr/ports/www/cocoon/Makefile.options Tue Nov 22 00:07:06 2005 +++ ./Makefile.options Sat Apr 22 14:26:16 2006 @@ -10,6 +10,7 @@ OPTIONS+= CHAPERON 'Enable the chaperon block' on OPTIONS+= DATABASES 'Enable the databases block' on OPTIONS+= FOP 'Enable the fop block' on +OPTIONS+= FORMS 'Enable the forms block' on OPTIONS+= HSQLDB 'Enable the hsqldb block' on OPTIONS+= HTML 'Enable the html block' on OPTIONS+= ITEXT 'Enable the itext block' on @@ -43,9 +44,9 @@ OPTIONS+= DELI 'Enable the deli block' on OPTIONS+= EVENTCACHE 'Enable the eventcache block' on OPTIONS+= FACES 'Enable the faces block' on -OPTIONS+= FORMS 'Enable the forms block' on +OPTIONS+= IMAGEOP 'Enable the imageop block' off OPTIONS+= JAVAFLOW 'Enable the javaflow block' on -OPTIONS+= JCR 'Enable the jcr block' on +OPTIONS+= JCR 'Enable the jcr block' off OPTIONS+= JMS 'Enable the jms block' on OPTIONS+= LINOTYPE 'Enable the linotype block' on OPTIONS+= MAIL 'Enable the mail block' on @@ -59,6 +60,7 @@ OPTIONS+= SLOP 'Enable the slop block' on OPTIONS+= STX 'Enable the stx block' on OPTIONS+= TAGLIB 'Enable the taglib block' on +OPTIONS+= TEMPLATE 'Enable the template block' off OPTIONS+= TOUR 'Enable the tour block' on OPTIONS+= VALIDATION 'Enable the validation block' on OPTIONS+= WEBDAV 'Enable the webdav block' on diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/Makefile.test-options ./Makefile.test-options --- /usr/ports/www/cocoon/Makefile.test-options Tue Nov 22 00:07:06 2005 +++ ./Makefile.test-options Tue Apr 11 17:26:13 2006 @@ -26,6 +26,11 @@ BLOCKS+= batik .endif +.if defined(WITH_FORMS) +BLOCKS+= forms +BLOCKS+= ajax +.endif + .if defined(WITH_HSQLDB) BLOCKS+= hsqldb BLOCKS+= databases @@ -202,9 +207,8 @@ BLOCKS+= xsp .endif -.if defined(WITH_FORMS) -BLOCKS+= forms -BLOCKS+= ajax +.if defined(WITH_IMAGEOP) +BLOCKS+= imageop .endif .if defined(WITH_JAVAFLOW) @@ -302,6 +306,10 @@ .if defined(WITH_TAGLIB) BLOCKS+= taglib +.endif + +.if defined(WITH_TEMPLATE) +BLOCKS+= template .endif .if defined(WITH_TOUR) diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/distinfo ./distinfo --- /usr/ports/www/cocoon/distinfo Wed Jan 25 00:15:10 2006 +++ ./distinfo Tue Apr 11 17:34:41 2006 @@ -1,3 +1,3 @@ -MD5 (cocoon-2.1.8-src.tar.gz) = 98ecb00c42ed41525cb6f098eacf76e5 -SHA256 (cocoon-2.1.8-src.tar.gz) = 3dd4987ee1f9f59476fab478feb890ff3b5c8bf01a5d09ef441952b42724fcb5 -SIZE (cocoon-2.1.8-src.tar.gz) = 44885682 +MD5 (cocoon-2.1.9-src.tar.gz) = f69fb596d50f7942a22c81d9c6061b29 +SHA256 (cocoon-2.1.9-src.tar.gz) = 0ff238cd5c1b20dcbd3459c74a5395a0cdc8ee636e204f1eaa0155b7dd48a6f2 +SIZE (cocoon-2.1.9-src.tar.gz) = 46893866 diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/cocoon.sh ./files/cocoon.sh --- /usr/ports/www/cocoon/files/cocoon.sh Fri Jul 29 00:08:39 2005 +++ ./files/cocoon.sh Thu Jan 1 01:00:00 1970 @@ -1,31 +0,0 @@ -#! /bin/sh -# -# $FreeBSD: ports/www/cocoon/files/cocoon.sh,v 1.3 2005/07/28 07:28:22 vs Exp $ -# - -# PROVIDE: %%APP_NAME%% - -# -# Add the following line to /etc/rc.conf to enable %%APP_NAME%%: -# -# %%APP_NAME%%_enable="YES" -# - -. %%RC_SUBR%% - -name=%%APP_NAME%% -rcvar=`set_rcvar` - -command=%%PREFIX%%/sbin/%%APP_NAME%%ctl -command_args="$1" -pidfile=%%PID_FILE%% -procname=%%JAVA%% - -# set defaults - -%%APP_NAME%%_enable=${%%APP_NAME%%_enable:-"NO"} -%%APP_NAME%%_user=${%%APP_NAME%%_user:-"www"} -%%APP_NAME%%_group=${%%APP_NAME%%_group:-"www"} - -load_rc_config ${name} -run_rc_command "$1" diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/cocoon.sh.in ./files/cocoon.sh.in --- /usr/ports/www/cocoon/files/cocoon.sh.in Thu Jan 1 01:00:00 1970 +++ ./files/cocoon.sh.in Thu May 4 10:28:51 2006 @@ -0,0 +1,31 @@ +#! /bin/sh +# +# $FreeBSD: ports/www/cocoon/files/cocoon.sh,v 1.3 2005/07/28 07:28:22 vs Exp $ +# + +# PROVIDE: %%APP_NAME%% + +# +# Add the following line to /etc/rc.conf to enable %%APP_NAME%%: +# +# %%APP_NAME%%_enable="YES" +# + +. %%RC_SUBR%% + +name=%%APP_NAME%% +rcvar=`set_rcvar` + +command=%%PREFIX%%/sbin/%%APP_NAME%%ctl +command_args="$1" +pidfile=%%PID_FILE%% +procname=%%JAVA%% + +# set defaults + +%%APP_NAME%%_enable=${%%APP_NAME%%_enable:-"NO"} +%%APP_NAME%%_user=${%%APP_NAME%%_user:-"www"} +%%APP_NAME%%_group=${%%APP_NAME%%_group:-"www"} + +load_rc_config ${name} +run_rc_command "$1" diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/cocoonctl ./files/cocoonctl --- /usr/ports/www/cocoon/files/cocoonctl Tue Nov 22 00:07:06 2005 +++ ./files/cocoonctl Thu Jan 1 01:00:00 1970 @@ -1,163 +0,0 @@ -#! %%PYTHON_CMD%% - -################################################################################ -# Author: Jean-Baptiste Quenot <jb.quenot@caraldi.com> -# Purpose: Control cocoon process -# Date Created: 2004-05-04 11:14:05 -# Revision: $FreeBSD: ports/www/cocoon/files/cocoonctl,v 1.3 2005/11/21 15:30:37 hq Exp $ -################################################################################ -# Copyright (c) 2004, Jean-Baptiste Quenot <jb.quenot@caraldi.com> -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# * Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# * Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# * The name of the contributors may not be used to endorse or promote products -# derived from this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE -# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -################################################################################ -# -# Files handled by this script (pid file, log files) must reside in a writable -# directory, ie the directory must be owned by the user running the program. - -import sys, os, signal, time, stat, re - -def readProcessId(): - f = open(PID_FILE, 'r') - pid = int(f.readline()) - f.close() - return pid - -def isProgramRunning(pid): - # Send a dummy signal to the process. If it died, an exception is - # thrown - try: - os.kill(pid, signal.SIGCONT) - return 1 - except OSError: - return 0 - -def usage(): - print >> sys.stderr, "Usage: %s {start|stop|restart}" % sys.argv[0] - -def start(): - cwd = os.getcwd() - if os.path.exists(PID_FILE): - # Read the process id - pid = readProcessId() - - if isProgramRunning(pid): - print >> sys.stderr, '%s already started' % APP_NAME - sys.exit(3) - - if not(os.path.exists(COMMAND)): - print >> sys.stderr, '%s cannot be found' % COMMAND - sys.exit(3) - - # Append program output to a log file - l = open(LOG_FILE, 'a') - orig_stderr = os.dup(sys.stderr.fileno()) - os.dup2(l.fileno(), sys.stdout.fileno()) - os.dup2(l.fileno(), sys.stderr.fileno()) - - finfo = os.stat(COMMAND)[stat.ST_MODE] - executable = stat.S_IMODE(finfo) & 0111 - if not(executable): - sys.stderr = os.fdopen(orig_stderr, 'w') - print >> sys.stderr, 'Cannot run %s, execute bit is missing' % COMMAND - sys.exit(5) - - if APP_HOME: - # Change current directory to APP_HOME - os.chdir(APP_HOME) - - # Start program in the background - pid = os.spawnv(os.P_NOWAIT, COMMAND, ARGS) - - # Wait a little - time.sleep(.4) - (status_pid, status) = os.waitpid(pid, os.WNOHANG) - - # Check program exit status, if available - if status_pid != 0 and os.WIFEXITED(status): - sys.stderr = os.fdopen(orig_stderr, 'w') - print >> sys.stderr, 'Could not start %s. Check %s for errors.' % (APP_NAME, LOG_FILE) - sys.exit(2) - - # It's alive, so write down the process id - os.chdir(cwd) - f = open(PID_FILE, 'w') - print >> f, pid - f.close() - -def warnNotRunning(): - if sys.argv[1] == "stop": - print >> sys.stderr, '%s is not running' % APP_NAME - else: - print >> sys.stderr, 'Warning: %s was not running' % APP_NAME - -def cleanup(): - os.unlink(PID_FILE) - -def stop(): - if os.path.exists(PID_FILE): - # Read the process id - pid = readProcessId() - else: - warnNotRunning() - return - - if not(isProgramRunning(pid)): - warnNotRunning() - cleanup() - return - - # Terminate program - os.kill(pid, signal.SIGTERM) - - while isProgramRunning(pid): - time.sleep(.1) - - cleanup() - -if __name__ == '__main__': - LOG_FILE = "%%LOG_FILE%%" - APP_NAME = "%%APP_NAME%%" - APP_HOME = "%%APP_HOME%%" - PID_FILE = "%%PID_FILE%%" - COMMAND = "%%PREFIX%%/sbin/%%APP_NAME%%.sh" - os.environ["JAVA_OPTIONS"] = " ".join(sys.argv[1:-1]) - ARGS = [COMMAND, "servlet"] - - if len(sys.argv) < 2: - usage() - sys.exit(1) - - if sys.argv[-1] == "start": - start() - - elif sys.argv[-1] == "stop": - stop() - - elif sys.argv[-1] == "restart": - stop() - start() - - else: - usage() - sys.exit(1) diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/cocoonctl.in ./files/cocoonctl.in --- /usr/ports/www/cocoon/files/cocoonctl.in Thu Jan 1 01:00:00 1970 +++ ./files/cocoonctl.in Thu May 4 10:50:48 2006 @@ -0,0 +1,163 @@ +#! %%PYTHON_CMD%% + +################################################################################ +# Author: Jean-Baptiste Quenot <jb.quenot@caraldi.com> +# Purpose: Control cocoon process +# Date Created: 2004-05-04 11:14:05 +# Revision: $FreeBSD: ports/www/cocoon/files/cocoonctl,v 1.2 2005/04/02 22:14:50 hq Exp $ +################################################################################ +# Copyright (c) 2004, Jean-Baptiste Quenot <jb.quenot@caraldi.com> +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# * The name of the contributors may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +################################################################################ +# +# Files handled by this script (pid file, log files) must reside in a writable +# directory, ie the directory must be owned by the user running the program. + +import sys, os, signal, time, stat, re + +def readProcessId(): + f = open(PID_FILE, 'r') + pid = int(f.readline()) + f.close() + return pid + +def isProgramRunning(pid): + # Send a dummy signal to the process. If it died, an exception is + # thrown + try: + os.kill(pid, signal.SIGCONT) + return 1 + except OSError: + return 0 + +def usage(): + print >> sys.stderr, "Usage: %s {start|stop|restart}" % sys.argv[0] + +def start(): + cwd = os.getcwd() + if os.path.exists(PID_FILE): + # Read the process id + pid = readProcessId() + + if isProgramRunning(pid): + print >> sys.stderr, '%s already started' % APP_NAME + sys.exit(3) + + if not(os.path.exists(COMMAND)): + print >> sys.stderr, '%s cannot be found' % COMMAND + sys.exit(3) + + # Append program output to a log file + l = open(LOG_FILE, 'a') + orig_stderr = os.dup(sys.stderr.fileno()) + os.dup2(l.fileno(), sys.stdout.fileno()) + os.dup2(l.fileno(), sys.stderr.fileno()) + + finfo = os.stat(COMMAND)[stat.ST_MODE] + executable = stat.S_IMODE(finfo) & 0111 + if not(executable): + sys.stderr = os.fdopen(orig_stderr, 'w') + print >> sys.stderr, 'Cannot run %s, execute bit is missing' % COMMAND + sys.exit(5) + + if APP_HOME: + # Change current directory to APP_HOME + os.chdir(APP_HOME) + + # Start program in the background + pid = os.spawnv(os.P_NOWAIT, COMMAND, ARGS) + + # Wait a little + time.sleep(.4) + (status_pid, status) = os.waitpid(pid, os.WNOHANG) + + # Check program exit status, if available + if status_pid != 0 and os.WIFEXITED(status): + sys.stderr = os.fdopen(orig_stderr, 'w') + print >> sys.stderr, 'Could not start %s. Check %s for errors.' % (APP_NAME, LOG_FILE) + sys.exit(2) + + # It's alive, so write down the process id + os.chdir(cwd) + f = open(PID_FILE, 'w') + print >> f, pid + f.close() + +def warnNotRunning(): + if sys.argv[1] == "stop": + print >> sys.stderr, '%s is not running' % APP_NAME + else: + print >> sys.stderr, 'Warning: %s was not running' % APP_NAME + +def cleanup(): + os.unlink(PID_FILE) + +def stop(): + if os.path.exists(PID_FILE): + # Read the process id + pid = readProcessId() + else: + warnNotRunning() + return + + if not(isProgramRunning(pid)): + warnNotRunning() + cleanup() + return + + # Terminate program + os.kill(pid, signal.SIGTERM) + + while isProgramRunning(pid): + time.sleep(.1) + + cleanup() + +if __name__ == '__main__': + LOG_FILE = "%%LOG_FILE%%" + APP_NAME = "%%APP_NAME%%" + APP_HOME = "%%APP_HOME%%" + PID_FILE = "%%PID_FILE%%" + COMMAND = "%%PREFIX%%/sbin/%%APP_NAME%%.sh" + os.environ["JAVA_OPTIONS"] = " ".join(sys.argv[1:-1]) + ARGS = [COMMAND, "servlet"] + + if len(sys.argv) < 2: + usage() + sys.exit(1) + + if sys.argv[-1] == "start": + start() + + elif sys.argv[-1] == "stop": + stop() + + elif sys.argv[-1] == "restart": + stop() + start() + + else: + usage() + sys.exit(1) diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/patch-cocoon.sh ./files/patch-cocoon.sh --- /usr/ports/www/cocoon/files/patch-cocoon.sh Fri Jul 2 00:30:19 2004 +++ ./files/patch-cocoon.sh Thu Feb 23 15:49:22 2006 @@ -30,12 +30,3 @@ fi fi echo "$0: using $COCOON_WEBAPP_HOME as the webapp directory" -@@ -111,7 +110,7 @@ - - # ----- Set Local Variables ( used to minimize cut/paste) --------------------- - --JAVA="$JAVA_HOME/bin/java" -+JAVA="exec $JAVA_HOME/bin/java" - ENDORSED_LIBS="$COCOON_HOME/lib/endorsed" - ENDORSED="-Djava.endorsed.dirs=$ENDORSED_LIBS" - PARSER=-Dorg.xml.sax.parser=org.apache.xerces.parsers.SAXParser diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/patch-src-blocks-ajax-samples ./files/patch-src-blocks-ajax-samples --- /usr/ports/www/cocoon/files/patch-src-blocks-ajax-samples Thu Jan 1 01:00:00 1970 +++ ./files/patch-src-blocks-ajax-samples Tue Apr 11 18:05:55 2006 @@ -0,0 +1,16 @@ +--- src/blocks/ajax/samples/sitemap.xmap.orig Tue Apr 11 18:05:10 2006 ++++ src/blocks/ajax/samples/sitemap.xmap Tue Apr 11 18:05:18 2006 +@@ -19,13 +19,6 @@ + @version $Id: sitemap.xmap 385331 2006-03-12 18:25:56Z sylvain $ + --> + <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> +- <map:components> +- <map:generators> +- <!-- use the new implementation of JX --> +- <map:generator name="jx" src="org.apache.cocoon.template.JXTemplateGenerator"/> +- </map:generators> +- </map:components> +- + <map:resources> + <!-- this will later become a virtual transformer --> + <map:resource name="simple-page2html"> diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/patch-src-blocks-forms-samples ./files/patch-src-blocks-forms-samples --- /usr/ports/www/cocoon/files/patch-src-blocks-forms-samples Thu Jan 1 01:00:00 1970 +++ ./files/patch-src-blocks-forms-samples Wed Apr 12 16:50:09 2006 @@ -0,0 +1,134 @@ +Index: src/blocks/forms/samples/forms/inplace_edit_form.xml +=================================================================== +--- src/blocks/forms/samples/forms/inplace_edit_form.xml (revision 0) ++++ src/blocks/forms/samples/forms/inplace_edit_form.xml (revision 393475) +@@ -0,0 +1,51 @@ ++<?xml version="1.0"?> ++<!-- ++ Copyright 1999-2004 The Apache Software Foundation ++ ++ Licensed under the Apache License, Version 2.0 (the "License"); ++ you may not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ ++ http://www.apache.org/licenses/LICENSE-2.0 ++ ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. ++--> ++ ++<!-- ++ @version $Id: inplace_edit_form.xml 393475 2006-04-12 14:48:00Z jbq $ ++--> ++ ++<fd:form xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"> ++ <fd:widgets> ++ ++ <fd:field id="name"> ++ <fd:datatype base="string"/> ++ <fd:hint>Your name</fd:hint> ++ </fd:field> ++ ++ <fd:field id="occupation"> ++ <fd:initial-value>Cocoon user</fd:initial-value> ++ <fd:datatype base="string"/> ++ <fd:hint>Occupation</fd:hint> ++ </fd:field> ++ ++ <fd:field id="comments"> ++ <fd:datatype base="string"/> ++ <fd:hint>Comments</fd:hint> ++ </fd:field> ++ ++ <fd:action id="check"> ++ <fd:label>Check</fd:label> ++ <fd:hint>Redisplays the page so you can see the various renderings of inplace inputs depending on their values.</fd:hint> ++ </fd:action> ++ ++ <fd:submit id="ok"> ++ <fd:label>OK</fd:label> ++ </fd:submit> ++ ++ </fd:widgets> ++</fd:form> +\ No newline at end of file +Index: src/blocks/forms/samples/forms/inplace_edit_template.xml +=================================================================== +--- src/blocks/forms/samples/forms/inplace_edit_template.xml (revision 0) ++++ src/blocks/forms/samples/forms/inplace_edit_template.xml (revision 393475) +@@ -0,0 +1,72 @@ ++<?xml version="1.0"?> ++<!-- ++ Copyright 1999-2004 The Apache Software Foundation ++ ++ Licensed under the Apache License, Version 2.0 (the "License"); ++ you may not use this file except in compliance with the License. ++ You may obtain a copy of the License at ++ ++ http://www.apache.org/licenses/LICENSE-2.0 ++ ++ Unless required by applicable law or agreed to in writing, software ++ distributed under the License is distributed on an "AS IS" BASIS, ++ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++ See the License for the specific language governing permissions and ++ limitations under the License. ++--> ++<page xmlns:ft="http://apache.org/cocoon/forms/1.0#template" ++ xmlns:fi="http://apache.org/cocoon/forms/1.0#instance" ++ xmlns:jx="http://apache.org/cocoon/templates/jx/1.0"> ++ ++ <!-- Import the macros that define CForms template elements --> ++ <jx:import uri="resource://org/apache/cocoon/forms/generation/jx-macros.xml"/> ++ <h4 class="samplesGroup">Inline editing</h4> ++ <title>Inline editing</title> ++ <script type="text/javascript"> ++ //cocoon.ajax.BrowserUpdater.highlight = cocoon.ajax.Fader.fade; ++ </script> ++ <content> ++ <ft:form-template action="#{$cocoon/continuation/id}.continue" method="POST" ajax="true"> ++ <p>The fields below show the various features of in-place editing. "In place" means that inputs are rendered as normal text, and become editable once you click on them. ++ </p> ++ <table width="100%" border="1"> ++ <tbody> ++ <tr> ++ <td> ++ Your name:<br/> ++ <small>An inplace input with no initial value. The displayed text is ++ the input's hint</small> ++ </td> ++ <td> ++ <ft:widget id="name" fi:type="inplace"/> ++ </td> ++ </tr> ++ <tr> ++ <td> ++ Your occupation:<br/> ++ <small>An inplace input with an initial value.</small> ++ </td> ++ <td> ++ <ft:widget id="occupation" fi:type="inplace"/> ++ </td> ++ </tr> ++ <tr> ++ <td> ++ Comments:<br/> ++ <small>An multiline inplace input.</small> ++ </td> ++ <td> ++ <ft:widget id="comments" fi:type="inplace-area"/> ++ </td> ++ </tr> ++ </tbody> ++ </table> ++ <br/> ++ <ft:widget id="check"/> ++ <ft:widget id="ok"/> ++ <br/> ++ <a href="./do-inplace.flow">Restart this sample</a> - <a href="./">Back to Forms samples</a> ++ ++ </ft:form-template> ++ </content> ++</page> diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/patch-src-blocks-forms-samples-welcome.xml ./files/patch-src-blocks-forms-samples-welcome.xml --- /usr/ports/www/cocoon/files/patch-src-blocks-forms-samples-welcome.xml Thu Jan 1 01:00:00 1970 +++ ./files/patch-src-blocks-forms-samples-welcome.xml Thu Apr 13 18:43:57 2006 @@ -0,0 +1,17 @@ +Index: src/blocks/forms/samples/welcome.xml +=================================================================== +--- src/blocks/forms/samples/welcome.xml (revision 393856) ++++ src/blocks/forms/samples/welcome.xml (working copy) +@@ -21,12 +21,6 @@ + <group name="Back"> + <sample name="Back" href="../..">to Cocoon Samples main page</sample> + <sample name="Back" href="..">to Cocoon Blocks Samples main page</sample> +- <note> +- Cocoon Forms is the upcoming forms framework for Cocoon. +- Although it is marked as unstable it is the *only* supported solution - all +- other similar approaches will be deprecated soon. +- Of course, your feedback is very much welcome on the Cocoon mailing lists. +- </note> + <sample name="Cocoon Forms Documentation" href="http://cocoon.apache.org/2.1/userdocs/basics/index.html"> + Documentation is available on the Cocoon site. + </sample> diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/pkg-deinstall ./files/pkg-deinstall --- /usr/ports/www/cocoon/files/pkg-deinstall Tue Nov 22 00:07:06 2005 +++ ./files/pkg-deinstall Thu Jan 1 01:00:00 1970 @@ -1,63 +0,0 @@ -#!/bin/sh -# -# This script does the following. -# -# * Checks if the PID file exists. If it does, it kills the -# process and removes the PID file. -# -# * Checks if the 'www' user exists. If it does, then it displays -# a message. -# -# $FreeBSD: ports/www/cocoon/files/pkg-deinstall,v 1.3 2005/11/21 15:30:37 hq Exp $ -# -# Borrowed from the jakarta-tomcat port -# - -set -e - -PID_FILE=%%PID_FILE%% -RUNASUSER=%%RUNASUSER%% -APP_NAME=%%APP_NAME%% -LOG_FILE=%%LOG_FILE%% - -# Make sure we're in the right stage of the process -if [ "$2" = "DEINSTALL" ]; then - - # Kill the process if it is still running - if [ -s ${PID_FILE} ]; then - PID=`cat ${PID_FILE}` - echo -n ">> Killing ${APP_NAME} process (${PID})..." - - if /bin/kill ${PID} > /dev/null 2> /dev/null ; then - echo " [ DONE ]" - else - echo " [ FAILED ]" - fi - - echo -n ">> Removing PID file (${PID_FILE})..." - - if rm ${PID_FILE} > /dev/null 2> /dev/null ; then - echo " [ DONE ]" - else - echo " [ FAILED ]" - fi - fi - - if [ -e ${LOG_FILE} ] ; then - echo -n ">> Removing log file (${LOG_FILE})..." - if rm ${LOG_FILE} > /dev/null 2> /dev/null ; then - echo " [ DONE ]" - else - echo " [ FAILED ]" - fi - fi -fi - -if [ "$2" = "POST-DEINSTALL" ]; then - # If the user exists, then display a message - if pw usershow "$RUNASUSER" 2>/dev/null 1>&2; then - echo "To delete the $RUNASUSER user permanently, use 'pw userdel $RUNASUSER'" - fi -fi - -exit 0 diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/pkg-deinstall.in ./files/pkg-deinstall.in --- /usr/ports/www/cocoon/files/pkg-deinstall.in Thu Jan 1 01:00:00 1970 +++ ./files/pkg-deinstall.in Thu May 4 10:50:31 2006 @@ -0,0 +1,63 @@ +#!/bin/sh +# +# This script does the following. +# +# * Checks if the PID file exists. If it does, it kills the +# process and removes the PID file. +# +# * Checks if the 'www' user exists. If it does, then it displays +# a message. +# +# $FreeBSD: ports/www/cocoon/files/pkg-deinstall,v 1.2 2005/04/02 22:14:50 hq Exp $ +# +# Borrowed from the jakarta-tomcat port +# + +set -e + +PID_FILE=%%PID_FILE%% +RUNASUSER=%%RUNASUSER%% +APP_NAME=%%APP_NAME%% +LOG_FILE=%%LOG_FILE%% + +# Make sure we're in the right stage of the process +if [ "$2" = "DEINSTALL" ]; then + + # Kill the process if it is still running + if [ -s ${PID_FILE} ]; then + PID=`cat ${PID_FILE}` + echo -n ">> Killing ${APP_NAME} process (${PID})..." + + if /bin/kill ${PID} > /dev/null 2> /dev/null ; then + echo " [ DONE ]" + else + echo " [ FAILED ]" + fi + + echo -n ">> Removing PID file (${PID_FILE})..." + + if rm ${PID_FILE} > /dev/null 2> /dev/null ; then + echo " [ DONE ]" + else + echo " [ FAILED ]" + fi + fi + + if [ -e ${LOG_FILE} ] ; then + echo -n ">> Removing log file (${LOG_FILE})..." + if rm ${LOG_FILE} > /dev/null 2> /dev/null ; then + echo " [ DONE ]" + else + echo " [ FAILED ]" + fi + fi +fi + +if [ "$2" = "POST-DEINSTALL" ]; then + # If the user exists, then display a message + if pw usershow "$RUNASUSER" 2>/dev/null 1>&2; then + echo "To delete the $RUNASUSER user permanently, use 'pw userdel $RUNASUSER'" + fi +fi + +exit 0 diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/pkg-install ./files/pkg-install --- /usr/ports/www/cocoon/files/pkg-install Mon Apr 4 00:15:45 2005 +++ ./files/pkg-install Thu Jan 1 01:00:00 1970 @@ -1,53 +0,0 @@ -#!/bin/sh -# -# Checks if the requested user and group exist. If they don't, then -# an attempt is made to create both. -# -# $FreeBSD: ports/www/cocoon/files/pkg-install,v 1.2 2005/04/02 22:14:50 hq Exp $ -# -# Borrowed from the jakarta-tomcat port -# - -set -e - -RUNASUSER=%%RUNASUSER%% -RUNASUID=%%RUNASUID%% -GROUP=%%GROUP%% -GID=%%GID%% -APP_NAME=%%APP_NAME%% -PID_FILE=%%PID_FILE%% -LOG_FILE=%%LOG_FILE%% - -if [ "$2" = "POST-INSTALL" ]; then - # We're called after the 'make install' process - # See if the group already exists - if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then - - # If not, try to create it - if pw groupadd ${GROUP} -g ${GID}; then - echo "Added group \"${GROUP}\"." - else - echo "Adding group \"${GROUP}\" failed..." - exit 1 - fi - fi - - # See if the user already exists - if ! pw usershow "${RUNASUSER}" 2>/dev/null 1>&2; then - - # If not, try to create it - if pw useradd ${RUNASUSER} -u ${RUNASUID} -g ${GROUP} -h - \ - -s "/sbin/nologin" -d "/nonexistent" \ - -c "World Wide Web Owner"; \ - then - echo "Added user \"${RUNASUSER}\"." - else - echo "Adding user \"${RUNASUSER}\" failed..." - exit 1 - fi - fi - - chown -R ${RUNASUSER}:${GROUP} $PKG_PREFIX/${APP_NAME} -fi - -exit 0 diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/pkg-install.in ./files/pkg-install.in --- /usr/ports/www/cocoon/files/pkg-install.in Thu Jan 1 01:00:00 1970 +++ ./files/pkg-install.in Thu May 4 10:50:26 2006 @@ -0,0 +1,53 @@ +#!/bin/sh +# +# Checks if the requested user and group exist. If they don't, then +# an attempt is made to create both. +# +# $FreeBSD: ports/www/cocoon/files/pkg-install,v 1.2 2005/04/02 22:14:50 hq Exp $ +# +# Borrowed from the jakarta-tomcat port +# + +set -e + +RUNASUSER=%%RUNASUSER%% +RUNASUID=%%RUNASUID%% +GROUP=%%GROUP%% +GID=%%GID%% +APP_NAME=%%APP_NAME%% +PID_FILE=%%PID_FILE%% +LOG_FILE=%%LOG_FILE%% + +if [ "$2" = "POST-INSTALL" ]; then + # We're called after the 'make install' process + # See if the group already exists + if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then + + # If not, try to create it + if pw groupadd ${GROUP} -g ${GID}; then + echo "Added group \"${GROUP}\"." + else + echo "Adding group \"${GROUP}\" failed..." + exit 1 + fi + fi + + # See if the user already exists + if ! pw usershow "${RUNASUSER}" 2>/dev/null 1>&2; then + + # If not, try to create it + if pw useradd ${RUNASUSER} -u ${RUNASUID} -g ${GROUP} -h - \ + -s "/sbin/nologin" -d "/nonexistent" \ + -c "World Wide Web Owner"; \ + then + echo "Added user \"${RUNASUSER}\"." + else + echo "Adding user \"${RUNASUSER}\" failed..." + exit 1 + fi + fi + + chown -R ${RUNASUSER}:${GROUP} $PKG_PREFIX/${APP_NAME} +fi + +exit 0 diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/files/pkg-message.in ./files/pkg-message.in --- /usr/ports/www/cocoon/files/pkg-message.in Thu Jan 1 01:00:00 1970 +++ ./files/pkg-message.in Thu May 4 10:33:42 2006 @@ -0,0 +1,45 @@ +Cocoon is now installed in %%APP_HOME%%. + +In order to be able to run Cocoon, please add the following line to +/etc/rc.conf: + + %%APP_NAME%%_enable="YES" + +If you wish to start cocoon right now, invoke the startup script with +`%%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh start' +and point your web browser to the default home page at +http://localhost:%%PORT%%/ where you may read the documentation and test the +samples. + +For this control script to run seamlessly, it is recommended to increase the +maximum length of commands displayed by ps(1). Please append the following +setting to /etc/sysctl.conf: + + # Do not truncate command line arguments in ps(1) listing + kern.ps_arg_cache_limit=10000 + +This setting will take effect at next reboot, however it is possible to have +immediate effect with the following command as root: + + # sysctl kern.ps_arg_cache_limit=10000 + +If you wish to skip this setting, please note that the `stop', `restart' and +`status' will not function properly with %%APP_NAME%%.sh. + + +Enjoy! + +-------------------------------------------------------------------------------- +ADVANCED USAGE + +If you need to pass special options to Java, please set the +%%APP_NAME%%_flags option in /etc/rc.conf, see examples below: + + # Prevent Java from opening an X11 display + %%APP_NAME%%_flags="-Djava.awt.headless=true" + + # Increase memory limit of the Java virtual machine + %%APP_NAME%%_flags="-Xms32m -Xmx256m" + + # Run Java virtual machine with remote debugging turned on on port 8000 + %%APP_NAME%%_flags="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/pkg-message ./pkg-message --- /usr/ports/www/cocoon/pkg-message Tue Nov 22 00:07:06 2005 +++ ./pkg-message Thu Jan 1 01:00:00 1970 @@ -1,45 +0,0 @@ -Cocoon is now installed in %%APP_HOME%%. - -In order to be able to run Cocoon, please add the following line to -/etc/rc.conf: - - %%APP_NAME%%_enable="YES" - -If you wish to start cocoon right now, invoke the startup script with -`%%PREFIX%%/etc/rc.d/%%APP_NAME%%.sh start' -and point your web browser to the default home page at -http://localhost:%%PORT%%/ where you may read the documentation and test the -samples. - -For this control script to run seamlessly, it is recommended to increase the -maximum length of commands displayed by ps(1). Please append the following -setting to /etc/sysctl.conf: - - # Do not truncate command line arguments in ps(1) listing - kern.ps_arg_cache_limit=10000 - -This setting will take effect at next reboot, however it is possible to have -immediate effect with the following command as root: - - # sysctl kern.ps_arg_cache_limit=10000 - -If you wish to skip this setting, please note that the `stop', `restart' and -`status' will not function properly with %%APP_NAME%%.sh. - - -Enjoy! - --------------------------------------------------------------------------------- -ADVANCED USAGE - -If you need to pass special options to Java, please set the -%%APP_NAME%%_flags option in /etc/rc.conf, see examples below: - - # Prevent Java from opening an X11 display - %%APP_NAME%%_flags="-Djava.awt.headless=true" - - # Increase memory limit of the Java virtual machine - %%APP_NAME%%_flags="-Xms32m -Xmx256m" - - # Run Java virtual machine with remote debugging turned on on port 8000 - %%APP_NAME%%_flags="-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000" diff --ignore-matching-lines=\$FreeBSD.*\$ --exclude=.sw* --exclude=.svn --exclude=work --exclude=admin -ruN /usr/ports/www/cocoon/pkg-plist ./pkg-plist --- /usr/ports/www/cocoon/pkg-plist Sat Nov 20 17:53:25 2004 +++ ./pkg-plist Thu May 4 10:28:23 2006 @@ -1,4 +1,3 @@ -sbin/cocoon.sh sbin/cocoonctl etc/rc.d/cocoon.sh @dirrm cocoon/tools --45Z9DzgjV8m4Oswq--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060504090012.GB68374>