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: ccc93c9eff76c16f9133148e171c94e3
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 Source100: http://www.apache.org/dist/commons/logging/source/commons-logging-%{jclver}-src.tar.gz
30 # Source100-md5: e5cfa8cca13152d7545fde6b1783c60a
31 Patch0: %{name}-build.xml.patch
32 Patch1: server.xml-URIEncoding-utf8.patch
33 Patch2: %{name}-LDAPUserDatabase.patch
34 Patch3: %{name}-catalina.policy-javadir.patch
35 Patch4: %{name}-userdir.patch
36 Patch100: jcl-build.xml.patch
37 URL: http://tomcat.apache.org/
38 BuildRequires: ant >= 1.5.3
39 BuildRequires: eclipse-jdt >= 3.2
40 BuildRequires: java(JSR109)
41 BuildRequires: java-avalon-logkit
42 BuildRequires: java-commons-daemon >= 1.0
43 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
44 BuildRequires: java-commons-pool-tomcat5
45 BuildRequires: java-geronimo-spec-jaxrpc
46 BuildRequires: java-jdbc-mysql
47 BuildRequires: java-junit
48 BuildRequires: java-log4j
49 BuildRequires: java-mail
51 BuildRequires: jpackage-utils
52 BuildRequires: rpm-javaprov
53 BuildRequires: rpmbuild(macros) >= 1.553
54 BuildRequires: sed >= 4.0
55 Requires(post,preun): /sbin/chkconfig
56 Requires(postun): /usr/sbin/groupdel
57 Requires(postun): /usr/sbin/userdel
58 Requires(pre): /bin/id
59 Requires(pre): /usr/bin/getgid
60 Requires(pre): /usr/sbin/groupadd
61 Requires(pre): /usr/sbin/useradd
62 Requires: java(jaxp_parser_impl)
63 Requires: java(jndi) >= 1.2.1
64 Requires: java-%{name}-catalina = %{version}-%{release}
65 Requires: java-%{name}-coyote = %{version}-%{release}
66 Requires: java-%{name}-jasper = %{version}-%{release}
67 Requires: java-commons-dbcp-tomcat5 >= 0:1.1
68 Requires: java-commons-pool-tomcat5
69 Requires: java-jdbc-mysql
71 Requires: java-servletapi = %{version}-%{release}
72 Requires: jpackage-utils
76 Suggests: tomcat-native
77 Provides: group(servlet)
78 Provides: group(tomcat)
79 Provides: user(tomcat)
80 Obsoletes: apache-tomcat
81 Obsoletes: jakarta-tomcat
83 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
85 %define _tomcatdir %{_datadir}/tomcat
86 %define _logdir %{_var}/log
87 %define _vardir %{_var}/lib/tomcat
89 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
92 Tomcat is the servlet container that is used in the official Reference
93 Implementation for the Java Servlet and JavaServer Pages technologies.
94 The Java Servlet and JavaServer Pages specifications are developed by
95 Sun under the Java Community Process.
97 Tomcat is developed in an open and participatory environment and
98 released under the Apache Software License. Tomcat is intended to be a
99 collaboration of the best-of-breed developers from around the world.
101 %description -l pl.UTF-8
102 Tomcat to kontener serwletowy używany przez oficjalną implementację
103 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
104 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
108 Summary: The Apache Tomcat Servlet/JSP Container documentation
109 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
111 Obsoletes: apache-tomcat-doc
112 Obsoletes: jakarta-tomcat-doc
113 Obsoletes: tomcat-doc
115 %description webapp-docs
116 The Tomcat Servlet/JSP Container documentation.
118 %description webapp-docs -l pl.UTF-8
119 Dokumentacja do Tomcata - kontenera Servlet/JSP.
121 %package webapp-manager
122 Summary: The Apache Tomcat Servlet/JSP application manager
123 Summary(pl.UTF-8): Zarządca aplikacji w Tomcacie
124 Group: Networking/Daemons/Java/Servlets
125 Requires: %{name} = %{version}-%{release}
127 %description webapp-manager
128 The Apache Tomcat Servlet/JSP application manager.
130 %description webapp-manager -l pl.UTF-8
131 Zarządca aplikacji w Tomcacie.
133 %package webapp-host-manager
134 Summary: The Apache Tomcat Servlet/JSP virtual hosts manager
135 Summary(pl.UTF-8): Zarządca wirtualnych hostów w Tomcacie
136 Group: Networking/Daemons/Java/Servlets
137 Requires: %{name} = %{version}-%{release}
138 Obsoletes: tomcat-admin
140 %description webapp-host-manager
141 The Apache Tomcat Servlet/JSP virtual hosts manager.
143 %description webapp-host-manager -l pl.UTF-8
144 Zarządca wirtualnych hostów w Tomcacie.
146 %package webapp-examples
147 Summary: The Apache Tomcat Servlet/JSP example applications
148 Summary(pl.UTF-8): Przykładowe aplikacje dla Tomcata
149 Group: Networking/Daemons/Java/Servlets
150 Requires: %{name} = %{version}-%{release}
152 %description webapp-examples
153 The Apache Tomcat Servlet/JSP example applications.
155 %description webapp-examples -l pl.UTF-8
156 Przykładowe aplikacje dla Tomcata.
159 Summary: Web Services support (JSR 109)
160 Summary(pl.UTF-8): Wsparcie dla Web Services (JSR 109)
161 Group: Libraries/Java
162 Requires: %{name} = %{version}-%{release}
163 Requires: java(JSR109)
164 Requires: java-geronimo-spec-jaxrpc
166 %description webservices
167 Factories for JSR 109 which may be used to resolve web services
170 %description webservices -l pl.UTF-8
171 Wsparcie dla JSR 109 (Web Services).
174 Summary: JMX remote interface for Tomcat
175 Summary(pl.UTF-8): Zdalny interfejs JMX dla Tomcata
176 Group: Libraries/Java
177 Requires: %{name} = %{version}-%{release}
180 JMX remote interface for Tomcat.
182 %description jmx -l pl.UTF-8
183 Zdalny interfejs JMX dla Tomcata.
185 %package -n java-tomcat-catalina
186 Summary: Tomcat's servlet engine
187 Summary(pl.UTF-8): Silnik servletów dla Tomcata.
188 Group: Libraries/Java
189 Requires: jpackage-utils
191 %description -n java-tomcat-catalina
192 Catalina is Tomcat's servlet container. Catalina implements Sun
193 Microsystems' specifications for servlet and JavaServer Pages (JSP).
195 %description -n java-tomcat-catalina -l pl.UTF-8
196 Bibliotek Javy zawierające silnik servletów i JSP tomcata.
198 %package -n java-tomcat-coyote
199 Summary: Tomcat HTTP connector
200 Summary(pl.UTF-8): Interfejs HTTP dla Tomcata
201 Group: Libraries/Java
202 Requires: jpackage-utils
204 %description -n java-tomcat-coyote
205 Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
206 protocol for the web server or application container. Coyote listens
207 for incoming connections on a specific TCP port on the server and
208 forwards the request to the Tomcat Engine to process the request and
209 send back a response to the requesting client.
211 %description -n java-tomcat-coyote -l pl.UTF-8
212 Biblioteki Javy zawierające serwer HTTP 1.1 dla Tomcata.
214 %package -n java-tomcat-jasper
215 Summary: JSP compiler
216 Summary(pl.UTF-8): Kompilator JSP
217 Group: Libraries/Java
218 Requires: java-eclipse-jdt >= 3.2
219 Requires: jpackage-utils
220 Obsoletes: apache-tomcat-jasper
221 Obsoletes: tomcat-jasper
223 %description -n java-tomcat-jasper
224 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
227 %description -n java-tomcat-jasper -l pl.UTF-8
228 Jasper jest kompilatorem Java ServerPages używanym przez kontener
229 servletów Apache Tomcat.
231 %package -n java-servletapi
232 Summary: Java servlet and JSP implementation classes
233 Summary(pl.UTF-8): Klasy z implementacją Java Servlet i JSP
234 Group: Libraries/Java
235 Provides: java(jsp) = %{jspapiver}
236 Provides: java(servlet) = %{servletapiver}
237 Obsoletes: jakarta-servletapi5
238 Obsoletes: jakarta-servletapi5
239 Obsoletes: java-servletapi5
241 %description -n java-servletapi
242 Implementation classes of the Java Servlet and JSP APIs (packages
243 javax.servlet, javax.servlet.http, javax.servlet.jsp, and
244 javax.servlet.jsp.tagext).
246 %description -n java-servletapi -l pl.UTF-8
247 Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
248 javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
251 %setup -q -a100 -n apache-%{name}-%{version}-src
258 # Prepare java-commmons-logging sources
259 mkdir -p output/extras/logging
260 mv commons-logging-%{jclver}-src output/extras/logging
261 cd output/extras/logging/commons-logging-%{jclver}-src
266 # we don't need those scripts
268 rm bin/{startup,shutdown}.sh
270 cp -a %{SOURCE3} build.properties
271 cat >>build.properties <<EOF
273 log4j.jar=%(find-jar log4j)
274 log4j12.jar=%(find-jar log4j)
275 junit.jar=%(find-jar junit)
276 logkit.jar=%(find-jar avalon-logkit)
277 avalon-framework-impl.jar=%(find-jar avalon-framework-impl.jar)
278 avalon-framework-api.jar=%(find-jar avalon-framework-api.jar)
279 servletapi.jar=$(pwd)/output/build/lib/servlet-api.jar
287 -Drpm.javadir=%{_javadir} \
288 -Drpm.libdir=%{_libdir}
291 mkdir -p output/extras/webservices
293 ln -sf %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
294 ln -sf %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
296 %ant -Dcommons-logging-version=%{jclver} extras
304 rm -rf $RPM_BUILD_ROOT
307 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
308 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
310 # useful for constructing relative symlinks. Is there a better way?
311 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
312 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
313 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
315 install -d $TOMCATDIR \
317 $RPM_BUILD_ROOT%{_vardir}/webapps \
318 $RPM_BUILD_ROOT%{_vardir}/work \
319 $RPM_BUILD_ROOT%{_vardir}/conf \
320 $RPM_BUILD_ROOT%{_logdir}/tomcat \
321 $RPM_BUILD_ROOT/etc/sysconfig \
322 $RPM_BUILD_ROOT/etc/rc.d/init.d
324 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
325 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
327 cp -a conf/* $CATALINADIR/conf
328 install -d $CATALINADIR/conf/Catalina/localhost
329 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
330 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
331 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
332 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
333 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
335 cp -a bin lib webapps $TOMCATDIR
336 cp -a temp $CATALINADIR
338 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
339 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
340 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
341 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
342 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
344 # symlinks instead of copies
345 jars="commons-daemon commons-logging-api"
348 ln -sf $jar $TOMCATDIR/bin
351 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
354 ln -sf $jar $TOMCATDIR/lib
357 install -d $RPM_BUILD_ROOT%{_javadir}
358 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
359 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
360 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
361 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-catalina.jar
362 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-coyote.jar
363 mv $TOMCATDIR/lib/tomcat-util.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-util.jar
364 mv $TOMCATDIR/lib/tomcat-api.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-api.jar
366 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
367 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
369 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
370 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
371 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
373 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
374 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
376 ln -sf %{_javadir}/tomcat-catalina.jar $TOMCATDIR/lib/catalina.jar
377 ln -sf %{_javadir}/tomcat-util.jar $TOMCATDIR/lib/util.jar
378 ln -sf %{_javadir}/tomcat-api.jar $TOMCATDIR/lib/api.jar
380 ln -sf %{_javadir}/tomcat-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
382 cp -a ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
383 cp -a ../extras/catalina-jmx-remote.jar $TOMCATDIR/lib/catalina-jmx-remote.jar
384 cp -a ../extras/tomcat-juli-adapters.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli-adapters.jar
385 cp -a ../extras/tomcat-juli.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli.jar
386 ln -sf %{_javadir}/tomcat-juli-adapters.jar $TOMCATDIR/lib/juli-adapters.jar
387 ln -sf %{_javadir}/tomcat-juli.jar $TOMCATDIR/lib/juli.jar
389 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
390 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
393 rm -rf $RPM_BUILD_ROOT
396 %groupadd -g 234 -r -f tomcat
397 %groupadd -g 237 -r -f servlet
398 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
401 /sbin/chkconfig --add tomcat
402 %service tomcat restart
405 if [ "$1" = "0" ]; then
407 /sbin/chkconfig --del tomcat
411 if [ "$1" = "0" ]; then
418 %defattr(644,root,root,755)
419 %doc KEYS RELEASE-NOTES
420 %attr(754,root,root) /etc/rc.d/init.d/tomcat
421 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
422 %{_sysconfdir}/tomcat
424 %dir %{_tomcatdir}/conf
425 %dir %{_tomcatdir}/bin
426 %{_tomcatdir}/bin/catalina-tasks.xml
427 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
428 %{_tomcatdir}/bin/*.jar
429 %dir %{_tomcatdir}/lib
430 %{_tomcatdir}/lib/annotations-api.jar
431 %{_tomcatdir}/lib/api.jar
432 %{_tomcatdir}/lib/catalina-ant.jar
433 %{_tomcatdir}/lib/catalina-ha.jar
434 %{_tomcatdir}/lib/catalina.jar
435 %{_tomcatdir}/lib/catalina-tribes.jar
436 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
437 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
438 %{_tomcatdir}/lib/el-api.jar
439 %{_tomcatdir}/lib/jasper-el.jar
440 %{_tomcatdir}/lib/jasper.jar
441 %{_tomcatdir}/lib/jsp-api.jar
442 %{_tomcatdir}/lib/juli-adapters.jar
443 %{_tomcatdir}/lib/juli.jar
444 %{_tomcatdir}/lib/mail.jar
445 %{_tomcatdir}/lib/mysql-connector-java.jar
446 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
447 %{_tomcatdir}/lib/servlet-api.jar
448 %{_tomcatdir}/lib/tomcat-jdbc.jar
449 %{_tomcatdir}/lib/tomcat-coyote.jar
450 %{_tomcatdir}/lib/tomcat-i18n-es.jar
451 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
452 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
453 %{_tomcatdir}/lib/util.jar
455 %dir %{_tomcatdir}/webapps
457 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
458 %{_tomcatdir}/webapps/ROOT
462 %dir %attr(770,root,tomcat) %{_vardir}
463 # these directory has to be writeable because /admin need to modify config
464 # files and create temporary files
465 %dir %attr(770,root,tomcat) %{_vardir}/conf
466 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
467 %dir %{_vardir}/conf/Catalina/localhost
468 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
469 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
470 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
471 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
472 %dir %attr(770,root,tomcat) %{_vardir}/work
473 %dir %attr(770,root,tomcat) %{_vardir}/webapps
474 %dir %attr(770,root,tomcat) %{_vardir}/temp
475 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
479 %defattr(644,root,root,755)
480 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
481 %{_tomcatdir}/webapps/docs
483 %files webapp-manager
484 %defattr(644,root,root,755)
485 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
486 %{_tomcatdir}/webapps/manager
488 %files webapp-host-manager
489 %defattr(644,root,root,755)
490 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
491 %{_tomcatdir}/webapps/host-manager
493 %files webapp-examples
494 %defattr(644,root,root,755)
495 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
496 %{_tomcatdir}/webapps/examples
499 %defattr(644,root,root,755)
500 %{_tomcatdir}/lib/catalina-ws.jar
501 %{_tomcatdir}/lib/jsr109.jar
502 %{_tomcatdir}/lib/jaxrpc.jar
505 %defattr(644,root,root,755)
506 %{_tomcatdir}/lib/catalina-jmx-remote.jar
508 %files -n java-tomcat-jasper
509 %defattr(644,root,root,755)
510 %{_javadir}/jasper-el.jar
511 %{_javadir}/jasper.jar
513 %files -n java-tomcat-catalina
514 %defattr(644,root,root,755)
515 %{_javadir}/tomcat-api.jar
516 %{_javadir}/tomcat-catalina.jar
517 %{_javadir}/tomcat-juli-adapters.jar
518 %{_javadir}/tomcat-juli.jar
519 %{_javadir}/tomcat-util.jar
521 %files -n java-tomcat-coyote
522 %defattr(644,root,root,755)
523 %{_javadir}/tomcat-coyote.jar
525 %files -n java-servletapi
526 %defattr(644,root,root,755)
527 %{_javadir}/jsp-api*.jar
528 %{_javadir}/servlet-api*.jar