3 %bcond_without javadoc # skip building javadocs
6 %define servletapiver 3.0
8 # Java Commons Logging version. Must be >= 1.1.
11 %include /usr/lib/rpm/macros.java
12 Summary: Web server and Servlet/JSP Engine, RI for Servlet %{servletapiver}/JSP %{jspapiver} API
13 Summary(pl.UTF-8): Serwer www i silnik Servlet/JSP będący wzorcową implementacją API Servlet %{servletapiver}/JSP %{jspapiver}
18 Group: Networking/Daemons/Java
19 Source0: http://www.apache.org/dist/tomcat/tomcat-7/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
20 # Source0-md5: 8f1312436629c914564f3e8d88237be3
21 Source1: apache-%{name}.init
22 Source2: apache-%{name}.sysconfig
23 Source3: %{name}-build.properties
24 Source10: %{name}-context-ROOT.xml
25 Source11: %{name}-context-docs.xml
26 Source12: %{name}-context-manager.xml
27 Source13: %{name}-context-host-manager.xml
28 Source14: %{name}-context-examples.xml
29 Source15: %{name}.logrotate
30 Source100: http://www.apache.org/dist/commons/logging/source/commons-logging-%{jclver}-src.tar.gz
31 # Source100-md5: e5cfa8cca13152d7545fde6b1783c60a
32 Patch0: %{name}-build.xml.patch
33 Patch1: server.xml-URIEncoding-utf8.patch
34 Patch2: %{name}-LDAPUserDatabase.patch
35 Patch3: %{name}-catalina.policy-javadir.patch
36 Patch4: %{name}-userdir.patch
38 Patch100: jcl-build.xml.patch
39 URL: http://tomcat.apache.org/
40 BuildRequires: ant >= 1.5.3
41 BuildRequires: eclipse-jdt >= 4.2.2
42 BuildRequires: java(JSR109)
43 BuildRequires: java-avalon-logkit
44 BuildRequires: java-commons-daemon >= 1.0
45 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
46 BuildRequires: java-commons-pool-tomcat5
47 BuildRequires: java-geronimo-spec-jaxrpc
48 BuildRequires: java-jdbc-mysql
49 BuildRequires: java-junit
50 BuildRequires: java-log4j
51 BuildRequires: java-mail
53 BuildRequires: jpackage-utils
54 BuildRequires: rpm-javaprov
55 BuildRequires: rpmbuild(macros) >= 1.553
56 BuildRequires: sed >= 4.0
57 Requires(post,preun): /sbin/chkconfig
58 Requires(postun): /usr/sbin/groupdel
59 Requires(postun): /usr/sbin/userdel
60 Requires(pre): /bin/id
61 Requires(pre): /usr/bin/getgid
62 Requires(pre): /usr/sbin/groupadd
63 Requires(pre): /usr/sbin/useradd
64 Requires: java(jaxp_parser_impl)
65 Requires: java(jndi) >= 1.2.1
66 Requires: java-%{name}-catalina = %{version}-%{release}
67 Requires: java-%{name}-coyote = %{version}-%{release}
68 Requires: java-%{name}-jasper = %{version}-%{release}
69 Requires: java-commons-dbcp-tomcat5 >= 0:1.1
70 Requires: java-commons-pool-tomcat5
71 Requires: java-jdbc-mysql
73 Requires: java-servletapi = %{version}-%{release}
74 Requires: jpackage-utils
79 Suggests: tomcat-native >= 1.1.27
80 Provides: group(servlet)
81 Provides: group(tomcat)
82 Provides: user(tomcat)
83 Obsoletes: apache-tomcat
84 Obsoletes: jakarta-tomcat
86 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
88 %define _tomcatdir %{_datadir}/tomcat
89 %define _logdir %{_var}/log
90 %define _vardir %{_var}/lib/tomcat
92 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
95 Tomcat is the servlet container that is used in the official Reference
96 Implementation for the Java Servlet and JavaServer Pages technologies.
97 The Java Servlet and JavaServer Pages specifications are developed by
98 Sun under the Java Community Process.
100 Tomcat is developed in an open and participatory environment and
101 released under the Apache Software License. Tomcat is intended to be a
102 collaboration of the best-of-breed developers from around the world.
104 %description -l pl.UTF-8
105 Tomcat to kontener serwletowy używany przez oficjalną implementację
106 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
107 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
111 Summary: The Apache Tomcat Servlet/JSP Container documentation
112 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
114 Obsoletes: apache-tomcat-doc
115 Obsoletes: jakarta-tomcat-doc
116 Obsoletes: tomcat-doc
118 %description webapp-docs
119 The Tomcat Servlet/JSP Container documentation.
121 %description webapp-docs -l pl.UTF-8
122 Dokumentacja do Tomcata - kontenera Servlet/JSP.
124 %package webapp-manager
125 Summary: The Apache Tomcat Servlet/JSP application manager
126 Summary(pl.UTF-8): Zarządca aplikacji w Tomcacie
127 Group: Networking/Daemons/Java/Servlets
128 Requires: %{name} = %{version}-%{release}
130 %description webapp-manager
131 The Apache Tomcat Servlet/JSP application manager.
133 %description webapp-manager -l pl.UTF-8
134 Zarządca aplikacji w Tomcacie.
136 %package webapp-host-manager
137 Summary: The Apache Tomcat Servlet/JSP virtual hosts manager
138 Summary(pl.UTF-8): Zarządca wirtualnych hostów w Tomcacie
139 Group: Networking/Daemons/Java/Servlets
140 Requires: %{name} = %{version}-%{release}
141 Obsoletes: tomcat-admin
143 %description webapp-host-manager
144 The Apache Tomcat Servlet/JSP virtual hosts manager.
146 %description webapp-host-manager -l pl.UTF-8
147 Zarządca wirtualnych hostów w Tomcacie.
149 %package webapp-examples
150 Summary: The Apache Tomcat Servlet/JSP example applications
151 Summary(pl.UTF-8): Przykładowe aplikacje dla Tomcata
152 Group: Networking/Daemons/Java/Servlets
153 Requires: %{name} = %{version}-%{release}
155 %description webapp-examples
156 The Apache Tomcat Servlet/JSP example applications.
158 %description webapp-examples -l pl.UTF-8
159 Przykładowe aplikacje dla Tomcata.
162 Summary: Web Services support (JSR 109)
163 Summary(pl.UTF-8): Wsparcie dla Web Services (JSR 109)
164 Group: Libraries/Java
165 Requires: %{name} = %{version}-%{release}
166 Requires: java(JSR109)
167 Requires: java-geronimo-spec-jaxrpc
169 %description webservices
170 Factories for JSR 109 which may be used to resolve web services
173 %description webservices -l pl.UTF-8
174 Wsparcie dla JSR 109 (Web Services).
177 Summary: JMX remote interface for Tomcat
178 Summary(pl.UTF-8): Zdalny interfejs JMX dla Tomcata
179 Group: Libraries/Java
180 Requires: %{name} = %{version}-%{release}
183 JMX remote interface for Tomcat.
185 %description jmx -l pl.UTF-8
186 Zdalny interfejs JMX dla Tomcata.
188 %package -n java-tomcat-catalina
189 Summary: Tomcat's servlet engine
190 Summary(pl.UTF-8): Silnik servletów dla Tomcata.
191 Group: Libraries/Java
192 Requires: jpackage-utils
194 %description -n java-tomcat-catalina
195 Catalina is Tomcat's servlet container. Catalina implements Sun
196 Microsystems' specifications for servlet and JavaServer Pages (JSP).
198 %description -n java-tomcat-catalina -l pl.UTF-8
199 Bibliotek Javy zawierające silnik servletów i JSP tomcata.
201 %package -n java-tomcat-coyote
202 Summary: Tomcat HTTP connector
203 Summary(pl.UTF-8): Interfejs HTTP dla Tomcata
204 Group: Libraries/Java
205 Requires: jpackage-utils
207 %description -n java-tomcat-coyote
208 Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
209 protocol for the web server or application container. Coyote listens
210 for incoming connections on a specific TCP port on the server and
211 forwards the request to the Tomcat Engine to process the request and
212 send back a response to the requesting client.
214 %description -n java-tomcat-coyote -l pl.UTF-8
215 Biblioteki Javy zawierające serwer HTTP 1.1 dla Tomcata.
217 %package -n java-tomcat-jasper
218 Summary: JSP compiler
219 Summary(pl.UTF-8): Kompilator JSP
220 Group: Libraries/Java
221 Requires: java-eclipse-jdt >= 4.2.2
222 Requires: jpackage-utils
223 Obsoletes: apache-tomcat-jasper
224 Obsoletes: tomcat-jasper
226 %description -n java-tomcat-jasper
227 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
230 %description -n java-tomcat-jasper -l pl.UTF-8
231 Jasper jest kompilatorem Java ServerPages używanym przez kontener
232 servletów Apache Tomcat.
234 %package -n java-servletapi
235 Summary: Java servlet and JSP implementation classes
236 Summary(pl.UTF-8): Klasy z implementacją Java Servlet i JSP
237 Group: Libraries/Java
238 Provides: java(jsp) = %{jspapiver}
239 Provides: java(servlet) = %{servletapiver}
240 Obsoletes: jakarta-servletapi5
241 Obsoletes: jakarta-servletapi5
242 Obsoletes: java-servletapi5
244 %description -n java-servletapi
245 Implementation classes of the Java Servlet and JSP APIs (packages
246 javax.servlet, javax.servlet.http, javax.servlet.jsp, and
247 javax.servlet.jsp.tagext).
249 %description -n java-servletapi -l pl.UTF-8
250 Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
251 javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
254 %setup -q -a100 -n apache-%{name}-%{version}-src
262 # Prepare java-commmons-logging sources
263 mkdir -p output/extras/logging
264 mv commons-logging-%{jclver}-src output/extras/logging
265 cd output/extras/logging/commons-logging-%{jclver}-src
270 # we don't need those scripts
272 rm bin/{startup,shutdown}.sh
274 cp -a %{SOURCE3} build.properties
275 cat >>build.properties <<EOF
277 log4j.jar=%(find-jar log4j)
278 log4j12.jar=%(find-jar log4j)
279 junit.jar=%(find-jar junit)
280 logkit.jar=%(find-jar avalon-logkit)
281 avalon-framework-impl.jar=%(find-jar avalon-framework-impl.jar)
282 avalon-framework-api.jar=%(find-jar avalon-framework-api.jar)
283 servletapi.jar=$(pwd)/output/build/lib/servlet-api.jar
284 commons-logging.version=%{jclver}
292 -Drpm.javadir=%{_javadir} \
293 -Drpm.libdir=%{_libdir}
296 mkdir -p output/extras/webservices
298 ln -sf %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
299 ln -sf %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
301 %ant -Dcommons-logging-version=%{jclver} extras
309 rm -rf $RPM_BUILD_ROOT
312 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
313 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
315 # useful for constructing relative symlinks. Is there a better way?
316 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
317 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
318 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
320 install -d $TOMCATDIR \
322 $RPM_BUILD_ROOT%{_vardir}/webapps \
323 $RPM_BUILD_ROOT%{_vardir}/work \
324 $RPM_BUILD_ROOT%{_vardir}/conf \
325 $RPM_BUILD_ROOT%{_logdir}/tomcat \
326 $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d,logrotate.d}
328 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
329 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
331 cp -a conf/* $CATALINADIR/conf
332 install -d $CATALINADIR/conf/Catalina/localhost
333 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
334 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
335 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
336 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
337 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
338 cp -p %{SOURCE15} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
340 cp -a bin lib webapps $TOMCATDIR
341 cp -a temp $CATALINADIR
343 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
344 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
345 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
346 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
347 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
349 # symlinks instead of copies
350 jars="commons-daemon commons-logging-api"
353 ln -sf $jar $TOMCATDIR/bin
356 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
359 ln -sf $jar $TOMCATDIR/lib
362 install -d $RPM_BUILD_ROOT%{_javadir}
363 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
364 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
365 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
366 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-catalina.jar
367 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-coyote.jar
368 mv $TOMCATDIR/lib/tomcat-util.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-util.jar
369 mv $TOMCATDIR/lib/tomcat-api.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-api.jar
371 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
372 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
374 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
375 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
376 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
378 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
379 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
381 ln -sf %{_javadir}/tomcat-catalina.jar $TOMCATDIR/lib/catalina.jar
382 ln -sf %{_javadir}/tomcat-util.jar $TOMCATDIR/lib/util.jar
383 ln -sf %{_javadir}/tomcat-api.jar $TOMCATDIR/lib/api.jar
385 ln -sf %{_javadir}/tomcat-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
387 cp -a ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
388 cp -a ../extras/catalina-jmx-remote.jar $TOMCATDIR/lib/catalina-jmx-remote.jar
389 cp -a ../extras/tomcat-juli-adapters.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli-adapters.jar
390 cp -a ../extras/tomcat-juli.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli.jar
391 ln -sf %{_javadir}/tomcat-juli-adapters.jar $TOMCATDIR/lib/juli-adapters.jar
392 ln -sf %{_javadir}/tomcat-juli.jar $TOMCATDIR/lib/juli.jar
394 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
395 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
398 rm -rf $RPM_BUILD_ROOT
401 %groupadd -g 234 -r -f tomcat
402 %groupadd -g 237 -r -f servlet
403 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
406 /sbin/chkconfig --add tomcat
407 %service tomcat restart
410 if [ "$1" = "0" ]; then
412 /sbin/chkconfig --del tomcat
416 if [ "$1" = "0" ]; then
423 %defattr(644,root,root,755)
424 %doc KEYS RELEASE-NOTES
425 %attr(754,root,root) /etc/rc.d/init.d/tomcat
426 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
427 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
428 %{_sysconfdir}/tomcat
430 %dir %{_tomcatdir}/conf
431 %dir %{_tomcatdir}/bin
432 %{_tomcatdir}/bin/catalina-tasks.xml
433 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
434 %{_tomcatdir}/bin/*.jar
435 %dir %{_tomcatdir}/lib
436 %{_tomcatdir}/lib/annotations-api.jar
437 %{_tomcatdir}/lib/api.jar
438 %{_tomcatdir}/lib/catalina-ant.jar
439 %{_tomcatdir}/lib/catalina-ha.jar
440 %{_tomcatdir}/lib/catalina.jar
441 %{_tomcatdir}/lib/catalina-tribes.jar
442 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
443 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
444 %{_tomcatdir}/lib/el-api.jar
445 %{_tomcatdir}/lib/jasper-el.jar
446 %{_tomcatdir}/lib/jasper.jar
447 %{_tomcatdir}/lib/jsp-api.jar
448 %{_tomcatdir}/lib/juli-adapters.jar
449 %{_tomcatdir}/lib/juli.jar
450 %{_tomcatdir}/lib/mail.jar
451 %{_tomcatdir}/lib/mysql-connector-java.jar
452 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
453 %{_tomcatdir}/lib/servlet-api.jar
454 %{_tomcatdir}/lib/tomcat-jdbc.jar
455 %{_tomcatdir}/lib/tomcat-coyote.jar
456 %{_tomcatdir}/lib/tomcat-i18n-es.jar
457 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
458 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
459 %{_tomcatdir}/lib/util.jar
461 %dir %{_tomcatdir}/webapps
463 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
464 %{_tomcatdir}/webapps/ROOT
468 %dir %attr(770,root,tomcat) %{_vardir}
469 # these directory has to be writeable because /admin need to modify config
470 # files and create temporary files
471 %dir %attr(770,root,tomcat) %{_vardir}/conf
472 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
473 %dir %{_vardir}/conf/Catalina/localhost
474 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
475 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
476 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
477 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
478 %dir %attr(770,root,tomcat) %{_vardir}/work
479 %dir %attr(770,root,tomcat) %{_vardir}/webapps
480 %dir %attr(770,root,tomcat) %{_vardir}/temp
481 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
485 %defattr(644,root,root,755)
486 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
487 %{_tomcatdir}/webapps/docs
489 %files webapp-manager
490 %defattr(644,root,root,755)
491 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
492 %{_tomcatdir}/webapps/manager
494 %files webapp-host-manager
495 %defattr(644,root,root,755)
496 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
497 %{_tomcatdir}/webapps/host-manager
499 %files webapp-examples
500 %defattr(644,root,root,755)
501 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
502 %{_tomcatdir}/webapps/examples
505 %defattr(644,root,root,755)
506 %{_tomcatdir}/lib/catalina-ws.jar
507 %{_tomcatdir}/lib/jsr109.jar
508 %{_tomcatdir}/lib/jaxrpc.jar
511 %defattr(644,root,root,755)
512 %{_tomcatdir}/lib/catalina-jmx-remote.jar
514 %files -n java-tomcat-jasper
515 %defattr(644,root,root,755)
516 %{_javadir}/jasper-el.jar
517 %{_javadir}/jasper.jar
519 %files -n java-tomcat-catalina
520 %defattr(644,root,root,755)
521 %{_javadir}/tomcat-api.jar
522 %{_javadir}/tomcat-catalina.jar
523 %{_javadir}/tomcat-juli-adapters.jar
524 %{_javadir}/tomcat-juli.jar
525 %{_javadir}/tomcat-util.jar
527 %files -n java-tomcat-coyote
528 %defattr(644,root,root,755)
529 %{_javadir}/tomcat-coyote.jar
531 %files -n java-servletapi
532 %defattr(644,root,root,755)
533 %{_javadir}/jsp-api*.jar
534 %{_javadir}/servlet-api*.jar