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