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

Last change on this file since 9182 was 9182, checked in by jkh, 16 years ago

Bump revisions

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