source: trunk/dports/java/tomcat6/Portfile @ 85401

Last change on this file since 85401 was 84550, checked in by snc@…, 8 years ago

modelines

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 10.3 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 84550 2011-09-27 21:05:11Z snc@macports.org $
3
4PortSystem 1.0
5
6name                    tomcat6
7version                 6.0.32
8
9categories              java www
10maintainers             blair openmaintainer
11platforms               darwin
12
13description             Tomcat 6 HTTP Server and Java Servlet Container.
14long_description        Tomcat is the servlet container that is used in \
15                        the official Reference Implementation for the \
16                        Java Servlet and JavaServer Pages technologies.
17homepage                http://tomcat.apache.org/
18
19distname                apache-tomcat-${version}-src
20master_sites            apache:tomcat/tomcat-6/v${version}/src/
21
22checksums               md5    19a1eaa9c9938b520d3c360d8cf4af22 \
23                        sha1   ec94c511e54da2b02dd2ba45b9fd1703d5771a45 \
24                        rmd160 e6203645e6570564b25154018436d908c5b1a71a
25
26patchfiles              patch-bin-catalina.sh \
27                        patch-build.xml.diff
28
29depends_build           bin:ant:apache-ant
30depends_lib             bin:java:kaffe \
31                        bin:jsvc:commons-daemon \
32                        port:jakarta-taglibs-standard-11 \
33                        port:commons-beanutils \
34                        port:commons-collections \
35                        port:commons-launcher \
36                        port:commons-daemon \
37                        port:commons-digester \
38                        port:commons-el \
39                        port:commons-logging \
40                        port:commons-modeler \
41                        port:commons-httpclient \
42                        port:commons-pool \
43                        port:commons-dbcp \
44                        port:commons-fileupload \
45                        port:commons-io \
46                        port:jakarta-regexp \
47                        port:xercesj \
48                        port:jakarta-log4j \
49                        port:mx4j \
50                        port:junit \
51                        port:saxpath
52
53##                      port:jaxen \
54
55set javaLibs            ${prefix}/share/java
56set home                share/java/tomcat6
57set tomcatuser          www
58set tomcatgroup         www
59
60use_configure           no
61
62build.cmd               ant
63build.target            download
64set antArgs             [join "
65                               -Dversion=${version}
66                               -Dversion.build=[lindex [split ${version} .] 2]
67                               -Dbase.path=${worksrcpath}/Repository
68                               -Dnsis.exe=${worksrcpath}/.bogus
69                               -Dcommons-beanutils.jar=${javaLibs}/commons-beanutils.jar
70                               -Dcommons-collections.jar=${javaLibs}/commons-collections.jar
71                               -Dcommons-launcher.jar=${javaLibs}/commons-launcher.jar
72                               -Dcommons-daemon.jar=${javaLibs}/commons-daemon.jar
73                               -Dcommons-digester.jar=${javaLibs}/commons-digester.jar
74                               -Dcommons-el.jar=${javaLibs}/commons-el.jar
75                               -Dcommons-logging.jar=${javaLibs}/commons-logging.jar
76                               -Dcommons-logging-api.jar=${javaLibs}/commons-logging-api.jar
77                               -Dcommons-modeler.jar=${javaLibs}/commons-modeler.jar
78                               -Dcommons-httpclient.jar=${javaLibs}/commons-httpclient.jar
79                               -Dcommons-pool.jar=${javaLibs}/commons-pool.jar
80                               -Dcommons-dbcp.jar=${javaLibs}/commons-dbcp.jar
81                               -Dcommons-fileupload.jar=${javaLibs}/commons-fileupload.jar
82                               -Dregexp.jar=${javaLibs}/jakarta-regexp.jar
83                               -DxercesImpl.jar=${javaLibs}/xercesImpl.jar
84                               -Dxml-apis.jar=${javaLibs}/xml-apis.jar
85                               -Dlog4j.jar=${javaLibs}/jakarta-log4j.jar
86                               -Djmx.lib=${javaLibs}
87                               -Djunit.jar=${javaLibs}/junit.jar
88                               -Dsaxpath.jar=${javaLibs}/saxpath.jar
89                               -Djasper.home=${worksrcpath}/../jasper
90                              "]
91#                              -Dstruts.lib=${javaLibs}/struts/lib
92##                             -Djaxen.jar=${javaLibs}/jaxen.jar
93
94build.args              $antArgs
95
96pre-build {
97        #
98        # Tomcat in this version requires ant 1.6.5.
99        # If the current version of ant is not at least 1.6.5 then
100        # tell the user and fail.
101        #
102        if { [string length [auto_execok ant]] } {
103                set verOutput [exec ant -version]
104                regexp {version (\d+(\.\d+)*)} $verOutput -> antVersion
105                if { [rpm-vercomp $antVersion "1.6.5"] < 0 } {
106                        return -code error "This version of tomcat requires ant version 1.6.5 or better. Please install a newer ant before proceeding."
107                }
108        }
109
110        # Make a bogus file to prevent nsis.exe from downloading
111        system "touch ${worksrcpath}/.bogus"
112}
113
114destroot {
115        set target ${destroot}${prefix}/${home}
116        xinstall -m 755 -d ${target}
117
118        # Ensure we've got needed directories
119        ui_msg "# setting up needed dirs"
120        xinstall -m 755 -d \
121                ${destroot}${prefix}/share/java \
122                ${destroot}${prefix}/share/doc \
123                ${destroot}${prefix}/etc/rc.d
124
125        # Create the tomcat user
126        addgroup ${tomcatgroup}
127        set gid [existsgroup ${tomcatgroup}]
128        adduser ${tomcatuser} gid=${gid} realname=Web Server
129
130        # Install Tomcat
131        ui_msg "# installing tomcat..."
132        system "cd ${worksrcpath} && ant $antArgs deploy"
133        ## build space:
134        file copy ${worksrcpath}/output/build/bin ${target}
135        file copy ${worksrcpath}/output/build/conf ${target}
136        file copy ${worksrcpath}/output/build/lib ${target}
137        file copy ${worksrcpath}/output/build/temp ${target}
138        file copy ${worksrcpath}/output/build/webapps ${target}
139        ## and classes:
140        file copy ${worksrcpath}/output/classes ${target}/shared/
141
142        # Add the jstl libs to tomcat6/shared/lib so that they're
143        # available to all
144        ui_msg "# adding the jstl libs "
145        xinstall -m 755 -d ${target}/shared/lib
146        xinstall -m 644 \
147                ${prefix}/share/java/jstl.jar \
148                ${prefix}/share/java/standard.jar \
149                ${target}/shared/lib
150
151        # Remove unwanted files
152        foreach f [glob -directory ${target}/bin *.bat] { file delete $f }
153
154        # Maintain empty directories
155        ui_msg "# maint. empty dirs... "
156        xinstall -m 755 -d ${target}/work
157        xinstall -m 755 -d ${target}/logs
158        destroot.keepdirs-append \
159                ${target}/logs \
160                ${target}/temp \
161                ${target}/work \
162                ${target}/shared/classes \
163                ${target}/common/classes
164
165        # Install our scripts
166        ui_msg "# adding our scripts "
167        xinstall -m 755 \
168                ${filespath}/tomcatctl \
169                ${filespath}/conf_setup.sh \
170                ${filespath}/setenv.sh \
171                ${target}/bin
172        ui_msg "# adding our scripts 2"
173        xinstall -m 755 \
174                ${filespath}/setenv.local \
175                ${target}/conf
176
177        # Add a symlink from bin directory to tomcatctl
178        system "cd ${destroot}${prefix}/bin && ln -s ../${home}/bin/tomcatctl"
179
180        # Configure the scripts
181        reinplace s|PREFIX=$|PREFIX=${prefix}| ${target}/bin/tomcatctl
182        reinplace s|TOMCAT_USER=$|TOMCAT_USER=${tomcatuser}| ${target}/bin/tomcatctl
183
184        # Rename certain files as .sample to avoid replacing them on update
185        # These will be "repaired" by conf_setup.sh on first run
186        foreach f "
187                   catalina.policy
188                   catalina.properties
189                   server.xml
190                   tomcat-users.xml
191                   web.xml
192                   setenv.local
193                  " {
194                file rename ${target}/conf/${f} ${target}/conf/${f}.sample
195        }
196
197        # Fix ownership of some directories tomcat really needs to write to
198        system "chown -R ${tomcatuser}:${tomcatgroup} \
199                ${target}/conf \
200                ${target}/logs \
201                ${target}/temp \
202                ${target}/webapps \
203                ${target}/work"
204
205        # Install the docs
206        file copy ${worksrcpath}/webapps/docs \
207                ${destroot}${prefix}/share/doc/${name}
208}
209
210
211post-install {
212        ui_msg "#"
213        ui_msg "# Configuration files in ${prefix}/${home}/conf have been"
214        ui_msg "# installed with a .sample extension so that they won't be replaced by a"
215        ui_msg "# port update. Each will be copied to its proper location during the"
216        ui_msg "# first startup of tomcat by catalina.sh or tomcatctl if you don't"
217        ui_msg "# do this yourself first. If this _is_ an update, you might do a diff to"
218        ui_msg "# verify that you're not missing anything in the newer .sample versions"
219        ui_msg "# of these files."
220        ui_msg "#"
221        ui_msg "# The script ${prefix}/${home}/bin/tomcatctl has been installed to"
222        ui_msg "# facilitate start and stop of tomcat using the jsvc utility, which allows you to"
223        ui_msg "# start tomcat as a true daemon process. Once tomcat has acquired its TCP socket,"
224        ui_msg "# jsvc will drop its root privileges and run as user ${tomcatuser}."
225        ui_msg "#"
226        ui_msg "# Under Apple Java, control over the Java version used to launch ${name} is"
227        ui_msg "# through the shell variable JAVA_JVM_VERSION. This variable should be set"
228        ui_msg "# to a java version such as 1.5, 1.6, or CurrentJDK (for the default version)."
229        ui_msg "# You may set JAVA_JVM_VERSION in ${prefix}/${home}/bin/setenv.sh."
230        ui_msg "#"
231}
232
233startupitem.create      yes
234startupitem.executable  "${prefix}/bin/tomcatctl" start
235startupitem.pidfile     clean "${prefix}/share/java/tomcat6/logs/${name}.pid"
236
237
238livecheck.type          regex
239livecheck.url           ${homepage}/download-60.cgi
240livecheck.regex         "apache-tomcat-(\\d+\\.\\d+(\\.\\d+)?)-src.tar.gz"
Note: See TracBrowser for help on using the repository browser.