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