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-framework
44 BuildRequires: java-avalon-logkit
45 BuildRequires: java-commons-daemon >= 1.0
46 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
47 BuildRequires: java-commons-pool-tomcat5
48 BuildRequires: java-geronimo-spec-jaxrpc
49 BuildRequires: java-jdbc-mysql
50 BuildRequires: java-junit
51 BuildRequires: java-log4j
52 BuildRequires: java-mail
54 BuildRequires: jpackage-utils
55 BuildRequires: rpm-javaprov
56 BuildRequires: rpmbuild(macros) >= 1.553
57 BuildRequires: sed >= 4.0
58 Requires(post,preun): /sbin/chkconfig
59 Requires(postun): /usr/sbin/groupdel
60 Requires(postun): /usr/sbin/userdel
61 Requires(pre): /bin/id
62 Requires(pre): /usr/bin/getgid
63 Requires(pre): /usr/sbin/groupadd
64 Requires(pre): /usr/sbin/useradd
65 Requires: java(jaxp_parser_impl)
66 Requires: java(jndi) >= 1.2.1
67 Requires: java-%{name}-catalina = %{version}-%{release}
68 Requires: java-%{name}-coyote = %{version}-%{release}
69 Requires: java-%{name}-jasper = %{version}-%{release}
70 Requires: java-commons-dbcp-tomcat5 >= 0:1.1
71 Requires: java-commons-pool-tomcat5
72 Requires: java-jdbc-mysql
74 Requires: java-servletapi = %{version}-%{release}
75 Requires: jpackage-utils
80 Suggests: tomcat-native >= 1.1.27
81 Provides: group(servlet)
82 Provides: group(tomcat)
83 Provides: user(tomcat)
84 Obsoletes: apache-tomcat
85 Obsoletes: jakarta-tomcat
87 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
89 %define _tomcatdir %{_datadir}/tomcat
90 %define _logdir %{_var}/log
91 %define _vardir %{_var}/lib/tomcat
93 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
96 Tomcat is the servlet container that is used in the official Reference
97 Implementation for the Java Servlet and JavaServer Pages technologies.
98 The Java Servlet and JavaServer Pages specifications are developed by
99 Sun under the Java Community Process.
101 Tomcat is developed in an open and participatory environment and
102 released under the Apache Software License. Tomcat is intended to be a
103 collaboration of the best-of-breed developers from around the world.
105 %description -l pl.UTF-8
106 Tomcat to kontener serwletowy używany przez oficjalną implementację
107 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
108 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
112 Summary: The Apache Tomcat Servlet/JSP Container documentation
113 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
115 Obsoletes: apache-tomcat-doc
116 Obsoletes: jakarta-tomcat-doc
117 Obsoletes: tomcat-doc
119 %description webapp-docs
120 The Tomcat Servlet/JSP Container documentation.
122 %description webapp-docs -l pl.UTF-8
123 Dokumentacja do Tomcata - kontenera Servlet/JSP.
125 %package webapp-manager
126 Summary: The Apache Tomcat Servlet/JSP application manager
127 Summary(pl.UTF-8): Zarządca aplikacji w Tomcacie
128 Group: Networking/Daemons/Java/Servlets
129 Requires: %{name} = %{version}-%{release}
131 %description webapp-manager
132 The Apache Tomcat Servlet/JSP application manager.
134 %description webapp-manager -l pl.UTF-8
135 Zarządca aplikacji w Tomcacie.
137 %package webapp-host-manager
138 Summary: The Apache Tomcat Servlet/JSP virtual hosts manager
139 Summary(pl.UTF-8): Zarządca wirtualnych hostów w Tomcacie
140 Group: Networking/Daemons/Java/Servlets
141 Requires: %{name} = %{version}-%{release}
142 Obsoletes: tomcat-admin
144 %description webapp-host-manager
145 The Apache Tomcat Servlet/JSP virtual hosts manager.
147 %description webapp-host-manager -l pl.UTF-8
148 Zarządca wirtualnych hostów w Tomcacie.
150 %package webapp-examples
151 Summary: The Apache Tomcat Servlet/JSP example applications
152 Summary(pl.UTF-8): Przykładowe aplikacje dla Tomcata
153 Group: Networking/Daemons/Java/Servlets
154 Requires: %{name} = %{version}-%{release}
156 %description webapp-examples
157 The Apache Tomcat Servlet/JSP example applications.
159 %description webapp-examples -l pl.UTF-8
160 Przykładowe aplikacje dla Tomcata.
163 Summary: Web Services support (JSR 109)
164 Summary(pl.UTF-8): Wsparcie dla Web Services (JSR 109)
165 Group: Libraries/Java
166 Requires: %{name} = %{version}-%{release}
167 Requires: java(JSR109)
168 Requires: java-geronimo-spec-jaxrpc
170 %description webservices
171 Factories for JSR 109 which may be used to resolve web services
174 %description webservices -l pl.UTF-8
175 Wsparcie dla JSR 109 (Web Services).
178 Summary: JMX remote interface for Tomcat
179 Summary(pl.UTF-8): Zdalny interfejs JMX dla Tomcata
180 Group: Libraries/Java
181 Requires: %{name} = %{version}-%{release}
184 JMX remote interface for Tomcat.
186 %description jmx -l pl.UTF-8
187 Zdalny interfejs JMX dla Tomcata.
189 %package -n java-tomcat-catalina
190 Summary: Tomcat's servlet engine
191 Summary(pl.UTF-8): Silnik servletów dla Tomcata.
192 Group: Libraries/Java
193 Requires: jpackage-utils
195 %description -n java-tomcat-catalina
196 Catalina is Tomcat's servlet container. Catalina implements Sun
197 Microsystems' specifications for servlet and JavaServer Pages (JSP).
199 %description -n java-tomcat-catalina -l pl.UTF-8
200 Bibliotek Javy zawierające silnik servletów i JSP tomcata.
202 %package -n java-tomcat-coyote
203 Summary: Tomcat HTTP connector
204 Summary(pl.UTF-8): Interfejs HTTP dla Tomcata
205 Group: Libraries/Java
206 Requires: jpackage-utils
208 %description -n java-tomcat-coyote
209 Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
210 protocol for the web server or application container. Coyote listens
211 for incoming connections on a specific TCP port on the server and
212 forwards the request to the Tomcat Engine to process the request and
213 send back a response to the requesting client.
215 %description -n java-tomcat-coyote -l pl.UTF-8
216 Biblioteki Javy zawierające serwer HTTP 1.1 dla Tomcata.
218 %package -n java-tomcat-jasper
219 Summary: JSP compiler
220 Summary(pl.UTF-8): Kompilator JSP
221 Group: Libraries/Java
222 Requires: java-eclipse-jdt >= 4.2.2
223 Requires: jpackage-utils
224 Obsoletes: apache-tomcat-jasper
225 Obsoletes: tomcat-jasper
227 %description -n java-tomcat-jasper
228 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
231 %description -n java-tomcat-jasper -l pl.UTF-8
232 Jasper jest kompilatorem Java ServerPages używanym przez kontener
233 servletów Apache Tomcat.
235 %package -n java-servletapi
236 Summary: Java servlet and JSP implementation classes
237 Summary(pl.UTF-8): Klasy z implementacją Java Servlet i JSP
238 Group: Libraries/Java
239 Provides: java(jsp) = %{jspapiver}
240 Provides: java(servlet) = %{servletapiver}
241 Obsoletes: jakarta-servletapi5
242 Obsoletes: jakarta-servletapi5
243 Obsoletes: java-servletapi5
245 %description -n java-servletapi
246 Implementation classes of the Java Servlet and JSP APIs (packages
247 javax.servlet, javax.servlet.http, javax.servlet.jsp, and
248 javax.servlet.jsp.tagext).
250 %description -n java-servletapi -l pl.UTF-8
251 Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
252 javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
255 %setup -q -a100 -n apache-%{name}-%{version}-src
263 # Prepare java-commmons-logging sources
264 mkdir -p output/extras/logging
265 mv commons-logging-%{jclver}-src output/extras/logging
266 cd output/extras/logging/commons-logging-%{jclver}-src
271 # we don't need those scripts
273 rm bin/{startup,shutdown}.sh
275 cp -a %{SOURCE3} build.properties
276 cat >>build.properties <<EOF
278 log4j.jar=%(find-jar log4j)
279 log4j12.jar=%(find-jar log4j)
280 junit.jar=%(find-jar junit)
281 logkit.jar=%(find-jar avalon-logkit)
282 avalon-framework-impl.jar=%(find-jar avalon-framework-impl.jar)
283 avalon-framework-api.jar=%(find-jar avalon-framework-api.jar)
284 servletapi.jar=$(pwd)/output/build/lib/servlet-api.jar
285 commons-logging.version=%{jclver}
293 -Drpm.javadir=%{_javadir} \
294 -Drpm.libdir=%{_libdir}
297 mkdir -p output/extras/webservices
299 ln -sf %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
300 ln -sf %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
302 %ant -Dcommons-logging-version=%{jclver} extras
310 rm -rf $RPM_BUILD_ROOT
313 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
314 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
316 # useful for constructing relative symlinks. Is there a better way?
317 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
318 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
319 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
321 install -d $TOMCATDIR \
323 $RPM_BUILD_ROOT%{_vardir}/webapps \
324 $RPM_BUILD_ROOT%{_vardir}/work \
325 $RPM_BUILD_ROOT%{_vardir}/conf \
326 $RPM_BUILD_ROOT%{_logdir}/tomcat \
327 $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d,logrotate.d}
329 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
330 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
332 cp -a conf/* $CATALINADIR/conf
333 install -d $CATALINADIR/conf/Catalina/localhost
334 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
335 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
336 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
337 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
338 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
339 cp -p %{SOURCE15} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
341 cp -a bin lib webapps $TOMCATDIR
342 cp -a temp $CATALINADIR
344 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
345 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
346 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
347 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
348 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
350 # symlinks instead of copies
351 jars="commons-daemon commons-logging-api"
354 ln -sf $jar $TOMCATDIR/bin
357 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
360 ln -sf $jar $TOMCATDIR/lib
363 install -d $RPM_BUILD_ROOT%{_javadir}
364 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
365 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
366 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
367 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-catalina.jar
368 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-coyote.jar
369 mv $TOMCATDIR/lib/tomcat-util.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-util.jar
370 mv $TOMCATDIR/lib/tomcat-api.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-api.jar
372 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
373 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
375 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
376 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
377 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
379 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
380 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
382 ln -sf %{_javadir}/tomcat-catalina.jar $TOMCATDIR/lib/catalina.jar
383 ln -sf %{_javadir}/tomcat-util.jar $TOMCATDIR/lib/util.jar
384 ln -sf %{_javadir}/tomcat-api.jar $TOMCATDIR/lib/api.jar
386 ln -sf %{_javadir}/tomcat-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
388 cp -a ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
389 cp -a ../extras/catalina-jmx-remote.jar $TOMCATDIR/lib/catalina-jmx-remote.jar
390 cp -a ../extras/tomcat-juli-adapters.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli-adapters.jar
391 cp -a ../extras/tomcat-juli.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli.jar
392 ln -sf %{_javadir}/tomcat-juli-adapters.jar $TOMCATDIR/lib/juli-adapters.jar
393 ln -sf %{_javadir}/tomcat-juli.jar $TOMCATDIR/lib/juli.jar
395 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
396 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
399 rm -rf $RPM_BUILD_ROOT
402 %groupadd -g 234 -r -f tomcat
403 %groupadd -g 237 -r -f servlet
404 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
407 /sbin/chkconfig --add tomcat
408 %service tomcat restart
411 if [ "$1" = "0" ]; then
413 /sbin/chkconfig --del tomcat
417 if [ "$1" = "0" ]; then
424 %defattr(644,root,root,755)
425 %doc KEYS RELEASE-NOTES
426 %attr(754,root,root) /etc/rc.d/init.d/tomcat
427 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
428 %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name}
429 %{_sysconfdir}/tomcat
431 %dir %{_tomcatdir}/conf
432 %dir %{_tomcatdir}/bin
433 %{_tomcatdir}/bin/catalina-tasks.xml
434 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
435 %{_tomcatdir}/bin/*.jar
436 %dir %{_tomcatdir}/lib
437 %{_tomcatdir}/lib/annotations-api.jar
438 %{_tomcatdir}/lib/api.jar
439 %{_tomcatdir}/lib/catalina-ant.jar
440 %{_tomcatdir}/lib/catalina-ha.jar
441 %{_tomcatdir}/lib/catalina.jar
442 %{_tomcatdir}/lib/catalina-tribes.jar
443 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
444 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
445 %{_tomcatdir}/lib/el-api.jar
446 %{_tomcatdir}/lib/jasper-el.jar
447 %{_tomcatdir}/lib/jasper.jar
448 %{_tomcatdir}/lib/jsp-api.jar
449 %{_tomcatdir}/lib/juli-adapters.jar
450 %{_tomcatdir}/lib/juli.jar
451 %{_tomcatdir}/lib/mail.jar
452 %{_tomcatdir}/lib/mysql-connector-java.jar
453 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
454 %{_tomcatdir}/lib/servlet-api.jar
455 %{_tomcatdir}/lib/tomcat-jdbc.jar
456 %{_tomcatdir}/lib/tomcat-coyote.jar
457 %{_tomcatdir}/lib/tomcat-i18n-es.jar
458 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
459 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
460 %{_tomcatdir}/lib/util.jar
462 %dir %{_tomcatdir}/webapps
464 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
465 %{_tomcatdir}/webapps/ROOT
469 %dir %attr(770,root,tomcat) %{_vardir}
470 # these directory has to be writeable because /admin need to modify config
471 # files and create temporary files
472 %dir %attr(770,root,tomcat) %{_vardir}/conf
473 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
474 %dir %{_vardir}/conf/Catalina/localhost
475 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
476 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
477 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
478 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
479 %dir %attr(770,root,tomcat) %{_vardir}/work
480 %dir %attr(770,root,tomcat) %{_vardir}/webapps
481 %dir %attr(770,root,tomcat) %{_vardir}/temp
482 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
486 %defattr(644,root,root,755)
487 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
488 %{_tomcatdir}/webapps/docs
490 %files webapp-manager
491 %defattr(644,root,root,755)
492 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
493 %{_tomcatdir}/webapps/manager
495 %files webapp-host-manager
496 %defattr(644,root,root,755)
497 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
498 %{_tomcatdir}/webapps/host-manager
500 %files webapp-examples
501 %defattr(644,root,root,755)
502 %config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
503 %{_tomcatdir}/webapps/examples
506 %defattr(644,root,root,755)
507 %{_tomcatdir}/lib/catalina-ws.jar
508 %{_tomcatdir}/lib/jsr109.jar
509 %{_tomcatdir}/lib/jaxrpc.jar
512 %defattr(644,root,root,755)
513 %{_tomcatdir}/lib/catalina-jmx-remote.jar
515 %files -n java-tomcat-jasper
516 %defattr(644,root,root,755)
517 %{_javadir}/jasper-el.jar
518 %{_javadir}/jasper.jar
520 %files -n java-tomcat-catalina
521 %defattr(644,root,root,755)
522 %{_javadir}/tomcat-api.jar
523 %{_javadir}/tomcat-catalina.jar
524 %{_javadir}/tomcat-juli-adapters.jar
525 %{_javadir}/tomcat-juli.jar
526 %{_javadir}/tomcat-util.jar
528 %files -n java-tomcat-coyote
529 %defattr(644,root,root,755)
530 %{_javadir}/tomcat-coyote.jar
532 %files -n java-servletapi
533 %defattr(644,root,root,755)
534 %{_javadir}/jsp-api*.jar
535 %{_javadir}/servlet-api*.jar