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

Last change on this file since 62382 was 57375, checked in by ryandesign@…, 10 years ago

Change deprecated livecheck.check to livecheck.type
See http://lists.macosforge.org/pipermail/macports-dev/2009-August/009699.html

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