summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--www/orion-devel/Makefile82
-rw-r--r--www/orion-devel/files/orionctl10
-rw-r--r--www/orion-devel/pkg-plist2
-rw-r--r--www/orion/Makefile82
-rw-r--r--www/orion/files/orionctl10
-rw-r--r--www/orion/pkg-plist2
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
OpenPOWER on IntegriCloud