3 %bcond_without javadoc # skip building javadocs
4 %bcond_without webservices # skip building webservices
7 %define servletapiver 2.5
9 %include /usr/lib/rpm/macros.java
10 Summary: Web server and Servlet/JSP Engine, RI for Servlet %{servletapiver}/JSP %{jspapiver} API
11 Summary(pl.UTF-8): Serwer www i silnik Servlet/JSP będący wzorcową implementacją API Servlet %{servletapiver}/JSP %{jspapiver}
16 Group: Networking/Daemons/Java
17 Source0: http://www.apache.org/dist/tomcat/tomcat-6/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
18 # Source0-md5: 260de5ae62f415b9c085c5aeed4ef24c
19 Source1: apache-%{name}.init
20 Source2: apache-%{name}.sysconfig
21 Source3: %{name}-build.properties
22 Source10: %{name}-context-ROOT.xml
23 Source11: %{name}-context-docs.xml
24 Source12: %{name}-context-manager.xml
25 Source13: %{name}-context-host-manager.xml
26 Source14: %{name}-context-examples.xml
27 Patch0: %{name}-build.xml.patch
28 Patch1: %{name}-extras.xml.patch
29 Patch2: server.xml-URIEncoding-utf8.patch
30 Patch3: %{name}-LDAPUserDatabase.patch
31 URL: http://tomcat.apache.org/
32 BuildRequires: ant >= 1.5.3
33 BuildRequires: ant-trax
34 BuildRequires: java-commons-daemon >= 1.0
35 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
36 BuildRequires: java-commons-pool-tomcat5
37 BuildRequires: java-eclipse-jdt >= 3.2
38 %if %{with webservices}
39 BuildRequires: java(JSR109)
40 BuildRequires: java-geronimo-spec-jaxrpc
42 BuildRequires: java-jdbc-mysql
43 BuildRequires: java-mail
45 BuildRequires: jpackage-utils
46 BuildRequires: rpm-javaprov
47 BuildRequires: rpmbuild(macros) >= 1.300
48 Requires(post,preun): /sbin/chkconfig
49 Requires(postun): /usr/sbin/groupdel
50 Requires(postun): /usr/sbin/userdel
51 Requires(pre): /bin/id
52 Requires(pre): /usr/bin/getgid
53 Requires(pre): /usr/sbin/groupadd
54 Requires(pre): /usr/sbin/useradd
55 Requires: java(jaxp_parser_impl)
56 Requires: java(jndi) >= 1.2.1
57 Requires: java-%{name}-catalina = %{epoch}:%{version}-%{release}
58 Requires: java-%{name}-coyote = %{epoch}:%{version}-%{release}
59 Requires: java-%{name}-jasper = %{epoch}:%{version}-%{release}
60 Requires: java-commons-dbcp-tomcat5 >= 0:1.1
61 Requires: java-commons-pool-tomcat5
62 Requires: java-jdbc-mysql
64 Requires: java-servletapi = %{epoch}:%{version}-%{release}
65 Requires: jpackage-utils
69 Suggests: tomcat-native
70 Provides: group(servlet)
71 Provides: group(tomcat)
72 Provides: user(tomcat)
73 Obsoletes: apache-tomcat
74 Obsoletes: jakarta-tomcat
76 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
78 %define _tomcatdir %{_datadir}/tomcat
79 %define _logdir %{_var}/log
80 %define _vardir %{_var}/lib/tomcat
82 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
85 Tomcat is the servlet container that is used in the official Reference
86 Implementation for the Java Servlet and JavaServer Pages technologies.
87 The Java Servlet and JavaServer Pages specifications are developed by
88 Sun under the Java Community Process.
90 Tomcat is developed in an open and participatory environment and
91 released under the Apache Software License. Tomcat is intended to be a
92 collaboration of the best-of-breed developers from around the world.
93 We invite you to participate in this open development project.
95 %description -l pl.UTF-8
96 Tomcat to kontener serwletowy używany przez oficjalną implementację
97 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
98 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
102 Summary: The Apache Tomcat Servlet/JSP Container documentation
103 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
105 Obsoletes: apache-tomcat-doc
106 Obsoletes: jakarta-tomcat-doc
107 Obsoletes: tomcat-doc
109 %description webapp-docs
110 The Tomcat Servlet/JSP Container documentation.
112 %description webapp-docs -l pl.UTF-8
113 Dokumentacja do Tomcata - kontenera Servlet/JSP.
115 %package webapp-manager
116 Summary: The Apache Tomcat Servlet/JSP application manager
117 Summary(pl.UTF-8): Zarządca aplikacji w Tomcacie
118 Group: Networking/Daemons/Java/Servlets
119 Requires: %{name} = %{epoch}:%{version}-%{release}
121 %description webapp-manager
122 The Apache Tomcat Servlet/JSP application manager.
124 %description webapp-manager -l pl.UTF-8
125 Zarządca aplikacji w Tomcacie.
127 %package webapp-host-manager
128 Summary: The Apache Tomcat Servlet/JSP virtual hosts manager
129 Summary(pl.UTF-8): Zarządca wirtualnych hostów w Tomcacie
130 Group: Networking/Daemons/Java/Servlets
131 Requires: %{name} = %{epoch}:%{version}-%{release}
132 Obsoletes: tomcat-admin
134 %description webapp-host-manager
135 The Apache Tomcat Servlet/JSP virtual hosts manager.
137 %description webapp-host-manager -l pl.UTF-8
138 Zarządca wirtualnych hostów w Tomcacie.
140 %package webapp-examples
141 Summary: The Apache Tomcat Servlet/JSP example applications
142 Summary(pl.UTF-8): Przykładowe aplikacje dla Tomcata
143 Group: Networking/Daemons/Java/Servlets
144 Requires: %{name} = %{epoch}:%{version}-%{release}
146 %description webapp-examples
147 The Apache Tomcat Servlet/JSP example applications.
149 %description webapp-examples -l pl.UTF-8
150 Przykładowe aplikacje dla Tomcata.
153 Summary: Web Services support (JSR 109)
154 Group: Libraries/Java
155 Requires: %{name} = %{epoch}:%{version}-%{release}
156 Requires: java(JSR109)
157 Requires: java-geronimo-spec-jaxrpc
159 %description webservices
160 Factories for JSR 109 which may be used to resolve web services
163 %package -n java-tomcat-catalina
164 Summary: Tomcat's servlet container
165 Group: Libraries/Java
166 Requires: jpackage-utils
168 %description -n java-tomcat-catalina
169 Catalina is Tomcat's servlet container. Catalina implements Sun
170 Microsystems' specifications for servlet and JavaServer Pages (JSP).
172 %package -n java-tomcat-coyote
173 Summary: Tomcat HTTP connector
174 Group: Libraries/Java
175 Requires: jpackage-utils
177 %description -n java-tomcat-coyote
178 Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
179 protocol for the web server or application container. Coyote listens
180 for incoming connections on a specific TCP port on the server and
181 forwards the request to the Tomcat Engine to process the request and
182 send back a response to the requesting client.
184 %package -n java-tomcat-jasper
185 Summary: JSP compiler
186 Summary(pl.UTF-8): Kompilator JSP
187 Group: Libraries/Java
188 Requires: java-eclipse-jdt >= 3.2
189 Requires: jpackage-utils
190 Obsoletes: apache-tomcat-jasper
191 Obsoletes: tomcat-jasper
193 %description -n java-tomcat-jasper
194 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
197 %description -n java-tomcat-jasper -l pl.UTF-8
198 Jasper jest kompilatorem Java ServerPages używanym przez kontener
199 servletów Apache Tomcat.
201 %package -n java-servletapi
202 Summary: Java servlet and JSP implementation classes
203 Summary(pl.UTF-8): Klasy z implementacją Java Servlet i JSP
204 Group: Libraries/Java
205 Provides: java(jsp) = %{jspapiver}
206 Provides: java(servlet) = %{servletapiver}
207 Obsoletes: jakarta-servletapi5
208 Obsoletes: java-servletapi5
210 %description -n java-servletapi
211 Implementation classes of the Java Servlet and JSP APIs (packages
212 javax.servlet, javax.servlet.http, javax.servlet.jsp, and
213 javax.servlet.jsp.tagext).
215 %description -n java-servletapi -l pl.UTF-8
216 Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
217 javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
220 %setup -q -n apache-%{name}-%{version}-src
226 # we don't need those scripts
228 rm bin/{startup,shutdown}.sh
230 cp -a %{SOURCE3} build.properties
236 -Drpm.javadir=%{_javadir} \
237 -Drpm.libdir=%{_libdir}
240 %ant -f dist.xml dist-javadoc
243 %if %{with webservices}
244 mkdir -p output/extras/webservices
246 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
247 ln -s %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
249 %ant -f extras.xml webservices
253 rm -rf $RPM_BUILD_ROOT
256 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
257 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
259 # useful for constructing relative symlinks. Is there a better way?
260 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
261 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
262 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
264 install -d $TOMCATDIR \
266 $RPM_BUILD_ROOT%{_vardir}/webapps \
267 $RPM_BUILD_ROOT%{_vardir}/work \
268 $RPM_BUILD_ROOT%{_vardir}/conf \
269 $RPM_BUILD_ROOT%{_logdir}/tomcat \
270 $RPM_BUILD_ROOT/etc/sysconfig \
271 $RPM_BUILD_ROOT/etc/rc.d/init.d
273 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
274 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
276 cp -a conf/* $CATALINADIR/conf
277 install -d $CATALINADIR/conf/Catalina/localhost
278 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
279 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
280 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
281 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
282 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
284 cp -a bin lib webapps $TOMCATDIR
285 cp -a temp $CATALINADIR
287 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
288 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
289 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
290 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
291 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
293 # symlinks instead of copies
294 jars="commons-daemon commons-logging-api"
297 ln -sf $jar $TOMCATDIR/bin
300 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
303 ln -sf $jar $TOMCATDIR/lib
306 install -d $RPM_BUILD_ROOT%{_javadir}
307 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
308 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
309 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
310 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-catalina.jar
311 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-coyote.jar
313 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
314 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
316 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
317 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
318 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
320 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
321 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
323 ln -sf %{_javadir}/tomcat6-catalina.jar $TOMCATDIR/lib/catalina.jar
324 ln -sf %{_javadir}/tomcat6-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
326 %if %{with webservices}
327 install ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
329 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
330 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
334 rm -rf $RPM_BUILD_ROOT
337 %groupadd -g 234 -r -f tomcat
338 %groupadd -g 237 -r -f servlet
339 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
342 /sbin/chkconfig --add tomcat
343 %service tomcat restart
346 if [ "$1" = "0" ]; then
348 /sbin/chkconfig --del tomcat
352 if [ "$1" = "0" ]; then
359 %defattr(644,root,root,755)
360 %doc KEYS RELEASE-NOTES RELEASE-PLAN-6.0.txt RUNNING.txt
361 %attr(754,root,root) /etc/rc.d/init.d/tomcat
362 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
363 %{_sysconfdir}/tomcat
365 %dir %{_tomcatdir}/conf
366 %dir %{_tomcatdir}/bin
367 %{_tomcatdir}/bin/catalina-tasks.xml
368 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
369 %{_tomcatdir}/bin/*.jar
370 %dir %{_tomcatdir}/lib
371 %{_tomcatdir}/lib/annotations-api.jar
372 %{_tomcatdir}/lib/catalina-ant.jar
373 %{_tomcatdir}/lib/catalina-ha.jar
374 %{_tomcatdir}/lib/catalina.jar
375 %{_tomcatdir}/lib/catalina-tribes.jar
376 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
377 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
378 %{_tomcatdir}/lib/el-api.jar
379 %{_tomcatdir}/lib/jasper-el.jar
380 %{_tomcatdir}/lib/jasper.jar
381 %{_tomcatdir}/lib/jsp-api.jar
382 %{_tomcatdir}/lib/mail.jar
383 %{_tomcatdir}/lib/mysql-connector-java.jar
384 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
385 %{_tomcatdir}/lib/servlet-api.jar
386 %{_tomcatdir}/lib/tomcat-coyote.jar
387 %{_tomcatdir}/lib/tomcat-i18n-es.jar
388 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
389 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
391 %dir %{_tomcatdir}/webapps
393 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
394 %{_tomcatdir}/webapps/ROOT
398 %dir %attr(770,root,tomcat) %{_vardir}
399 # these directory has to be writeable because /admin need to modify config
400 # files and create temporary files
401 %dir %attr(770,root,tomcat) %{_vardir}/conf
402 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
403 %dir %{_vardir}/conf/Catalina/localhost
404 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
405 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
406 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
407 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
408 %dir %attr(770,root,tomcat) %{_vardir}/work
409 %dir %attr(770,root,tomcat) %{_vardir}/webapps
410 %dir %attr(770,root,tomcat) %{_vardir}/temp
411 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
415 %defattr(644,root,root,755)
416 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
417 %{_tomcatdir}/webapps/docs
419 %files webapp-manager
420 %defattr(644,root,root,755)
421 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
422 %{_tomcatdir}/webapps/manager
424 %files webapp-host-manager
425 %defattr(644,root,root,755)
426 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
427 %{_tomcatdir}/webapps/host-manager
429 %files webapp-examples
430 %defattr(644,root,root,755)
431 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
432 %{_tomcatdir}/webapps/examples
434 %if %{with webservices}
436 %defattr(644,root,root,755)
437 %{_tomcatdir}/lib/catalina-ws.jar
438 %{_tomcatdir}/lib/jsr109.jar
439 %{_tomcatdir}/lib/jaxrpc.jar
442 %files -n java-tomcat-jasper
443 %defattr(644,root,root,755)
444 %{_javadir}/jasper-el.jar
445 %{_javadir}/jasper.jar
447 %files -n java-tomcat-catalina
448 %defattr(644,root,root,755)
449 %{_javadir}/tomcat6-catalina.jar
451 %files -n java-tomcat-coyote
452 %defattr(644,root,root,755)
453 %{_javadir}/tomcat6-coyote.jar
455 %files -n java-servletapi
456 %defattr(644,root,root,755)
457 %{_javadir}/jsp-api*.jar
458 %{_javadir}/servlet-api*.jar