diff options
-rw-r--r-- | www/orion-devel/Makefile | 82 | ||||
-rw-r--r-- | www/orion-devel/files/orionctl | 10 | ||||
-rw-r--r-- | www/orion-devel/pkg-plist | 2 | ||||
-rw-r--r-- | www/orion/Makefile | 82 | ||||
-rw-r--r-- | www/orion/files/orionctl | 10 | ||||
-rw-r--r-- | www/orion/pkg-plist | 2 |
6 files changed, 168 insertions, 20 deletions
diff --git a/www/orion-devel/Makefile b/www/orion-devel/Makefile index 9973c13..3d885d8 100644 --- a/www/orion-devel/Makefile +++ b/www/orion-devel/Makefile @@ -7,7 +7,7 @@ PORTNAME= orion PORTVERSION= 1.4.5 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= www java MASTER_SITES= ftp://ftp.sunet.se/pub/database/utils/orionserver/ \ ${MASTER_SITE_LOCAL} \ @@ -18,7 +18,7 @@ DISTNAME= ${PORTNAME}${PORTVERSION} MAINTAINER= ernst@jollem.com -RUN_DEPENDS= ${JAVA_HOME}/bin/java:${PORTSDIR}/java/linux-jdk13 +RUN_DEPENDS= ${JAVA_HOME}/bin/java:${PORTSDIR}/java/jdk13 USE_ZIP= YES NO_BUILD= YES @@ -30,30 +30,93 @@ PORTTITLE= Orion Server ORIONCTL_NAME= orionctl ORIONCTL_DEST= ${PREFIX}/bin/${ORIONCTL_NAME} RC_SCRIPT= ${PREFIX}/etc/rc.d/${PORTNAME}.sh -JAVA_HOME?= ${LOCALBASE}/linux-jdk1.3.1 +JAVA_HOME?= ${LOCALBASE}/jdk1.3.1 +JIKES_LOCATION= ${LOCALBASE}/bin/jikes +WITH_JIKES?= YES +.if ${WITH_JIKES} == "YES" +RUN_DEPENDS+= ${JIKES_LOCATION}:${PORTSDIR}/java/jikes +.endif +USER_NAME?= ${PORTNAME} +GROUP_NAME?= ${USER_NAME} +USER_ID?= 7104 +GROUP_ID?= ${USER_ID} +PW?= /usr/sbin/pw +LISTEN_PORT?= 8090 +AUTO_START?= YES .include <bsd.port.pre.mk> +pre-install: + @${ECHO} "Installation settings:" + @${ECHO} " Destination directory: ${ORION_HOME}" + @${ECHO} " Control script location: ${ORIONCTL_DEST}" + @${ECHO} " Startup script location: ${RC_SCRIPT}" + @${ECHO} " Startup script location: ${RC_SCRIPT}" + @${ECHO} " Location of JDK: ${JAVA_HOME}" + @${ECHO} " Using Jikes: ${WITH_JIKES}" + @${ECHO} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})" + @${ECHO} " Port to listen at: ${LISTEN_PORT}" + @${ECHO} " Starting after install: ${AUTO_START}" + do-install: + @# Add the group and the user if they do not exist + ${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true + ${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "Orion Server account" -d ${ORION_HOME} -s ${SH} -h - || true + + @# Create the destination directory for Orion ${MKDIR} ${ORION_HOME} + + @# Copy all files and make them rwxr-xr-x ${CP} -R ${WRKSRC}/* ${ORION_HOME} ${CHMOD} 755 `find ${ORION_HOME} -type d` + + @# Configure for use of Jikes, if necessary +.if ${WITH_JIKES} == "YES" + ${CAT} ${WRKSRC}/config/server.xml \ + | ${SED} "/\<!-- \<compiler executable=\"jikes\" classpath=\"\/myjdkdir\/jre\/lib\/rt.jar\" \/\> -->/s//\<compiler executable=\"${JIKES_LOCATION:S/\//\\\//g}\" classpath=\"${JAVA_HOME:S/\//\\\//g}\/jre\/lib\/rt.jar\"\/\>/" \ + > ${ORION_HOME}/config/server.xml +.endif + + @# Configure the port to listen to + ${CAT} ${WRKSRC}/config/default-web-site.xml \ + | ${SED} "/port=\"80\"/s//port=\"${LISTEN_PORT}\"/" \ + > ${ORION_HOME}/config/default-web-site.xml + + @# Install the 'orionctl' script ${CAT} ${FILESDIR}/${ORIONCTL_NAME} \ | ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \ | ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \ | ${SED} "/%%ORION_HOME%%/s//${ORION_HOME:S/\//\\\//g}/" \ | ${SED} "/%%RC_SCRIPT_NAME%%/s//${PORTNAME}.sh/" \ | ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \ + | ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \ > ${ORIONCTL_DEST} - ${CAT} ${FILESDIR}/${ORIONCTL_NAME}.1 \ - | ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \ - > ${WRKDIR}/${ORIONCTL_NAME}.1 ${CHMOD} 755 ${ORIONCTL_DEST} + + @# Fix a small typo in the index.html served as the root + ${CAT} ${WRKSRC}/default-web-app/index.html \ + | ${SED} "/1\.4\.0/s//${PORTVERSION}/" \ + > ${ORION_HOME}/default-web-app/index.html + + @# Install the startup script ${LN} -sf ${ORIONCTL_DEST} ${RC_SCRIPT} + + @# Create the 'application-deployments' directory, since Orion will + @# otherwise create it when it is first run ${MKDIR} ${ORION_HOME}/application-deployments + + @# Install the tools.jar file from the JDK, since it is needed by Orion ${LN} -sf ${JAVA_HOME}/lib/tools.jar ${ORION_HOME}/tools.jar + + @# Change ownership for the files + ${CHOWN} -R ${USER_NAME}:${GROUP_NAME} ${ORION_HOME} + + @# Install the man page .if !defined(NOPORTDOCS) - ${INSTALL_MAN} ${WRKDIR}/orionctl.1 ${MANPREFIX}/man/man1 + ${CAT} ${FILESDIR}/${ORIONCTL_NAME}.1 \ + | ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \ + > ${WRKDIR}/${ORIONCTL_NAME}.1 + ${INSTALL_MAN} ${WRKDIR}/${ORIONCTL_NAME}.1 ${MANPREFIX}/man/man1 .endif post-install: @@ -61,5 +124,10 @@ post-install: .if !defined(NOPORTDOCS) @${ECHO} "Use 'man orionctl' for information about starting and stopping Orion." .endif +.if ${AUTO_START} == "YES" + @${ECHO} -n "Starting..." + @${RC_SCRIPT} start + @${ECHO} "" +.endif .include <bsd.port.post.mk> diff --git a/www/orion-devel/files/orionctl b/www/orion-devel/files/orionctl index a238e93..a4fb1ce 100644 --- a/www/orion-devel/files/orionctl +++ b/www/orion-devel/files/orionctl @@ -1,9 +1,10 @@ #!/bin/sh -# Set some more variables +# Set some variables NAME=%%PORTNAME%% VERSION=%%PORTVERSION%% ORION_HOME=%%ORION_HOME%% +USER_NAME=%%USER_NAME%% LOG=${ORION_HOME}/log/${NAME}.log PID_FILE=/var/run/${NAME}.pid JAR_FILE=${ORION_HOME}/${NAME}.jar @@ -64,13 +65,16 @@ case "$1" in # Create the process ID file rm -f ${PID_FILE} touch ${PID_FILE} - chown root:wheel ${PID_FILE} + chown ${USER_NAME} ${PID_FILE} chmod 600 ${PID_FILE} if [ "${AS_RC_SCRIPT}" = "yes" ]; then echo -n " ${NAME}" fi - ( cd ${ORION_HOME} && ${JAVA_CMD} -jar orion.jar & echo $! > ${PID_FILE} ) > ${LOG} 2>&1 + touch ${PID_FILE} + chown ${USER_NAME} ${PID_FILE} + chmod 600 ${PID_FILE} + su - ${USER_NAME} -c "(cd ${ORION_HOME} && ${JAVA_CMD} -jar orion.jar & echo \$! > ${PID_FILE}) > ${LOG} 2>&1" ;; stop) if [ ! -e ${PID_FILE} ]; then diff --git a/www/orion-devel/pkg-plist b/www/orion-devel/pkg-plist index 3db8e7d..c36603d 100644 --- a/www/orion-devel/pkg-plist +++ b/www/orion-devel/pkg-plist @@ -394,3 +394,5 @@ bin/orionctl @dirrm %%T%%/persistence/ejb @dirrm %%T%%/persistence @dirrm %%T%% +@unexec pw groupdel orion || true +@unexec pw userdel orion || true diff --git a/www/orion/Makefile b/www/orion/Makefile index 9973c13..3d885d8 100644 --- a/www/orion/Makefile +++ b/www/orion/Makefile @@ -7,7 +7,7 @@ PORTNAME= orion PORTVERSION= 1.4.5 -PORTREVISION= 6 +PORTREVISION= 7 CATEGORIES= www java MASTER_SITES= ftp://ftp.sunet.se/pub/database/utils/orionserver/ \ ${MASTER_SITE_LOCAL} \ @@ -18,7 +18,7 @@ DISTNAME= ${PORTNAME}${PORTVERSION} MAINTAINER= ernst@jollem.com -RUN_DEPENDS= ${JAVA_HOME}/bin/java:${PORTSDIR}/java/linux-jdk13 +RUN_DEPENDS= ${JAVA_HOME}/bin/java:${PORTSDIR}/java/jdk13 USE_ZIP= YES NO_BUILD= YES @@ -30,30 +30,93 @@ PORTTITLE= Orion Server ORIONCTL_NAME= orionctl ORIONCTL_DEST= ${PREFIX}/bin/${ORIONCTL_NAME} RC_SCRIPT= ${PREFIX}/etc/rc.d/${PORTNAME}.sh -JAVA_HOME?= ${LOCALBASE}/linux-jdk1.3.1 +JAVA_HOME?= ${LOCALBASE}/jdk1.3.1 +JIKES_LOCATION= ${LOCALBASE}/bin/jikes +WITH_JIKES?= YES +.if ${WITH_JIKES} == "YES" +RUN_DEPENDS+= ${JIKES_LOCATION}:${PORTSDIR}/java/jikes +.endif +USER_NAME?= ${PORTNAME} +GROUP_NAME?= ${USER_NAME} +USER_ID?= 7104 +GROUP_ID?= ${USER_ID} +PW?= /usr/sbin/pw +LISTEN_PORT?= 8090 +AUTO_START?= YES .include <bsd.port.pre.mk> +pre-install: + @${ECHO} "Installation settings:" + @${ECHO} " Destination directory: ${ORION_HOME}" + @${ECHO} " Control script location: ${ORIONCTL_DEST}" + @${ECHO} " Startup script location: ${RC_SCRIPT}" + @${ECHO} " Startup script location: ${RC_SCRIPT}" + @${ECHO} " Location of JDK: ${JAVA_HOME}" + @${ECHO} " Using Jikes: ${WITH_JIKES}" + @${ECHO} " Running as (user/group): ${USER_NAME}/${GROUP_NAME} (${USER_ID}:${GROUP_ID})" + @${ECHO} " Port to listen at: ${LISTEN_PORT}" + @${ECHO} " Starting after install: ${AUTO_START}" + do-install: + @# Add the group and the user if they do not exist + ${PW} groupadd -n ${GROUP_NAME} -g ${GROUP_ID} || true + ${PW} useradd -n ${USER_NAME} -u ${USER_ID} -g ${GROUP_NAME} -c "Orion Server account" -d ${ORION_HOME} -s ${SH} -h - || true + + @# Create the destination directory for Orion ${MKDIR} ${ORION_HOME} + + @# Copy all files and make them rwxr-xr-x ${CP} -R ${WRKSRC}/* ${ORION_HOME} ${CHMOD} 755 `find ${ORION_HOME} -type d` + + @# Configure for use of Jikes, if necessary +.if ${WITH_JIKES} == "YES" + ${CAT} ${WRKSRC}/config/server.xml \ + | ${SED} "/\<!-- \<compiler executable=\"jikes\" classpath=\"\/myjdkdir\/jre\/lib\/rt.jar\" \/\> -->/s//\<compiler executable=\"${JIKES_LOCATION:S/\//\\\//g}\" classpath=\"${JAVA_HOME:S/\//\\\//g}\/jre\/lib\/rt.jar\"\/\>/" \ + > ${ORION_HOME}/config/server.xml +.endif + + @# Configure the port to listen to + ${CAT} ${WRKSRC}/config/default-web-site.xml \ + | ${SED} "/port=\"80\"/s//port=\"${LISTEN_PORT}\"/" \ + > ${ORION_HOME}/config/default-web-site.xml + + @# Install the 'orionctl' script ${CAT} ${FILESDIR}/${ORIONCTL_NAME} \ | ${SED} "/%%PORTNAME%%/s//${PORTNAME}/" \ | ${SED} "/%%PORTVERSION%%/s//${PORTVERSION}/" \ | ${SED} "/%%ORION_HOME%%/s//${ORION_HOME:S/\//\\\//g}/" \ | ${SED} "/%%RC_SCRIPT_NAME%%/s//${PORTNAME}.sh/" \ | ${SED} "/%%JAVA_HOME%%/s//${JAVA_HOME:S/\//\\\//g}/" \ + | ${SED} "/%%USER_NAME%%/s//${USER_NAME}/" \ > ${ORIONCTL_DEST} - ${CAT} ${FILESDIR}/${ORIONCTL_NAME}.1 \ - | ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \ - > ${WRKDIR}/${ORIONCTL_NAME}.1 ${CHMOD} 755 ${ORIONCTL_DEST} + + @# Fix a small typo in the index.html served as the root + ${CAT} ${WRKSRC}/default-web-app/index.html \ + | ${SED} "/1\.4\.0/s//${PORTVERSION}/" \ + > ${ORION_HOME}/default-web-app/index.html + + @# Install the startup script ${LN} -sf ${ORIONCTL_DEST} ${RC_SCRIPT} + + @# Create the 'application-deployments' directory, since Orion will + @# otherwise create it when it is first run ${MKDIR} ${ORION_HOME}/application-deployments + + @# Install the tools.jar file from the JDK, since it is needed by Orion ${LN} -sf ${JAVA_HOME}/lib/tools.jar ${ORION_HOME}/tools.jar + + @# Change ownership for the files + ${CHOWN} -R ${USER_NAME}:${GROUP_NAME} ${ORION_HOME} + + @# Install the man page .if !defined(NOPORTDOCS) - ${INSTALL_MAN} ${WRKDIR}/orionctl.1 ${MANPREFIX}/man/man1 + ${CAT} ${FILESDIR}/${ORIONCTL_NAME}.1 \ + | ${SED} "/%%PREFIX%%/s//${PREFIX:S/\//\\\//g}/" \ + > ${WRKDIR}/${ORIONCTL_NAME}.1 + ${INSTALL_MAN} ${WRKDIR}/${ORIONCTL_NAME}.1 ${MANPREFIX}/man/man1 .endif post-install: @@ -61,5 +124,10 @@ post-install: .if !defined(NOPORTDOCS) @${ECHO} "Use 'man orionctl' for information about starting and stopping Orion." .endif +.if ${AUTO_START} == "YES" + @${ECHO} -n "Starting..." + @${RC_SCRIPT} start + @${ECHO} "" +.endif .include <bsd.port.post.mk> diff --git a/www/orion/files/orionctl b/www/orion/files/orionctl index a238e93..a4fb1ce 100644 --- a/www/orion/files/orionctl +++ b/www/orion/files/orionctl @@ -1,9 +1,10 @@ #!/bin/sh -# Set some more variables +# Set some variables NAME=%%PORTNAME%% VERSION=%%PORTVERSION%% ORION_HOME=%%ORION_HOME%% +USER_NAME=%%USER_NAME%% LOG=${ORION_HOME}/log/${NAME}.log PID_FILE=/var/run/${NAME}.pid JAR_FILE=${ORION_HOME}/${NAME}.jar @@ -64,13 +65,16 @@ case "$1" in # Create the process ID file rm -f ${PID_FILE} touch ${PID_FILE} - chown root:wheel ${PID_FILE} + chown ${USER_NAME} ${PID_FILE} chmod 600 ${PID_FILE} if [ "${AS_RC_SCRIPT}" = "yes" ]; then echo -n " ${NAME}" fi - ( cd ${ORION_HOME} && ${JAVA_CMD} -jar orion.jar & echo $! > ${PID_FILE} ) > ${LOG} 2>&1 + touch ${PID_FILE} + chown ${USER_NAME} ${PID_FILE} + chmod 600 ${PID_FILE} + su - ${USER_NAME} -c "(cd ${ORION_HOME} && ${JAVA_CMD} -jar orion.jar & echo \$! > ${PID_FILE}) > ${LOG} 2>&1" ;; stop) if [ ! -e ${PID_FILE} ]; then diff --git a/www/orion/pkg-plist b/www/orion/pkg-plist index 3db8e7d..c36603d 100644 --- a/www/orion/pkg-plist +++ b/www/orion/pkg-plist @@ -394,3 +394,5 @@ bin/orionctl @dirrm %%T%%/persistence/ejb @dirrm %%T%%/persistence @dirrm %%T%% +@unexec pw groupdel orion || true +@unexec pw userdel orion || true |