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 URL: http://tomcat.apache.org/
31 BuildRequires: ant >= 1.5.3
32 BuildRequires: ant-trax
33 BuildRequires: java-commons-daemon >= 1.0
34 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
35 BuildRequires: java-commons-pool-tomcat5
36 BuildRequires: java-eclipse-jdt >= 3.2
37 %if %{with webservices}
38 BuildRequires: java(JSR109)
39 BuildRequires: java-geronimo-spec-jaxrpc
41 BuildRequires: java-jdbc-mysql
42 BuildRequires: java-mail
44 BuildRequires: jpackage-utils
45 BuildRequires: rpm-javaprov
46 BuildRequires: rpmbuild(macros) >= 1.300
47 Requires(post,preun): /sbin/chkconfig
48 Requires(postun): /usr/sbin/groupdel
49 Requires(postun): /usr/sbin/userdel
50 Requires(pre): /bin/id
51 Requires(pre): /usr/bin/getgid
52 Requires(pre): /usr/sbin/groupadd
53 Requires(pre): /usr/sbin/useradd
54 Requires: java(jaxp_parser_impl)
55 Requires: java(jndi) >= 1.2.1
56 Requires: java-%{name}-catalina = %{epoch}:%{version}-%{release}
57 Requires: java-%{name}-coyote = %{epoch}:%{version}-%{release}
58 Requires: java-%{name}-jasper = %{epoch}:%{version}-%{release}
59 Requires: java-commons-dbcp-tomcat5 >= 0:1.1
60 Requires: java-commons-pool-tomcat5
61 Requires: java-jdbc-mysql
63 Requires: java-servletapi = %{epoch}:%{version}-%{release}
64 Requires: jpackage-utils
68 Suggests: tomcat-native
69 Provides: group(servlet)
70 Provides: group(tomcat)
71 Provides: user(tomcat)
72 Obsoletes: apache-tomcat
73 Obsoletes: jakarta-tomcat
75 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
77 %define _tomcatdir %{_datadir}/tomcat
78 %define _logdir %{_var}/log
79 %define _vardir %{_var}/lib/tomcat
81 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
84 Tomcat is the servlet container that is used in the official Reference
85 Implementation for the Java Servlet and JavaServer Pages technologies.
86 The Java Servlet and JavaServer Pages specifications are developed by
87 Sun under the Java Community Process.
89 Tomcat is developed in an open and participatory environment and
90 released under the Apache Software License. Tomcat is intended to be a
91 collaboration of the best-of-breed developers from around the world.
92 We invite you to participate in this open development project.
94 %description -l pl.UTF-8
95 Tomcat to kontener serwletowy używany przez oficjalną implementację
96 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
97 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
101 Summary: The Apache Tomcat Servlet/JSP Container documentation
102 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
104 Obsoletes: apache-tomcat-doc
105 Obsoletes: jakarta-tomcat-doc
106 Obsoletes: tomcat-doc
108 %description webapp-docs
109 The Tomcat Servlet/JSP Container documentation.
111 %description webapp-docs -l pl.UTF-8
112 Dokumentacja do Tomcata - kontenera Servlet/JSP.
114 %package webapp-manager
115 Summary: The Apache Tomcat Servlet/JSP application manager
116 Summary(pl.UTF-8): Zarządca aplikacji w Tomcacie
117 Group: Networking/Daemons/Java/Servlets
118 Requires: %{name} = %{epoch}:%{version}-%{release}
120 %description webapp-manager
121 The Apache Tomcat Servlet/JSP application manager.
123 %description webapp-manager -l pl.UTF-8
124 Zarządca aplikacji w Tomcacie.
126 %package webapp-host-manager
127 Summary: The Apache Tomcat Servlet/JSP virtual hosts manager
128 Summary(pl.UTF-8): Zarządca wirtualnych hostów w Tomcacie
129 Group: Networking/Daemons/Java/Servlets
130 Requires: %{name} = %{epoch}:%{version}-%{release}
131 Obsoletes: tomcat-admin
133 %description webapp-host-manager
134 The Apache Tomcat Servlet/JSP virtual hosts manager.
136 %description webapp-host-manager -l pl.UTF-8
137 Zarządca wirtualnych hostów w Tomcacie.
139 %package webapp-examples
140 Summary: The Apache Tomcat Servlet/JSP example applications
141 Summary(pl.UTF-8): Przykładowe aplikacje dla Tomcata
142 Group: Networking/Daemons/Java/Servlets
143 Requires: %{name} = %{epoch}:%{version}-%{release}
145 %description webapp-examples
146 The Apache Tomcat Servlet/JSP example applications.
148 %description webapp-examples -l pl.UTF-8
149 Przykładowe aplikacje dla Tomcata.
152 Summary: Web Services support (JSR 109)
153 Group: Libraries/Java
154 Requires: %{name} = %{epoch}:%{version}-%{release}
155 Requires: java(JSR109)
156 Requires: java-geronimo-spec-jaxrpc
158 %description webservices
159 Factories for JSR 109 which may be used to resolve web services
162 %package -n java-tomcat-catalina
163 Summary: Tomcat's servlet container
164 Group: Libraries/Java
165 Requires: jpackage-utils
167 %description -n java-tomcat-catalina
168 Catalina is Tomcat's servlet container. Catalina implements Sun
169 Microsystems' specifications for servlet and JavaServer Pages (JSP).
171 %package -n java-tomcat-coyote
172 Summary: Tomcat HTTP connector
173 Group: Libraries/Java
174 Requires: jpackage-utils
176 %description -n java-tomcat-coyote
177 Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
178 protocol for the web server or application container. Coyote listens
179 for incoming connections on a specific TCP port on the server and
180 forwards the request to the Tomcat Engine to process the request and
181 send back a response to the requesting client.
183 %package -n java-tomcat-jasper
184 Summary: JSP compiler
185 Summary(pl.UTF-8): Kompilator JSP
186 Group: Libraries/Java
187 Requires: java-eclipse-jdt >= 3.2
188 Requires: jpackage-utils
189 Obsoletes: apache-tomcat-jasper
190 Obsoletes: tomcat-jasper
192 %description -n java-tomcat-jasper
193 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
196 %description -n java-tomcat-jasper -l pl.UTF-8
197 Jasper jest kompilatorem Java ServerPages używanym przez kontener
198 servletów Apache Tomcat.
200 %package -n java-servletapi
201 Summary: Java servlet and JSP implementation classes
202 Summary(pl.UTF-8): Klasy z implementacją Java Servlet i JSP
203 Group: Libraries/Java
204 Provides: java(jsp) = %{jspapiver}
205 Provides: java(servlet) = %{servletapiver}
206 Obsoletes: jakarta-servletapi5
207 Obsoletes: java-servletapi5
209 %description -n java-servletapi
210 Implementation classes of the Java Servlet and JSP APIs (packages
211 javax.servlet, javax.servlet.http, javax.servlet.jsp, and
212 javax.servlet.jsp.tagext).
214 %description -n java-servletapi -l pl.UTF-8
215 Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
216 javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
219 %setup -q -n apache-%{name}-%{version}-src
224 # we don't need those scripts
226 rm bin/{startup,shutdown}.sh
228 cp -a %{SOURCE3} build.properties
234 -Drpm.javadir=%{_javadir} \
235 -Drpm.libdir=%{_libdir}
238 %ant -f dist.xml dist-javadoc
241 %if %{with webservices}
242 mkdir -p output/extras/webservices
244 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
245 ln -s %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
247 %ant -f extras.xml webservices
251 rm -rf $RPM_BUILD_ROOT
254 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
255 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
257 # useful for constructing relative symlinks. Is there a better way?
258 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
259 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
260 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
262 install -d $TOMCATDIR \
264 $RPM_BUILD_ROOT%{_vardir}/webapps \
265 $RPM_BUILD_ROOT%{_vardir}/work \
266 $RPM_BUILD_ROOT%{_vardir}/conf \
267 $RPM_BUILD_ROOT%{_logdir}/tomcat \
268 $RPM_BUILD_ROOT/etc/sysconfig \
269 $RPM_BUILD_ROOT/etc/rc.d/init.d
271 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
272 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
274 cp -a conf/* $CATALINADIR/conf
275 install -d $CATALINADIR/conf/Catalina/localhost
276 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
277 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
278 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
279 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
280 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
282 cp -a bin lib webapps $TOMCATDIR
283 cp -a temp $CATALINADIR
285 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
286 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
287 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
288 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
289 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
291 # symlinks instead of copies
292 jars="commons-daemon commons-logging-api"
295 ln -sf $jar $TOMCATDIR/bin
298 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
301 ln -sf $jar $TOMCATDIR/lib
304 install -d $RPM_BUILD_ROOT%{_javadir}
305 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
306 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
307 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
308 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-catalina.jar
309 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-coyote.jar
311 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
312 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
314 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
315 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
316 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
318 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
319 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
321 ln -sf %{_javadir}/tomcat6-catalina.jar $TOMCATDIR/lib/catalina.jar
322 ln -sf %{_javadir}/tomcat6-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
324 %if %{with webservices}
325 install ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
327 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
328 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
332 rm -rf $RPM_BUILD_ROOT
335 %groupadd -g 234 -r -f tomcat
336 %groupadd -g 237 -r -f servlet
337 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
340 /sbin/chkconfig --add tomcat
341 %service tomcat restart
344 if [ "$1" = "0" ]; then
346 /sbin/chkconfig --del tomcat
350 if [ "$1" = "0" ]; then
357 %defattr(644,root,root,755)
358 %doc KEYS RELEASE-NOTES RELEASE-PLAN-6.0.txt RUNNING.txt
359 %attr(754,root,root) /etc/rc.d/init.d/tomcat
360 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
361 %{_sysconfdir}/tomcat
363 %dir %{_tomcatdir}/conf
364 %dir %{_tomcatdir}/bin
365 %{_tomcatdir}/bin/catalina-tasks.xml
366 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
367 %{_tomcatdir}/bin/*.jar
368 %dir %{_tomcatdir}/lib
369 %{_tomcatdir}/lib/annotations-api.jar
370 %{_tomcatdir}/lib/catalina-ant.jar
371 %{_tomcatdir}/lib/catalina-ha.jar
372 %{_tomcatdir}/lib/catalina.jar
373 %{_tomcatdir}/lib/catalina-tribes.jar
374 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
375 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
376 %{_tomcatdir}/lib/el-api.jar
377 %{_tomcatdir}/lib/jasper-el.jar
378 %{_tomcatdir}/lib/jasper.jar
379 %{_tomcatdir}/lib/jsp-api.jar
380 %{_tomcatdir}/lib/mail.jar
381 %{_tomcatdir}/lib/mysql-connector-java.jar
382 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
383 %{_tomcatdir}/lib/servlet-api.jar
384 %{_tomcatdir}/lib/tomcat-coyote.jar
385 %{_tomcatdir}/lib/tomcat-i18n-es.jar
386 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
387 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
389 %dir %{_tomcatdir}/webapps
391 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
392 %{_tomcatdir}/webapps/ROOT
396 %dir %attr(770,root,tomcat) %{_vardir}
397 # these directory has to be writeable because /admin need to modify config
398 # files and create temporary files
399 %dir %attr(770,root,tomcat) %{_vardir}/conf
400 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
401 %dir %{_vardir}/conf/Catalina/localhost
402 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
403 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
404 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
405 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
406 %dir %attr(770,root,tomcat) %{_vardir}/work
407 %dir %attr(770,root,tomcat) %{_vardir}/webapps
408 %dir %attr(770,root,tomcat) %{_vardir}/temp
409 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
413 %defattr(644,root,root,755)
414 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
415 %{_tomcatdir}/webapps/docs
417 %files webapp-manager
418 %defattr(644,root,root,755)
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
420 %{_tomcatdir}/webapps/manager
422 %files webapp-host-manager
423 %defattr(644,root,root,755)
424 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
425 %{_tomcatdir}/webapps/host-manager
427 %files webapp-examples
428 %defattr(644,root,root,755)
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
430 %{_tomcatdir}/webapps/examples
432 %if %{with webservices}
434 %defattr(644,root,root,755)
435 %{_tomcatdir}/lib/catalina-ws.jar
436 %{_tomcatdir}/lib/jsr109.jar
437 %{_tomcatdir}/lib/jaxrpc.jar
440 %files -n java-tomcat-jasper
441 %defattr(644,root,root,755)
442 %{_javadir}/jasper-el.jar
443 %{_javadir}/jasper.jar
445 %files -n java-tomcat-catalina
446 %defattr(644,root,root,755)
447 %{_javadir}/tomcat6-catalina.jar
449 %files -n java-tomcat-coyote
450 %defattr(644,root,root,755)
451 %{_javadir}/tomcat6-coyote.jar
453 %files -n java-servletapi
454 %defattr(644,root,root,755)
455 %{_javadir}/jsp-api*.jar
456 %{_javadir}/servlet-api*.jar