source: trunk/dports/java/tomcat5/Portfile @ 9296

Last change on this file since 9296 was 9296, checked in by jberry, 16 years ago

Update tomcat5 to 5.5.4. The 5.5 branch is now stable.
Note new default variant compat, which provides compatibility with pre JRE 1.5.

  • Property svn:eol-style set to native
File size: 6.3 KB
Line 
1# $Id: Portfile,v 1.8 2004/11/15 15:17:17 jberry Exp $
2
3PortSystem 1.0
4
5name                            tomcat5
6version                         5.5.4
7
8categories                      java www
9maintainers                     jberry@opendarwin.org
10platforms                       darwin
11
12description                     Tomcat 5 HTTP Server and Java Servlet Container.
13long_description        Tomcat is the servlet container that is used in the official \
14                                        Reference Implementation for the Java Servlet and JavaServer \
15                                        Pages technologies.
16homepage                        http://jakarta.apache.org/tomcat/
17
18distname                        jakarta-tomcat-${version}-src
19master_sites            apache:jakarta/tomcat-5/v${version}/src/
20checksums                       md5 2fdfb34df8f670af2669d02fb6103a45
21
22patchfiles                      patch-catalina.sh.diff \
23                                        patch-jk2.properties.diff
24
25depends_build           bin:ant:apache-ant
26depends_lib                     bin:java:kaffe \
27                                        bin:jsvc:commons-daemon \
28                                        lib:pcre:pcre \
29                                        lib:XXX:jakarta-taglibs-standard-11 \
30                                        lib:XXX:commons-beanutils \
31                                        lib:XXX:commons-collections \
32                                        lib:XXX:commons-launcher \
33                                        lib:XXX:commons-daemon \
34                                        lib:XXX:commons-digester \
35                                        lib:XXX:commons-el \
36                                        lib:XXX:commons-logging \
37                                        lib:XXX:commons-modeler \
38                                        lib:XXX:jakarta-regexp \
39                                        lib:XXX:xercesj \
40                                        lib:XXX:jakarta-log4j \
41                                        lib:XXX:commons-httpclient \
42                                        lib:XXX:commons-pool \
43                                        lib:XXX:commons-dbcp \
44                                        lib:XXX:commons-fileupload \
45                                        lib:XXX:mx4j \
46                                        lib:XXX:junit \
47                                        lib:XXX:jaxen \
48                                        lib:XXX:saxpath \
49                                        lib:XXX:struts
50                               
51worksrcdir                      ${distname}/jakarta-tomcat-5
52
53set javaLibs            ${prefix}/share/java
54set home                        share/java/tomcat5
55set tomcatuser          www
56set tomcatgroup         www
57
58use_configure           no
59
60build.cmd                       ant
61build.target            download dist
62build.args                      [join "
63                                        -Dbase.path=${worksrcpath}/Repository
64                                        -Dnsis.exe=${worksrcpath}/.bogus
65                                        -Dcommons-beanutils.jar=${javaLibs}/commons-beanutils.jar
66                                        -Dcommons-collections.jar=${javaLibs}/commons-collections.jar
67                                        -Dcommons-launcher.jar=${javaLibs}/commons-launcher.jar
68                                        -Dcommons-daemon.jar=${javaLibs}/commons-daemon.jar
69                                        -Dcommons-digester.jar=${javaLibs}/commons-digester.jar
70                                        -Dcommons-el.jar=${javaLibs}/commons-el.jar
71                                        -Dcommons-logging.jar=${javaLibs}/commons-logging.jar
72                                        -Dcommons-logging-api.jar=${javaLibs}/commons-logging-api.jar
73                                        -Dcommons-modeler.jar=${javaLibs}/commons-modeler.jar
74                                        -Dcommons-httpclient.jar=${javaLibs}/commons-httpclient.jar
75                                        -Dcommons-pool.jar=${javaLibs}/commons-pool.jar
76                                        -Dcommons-dbcp.jar=${javaLibs}/commons-dbcp.jar
77                                        -Dcommons-fileupload.jar=${javaLibs}/commons-fileupload.jar
78                                        -Dregexp.jar=${javaLibs}/jakarta-regexp.jar
79                                        -DxercesImpl.jar=${javaLibs}/xercesImpl.jar
80                                        -Dxml-apis.jar=${javaLibs}/xml-apis.jar
81                                        -Dlog4j.jar=${javaLibs}/jakarta-log4j.jar
82                                        -Djmx.jar=${javaLibs}/mx4j.jar
83                                        -Djunit.jar=${javaLibs}/junit.jar
84                                        -Djaxen.jar=${javaLibs}/jaxen-core.jar
85                                        -Dsaxpath.jar=${javaLibs}/saxpath.jar
86                                        -Dstruts.lib=${javaLibs}/struts/lib
87                                        "]
88
89default_variants        +compat
90
91# This variant provides compatibility with pre-JRE 1.5 systems
92variant compat {
93        build.target-append compat
94}
95
96pre-build {
97        # Make a bogus file to prevent nsis.exe from downloading
98        system "touch ${worksrcpath}/.bogus"
99}
100
101destroot {
102        set target ${destroot}${prefix}/${home}
103
104        # Ensure we've got needed directories
105        xinstall -m 755 -d \
106                ${destroot}${prefix}/share/java \
107                ${destroot}${prefix}/share/doc \
108                ${destroot}${prefix}/etc/rc.d
109               
110        # Create the tomcat user
111        addgroup ${tomcatgroup}
112        set gid [existsgroup ${tomcatgroup}]
113        adduser ${tomcatgroup} gid=${gid} realname=Web Server
114       
115        # Install Tomcat
116        file copy ${worksrcpath}/dist ${target}
117       
118        # Add compat files as needed
119        if { [variant_isset compat] } {
120                system "tar -cf - -C ${worksrcpath}/compat . | tar xpf - -C ${target}"
121        }
122       
123        # Add the jstl libs to tomcat5/shared/lib so that they're available to all
124        xinstall -m 644 \
125                ${prefix}/share/java/jstl.jar \
126                ${prefix}/share/java/standard.jar \
127                ${target}/shared/lib
128               
129        # Remove unwanted files
130        foreach f [glob -directory ${target}/bin *.bat] { file delete $f }
131       
132        # Maintain empty directories
133        destroot.keepdirs-append \
134                ${target}/logs \
135                ${target}/temp \
136                ${target}/work \
137                ${target}/shared/classes \
138                ${target}/common/classes
139               
140        # Install our scripts
141        xinstall -m 755 \
142                ${filespath}/tomcatctl \
143                ${filespath}/conf_setup.sh \
144                ${filespath}/setenv.sh \
145                ${target}/bin
146        xinstall -m 755 ${filespath}/tomcat5.sh \
147                ${destroot}${prefix}/etc/rc.d
148               
149        # Add a symlink from bin directory to tomcatctl
150        system "cd ${destroot}${prefix}/bin && ln -s ../${home}/bin/tomcatctl"
151       
152        # Configure the scripts
153        reinplace s|PREFIX=$|PREFIX=${prefix}| ${target}/bin/tomcatctl
154        reinplace s|TOMCAT_USER=$|TOMCAT_USER=${tomcatuser}| ${target}/bin/tomcatctl
155        reinplace s|TOMCATPREFIX=$|TOMCATPREFIX=${prefix}/${home}| ${destroot}${prefix}/etc/rc.d/tomcat5.sh
156       
157        # Rename certain files as .sample to avoid replacing them on update
158        # These will be "repaired" by conf_setup.sh on first run
159        foreach f       "
160                                catalina.policy
161                                catalina.properties
162                                jk2.properties
163                                server.xml
164                                tomcat-users.xml
165                                web.xml
166                                " {
167                file rename ${target}/conf/${f} ${target}/conf/${f}.sample
168        }
169        reinplace s|@@PREFIX@@|${prefix}|g ${target}/conf/jk2.properties.sample
170
171        # Fix ownership of some directories tomcat really needs to write to
172        system "chown -R ${tomcatuser}:${tomcatgroup} \
173                ${target}/conf \
174                ${target}/logs \
175                ${target}/temp \
176                ${target}/webapps \
177                ${target}/work"
178       
179        # Install the docs
180        file copy ${worksrcpath}/build/docs \
181                ${destroot}${prefix}/share/doc/${name}
182}
183
184
185post-install {
186        ui_msg "#"
187        ui_msg "# Configuration files in ${prefix}/${home}/conf have been"
188        ui_msg "# installed with a .sample extension so that they won't be replaced by a"
189        ui_msg "# port update. Each will be copied to its proper location during the"
190        ui_msg "# first startup of tomcat by catalina.sh or tomcatctl if you don't"
191        ui_msg "# do this yourself first. If this _is_ an update, you might do a diff to"
192        ui_msg "# verify that you're not missing anything in the newer .sample versions"
193        ui_msg "# of these files."
194        ui_msg "#"
195        ui_msg "# The script ${prefix}/${home}/bin/tomcatctl has been installed to"
196        ui_msg "# facilitate start and stop of tomcat using the jsvc utility, which allows you to"
197        ui_msg "# start tomcat as a true daemon process. Once it has acquired its TCP socket,"
198        ui_msg "# jsvc will drop its root privileges and run as user ${tomcatuser}."
199        ui_msg "#"
200}
Note: See TracBrowser for help on using the repository browser.