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

Last change on this file since 10876 was 10876, checked in by jberry, 15 years ago

Add check for ant version 1.6.2. Add explicit port dependency onto our ant if its not present.

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