3 %bcond_with binary # build from binary source
4 %bcond_without javadoc # skip building javadocs
6 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
7 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
12 Group: Development/Languages/Java
13 #Source0: http://www.apache.org/dist/tomcat/tomcat-5/v5.0.30/src/%{name}-%{version}-src.tar.gz
14 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-tomcat-%{version}-src.tar.gz
15 # Source0-md5: 362d1d8b15dc09882440dcab8c592dd7
16 #Source0: http://apache.zone-h.org/
18 Patch0: apache-tomcat-skip-servletapi.patch
19 Patch1: apache-tomcat-nsis.patch
20 Patch2: apache-tomcat-native.patch
21 Patch3: apache-tomcat-skip-jdt.patch
22 URL: http://tomcat.apache.org/
24 BuildRequires: ant >= 1.5.3
26 BuildRequires: jakarta-commons-beanutils
27 BuildRequires: jakarta-commons-collections
28 BuildRequires: jakarta-commons-collections-source
29 BuildRequires: jakarta-commons-daemon
30 BuildRequires: jakarta-commons-dbcp
31 BuildRequires: jakarta-commons-dbcp-source
32 BuildRequires: jakarta-commons-digester
33 BuildRequires: jakarta-commons-fileupload
34 BuildRequires: jakarta-commons-httpclient
35 BuildRequires: jakarta-commons-logging
36 BuildRequires: jakarta-commons-modeler >= 2.0
37 BuildRequires: jakarta-commons-pool
38 BuildRequires: jakarta-commons-pool-source
39 BuildRequires: jakarta-regexp
40 BuildRequires: jakarta-servletapi5
41 BuildRequires: jakarta-struts >= 1.0.2
42 BuildRequires: jaxp_parser_impl
43 BuildRequires: jdk >= 1.5
44 BuildRequires: jpackage-utils
45 BuildRequires: mx4j >= 1.1.1
46 BuildRequires: puretls
47 BuildRequires: rpmbuild(macros) >= 1.300
48 BuildRequires: xerces-j
50 BuildRequires: commons-el
53 BuildRequires: jaf >= 1.0.1
54 BuildRequires: jakarta-commons-dbcp
55 BuildRequires: jakarta-commons-pool
56 BuildRequires: javamail >= 1.2
57 BuildRequires: jdbc-stdext >= 2.0
58 BuildRequires: jndi >= 1.2.1
59 BuildRequires: jsse >= 1.0.2
60 BuildRequires: jta >= 1.0.1
61 BuildRequires: junit >= 3.7
62 BuildRequires: rpmbuild(macros) >= 1.268
63 BuildRequires: tyrex >= 1.0
64 BuildRequires: xml-commons
65 Requires(post,postun): /sbin/ldconfig
66 Requires(post,preun): /sbin/chkconfig
67 Requires(postun): /usr/sbin/groupdel
68 Requires(postun): /usr/sbin/userdel
69 Requires(pre): /bin/id
70 Requires(pre): /usr/bin/getgid
71 Requires(pre): /usr/sbin/groupadd
72 Requires(pre): /usr/sbin/useradd
74 Requires: jaf >= 1.0.1
75 Requires: jakarta-commons-beanutils
76 Requires: jakarta-commons-collections
77 Requires: jakarta-commons-digester
78 Requires: jakarta-commons-fileupload
79 Requires: jakarta-commons-logging
80 Requires: jakarta-regexp
81 Requires: jakarta-servletapi >= 4
82 Requires: javamail >= 1.2
83 Requires: jaxp_parser_impl
84 Requires: jdbc-stdext >= 2.0
85 Requires: jndi >= 1.2.1
87 Requires: jsse >= 1.0.2
88 Requires: jta >= 1.0.1
89 Requires: mx4j >= 1.1.1
91 Requires: tyrex >= 1.0
96 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
98 %define _tomcatdir %{_libdir}/tomcat
99 %define _logdir %{_var}/log
100 %define _vardir %{_var}/lib/tomcat
103 Tomcat is the servlet container that is used in the official Reference
104 Implementation for the Java Servlet and JavaServer Pages technologies.
105 The Java Servlet and JavaServer Pages specifications are developed by
106 Sun under the Java Community Process.
108 Tomcat is developed in an open and participatory environment and
109 released under the Apache Software License. Tomcat is intended to be a
110 collaboration of the best-of-breed developers from around the world.
111 We invite you to participate in this open development project.
113 %description -l pl.UTF-8
114 Tomcat to kontener serwletowy używany przez oficjalną implementację
115 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
116 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z
117 Java Community Process.
120 Summary: The Tomcat Servlet/JSP Container documentation
121 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontekera Servlet/JSP
122 Group: Development/Languages/Java
125 The Tomcat Servlet/JSP Container documentation.
127 %description doc -l pl.UTF-8
128 Dokumentacja do Tomcata - kontekera Servlet/JSP.
131 %setup -q -n apache-tomcat-%{version}-src
137 # servletapi built from jakarta-servletapi5
140 # Remove pre-built jars
141 find -name '*.jar' | xargs rm -fv
145 #xerces.jar=$(build-classpath xerces)
146 #jasper-compiler-jdt.jar=$(build-classpath jdtcore)
149 > tomcat-deps/tomcat-dbcp.jar
152 # build jasper javadocs
154 CLASSPATH=$(build-classpath xml-commons-apis)
155 cat > build.properties <<EOF
156 ant.jar=$(build-classpath ant)
157 servlet-api.jar=$(build-classpath servlet-api)
158 jsp-api.jar=$(build-classpath jsp-api)
159 tools.jar=%{java_home}/lib/tools.jar
160 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
161 xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
162 commons-collections.jar=$(build-classpath commons-collections)
163 commons-logging.jar=$(build-classpath commons-logging)
164 commons-daemon.jar=$(build-classpath commons-daemon)
165 junit.jar=$(build-classpath junit)
166 commons-el.jar=$(build-classpath commons-el)
168 # building jasper needs eclipse classes
173 -Dcompile.source=1.4 \
174 -Dbuild.compiler=modern \
182 cat > build.properties <<EOF
183 commons-beanutils.jar=$(build-classpath commons-beanutils)
184 commons-launcher.jar=$(build-classpath commons-launcher)
185 commons-daemon.jar=$(build-classpath commons-daemon)
186 commons-digester.jar=$(build-classpath commons-digester)
187 commons-el.jar=$(build-classpath commons-el)
188 commons-logging-api.jar=$(build-classpath commons-logging-api)
189 commons-logging.jar=$(build-classpath commons-logging)
190 commons-modeler.jar=$(build-classpath commons-modeler)
191 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
192 xml-apis.jar=$(build-classpath xml-commons-apis)
194 jdt.jar=${jdt.lib}/org.eclipse.jdt.core_3.1.2.jar
195 log4j.jar=${log4j.lib}/dist/lib/log4j-1.2.12.jar
197 commons-httpclient.jar=$(build-classpath commons-httpclient)
198 commons-collections.jar=$(build-classpath commons-collections)
199 commons-fileupload.jar=$(build-classpath commons-fileupload)
203 jmx.jar=${jmx.lib}/mx4j.jar
205 jmx.jar=$(build-classpath jre/jmx)
207 jmx-tools.jar=${jmx.lib}/mx4j-tools.jar
209 jmx-tools.jar=$(build-classpath jre/jmx)
211 jmx-remote.jar=${jmx.lib}/mx4j-remote.jar
213 junit.jar=$(build-classpath junit)
215 rhino.jar=${rhino.home}/js.jar
217 struts.jar=$(build-classpath struts)
218 activation.jar=$(build-classpath jaf)
219 jcert.jar=$(build-classpath java/jcert)
220 jnet.jar=$(build-classpath java/jnet)
221 jsse.jar=$(build-classpath java/jsse)
222 jta.jar=$(build-classpath jta)
223 mail.jar=$(build-classpath javamail/mailapi)
224 puretls.jar=$(build-classpath puretls)
226 servlet-api.jar=$(build-classpath servlet-api)
227 # how the fck those bools work
228 # build.xml:103: servletapi/jsr154/src not found.
229 servletapi.build.notrequired=true
231 jsp-api.jar=$(build-classpath jsp-api)
232 jspapi.build.notrequired=true
234 log4j.jar=$(build-classpath logging-log4j)
235 #log4j.loc=%{_javadir}
237 # source is needed because source is copied modified and recompiled as tomcat jar
238 # see <target name="-build-tomcat-dbcp"> in build/build.xml
240 commons-collections.home=%{_prefix}/src/jakarta-commons-collections-3.1
241 commons-pool.home=%{_prefix}/src/jakarta-commons-pool-1.3
242 commons-dbcp.home=%{_prefix}/src/jakarta-commons-dbcp-1.2.1
243 tomcat-dbcp.home=$TOPDIR/tomcat-deps
244 # err, it compiles three above and then appends to the jar, so the file should exist
245 tomcat-dbcp.jar=$TOPDIR/tomcat-deps/tomcat-dbcp.jar
248 ant.jar=%{_javadir}/ant.jar
249 ant-launcher.jar=%{_javadir}/ant-launcher.jar
250 jtc.home=$TOPDIR/jakarta-tomcat-connectors/
251 jasper.home=$TOPDIR/jakarta-tomcat-jasper/jasper2
252 commons-dbcp.jar=$(build-classpath commons-dbcp)
253 commons-pool.jar=$(build-classpath commons-pool)
254 jmxri.jar=$(build-classpath jre/jmx)
255 regexp.jar=$(build-classpath regexp)
256 jsp-api.jar=$TOPDIR/jakarta-servletapi-5/jsr152/dist/lib/jsp-api.jar
257 servlet.doc=$TOPDIR/jakarta-servletapi-5/jsr154/dist/docs/api
258 struts.lib=%{_datadir}/struts
259 servletapi.build.notrequired=true
260 tyrex.jar=$(build-classpath tyrex)
261 jaas.jar=$(build-classpath jre/jaas)
262 jndi.jar=$(build-classpath jre/jndi)
263 jdbc20ext.jar=$(build-classpath jdbc-stdext)
264 jspapi.build.notrequired=true
265 taglibs-core.jar=$(build-classpath taglibs-core)
266 taglibs-standard.jar=$(build-classpath taglibs-standard)
275 # build the connectors
280 # this is just plain and simply evil but something changed in a major way between 5.0.16 and 5.0.18
281 oldclasspath=$CLASSPATH
282 export CLASSPATH=$TOPDIR/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar:\
283 $TOPDIR/jakarta-tomcat-5/build/server/lib/catalina.jar
287 cat > build.properties <<EOF
289 activation.jar=$(build-classpath jaf)
290 ant.jar=%{_javadir}/ant.jar
291 junit.jar=$(build-classpath junit)
292 commons-beanutils.jar=$(build-classpath commons-beanutils)
293 commons-collections.jar=$(build-classpath commons-collections)
294 commons-digester.jar=$(build-classpath commons-digester)
295 commons-fileupload.jar=$(build-classpath commons-fileupload)
296 commons-logging.jar=$(build-classpath commons-logging)
297 commons-logging-api.jar=$(build-classpath commons-logging-api)
298 commons-modeler.jar=$(build-classpath commons-modeler)
299 commons-pool.jar=$(build-classpath commons-pool)
300 regexp.jar=$(build-classpath regexp)
301 jmx.jar=$(build-classpath mx4j/mx4j)
302 puretls=$(build-classpath puretls)
303 activation.jar=$(build-classpath jaf)
304 mail.jar=$(build-classpath javamail/mailapi)
305 jta.jar=$(build-classpath jta)
306 tyrex.jar=$(build-classpath tyrex)
307 jaas.jar=$(build-classpath jaas)
308 jndi.jar=$(build-classpath jndi)
309 jdbc20ext.jar=$(build-classpath java/jdbc-stdext)
310 puretls.jar=$(build-classpath puretls)
311 jcert.jar=$(build-classpath jsse/jcert)
312 jnet.jar=$(build-classpath jsse/jnet)
313 jsse.jar=$(build-classpath jsse/jsse)
318 commons-beanutils.jar=${commons-beanutils.lib}/commons-beanutils.jar
319 commons-collections.jar=${commons-collections.lib}/commons-collections.jar
320 commons-digester.jar=${commons-digester.lib}/commons-digester.jar
321 commons-fileupload.jar=${commons-fileupload.lib}/commons-fileupload-1.0-beta-1.jar
322 commons-logging-api.jar=${commons-logging.lib}/commons-logging-api.jar
323 commons-logging.jar=${commons-logging.lib}/commons-logging.jar
324 jndi.jar=${jndi.lib}/jndi.jar
325 ldap.jar=${jndi.lib}/ldap.jar
326 jaas.jar=${jndi.lib}/jaas.jar
327 regexp.jar=${regexp.lib}/jakarta-regexp-1.4.jar
328 servlet.jar=${servlet.lib}/servlet.jar
329 #xerces.jar=${xerces.lib}/xerces.jar
330 xercesImpl.jar=${xerces.lib}/xercesImpl.jar
331 xml-apis.jar=${xerces.lib}/xml-apis.jar
332 activation.jar=${activation.lib}/activation.jar
333 commons-daemon.jar=${commons-daemon.lib}/commons-daemon.jar
334 commons-dbcp.jar=${commons-dbcp.lib}/commons-dbcp.jar
335 commons-modeler.jar=${commons-modeler.lib}/commons-modeler.jar
336 commons-pool.jar=${commons-pool.lib}/commons-pool.jar
337 jdbc20ext.jar=${jdbc20ext.lib}/jdbc2_0-stdext.jar
338 jmx.jar=${jmx.lib}/mx4j-jmx.jar
339 jcert.jar=${jsse.lib}/jcert.jar
340 jnet.jar=${jsse.lib}/jnet.jar
341 jsse.jar=${jsse.lib}/jsse.jar
342 jta.jar=${jta.lib}/jta.jar
343 junit.jar=${junit.lib}/junit.jar
344 mail.jar=${mail.lib}/mail.jar
345 puretls.jar=${puretls.lib}/puretls.jar
346 struts.jar=${struts.lib}/struts.jar
347 tyrex.jar=${tyrex.lib}/tyrex-1.0.jar
348 tomcat5.jar=${tomcat5.home}/server/lib/catalina.jar
349 servlet-api.jar=${tomcat5.home}/common/lib/servlet-api.jar
350 tomcat41.jar=${tomcat41.home}/server/lib/catalina.jar
351 servlet-api.jar=${tomcat41.home}/common/lib/servlet.jar
352 tomcat33.jar=${tomcat33.home}/lib/common/tomcat_core.jar
359 -Dbuild.compiler=modern \
360 -Djava.home=%{java_home}
363 export CLASSPATH=$oldclasspath
365 # build the webapps and make the tree ready to install
366 cd ../jakarta-tomcat-5
367 %ant -Dbuild.compiler=modern -Djava.home=%{java_home} dist
371 rm -rf $RPM_BUILD_ROOT
373 DEST=$RPM_BUILD_ROOT%{_tomcatdir}
375 install -d $DEST/bin \
376 $DEST/common/{lib,classes,endorsed} \
377 $DEST/server/{lib,classes} \
379 $RPM_BUILD_ROOT%{_sysconfdir}/tomcat \
380 $RPM_BUILD_ROOT%{_logdir}/tomcat \
381 $RPM_BUILD_ROOT%{_vardir}/work \
382 $RPM_BUILD_ROOT/etc/rc.d/init.d
384 install build/bin/*.sh $DEST/bin
385 install build/bin/bootstrap*.jar $DEST/bin
386 install build/bin/tomcat*.jar $DEST/bin
387 install build/common/lib/naming-*.jar $DEST/common/lib
388 install build/common/lib/jasper-*.jar $DEST/common/lib
389 install build/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
390 install build/server/lib/catalina*.jar $DEST/server/lib
391 install build/server/lib/servlets*.jar $DEST/server/lib
392 install build/server/lib/tomcat*.jar $DEST/server/lib
393 install build/server/lib/servlets-cgi.renametojar $DEST/server/lib/servlets-cgi.jar
394 install build/server/lib/servlets-ssi.renametojar $DEST/server/lib/servlets-ssi.jar
395 cp -rf build/server/webapps $DEST/server
396 cp -rf build/webapps $DEST
397 cp -rf build/shared $DEST
398 cp -rf build/temp $DEST
400 ln -sf %{_logdir}/tomcat $DEST/logs
401 ln -sf %{_vardir}/work $DEST/work
402 ln -sf %{_sysconfdir}/tomcat $DEST/conf
404 # symlinks instead of copies
405 ln -sf %{_javadir}/commons-daemon.jar $DEST/bin
407 ln -sf %{_javadir}/activation.jar $DEST/common/lib
408 ln -sf %{_javadir}/ant.jar $DEST/common/lib
409 ln -sf %{_javadir}/commons-collections.jar $DEST/common/lib
410 ln -sf %{_javadir}/commons-dbcp.jar $DEST/common/lib
411 ln -sf %{_javadir}/commons-logging-api.jar $DEST/common/lib
412 ln -sf %{_javadir}/commons-pool.jar $DEST/common/lib
413 ln -sf %{_javadir}/servlet.jar $DEST/common/lib
414 ln -sf %{_javadir}/servlet.jar $DEST/common/lib/servletapi4.jar
415 ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc2_0-stdext.jar
416 ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc-stdext-2.0.jar
417 ln -sf %{_javadir}/jmxri.jar $DEST/common/lib
418 ln -sf %{_javadir}/jndi.jar $DEST/common/lib
419 ln -sf %{_javadir}/jta.jar $DEST/common/lib
420 ln -sf %{_javadir}/mail.jar $DEST/common/lib
421 ln -sf %{_javadir}/jsse.jar $DEST/common/lib
422 ln -sf %{_javadir}/tyrex.jar $DEST/common/lib
423 ln -sf %{_javadir}/junit.jar $DEST/common/lib
425 ln -sf %{_javadir}/mailapi.jar $DEST/common/lib
426 ln -sf %{_javadir}/pop3.jar $DEST/common/lib
427 ln -sf %{_javadir}/pop3.jar $DEST/common/lib/pop.jar
428 ln -sf %{_javadir}/smtp.jar $DEST/common/lib
429 ln -sf %{_javadir}/imap.jar $DEST/common/lib
431 ln -sf %{_javadir}/commons-beanutils.jar $DEST/server/lib
432 ln -sf %{_javadir}/commons-digester.jar $DEST/server/lib
433 ln -sf %{_javadir}/commons-fileupload.jar $DEST/server/lib
434 ln -sf %{_javadir}/commons-logging.jar $DEST/server/lib
435 ln -sf %{_javadir}/commons-modeler.jar $DEST/server/lib
436 ln -sf %{_javadir}/jaas.jar $DEST/server/lib/jaas.jar
437 ln -sf %{_javadir}/mx4j-jmx.jar $DEST/server/lib
438 ln -sf %{_javadir}/regexp.jar $DEST/server/lib
439 ln -sf %{_javadir}/regexp.jar $DEST/server/lib/jakarta-regexp-1.2.jar
440 ln -sf %{_javadir}/regexp.jar $DEST/server/lib/regexp-1.2.jar
442 ln -sf %{_javadir}/jaxp_parser_impl.jar $DEST/common/endorsed
443 ln -sf %{_javadir}/xml-commons-apis.jar $DEST/common/endorsed
445 ln -sf %{_javadir}/struts.jar $DEST/server/webapps/admin/WEB-INF/lib
447 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
450 rm -rf $RPM_BUILD_ROOT
453 %groupadd -g 51 -r -f http
454 %useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
457 /sbin/chkconfig --add tomcat
458 %service tomcat restart
461 if [ "$1" = "0" ]; then
463 /sbin/chkconfig --del tomcat
467 if [ "$1" = "0" ]; then
473 %defattr(644,root,root,755)
476 %dir %{_tomcatdir}/bin
477 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
478 %{_tomcatdir}/bin/*.jar
479 %dir %{_tomcatdir}/common
480 %dir %{_tomcatdir}/common/classes
481 %dir %{_tomcatdir}/common/endorsed
482 %{_tomcatdir}/common/endorsed/*.jar
483 %{_tomcatdir}/common/lib
486 %dir %{_tomcatdir}/server
487 %dir %{_tomcatdir}/server/classes
488 %{_tomcatdir}/server/lib
489 %{_tomcatdir}/server/webapps
490 %{_tomcatdir}/webapps
494 # tomcat wants to regenerate tomcat-users.xml
495 %attr(775,root,http) %dir %{_sysconfdir}/tomcat
496 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tomcat/*
497 %attr(754,root,root) /etc/rc.d/init.d/tomcat
499 %attr(1730,root,http) %dir %{_vardir}/work
500 %attr(1730,root,http) %dir %{_logdir}/tomcat
503 %defattr(644,root,root,755)