2 # - packages for *.renametojar files (-cgi and -ssi in server/lib)
5 %bcond_without javadoc # skip building javadocs
6 %bcond_with jta # put jta jar into tomcat lib dir.
7 %bcond_without java_sun # build with gcj (does not work)
9 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
10 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
15 Group: Networking/Daemons/Java
16 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
17 # Source0-md5: eb3f196013550b9b1684e4ff18593a8e
19 Source2: %{name}.sysconfig
20 Source10: %{name}-context-ROOT.xml
21 Source11: %{name}-context-balancer.xml
22 Source12: %{name}-context-jsp-examples.xml
23 Source13: %{name}-context-tomcat-docs.xml
24 Source14: %{name}-context-webdav.xml
25 Patch0: %{name}-skip-servletapi.patch
26 Patch1: %{name}-nsis.patch
27 Patch2: %{name}-native.patch
28 Patch3: %{name}-skip-jdt.patch
29 Patch4: %{name}-no-connectors.patch
30 Patch5: %{name}-dbcp.patch
31 # this patch is needed for struts >= 1.3
32 Patch6: %{name}-struts.patch
33 URL: http://tomcat.apache.org/
35 BuildRequires: java-sun >= 1.5
36 BuildRequires: java-sun-jre >= 1.5
38 BuildRequires: java-gcj-compat-devel
39 # BuildRequires: jsse >= 0:1.0.3
41 BuildRequires: ant >= 1.5.3
42 BuildRequires: ant-trax
43 BuildRequires: eclipse-jdt
45 BuildRequires: jakarta-regexp >= 0:1.3
46 BuildRequires: java-commons-beanutils >= 1.7
47 BuildRequires: java-commons-collections >= 0:3.1
48 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
49 BuildRequires: java-commons-daemon >= 1.0
50 BuildRequires: java-commons-dbcp >= 0:1.2.1
51 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
52 BuildRequires: java-commons-digester >= 0:1.7
53 BuildRequires: java-commons-el >= 0:1.0
54 BuildRequires: java-commons-fileupload >= 0:1.0
55 BuildRequires: java-commons-httpclient
56 BuildRequires: java-commons-io >= 1.4
57 BuildRequires: java-commons-launcher >= 0:0.9
58 BuildRequires: java-commons-logging >= 0:1.0.4
59 BuildRequires: java-commons-modeler >= 2.0
60 BuildRequires: java-commons-pool >= 0:1.2
61 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
62 %{?with_jta:BuildRequires: java-jta >= 0:1.0.1}
63 BuildRequires: java-log4j
64 BuildRequires: java-puretls
65 BuildRequires: java-servletapi5 = %{version}
66 #BuildRequires: java-struts >= 0:1.2.7
67 BuildRequires: java-struts >= 1.0.2
68 BuildRequires: java-xerces >= 0:2.7.1
69 BuildRequires: java-xml-commons
70 #BuildRequires: java-xml-commons >= 1.3
71 BuildRequires: java-mail >= 0:1.3.1
72 BuildRequires: jaxp_parser_impl >= 0:2.7.1
73 BuildRequires: jdbc-stdext >= 0:2.0
75 BuildRequires: jndi >= 0:1.2.1
76 BuildRequires: jpackage-utils
77 BuildRequires: junit >= 0:3.8.1
78 BuildRequires: rpmbuild(macros) >= 1.300
79 Requires(post,postun): /sbin/ldconfig
80 Requires(post,preun): /sbin/chkconfig
81 Requires(postun): /usr/sbin/groupdel
82 Requires(postun): /usr/sbin/userdel
83 Requires(pre): /bin/id
84 Requires(pre): /usr/bin/getgid
85 Requires(pre): /usr/sbin/groupadd
86 Requires(pre): /usr/sbin/useradd
87 Requires: %{name}-jasper = %{version}-%{release}
89 #Requires: jaf >= 1.0.1
90 Requires: java-commons-beanutils
91 Requires: java-commons-collections
92 #Requires: java-commons-dbcp-tomcat5
93 Requires: java-commons-digester
94 Requires: java-commons-el
95 #Requires: java-commons-fileupload
96 Requires: java-commons-logging
97 Requires: java-commons-modeler
99 Requires: java-servletapi5 = %{version}
100 Requires: java-xml-commons
101 Requires: javamail >= 1.2
102 Requires: jaxp_parser_impl
103 Requires: jdbc-stdext >= 2.0
104 Requires: jndi >= 1.2.1
106 Requires: jsse >= 1.0.2
107 %{?with_jta:Requires: jta >= 1.0.1}
109 Provides: group(tomcat)
110 Provides: java-servlet-container
111 Provides: user(tomcat)
112 Obsoletes: jakarta-tomcat
114 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
116 %define _tomcatdir %{_datadir}/tomcat
117 %define _logdir %{_var}/log
118 %define _vardir %{_var}/lib/tomcat
119 %define _sysconfdir /etc/tomcat
122 Tomcat is the servlet container that is used in the official Reference
123 Implementation for the Java Servlet and JavaServer Pages technologies.
124 The Java Servlet and JavaServer Pages specifications are developed by
125 Sun under the Java Community Process.
127 Tomcat is developed in an open and participatory environment and
128 released under the Apache Software License. Tomcat is intended to be a
129 collaboration of the best-of-breed developers from around the world.
130 We invite you to participate in this open development project.
132 %description -l pl.UTF-8
133 Tomcat to kontener serwletowy używany przez oficjalną implementację
134 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
135 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
139 Summary: The Apache Tomcat Servlet/JSP Container documentation
140 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
142 Obsoletes: jakarta-tomcat-doc
145 The Tomcat Servlet/JSP Container documentation.
147 %description doc -l pl.UTF-8
148 Dokumentacja do Tomcata - kontenera Servlet/JSP.
151 Summary: Apache Tomcat`s Administration Web Application
152 Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
153 Group: Networking/Daemons/Java/Servlets
154 Requires: java-commons-chain
157 Administration Web Application for Apache Tomcat.
159 %description admin -l pl.UTF-8
160 Panel Administracyjny dla Apache Tomcat.
163 Summary: JSP compiler
164 Summary(pl.UTF-8): Kompilator JSP
165 Group: Libraries/Java
166 Requires: jpackage-utils
169 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
172 %description jasper -l pl.UTF-8
173 Jasper jest kompilatorem Java ServerPages używanym przez kontener
174 servletów Apache Tomcat.
177 %setup -q -n %{name}-%{version}-src
186 # servletapi built from jakarta-servletapi5.spec
189 # Remove pre-built jars
190 find -name '*.jar' | xargs rm -fv
196 # build jasper javadocs
198 CLASSPATH=$(build-classpath xml-commons-apis)
199 # building jasper needs eclipse classes
200 cat > build.properties <<EOF
201 ant.jar=$(find-jar ant)
202 servlet-api.jar=$(find-jar servlet-api)
203 jsp-api.jar=$(find-jar jsp-api)
204 tools.jar=%{java_home}/lib/tools.jar
205 xercesImpl.jar=$(find-jar jaxp_parser_impl)
206 xmlParserAPIs.jar=$(find-jar xml-commons-apis)
207 commons-collections.jar=$(find-jar commons-collections)
208 commons-logging.jar=$(find-jar commons-logging)
209 commons-daemon.jar=$(find-jar commons-daemon)
210 junit.jar=$(find-jar junit)
211 commons-el.jar=$(find-jar commons-el)
217 -Dcompile.source=1.4 \
218 -Dbuild.compiler=modern \
225 # XXX build process should fail if one of these find-jar commands fails
227 cat > build.properties <<EOF
228 commons-beanutils.jar=$(find-jar commons-beanutils-core)
229 commons-launcher.jar=$(find-jar commons-launcher)
230 commons-daemon.jar=$(find-jar commons-daemon)
231 commons-digester.jar=$(find-jar commons-digester)
232 commons-el.jar=$(find-jar commons-el)
233 commons-logging-api.jar=$(find-jar commons-logging-api)
234 commons-logging.jar=$(find-jar commons-logging)
235 commons-modeler.jar=$(find-jar commons-modeler)
236 xercesImpl.jar=$(find-jar jaxp_parser_impl)
237 xml-apis.jar=$(find-jar xml-commons-apis)
238 jdt.jar=$(find-jar org.eclipse.jdt.core)
239 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
240 commons-httpclient.jar=$(find-jar commons-httpclient)
241 commons-collections.jar=$(find-jar commons-collections)
242 commons-fileupload.jar=$(find-jar commons-fileupload)
243 commons-io.jar=$(find-jar commons-io)
244 jmx.jar=$(find-jar jmx)
245 jmx-tools.jar=$(find-jar jmx)
246 junit.jar=$(find-jar junit)
247 struts.jar=$(find-jar struts-core)
248 struts-core.jar=$(find-jar struts-core)
249 struts-taglib.jar=$(find-jar struts-taglib)
250 jcert.jar=$(find-jar jcert)
251 jnet.jar=$(find-jar jnet)
252 jsse.jar=$(find-jar jsse)
253 %{?with_jta:jta.jar=$(find-jar jta)}
254 puretls.jar=$(find-jar puretls)
255 servlet-api.jar=$(find-jar servlet-api)
256 servletapi.build.notrequired=true
257 jsp-api.jar=$(find-jar jsp-api)
258 jspapi.build.notrequired=true
259 log4j.jar=$(find-jar log4j)
260 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
261 struts.lib=%{_javadir}-struts
268 rm -rf $RPM_BUILD_ROOT
270 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
271 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
273 # we don't need dos scripts
276 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
277 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
279 install -d $TOMCATDIR/bin \
280 $TOMCATDIR/common/{lib,classes,endorsed} \
281 $TOMCATDIR/server/{lib,classes} \
283 $RPM_BUILD_ROOT%{_logdir}/tomcat \
284 $RPM_BUILD_ROOT%{_vardir}/webapps \
285 $RPM_BUILD_ROOT%{_vardir}/work \
286 $RPM_BUILD_ROOT%{_vardir}/conf \
287 $RPM_BUILD_ROOT/etc/sysconfig \
288 $RPM_BUILD_ROOT/etc/rc.d/init.d
290 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
291 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
293 cp -pR conf/* $CATALINADIR/conf
294 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
295 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
296 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
297 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
298 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
299 cp -HR bin common server $TOMCATDIR
301 cp -rf server/webapps $TOMCATDIR/server
302 cp -rf webapps $TOMCATDIR
303 cp -rf shared $TOMCATDIR
304 cp -rf temp $CATALINADIR
306 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
307 ln -sf %{_vardir}/work $TOMCATDIR/work
308 ln -sf %{_vardir}/conf $TOMCATDIR/conf
309 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
311 # symlinks instead of copies
312 ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
313 ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
314 ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
315 ln -sf $(find-jar jsp-api) $TOMCATDIR/common/lib/jsp-api.jar
317 ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
319 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
320 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
321 ln -sf $(find-jar struts) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts.jar
324 # do not make these symlinks as ant didn't do
325 ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
326 ln -sf $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
327 ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
328 ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
329 ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
330 ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
331 ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
332 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
333 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
334 ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
335 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
336 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
337 ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
338 ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
339 %{?with_jta:ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar}
340 ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
341 ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
342 ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
343 ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
344 ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
345 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
346 ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
347 ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
348 ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
349 ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
350 ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
351 ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
352 ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
353 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
354 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
355 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
358 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
359 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
360 ln -sf $(find-jar struts-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
362 install -d $RPM_BUILD_ROOT%{_javadir}
363 mv $TOMCATDIR/common/lib/jasper* $RPM_BUILD_ROOT%{_javadir}
364 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib/
365 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib/
366 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib/
369 rm -rf $RPM_BUILD_ROOT
372 %groupadd -g 234 -r -f tomcat
373 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
376 /sbin/chkconfig --add tomcat
377 %service tomcat restart
380 if [ "$1" = "0" ]; then
382 /sbin/chkconfig --del tomcat
386 if [ "$1" = "0" ]; then
392 %defattr(644,root,root,755)
393 %doc build/{RELEASE-NOTES,RUNNING.txt}
394 %attr(754,root,root) /etc/rc.d/init.d/tomcat
395 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
398 %dir %{_tomcatdir}/conf
399 %dir %{_tomcatdir}/bin
400 %{_tomcatdir}/bin/catalina-tasks.xml
401 %{_tomcatdir}/bin/jkstatus-tasks.xml
402 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
403 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
404 %{_tomcatdir}/bin/*.jar
405 %dir %{_tomcatdir}/common
406 %dir %{_tomcatdir}/common/classes
407 %dir %{_tomcatdir}/common/endorsed
408 %dir %{_tomcatdir}/common/i18n
409 %{_tomcatdir}/common/endorsed/*.jar
410 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
411 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
412 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
413 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
414 %{_tomcatdir}/common/lib
415 %dir %{_tomcatdir}/server
416 %dir %{_tomcatdir}/server/classes
417 %{_tomcatdir}/server/lib
418 %{_tomcatdir}/server/webapps/host-manager
419 %{_tomcatdir}/server/webapps/manager
420 %{_tomcatdir}/webapps
424 %dir %{_vardir}/conf/Catalina
425 %dir %{_vardir}/conf/Catalina/localhost
426 # tomcat config has to be writeable because of tomacta-users.xml file and Catalina dir
427 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
428 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
430 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
431 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
432 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
433 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
434 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/jsp-examples.xml
435 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
436 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
437 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
438 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
439 %dir %attr(1730,root,tomcat) %{_vardir}/work
440 %dir %attr(775,root,tomcat) %{_vardir}/webapps
441 %dir %attr(775,root,tomcat) %{_vardir}/temp
442 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
447 %defattr(644,root,root,755)
452 %defattr(644,root,root,755)
453 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
454 %{_tomcatdir}/server/webapps/admin
457 %defattr(644,root,root,755)
458 %{_javadir}/jasper-compiler-jdt.jar
459 %{_javadir}/jasper-compiler.jar
460 %{_javadir}/jasper-runtime.jar