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.
8 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
9 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
14 Group: Development/Languages/Java
15 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
16 # Source0-md5: eb3f196013550b9b1684e4ff18593a8e
18 Source2: %{name}.sysconfig
19 Source10: %{name}-context-ROOT.xml
20 Source11: %{name}-context-balancer.xml
21 Source12: %{name}-context-jsp-examples.xml
22 Source13: %{name}-context-tomcat-docs.xml
23 Source14: %{name}-context-webdav.xml
24 Patch0: %{name}-skip-servletapi.patch
25 Patch1: %{name}-nsis.patch
26 Patch2: %{name}-native.patch
27 Patch3: %{name}-skip-jdt.patch
28 Patch4: %{name}-no-connectors.patch
29 Patch5: %{name}-dbcp.patch
30 # this patch is needed for struts >= 1.3
31 Patch6: %{name}-struts.patch
32 URL: http://tomcat.apache.org/
33 BuildRequires: ant >= 1.5.3
34 BuildRequires: ant-trax
35 BuildRequires: eclipse-jdt
37 BuildRequires: jakarta-regexp >= 0:1.3
38 BuildRequires: java-commons-beanutils >= 1.7
39 BuildRequires: java-commons-collections >= 0:3.1
40 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
41 BuildRequires: java-commons-daemon >= 1.0
42 BuildRequires: java-commons-dbcp >= 0:1.2.1
43 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
44 BuildRequires: java-commons-digester >= 0:1.7
45 BuildRequires: java-commons-el >= 0:1.0
46 BuildRequires: java-commons-fileupload >= 0:1.0
47 BuildRequires: java-commons-httpclient
48 BuildRequires: java-commons-io >= 1.4
49 BuildRequires: java-commons-launcher >= 0:0.9
50 BuildRequires: java-commons-logging >= 0:1.0.4
51 BuildRequires: java-commons-modeler >= 2.0
52 BuildRequires: java-commons-pool >= 0:1.2
53 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
54 %{?with_jta:BuildRequires: java-jta >= 0:1.0.1}
55 BuildRequires: junit >= 0:3.8.1
56 BuildRequires: java-log4j
57 BuildRequires: java-puretls
58 BuildRequires: java-servletapi5 = %{version}
59 #BuildRequires: java-struts >= 0:1.2.7
60 BuildRequires: java-struts >= 1.0.2
61 BuildRequires: java-xerces >= 0:2.7.1
62 BuildRequires: java-xml-commons
63 #BuildRequires: java-xml-commons >= 1.3
64 BuildRequires: javamail >= 0:1.3.1
65 BuildRequires: jaxp_parser_impl >= 0:2.7.1
66 BuildRequires: jdbc-stdext >= 0:2.0
67 BuildRequires: jdk >= 1.5
69 BuildRequires: jndi >= 0:1.2.1
70 BuildRequires: jpackage-utils
71 BuildRequires: jsse >= 0:1.0.3
72 BuildRequires: rpmbuild(macros) >= 1.300
73 Requires(post,postun): /sbin/ldconfig
74 Requires(post,preun): /sbin/chkconfig
75 Requires(postun): /usr/sbin/groupdel
76 Requires(postun): /usr/sbin/userdel
77 Requires(pre): /bin/id
78 Requires(pre): /usr/bin/getgid
79 Requires(pre): /usr/sbin/groupadd
80 Requires(pre): /usr/sbin/useradd
81 Requires: %{name}-jasper = %{version}-%{release}
83 #Requires: jaf >= 1.0.1
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
92 Requires: java-servletapi5 = %{version}
93 Requires: java-xml-commons
94 Requires: javamail >= 1.2
95 Requires: jaxp_parser_impl
96 Requires: jdbc-stdext >= 2.0
97 Requires: jndi >= 1.2.1
99 Requires: jsse >= 1.0.2
100 %{?with_jta:Requires: jta >= 1.0.1}
102 Provides: group(tomcat)
103 Provides: java-servlet-container
104 Provides: user(tomcat)
105 Obsoletes: jakarta-tomcat
107 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
109 %define _tomcatdir %{_datadir}/tomcat
110 %define _logdir %{_var}/log
111 %define _vardir %{_var}/lib/tomcat
112 %define _sysconfdir /etc/tomcat
115 Tomcat is the servlet container that is used in the official Reference
116 Implementation for the Java Servlet and JavaServer Pages technologies.
117 The Java Servlet and JavaServer Pages specifications are developed by
118 Sun under the Java Community Process.
120 Tomcat is developed in an open and participatory environment and
121 released under the Apache Software License. Tomcat is intended to be a
122 collaboration of the best-of-breed developers from around the world.
123 We invite you to participate in this open development project.
125 %description -l pl.UTF-8
126 Tomcat to kontener serwletowy używany przez oficjalną implementację
127 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
128 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
132 Summary: The Apache Tomcat Servlet/JSP Container documentation
133 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
134 Group: Development/Languages/Java
135 Obsoletes: jakarta-tomcat-doc
138 The Tomcat Servlet/JSP Container documentation.
140 %description doc -l pl.UTF-8
141 Dokumentacja do Tomcata - kontenera Servlet/JSP.
144 Summary: Apache Tomcat`s Administration Web Application
145 Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
146 Group: Applications/WWW
149 Administration Web Application for Apache Tomcat.
151 %description admin -l pl.UTF-8
152 Panel Administracyjny dla Apache Tomcat.
155 Summary: JSP compiler
156 Summary(pl.UTF-8): Kompilator JSP
157 Group: Libraries/Java
158 Requires: jpackage-utils
161 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
164 %description jasper -l pl.UTF-8
165 Jasper jest kompilatorem Java ServerPages używanym przez kontener
166 servletów Apache Tomcat.
169 %setup -q -n %{name}-%{version}-src
178 # servletapi built from jakarta-servletapi5.spec
181 # Remove pre-built jars
182 find -name '*.jar' | xargs rm -fv
188 # build jasper javadocs
190 CLASSPATH=$(build-classpath xml-commons-apis)
191 # building jasper needs eclipse classes
192 cat > build.properties <<EOF
193 ant.jar=$(find-jar ant)
194 servlet-api.jar=$(find-jar servlet-api)
195 jsp-api.jar=$(find-jar jsp-api)
196 tools.jar=%{java_home}/lib/tools.jar
197 xercesImpl.jar=$(find-jar jaxp_parser_impl)
198 xmlParserAPIs.jar=$(find-jar xml-commons-apis)
199 commons-collections.jar=$(find-jar commons-collections)
200 commons-logging.jar=$(find-jar commons-logging)
201 commons-daemon.jar=$(find-jar commons-daemon)
202 junit.jar=$(find-jar junit)
203 commons-el.jar=$(find-jar commons-el)
209 -Dcompile.source=1.4 \
210 -Dbuild.compiler=modern \
217 # XXX build process should fail if one of these find-jar commands fails
219 cat > build.properties <<EOF
220 commons-beanutils.jar=$(find-jar commons-beanutils-core)
221 commons-launcher.jar=$(find-jar commons-launcher)
222 commons-daemon.jar=$(find-jar commons-daemon)
223 commons-digester.jar=$(find-jar commons-digester)
224 commons-el.jar=$(find-jar commons-el)
225 commons-logging-api.jar=$(find-jar commons-logging-api)
226 commons-logging.jar=$(find-jar commons-logging)
227 commons-modeler.jar=$(find-jar commons-modeler)
228 xercesImpl.jar=$(find-jar jaxp_parser_impl)
229 xml-apis.jar=$(find-jar xml-commons-apis)
230 jdt.jar=$(find-jar org.eclipse.jdt.core)
231 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
232 commons-httpclient.jar=$(find-jar commons-httpclient)
233 commons-collections.jar=$(find-jar commons-collections)
234 commons-fileupload.jar=$(find-jar commons-fileupload)
235 commons-io.jar=$(find-jar commons-io)
236 jmx.jar=$(find-jar jmx)
237 jmx-tools.jar=$(find-jar jmx)
238 junit.jar=$(find-jar junit)
239 struts.jar=$(find-jar struts-core)
240 struts-core.jar=$(find-jar struts-core)
241 struts-taglib.jar=$(find-jar struts-taglib)
242 jcert.jar=$(find-jar jcert)
243 jnet.jar=$(find-jar jnet)
244 jsse.jar=$(find-jar jsse)
245 %{?with_jta:jta.jar=$(find-jar jta)}
246 puretls.jar=$(find-jar puretls)
247 servlet-api.jar=$(find-jar servlet-api)
248 servletapi.build.notrequired=true
249 jsp-api.jar=$(find-jar jsp-api)
250 jspapi.build.notrequired=true
251 log4j.jar=$(find-jar log4j)
252 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
253 struts.lib=%{_javadir}-struts
260 rm -rf $RPM_BUILD_ROOT
262 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
263 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
265 # we don't need dos scripts
268 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
269 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
271 install -d $TOMCATDIR/bin \
272 $TOMCATDIR/common/{lib,classes,endorsed} \
273 $TOMCATDIR/server/{lib,classes} \
275 $RPM_BUILD_ROOT%{_logdir}/tomcat \
276 $RPM_BUILD_ROOT%{_vardir}/webapps \
277 $RPM_BUILD_ROOT%{_vardir}/work \
278 $RPM_BUILD_ROOT%{_vardir}/conf \
279 $RPM_BUILD_ROOT/etc/sysconfig \
280 $RPM_BUILD_ROOT/etc/rc.d/init.d
282 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
283 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
285 cp -pR conf/* $CATALINADIR/conf
286 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
287 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
288 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
289 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
290 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
291 cp -HR bin common server $TOMCATDIR
293 cp -rf server/webapps $TOMCATDIR/server
294 cp -rf webapps $TOMCATDIR
295 cp -rf shared $TOMCATDIR
296 cp -rf temp $CATALINADIR
298 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
299 ln -sf %{_vardir}/work $TOMCATDIR/work
300 ln -sf %{_vardir}/conf $TOMCATDIR/conf
301 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
303 # symlinks instead of copies
304 ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
305 ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
306 ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
307 ln -sf $(find-jar jsp-api) $TOMCATDIR/common/lib/jsp-api.jar
309 ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
311 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
312 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
313 ln -sf $(find-jar struts) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts.jar
316 # do not make these symlinks as ant didn't do
317 ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
318 ln -sf $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
319 ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
320 ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
321 ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
322 ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
323 ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
324 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
325 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
326 ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
327 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
328 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
329 ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
330 ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
331 %{?with_jta:ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar}
332 ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
333 ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
334 ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
335 ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
336 ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
337 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
338 ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
339 ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
340 ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
341 ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
342 ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
343 ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
344 ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
345 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
346 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
347 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
350 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
351 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
352 ln -sf $(find-jar struts-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
354 install -d $RPM_BUILD_ROOT%{_javadir}
355 mv $TOMCATDIR/common/lib/jasper* $RPM_BUILD_ROOT%{_javadir}
356 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib/
357 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib/
358 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib/
361 rm -rf $RPM_BUILD_ROOT
364 %groupadd -g 234 -r -f tomcat
365 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
368 /sbin/chkconfig --add tomcat
369 %service tomcat restart
372 if [ "$1" = "0" ]; then
374 /sbin/chkconfig --del tomcat
378 if [ "$1" = "0" ]; then
384 %defattr(644,root,root,755)
385 %doc build/{RELEASE-NOTES,RUNNING.txt}
386 %attr(754,root,root) /etc/rc.d/init.d/tomcat
387 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
390 %dir %{_tomcatdir}/conf
391 %dir %{_tomcatdir}/bin
392 %{_tomcatdir}/bin/catalina-tasks.xml
393 %{_tomcatdir}/bin/jkstatus-tasks.xml
394 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
395 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
396 %{_tomcatdir}/bin/*.jar
397 %dir %{_tomcatdir}/common
398 %dir %{_tomcatdir}/common/classes
399 %dir %{_tomcatdir}/common/endorsed
400 %dir %{_tomcatdir}/common/i18n
401 %{_tomcatdir}/common/endorsed/*.jar
402 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
403 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
404 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
405 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
406 %{_tomcatdir}/common/lib
407 %dir %{_tomcatdir}/server
408 %dir %{_tomcatdir}/server/classes
409 %{_tomcatdir}/server/lib
410 %{_tomcatdir}/server/webapps/host-manager
411 %{_tomcatdir}/server/webapps/manager
412 %{_tomcatdir}/webapps
416 %dir %{_vardir}/conf/Catalina
417 %dir %{_vardir}/conf/Catalina/localhost
418 # tomcat config has to be writeable because of tomacta-users.xml file and Catalina dir
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
420 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
421 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
422 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
423 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
424 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
425 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
426 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/jsp-examples.xml
427 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
428 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
430 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
431 %dir %attr(1730,root,tomcat) %{_vardir}/work
432 %dir %attr(775,root,tomcat) %{_vardir}/webapps
433 %dir %attr(775,root,tomcat) %{_vardir}/temp
434 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
439 %defattr(644,root,root,755)
444 %defattr(644,root,root,755)
445 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
446 %{_tomcatdir}/server/webapps/admin
449 %defattr(644,root,root,755)
450 %{_javadir}/jasper-compiler-jdt.jar
451 %{_javadir}/jasper-compiler.jar
452 %{_javadir}/jasper-runtime.jar