2 # - packages for *.renametojar files (-cgi and -ssi in server/lib)
5 %bcond_without javadoc # skip building javadocs
7 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
8 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
13 Group: Development/Languages/Java
14 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
15 # Source0-md5: eb3f196013550b9b1684e4ff18593a8e
17 Source2: %{name}.sysconfig
18 Source10: %{name}-context-ROOT.xml
19 Source11: %{name}-context-balancer.xml
20 Source12: %{name}-context-jsp-examples.xml
21 Source13: %{name}-context-tomcat-docs.xml
22 Source14: %{name}-context-webdav.xml
23 Patch0: %{name}-skip-servletapi.patch
24 Patch1: %{name}-nsis.patch
25 Patch2: %{name}-native.patch
26 Patch3: %{name}-skip-jdt.patch
27 Patch4: %{name}-no-connectors.patch
28 Patch5: %{name}-dbcp.patch
29 # this patch is needed for struts >= 1.3
30 Patch6: %{name}-struts.patch
31 URL: http://tomcat.apache.org/
32 BuildRequires: ant >= 1.5.3
33 BuildRequires: ant-trax
34 BuildRequires: eclipse-jdt
36 BuildRequires: jakarta-regexp >= 0:1.3
37 BuildRequires: java-commons-beanutils >= 1.7
38 BuildRequires: java-commons-collections >= 0:3.1
39 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
40 BuildRequires: java-commons-daemon >= 1.0
41 BuildRequires: java-commons-dbcp >= 0:1.2.1
42 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
43 BuildRequires: java-commons-digester >= 0:1.7
44 BuildRequires: java-commons-el >= 0:1.0
45 BuildRequires: java-commons-fileupload >= 0:1.0
46 BuildRequires: java-commons-httpclient
47 BuildRequires: java-commons-io >= 1.4
48 BuildRequires: java-commons-launcher >= 0:0.9
49 BuildRequires: java-commons-logging >= 0:1.0.4
50 BuildRequires: java-commons-modeler >= 2.0
51 BuildRequires: java-commons-pool >= 0:1.2
52 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
53 BuildRequires: java-servletapi5 = %{version}
54 #BuildRequires: java-struts >= 0:1.2.7
55 BuildRequires: java-struts >= 1.0.2
56 BuildRequires: javamail >= 0:1.3.1
57 BuildRequires: jaxp_parser_impl >= 0:2.7.1
58 BuildRequires: jdbc-stdext >= 0:2.0
59 BuildRequires: jdk >= 1.5
61 BuildRequires: jndi >= 0:1.2.1
62 BuildRequires: jpackage-utils
63 BuildRequires: jsse >= 0:1.0.3
64 BuildRequires: jta >= 0:1.0.1
65 BuildRequires: junit >= 0:3.8.1
66 BuildRequires: logging-log4j
67 BuildRequires: puretls
68 BuildRequires: rpmbuild(macros) >= 1.300
69 BuildRequires: xerces-j >= 0:2.7.1
70 BuildRequires: xml-commons
71 #BuildRequires: xml-commons >= 1.3
72 Requires(post,postun): /sbin/ldconfig
73 Requires(post,preun): /sbin/chkconfig
74 Requires(postun): /usr/sbin/groupdel
75 Requires(postun): /usr/sbin/userdel
76 Requires(pre): /bin/id
77 Requires(pre): /usr/bin/getgid
78 Requires(pre): /usr/sbin/groupadd
79 Requires(pre): /usr/sbin/useradd
80 Requires: %{name}-jasper = %{version}
82 #Requires: jaf >= 1.0.1
83 Requires: jakarta-regexp
84 #Requires: java-commons-beanutils
85 #Requires: java-commons-collections
86 #Requires: java-commons-dbcp-tomcat5
87 #Requires: java-commons-digester
88 Requires: java-commons-el
89 #Requires: java-commons-fileupload
90 #Requires: java-commons-logging
91 Requires: java-servletapi5 = %{version}
92 Requires: javamail >= 1.2
93 Requires: jaxp_parser_impl
94 Requires: jdbc-stdext >= 2.0
95 Requires: jndi >= 1.2.1
97 Requires: jsse >= 1.0.2
98 Requires: jta >= 1.0.1
100 Requires: xml-commons
101 Provides: group(tomcat)
102 Provides: java-servlet-container
103 Provides: user(tomcat)
104 Obsoletes: jakarta-tomcat
106 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
108 %define _tomcatdir %{_datadir}/tomcat
109 %define _logdir %{_var}/log
110 %define _vardir %{_var}/lib/tomcat
111 %define _sysconfdir /etc/tomcat
114 Tomcat is the servlet container that is used in the official Reference
115 Implementation for the Java Servlet and JavaServer Pages technologies.
116 The Java Servlet and JavaServer Pages specifications are developed by
117 Sun under the Java Community Process.
119 Tomcat is developed in an open and participatory environment and
120 released under the Apache Software License. Tomcat is intended to be a
121 collaboration of the best-of-breed developers from around the world.
122 We invite you to participate in this open development project.
124 %description -l pl.UTF-8
125 Tomcat to kontener serwletowy używany przez oficjalną implementację
126 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
127 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
131 Summary: The Apache Tomcat Servlet/JSP Container documentation
132 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
133 Group: Development/Languages/Java
134 Obsoletes: jakarta-tomcat-doc
137 The Tomcat Servlet/JSP Container documentation.
139 %description doc -l pl.UTF-8
140 Dokumentacja do Tomcata - kontenera Servlet/JSP.
143 Summary: Jasper classes from Apache Tomcat
144 Group: Libraries/Java
145 Requires: jpackage-utils
148 This package contains compiled classes of Apache Tomcat`s Jasper.
151 %setup -q -n %{name}-%{version}-src
160 # servletapi built from jakarta-servletapi5.spec
163 # Remove pre-built jars
164 find -name '*.jar' | xargs rm -fv
170 # build jasper javadocs
172 CLASSPATH=$(build-classpath xml-commons-apis)
173 # building jasper needs eclipse classes
174 cat > build.properties <<EOF
175 ant.jar=$(find-jar ant)
176 servlet-api.jar=$(find-jar servlet-api)
177 jsp-api.jar=$(find-jar jsp-api)
178 tools.jar=%{java_home}/lib/tools.jar
179 xercesImpl.jar=$(find-jar jaxp_parser_impl)
180 xmlParserAPIs.jar=$(find-jar xml-commons-apis)
181 commons-collections.jar=$(find-jar commons-collections)
182 commons-logging.jar=$(find-jar commons-logging)
183 commons-daemon.jar=$(find-jar commons-daemon)
184 junit.jar=$(find-jar junit)
185 commons-el.jar=$(find-jar commons-el)
191 -Dcompile.source=1.4 \
192 -Dbuild.compiler=modern \
199 cat > build.properties <<EOF
200 commons-beanutils.jar=$(find-jar commons-beanutils-core)
201 commons-launcher.jar=$(find-jar commons-launcher)
202 commons-daemon.jar=$(find-jar commons-daemon)
203 commons-digester.jar=$(find-jar commons-digester)
204 commons-el.jar=$(find-jar commons-el)
205 commons-logging-api.jar=$(find-jar commons-logging-api)
206 commons-logging.jar=$(find-jar commons-logging)
207 commons-modeler.jar=$(find-jar commons-modeler)
208 xercesImpl.jar=$(find-jar jaxp_parser_impl)
209 xml-apis.jar=$(find-jar xml-commons-apis)
210 jdt.jar=$(find-jar org.eclipse.jdt.core)
211 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
212 commons-httpclient.jar=$(find-jar commons-httpclient)
213 commons-collections.jar=$(find-jar commons-collections)
214 commons-fileupload.jar=$(find-jar commons-fileupload)
215 commons-io.jar=$(find-jar commons-io)
216 jmx.jar=$(find-jar jmx)
217 jmx-tools.jar=$(find-jar jmx)
218 junit.jar=$(find-jar junit)
219 struts.jar=$(find-jar struts-core)
220 struts-core.jar=$(find-jar struts-core)
221 struts-taglib.jar=$(find-jar struts-taglib)
222 jcert.jar=$(find-jar jcert)
223 jnet.jar=$(find-jar jnet)
224 jsse.jar=$(find-jar jsse)
225 jta.jar=$(find-jar jta)
226 puretls.jar=$(find-jar puretls)
227 servlet-api.jar=$(find-jar servlet-api)
228 servletapi.build.notrequired=true
229 jsp-api.jar=$(find-jar jsp-api)
230 jspapi.build.notrequired=true
231 log4j.jar=$(find-jar log4j)
232 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
233 struts.lib=%{_javadir}-struts
240 rm -rf $RPM_BUILD_ROOT
242 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
243 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
245 # we don't need dos scripts
248 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
249 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
251 install -d $TOMCATDIR/bin \
252 $TOMCATDIR/common/{lib,classes,endorsed} \
253 $TOMCATDIR/server/{lib,classes} \
255 $RPM_BUILD_ROOT%{_logdir}/tomcat \
256 $RPM_BUILD_ROOT%{_vardir}/webapps \
257 $RPM_BUILD_ROOT%{_vardir}/work \
258 $RPM_BUILD_ROOT%{_vardir}/conf \
259 $RPM_BUILD_ROOT/etc/sysconfig \
260 $RPM_BUILD_ROOT/etc/rc.d/init.d
262 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
263 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
265 cp -pR conf/* $CATALINADIR/conf
266 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
267 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
268 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
269 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
270 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
271 cp -HR bin common server $TOMCATDIR
273 cp -rf server/webapps $TOMCATDIR/server
274 cp -rf webapps $TOMCATDIR
275 cp -rf shared $TOMCATDIR
276 cp -rf temp $CATALINADIR
278 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
279 ln -sf %{_vardir}/work $TOMCATDIR/work
280 ln -sf %{_vardir}/conf $TOMCATDIR/conf
281 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
283 # symlinks instead of copies
284 ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
285 ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
286 ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
288 ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
291 # do not make these symlinks as ant didn't do
292 ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
293 ln -sf $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
294 ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
295 ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
296 ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
297 ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
298 ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
299 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
300 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
301 ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
302 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
303 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
304 ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
305 ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
306 ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar
307 ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
308 ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
309 ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
310 ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
311 ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
312 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
313 ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
314 ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
315 ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
316 ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
317 ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
318 ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
319 ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
320 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
321 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
322 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
325 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
326 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
327 ln -sf $(find-jar struts-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
329 install -d $RPM_BUILD_ROOT%{_javadir}
330 mv $TOMCATDIR/common/lib/jasper* $RPM_BUILD_ROOT%{_javadir}
331 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib/
332 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib/
333 ln -sf %{_javadir}/jasper-compiler-runtime.jar $TOMCATDIR/common/lib/
336 rm -rf $RPM_BUILD_ROOT
339 %groupadd -g 234 -r -f tomcat
340 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
343 /sbin/chkconfig --add tomcat
344 %service tomcat restart
347 if [ "$1" = "0" ]; then
349 /sbin/chkconfig --del tomcat
353 if [ "$1" = "0" ]; then
359 %defattr(644,root,root,755)
360 %doc build/{RELEASE-NOTES,RUNNING.txt}
361 %attr(754,root,root) /etc/rc.d/init.d/tomcat
362 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
365 %dir %{_tomcatdir}/conf
366 %dir %{_tomcatdir}/bin
367 %{_tomcatdir}/bin/catalina-tasks.xml
368 %{_tomcatdir}/bin/jkstatus-tasks.xml
369 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
370 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
371 %{_tomcatdir}/bin/*.jar
372 %dir %{_tomcatdir}/common
373 %dir %{_tomcatdir}/common/classes
374 %dir %{_tomcatdir}/common/endorsed
375 %dir %{_tomcatdir}/common/i18n
376 %{_tomcatdir}/common/endorsed/*.jar
377 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
378 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
379 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
380 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
381 %{_tomcatdir}/common/lib
382 %dir %{_tomcatdir}/server
383 %dir %{_tomcatdir}/server/classes
384 %{_tomcatdir}/server/lib
385 %{_tomcatdir}/server/webapps
386 %{_tomcatdir}/webapps
390 # tomcat config has to be writeable because of tomacta-users.xml file and
392 %config(noreplace) %attr(775,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf
393 %dir %attr(1730,root,tomcat) %{_vardir}/work
394 %dir %attr(775,root,tomcat) %{_vardir}/webapps
395 %dir %attr(775,root,tomcat) %{_vardir}/temp
396 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
401 %defattr(644,root,root,755)
406 %defattr(644,root,root,755)
407 %{_javadir}/jasper-compiler-jdt.jar
408 %{_javadir}/jasper-compiler.jar
409 %{_javadir}/jasper-runtime.jar