aboutsummaryrefslogtreecommitdiffstats
path: root/www/orion/Makefile
blob: cf3cf664d7d7f9078e96202795d2371f8770a173 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# New ports collection makefile for:   orion
# Date created:        22 December 2000
# Whom:                Ernst de Haan <znerd@FreeBSD.org>
#
# $FreeBSD$
#

PORTNAME=   orion
PORTVERSION=    1.4.5
PORTREVISION=   7
CATEGORIES= www java
MASTER_SITES=   ftp://ftp.sunet.se/pub/database/utils/orionserver/ \
        http://www.metaverse.nl/~ernst/ \
        ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= sobomax
DISTNAME=   ${PORTNAME}${PORTVERSION}

MAINTAINER= znerd@FreeBSD.org

BUILD_DEPENDS=  ${JAVA_HOME}/bin/java:${PORTSDIR}/java/jdk13
RUN_DEPENDS=    ${JAVA_HOME}/bin/java:${PORTSDIR}/java/jdk13

USE_ZIP=    YES
NO_BUILD=   YES

WRKSRC=     ${WRKDIR}/${PORTNAME}
PLIST_SUB+= T=${ORION_HOME:S/^${PREFIX}\///}
ORION_HOME?=    ${PREFIX}/${PKGBASE}${PORTVERSION}
PORTTITLE=  Orion Server
ORIONCTL_NAME=  orionctl
ORIONCTL_DEST=  ${PREFIX}/bin/${ORIONCTL_NAME}
RC_SCRIPT=  ${PREFIX}/etc/rc.d/${PORTNAME}.sh
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}
    ${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)
    ${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:
    @${ECHO} "${PORTTITLE} ${PORTVERSION} has been installed in ${ORION_HOME}."
.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>