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: 158df72e6c046fa5d46a691a7c0805e6
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 >= 4.2.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 >= 4.2.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
280 commons-logging.version=%{jclver}
288 -Drpm.javadir=%{_javadir} \
289 -Drpm.libdir=%{_libdir}
292 mkdir -p output/extras/webservices
294 ln -sf %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
295 ln -sf %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
297 %ant -Dcommons-logging-version=%{jclver} extras
305 rm -rf $RPM_BUILD_ROOT
308 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
309 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
311 # useful for constructing relative symlinks. Is there a better way?
312 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
313 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
314 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
316 install -d $TOMCATDIR \
318 $RPM_BUILD_ROOT%{_vardir}/webapps \
319 $RPM_BUILD_ROOT%{_vardir}/work \
320 $RPM_BUILD_ROOT%{_vardir}/conf \
321 $RPM_BUILD_ROOT%{_logdir}/tomcat \
322 $RPM_BUILD_ROOT/etc/sysconfig \
323 $RPM_BUILD_ROOT/etc/rc.d/init.d
325 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
326 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
328 cp -a conf/* $CATALINADIR/conf
329 install -d $CATALINADIR/conf/Catalina/localhost
330 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
331 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
332 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
333 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
334 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
336 cp -a bin lib webapps $TOMCATDIR
337 cp -a temp $CATALINADIR
339 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
340 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
341 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
342 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
343 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
345 # symlinks instead of copies
346 jars="commons-daemon commons-logging-api"
349 ln -sf $jar $TOMCATDIR/bin
352 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
355 ln -sf $jar $TOMCATDIR/lib
358 install -d $RPM_BUILD_ROOT%{_javadir}
359 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
360 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
361 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
362 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-catalina.jar
363 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-coyote.jar
364 mv $TOMCATDIR/lib/tomcat-util.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-util.jar
365 mv $TOMCATDIR/lib/tomcat-api.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-api.jar
367 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
368 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
370 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
371 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
372 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
374 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
375 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
377 ln -sf %{_javadir}/tomcat-catalina.jar $TOMCATDIR/lib/catalina.jar
378 ln -sf %{_javadir}/tomcat-util.jar $TOMCATDIR/lib/util.jar
379 ln -sf %{_javadir}/tomcat-api.jar $TOMCATDIR/lib/api.jar
381 ln -sf %{_javadir}/tomcat-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
383 cp -a ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
384 cp -a ../extras/catalina-jmx-remote.jar $TOMCATDIR/lib/catalina-jmx-remote.jar
385 cp -a ../extras/tomcat-juli-adapters.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli-adapters.jar
386 cp -a ../extras/tomcat-juli.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli.jar
387 ln -sf %{_javadir}/tomcat-juli-adapters.jar $TOMCATDIR/lib/juli-adapters.jar
388 ln -sf %{_javadir}/tomcat-juli.jar $TOMCATDIR/lib/juli.jar
390 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
391 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
394 rm -rf $RPM_BUILD_ROOT
397 %groupadd -g 234 -r -f tomcat
398 %groupadd -g 237 -r -f servlet
399 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
402 /sbin/chkconfig --add tomcat
403 %service tomcat restart
406 if [ "$1" = "0" ]; then
408 /sbin/chkconfig --del tomcat
412 if [ "$1" = "0" ]; then
419 %defattr(644,root,root,755)
420 %doc KEYS RELEASE-NOTES
421 %attr(754,root,root) /etc/rc.d/init.d/tomcat
422 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
423 %{_sysconfdir}/tomcat
425 %dir %{_tomcatdir}/conf
426 %dir %{_tomcatdir}/bin
427 %{_tomcatdir}/bin/catalina-tasks.xml
428 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
429 %{_tomcatdir}/bin/*.jar
430 %dir %{_tomcatdir}/lib
431 %{_tomcatdir}/lib/annotations-api.jar
432 %{_tomcatdir}/lib/api.jar
433 %{_tomcatdir}/lib/catalina-ant.jar
434 %{_tomcatdir}/lib/catalina-ha.jar
435 %{_tomcatdir}/lib/catalina.jar
436 %{_tomcatdir}/lib/catalina-tribes.jar
437 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
438 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
439 %{_tomcatdir}/lib/el-api.jar
440 %{_tomcatdir}/lib/jasper-el.jar
441 %{_tomcatdir}/lib/jasper.jar
442 %{_tomcatdir}/lib/jsp-api.jar
443 %{_tomcatdir}/lib/juli-adapters.jar
444 %{_tomcatdir}/lib/juli.jar
445 %{_tomcatdir}/lib/mail.jar
446 %{_tomcatdir}/lib/mysql-connector-java.jar
447 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
448 %{_tomcatdir}/lib/servlet-api.jar
449 %{_tomcatdir}/lib/tomcat-jdbc.jar
450 %{_tomcatdir}/lib/tomcat-coyote.jar
451 %{_tomcatdir}/lib/tomcat-i18n-es.jar
452 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
453 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
454 %{_tomcatdir}/lib/util.jar
456 %dir %{_tomcatdir}/webapps
458 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
459 %{_tomcatdir}/webapps/ROOT
463 %dir %attr(770,root,tomcat) %{_vardir}
464 # these directory has to be writeable because /admin need to modify config
465 # files and create temporary files
466 %dir %attr(770,root,tomcat) %{_vardir}/conf
467 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
468 %dir %{_vardir}/conf/Catalina/localhost
469 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
470 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
471 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
472 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
473 %dir %attr(770,root,tomcat) %{_vardir}/work
474 %dir %attr(770,root,tomcat) %{_vardir}/webapps
475 %dir %attr(770,root,tomcat) %{_vardir}/temp
476 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
480 %defattr(644,root,root,755)
481 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
482 %{_tomcatdir}/webapps/docs
484 %files webapp-manager
485 %defattr(644,root,root,755)
486 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
487 %{_tomcatdir}/webapps/manager
489 %files webapp-host-manager
490 %defattr(644,root,root,755)
491 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
492 %{_tomcatdir}/webapps/host-manager
494 %files webapp-examples
495 %defattr(644,root,root,755)
496 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
497 %{_tomcatdir}/webapps/examples
500 %defattr(644,root,root,755)
501 %{_tomcatdir}/lib/catalina-ws.jar
502 %{_tomcatdir}/lib/jsr109.jar
503 %{_tomcatdir}/lib/jaxrpc.jar
506 %defattr(644,root,root,755)
507 %{_tomcatdir}/lib/catalina-jmx-remote.jar
509 %files -n java-tomcat-jasper
510 %defattr(644,root,root,755)
511 %{_javadir}/jasper-el.jar
512 %{_javadir}/jasper.jar
514 %files -n java-tomcat-catalina
515 %defattr(644,root,root,755)
516 %{_javadir}/tomcat-api.jar
517 %{_javadir}/tomcat-catalina.jar
518 %{_javadir}/tomcat-juli-adapters.jar
519 %{_javadir}/tomcat-juli.jar
520 %{_javadir}/tomcat-util.jar
522 %files -n java-tomcat-coyote
523 %defattr(644,root,root,755)
524 %{_javadir}/tomcat-coyote.jar
526 %files -n java-servletapi
527 %defattr(644,root,root,755)
528 %{_javadir}/jsp-api*.jar
529 %{_javadir}/servlet-api*.jar