freebsd-ports/www/tomcat55/Makefile
Herve Quiroz 6a944ac6a6 - New RCng stratup script with no use of tomcat55ctl. Several extra flags are
provided to customize the behavior of the Tomcat process. See the header of
  the script for further information.
- Fix permission issue with ${STDOUT_LOG} and ${STDERR_LOG}

PR:		38018 [1], 38020 [2], 59571 [3], 74344 [4], 75143 [5]
Submitted by:	Ari Suutari <ari.suutari@syncrontech.com> [1] [2],
		ve <ve@hardcore.lt> [3],
		SimpleRezo Team <freebsd@simplerezo.com> [4],
		Anton Yudin <toha@toha.org.ua> [5]
Discussed on:	freebsd-java@
Reviewed by:	Jan Grant <Jan.Grant@bristol.ac.uk>
Approved by:	maintainer timeout
2005-09-02 12:45:34 +00:00

205 lines
7.1 KiB
Makefile

# New ports collection makefile for: jakarta-tomcat-devel
# Date created: Tue Aug 12 23:26:32 CST 2003
# Whom: Kang Liu <liukang@bjpu.edu.cn>
#
# $FreeBSD$
#
PORTNAME= jakarta-tomcat
PORTVERSION= 5.5.9
CATEGORIES= www java
MASTER_SITES= ${MASTER_SITE_APACHE_JAKARTA}
MASTER_SITE_SUBDIR= tomcat-5/v${PORTVERSION}/bin
DISTFILES= ${PORTNAME}-${PORTVERSION}.tar.gz
MAINTAINER= liukang@bjut.edu.cn
COMMENT= Open-source Java web server by Apache, 5.5.x branch
USE_JAVA= yes
JAVA_VERSION= 1.4+
NO_BUILD= YES
USE_RC_SUBR= yes
.if !defined(NOPORTDOCS)
MAN1= ${CONTROL_SCRIPT_NAME}.1
.endif
MAJOR_VER= ${PORTVERSION:R}
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
APP_HOME?= ${PREFIX}/${PKGBASE}${PORTVERSION:R}
LOG_DIR= ${APP_HOME}/logs
APP_TITLE= Jakarta Tomcat
APP_SHORTNAME= tomcat${MAJOR_VER:S/.//}
CONTROL_SCRIPT_NAME= ${APP_SHORTNAME}ctl
CONTROL_SCRIPT= ${PREFIX}/bin/${CONTROL_SCRIPT_NAME}
CONTROL_SCRIPT_MANPAGE_TITLE= ${CONTROL_SCRIPT_NAME:U}
STARTUP_ORDER?= 020
STARTUP_SCRIPT_NAME= ${PORTNAME}${MAJOR_VER:S/.//}.sh
STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/${STARTUP_ORDER}.${STARTUP_SCRIPT_NAME}
USER= www
GROUP= www
PW?= /usr/sbin/pw
HTTP_PORT?= 8180
SHUTDOWN_PORT?= 8005
WARP_PORT?= 8008
AJP_1_3_PORT?= 8009
STDOUT_LOG= ${LOG_DIR}/stdout.log
STDERR_LOG= ${LOG_DIR}/stderr.log
AUTO_START?= NO
STOP_TIMEOUT?= 5
PID_FILE= /var/run/${APP_SHORTNAME}.pid
REPLACE_FILES= ${PORTSDIR}/www/jakarta-tomcat4/files/daemonctl.c \
${PORTSDIR}/www/jakarta-tomcat4/files/daemonctl.1 \
${WRKSRC}/conf/server.xml
JAR_FILE= bin/bootstrap.jar
WRKDIR?= ${WRKDIRPREFIX}${.CURDIR}/work
PLIST_SUB+= T=${APP_HOME:S/^${PREFIX}\///} WWWOWN=${USER} WWWGRP=${GROUP}
LATEST_LINK= ${APP_SHORTNAME}
CONF_EXT= sample
PLIST_SUB+= CONF_EXT=${CONF_EXT}
SUB_FILES= tomcat.sh
SUB_LIST= TOMCAT_VERSION=${MAJOR_VER:S/.//} \
TOMCAT_HOME=${APP_HOME} \
USER=${USER} \
STDOUT_LOG=${STDOUT_LOG} \
STDERR_LOG=${STDERR_LOG}
.include <bsd.port.pre.mk>
.if ${JAVA_PORT_VERSION:C/^([0-9])\.([0-9])(.*)$/\1.\2/} == "1.4"
DISTFILES+= ${PORTNAME}-${PORTVERSION}-compat.tar.gz
PLIST_SUB+= JAVA14=""
.else
PLIST_SUB+= JAVA14="@comment "
.endif
pre-patch:
@${ECHO_MSG} "Installation settings:"
@${ECHO_MSG} " Destination directory: ${APP_HOME}"
@${ECHO_MSG} " Control program location: ${CONTROL_SCRIPT}"
@${ECHO_MSG} " Startup script location: ${STARTUP_SCRIPT}"
@${ECHO_MSG} " Location of JDK: ${JAVA_HOME}"
@${ECHO_MSG} " Location of Java port: ${JAVA_PORT}"
@${ECHO_MSG} " Running as (user/group): ${USER}/${GROUP}"
@${ECHO_MSG} " HTTP port: ${HTTP_PORT}"
@${ECHO_MSG} " Shutdown listener port: ${SHUTDOWN_PORT}"
@${ECHO_MSG} " WARP port: ${WARP_PORT}"
@${ECHO_MSG} " AJP 1.3 connector port: ${AJP_1_3_PORT}"
@${ECHO_MSG} " Logfile stdout: ${STDOUT_LOG}"
@${ECHO_MSG} " Logfile stderr: ${STDERR_LOG}"
@${ECHO_MSG} " Starting after install: ${AUTO_START}"
@${ECHO_MSG} " Stop time-out: ${STOP_TIMEOUT} sec."
@PKG_PREFIX=${PREFIX} ${SH} pkg-install ${PKGNAME} PRE-INSTALL
post-patch:
@${ECHO_MSG} -n ">> Removing unneeded files..."
@${RM} -f `${FIND} ${WRKSRC} -name '*.bat'` `${FIND} ${WRKSRC} -name '*.orig'` `${FIND} ${WRKSRC} -name '*.exe'`
@${ECHO_MSG} " [ DONE ]"
.for f in ${REPLACE_FILES}
@${ECHO_MSG} -n ">> Customizing `basename $f`..."
@${SED} \
-e "/%%AJP_1_3_PORT%%/s//${AJP_1_3_PORT}/g" \
-e "/%%APP_HOME%%/s//${APP_HOME:S/\//\\\//g}/g" \
-e "/%%APP_SHORTNAME%%/s//${APP_SHORTNAME}/g" \
-e "/%%APP_TITLE%%/s//${APP_TITLE}/g" \
-e "/%%CONTROL_SCRIPT%%/s//${CONTROL_SCRIPT:S/\//\\\//g}/g" \
-e "/%%CONTROL_SCRIPT_MANPAGE_TITLE%%/s//${CONTROL_SCRIPT_MANPAGE_TITLE}/g" \
-e "/%%CONTROL_SCRIPT_NAME%%/s//${CONTROL_SCRIPT_NAME}/g" \
-e "/%%GROUP%%/s//${GROUP}/g" \
-e "/%%HTTP_PORT%%/s//${HTTP_PORT}/g" \
-e "/%%JAVA_CMD%%/s//bin\/java/g" \
-e "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/g" \
-e "/%%JAR_FILE%%/s//${JAR_FILE:S/\//\\\//g}/g" \
-e "/%%LOG_DIR%%/s//${LOG_DIR:S/\//\\\//g}/g" \
-e "/%%PID_FILE%%/s//${PID_FILE:S/\//\\\//g}/g" \
-e "/%%PORTNAME%%/s//${PORTNAME}/g" \
-e "/%%PORTVERSION%%/s//${PORTVERSION}/g" \
-e "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/g" \
-e "/%%SHUTDOWN_PORT%%/s//${SHUTDOWN_PORT}/g" \
-e "/%%STARTUP_SCRIPT_NAME%%/s//${STARTUP_SCRIPT_NAME}/g" \
-e "/%%STARTUP_SCRIPT%%/s//${STARTUP_SCRIPT:S/\//\\\//g}/g" \
-e "/%%STDERR_LOG%%/s//${STDERR_LOG:S/\//\\\//g}/g" \
-e "/%%STDOUT_LOG%%/s//${STDOUT_LOG:S/\//\\\//g}/g" \
-e "/%%STOP_TIMEOUT%%/s//${STOP_TIMEOUT}/g" \
-e "/%%USER%%/s//${USER}/g" \
-e "/%%WARP_PORT%%/s//${WARP_PORT}/g" \
$f > ${WRKDIR}/`basename $f`
@${ECHO_MSG} " [ DONE ]"
.endfor
do-install:
@${ECHO_MSG} -n ">> Creating destination directory..."
@${MKDIR} ${APP_HOME}
@${MKDIR} ${LOG_DIR}
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} ">> Copying files to destination directory..."
@${CP} ${WRKDIR}/server.xml ${WRKSRC}/conf/
@(cd ${WRKSRC};${FIND} conf -type f | ${SED} -e '/${CONF_EXT}/d') \
| while read a; do \
${MV} ${WRKSRC}/$$a ${WRKSRC}/$$a.${CONF_EXT}; \
if [ ! -e "${APP_HOME}/$$a" ]; then \
${ECHO_MSG} " Installing local configuration file: ${APP_HOME}/$$a"; \
${CP} ${WRKSRC}/$$a.${CONF_EXT} ${WRKSRC}/$$a; \
else \
${ECHO_MSG} " Preserving local configuration file: ${APP_HOME}/$$a"; \
fi; \
done
@${CP} -R ${WRKSRC}/* ${APP_HOME}
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} -n ">> Compiling and installing control program..."
@${SED} \
-e "/%%JAVA_ARGS%%/s//\"-Dcatalina.home=${APP_HOME:S/\//\\\//g}\",/g" \
-e "/%%JAR_ARGS%%/s//\"start\",/g" \
${WRKDIR}/daemonctl.c > ${WRKDIR}/daemonctl_.c
@cd ${WRKDIR} && ${CC} -ansi -o ${CONTROL_SCRIPT_NAME} daemonctl_.c
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} -n ">> Installing startup script..."
@${INSTALL_SCRIPT} ${WRKDIR}/tomcat.sh ${PREFIX}/etc/rc.d/jakarta-tomcat${MAJOR_VER:S/.//}.sh
@${ECHO_MSG} " [ DONE ]"
.if !defined(NOPORTDOCS)
@${ECHO_MSG} -n ">> Installing man pages..."
@${INSTALL_MAN} ${WRKDIR}/daemonctl.1 ${MANPREFIX}/man/man1/${CONTROL_SCRIPT_NAME}.1
@${ECHO_MSG} " [ DONE ]"
.endif
@${ECHO_MSG} -n ">> Creating log files..."
@${INSTALL} -m 664 -o ${USER} -g ${GROUP} /dev/null ${STDOUT_LOG}
@${INSTALL} -m 664 -o ${USER} -g ${GROUP} /dev/null ${STDERR_LOG}
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} -n ">> Creating symlink to tools.jar..."
@${LN} -sf ${JAVA_HOME}/lib/tools.jar ${APP_HOME}/common/lib/tools.jar
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} -n ">> Fixing ownership settings..."
@${CHOWN} -R ${USER}:${GROUP} ${APP_HOME}
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} -n ">> Fixing permissions..."
@${CHMOD} 755 `${FIND} ${APP_HOME} -type d`
@${ECHO_MSG} " [ DONE ]"
@${ECHO_MSG} -n ">> Creating PID file..."
@${TOUCH} ${PID_FILE}
@${CHOWN} ${USER}:${GROUP} ${PID_FILE}
@${CHMOD} 0600 ${PID_FILE}
@${ECHO_MSG} " [ DONE ]"
post-install:
@${ECHO_MSG} "${APP_TITLE} ${PORTVERSION} has been installed in ${APP_HOME}."
@${ECHO_MSG} "If a user should be able to use ${CONTROL_SCRIPT_NAME}, then put this user in the group ${GROUP}."
.if !defined(NOPORTDOCS)
@${ECHO_MSG} "Use 'man ${CONTROL_SCRIPT_NAME}' for information about starting and stopping ${APP_TITLE}."
.endif
.if ${AUTO_START} == "YES"
@${CONTROL_SCRIPT} start || true
.endif
.include <bsd.port.post.mk>