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: Development/Languages/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: javamail >= 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
98 Requires: java-servletapi5 = %{version}
99 Requires: java-xml-commons
100 Requires: javamail >= 1.2
101 Requires: jaxp_parser_impl
102 Requires: jdbc-stdext >= 2.0
103 Requires: jndi >= 1.2.1
105 Requires: jsse >= 1.0.2
106 %{?with_jta:Requires: jta >= 1.0.1}
108 Provides: group(tomcat)
109 Provides: java-servlet-container
110 Provides: user(tomcat)
111 Obsoletes: jakarta-tomcat
113 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
115 %define _tomcatdir %{_datadir}/tomcat
116 %define _logdir %{_var}/log
117 %define _vardir %{_var}/lib/tomcat
118 %define _sysconfdir /etc/tomcat
121 Tomcat is the servlet container that is used in the official Reference
122 Implementation for the Java Servlet and JavaServer Pages technologies.
123 The Java Servlet and JavaServer Pages specifications are developed by
124 Sun under the Java Community Process.
126 Tomcat is developed in an open and participatory environment and
127 released under the Apache Software License. Tomcat is intended to be a
128 collaboration of the best-of-breed developers from around the world.
129 We invite you to participate in this open development project.
131 %description -l pl.UTF-8
132 Tomcat to kontener serwletowy używany przez oficjalną implementację
133 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
134 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
138 Summary: The Apache Tomcat Servlet/JSP Container documentation
139 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
140 Group: Development/Languages/Java
141 Obsoletes: jakarta-tomcat-doc
144 The Tomcat Servlet/JSP Container documentation.
146 %description doc -l pl.UTF-8
147 Dokumentacja do Tomcata - kontenera Servlet/JSP.
150 Summary: Apache Tomcat`s Administration Web Application
151 Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
152 Group: Applications/WWW
155 Administration Web Application for Apache Tomcat.
157 %description admin -l pl.UTF-8
158 Panel Administracyjny dla Apache Tomcat.
161 Summary: JSP compiler
162 Summary(pl.UTF-8): Kompilator JSP
163 Group: Libraries/Java
164 Requires: jpackage-utils
167 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
170 %description jasper -l pl.UTF-8
171 Jasper jest kompilatorem Java ServerPages używanym przez kontener
172 servletów Apache Tomcat.
175 %setup -q -n %{name}-%{version}-src
184 # servletapi built from jakarta-servletapi5.spec
187 # Remove pre-built jars
188 find -name '*.jar' | xargs rm -fv
194 # build jasper javadocs
196 CLASSPATH=$(build-classpath xml-commons-apis)
197 # building jasper needs eclipse classes
198 cat > build.properties <<EOF
199 ant.jar=$(find-jar ant)
200 servlet-api.jar=$(find-jar servlet-api)
201 jsp-api.jar=$(find-jar jsp-api)
202 tools.jar=%{java_home}/lib/tools.jar
203 xercesImpl.jar=$(find-jar jaxp_parser_impl)
204 xmlParserAPIs.jar=$(find-jar xml-commons-apis)
205 commons-collections.jar=$(find-jar commons-collections)
206 commons-logging.jar=$(find-jar commons-logging)
207 commons-daemon.jar=$(find-jar commons-daemon)
208 junit.jar=$(find-jar junit)
209 commons-el.jar=$(find-jar commons-el)
215 -Dcompile.source=1.4 \
216 -Dbuild.compiler=modern \
223 # XXX build process should fail if one of these find-jar commands fails
225 cat > build.properties <<EOF
226 commons-beanutils.jar=$(find-jar commons-beanutils-core)
227 commons-launcher.jar=$(find-jar commons-launcher)
228 commons-daemon.jar=$(find-jar commons-daemon)
229 commons-digester.jar=$(find-jar commons-digester)
230 commons-el.jar=$(find-jar commons-el)
231 commons-logging-api.jar=$(find-jar commons-logging-api)
232 commons-logging.jar=$(find-jar commons-logging)
233 commons-modeler.jar=$(find-jar commons-modeler)
234 xercesImpl.jar=$(find-jar jaxp_parser_impl)
235 xml-apis.jar=$(find-jar xml-commons-apis)
236 jdt.jar=$(find-jar org.eclipse.jdt.core)
237 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
238 commons-httpclient.jar=$(find-jar commons-httpclient)
239 commons-collections.jar=$(find-jar commons-collections)
240 commons-fileupload.jar=$(find-jar commons-fileupload)
241 commons-io.jar=$(find-jar commons-io)
242 jmx.jar=$(find-jar jmx)
243 jmx-tools.jar=$(find-jar jmx)
244 junit.jar=$(find-jar junit)
245 struts.jar=$(find-jar struts-core)
246 struts-core.jar=$(find-jar struts-core)
247 struts-taglib.jar=$(find-jar struts-taglib)
248 jcert.jar=$(find-jar jcert)
249 jnet.jar=$(find-jar jnet)
250 jsse.jar=$(find-jar jsse)
251 %{?with_jta:jta.jar=$(find-jar jta)}
252 puretls.jar=$(find-jar puretls)
253 servlet-api.jar=$(find-jar servlet-api)
254 servletapi.build.notrequired=true
255 jsp-api.jar=$(find-jar jsp-api)
256 jspapi.build.notrequired=true
257 log4j.jar=$(find-jar log4j)
258 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
259 struts.lib=%{_javadir}-struts
266 rm -rf $RPM_BUILD_ROOT
268 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
269 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
271 # we don't need dos scripts
274 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
275 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
277 install -d $TOMCATDIR/bin \
278 $TOMCATDIR/common/{lib,classes,endorsed} \
279 $TOMCATDIR/server/{lib,classes} \
281 $RPM_BUILD_ROOT%{_logdir}/tomcat \
282 $RPM_BUILD_ROOT%{_vardir}/webapps \
283 $RPM_BUILD_ROOT%{_vardir}/work \
284 $RPM_BUILD_ROOT%{_vardir}/conf \
285 $RPM_BUILD_ROOT/etc/sysconfig \
286 $RPM_BUILD_ROOT/etc/rc.d/init.d
288 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
289 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
291 cp -pR conf/* $CATALINADIR/conf
292 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
293 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
294 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
295 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
296 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
297 cp -HR bin common server $TOMCATDIR
299 cp -rf server/webapps $TOMCATDIR/server
300 cp -rf webapps $TOMCATDIR
301 cp -rf shared $TOMCATDIR
302 cp -rf temp $CATALINADIR
304 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
305 ln -sf %{_vardir}/work $TOMCATDIR/work
306 ln -sf %{_vardir}/conf $TOMCATDIR/conf
307 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
309 # symlinks instead of copies
310 ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
311 ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
312 ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
313 ln -sf $(find-jar jsp-api) $TOMCATDIR/common/lib/jsp-api.jar
315 ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
317 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
318 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
319 ln -sf $(find-jar struts) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts.jar
322 # do not make these symlinks as ant didn't do
323 ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
324 ln -sf $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
325 ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
326 ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
327 ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
328 ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
329 ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
330 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
331 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
332 ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
333 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
334 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
335 ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
336 ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
337 %{?with_jta:ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar}
338 ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
339 ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
340 ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
341 ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
342 ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
343 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
344 ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
345 ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
346 ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
347 ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
348 ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
349 ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
350 ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
351 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
352 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
353 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
356 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
357 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
358 ln -sf $(find-jar struts-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
360 install -d $RPM_BUILD_ROOT%{_javadir}
361 mv $TOMCATDIR/common/lib/jasper* $RPM_BUILD_ROOT%{_javadir}
362 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib/
363 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib/
364 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib/
367 rm -rf $RPM_BUILD_ROOT
370 %groupadd -g 234 -r -f tomcat
371 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
374 /sbin/chkconfig --add tomcat
375 %service tomcat restart
378 if [ "$1" = "0" ]; then
380 /sbin/chkconfig --del tomcat
384 if [ "$1" = "0" ]; then
390 %defattr(644,root,root,755)
391 %doc build/{RELEASE-NOTES,RUNNING.txt}
392 %attr(754,root,root) /etc/rc.d/init.d/tomcat
393 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
396 %dir %{_tomcatdir}/conf
397 %dir %{_tomcatdir}/bin
398 %{_tomcatdir}/bin/catalina-tasks.xml
399 %{_tomcatdir}/bin/jkstatus-tasks.xml
400 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
401 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
402 %{_tomcatdir}/bin/*.jar
403 %dir %{_tomcatdir}/common
404 %dir %{_tomcatdir}/common/classes
405 %dir %{_tomcatdir}/common/endorsed
406 %dir %{_tomcatdir}/common/i18n
407 %{_tomcatdir}/common/endorsed/*.jar
408 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
409 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
410 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
411 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
412 %{_tomcatdir}/common/lib
413 %dir %{_tomcatdir}/server
414 %dir %{_tomcatdir}/server/classes
415 %{_tomcatdir}/server/lib
416 %{_tomcatdir}/server/webapps/host-manager
417 %{_tomcatdir}/server/webapps/manager
418 %{_tomcatdir}/webapps
422 %dir %{_vardir}/conf/Catalina
423 %dir %{_vardir}/conf/Catalina/localhost
424 # tomcat config has to be writeable because of tomacta-users.xml file and Catalina dir
425 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
426 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
427 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
428 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
430 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
431 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
432 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/jsp-examples.xml
433 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
434 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
435 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
436 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
437 %dir %attr(1730,root,tomcat) %{_vardir}/work
438 %dir %attr(775,root,tomcat) %{_vardir}/webapps
439 %dir %attr(775,root,tomcat) %{_vardir}/temp
440 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
445 %defattr(644,root,root,755)
450 %defattr(644,root,root,755)
451 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
452 %{_tomcatdir}/server/webapps/admin
455 %defattr(644,root,root,755)
456 %{_javadir}/jasper-compiler-jdt.jar
457 %{_javadir}/jasper-compiler.jar
458 %{_javadir}/jasper-runtime.jar