2 # - packages for *.renametojar files (-cgi and -ssi in server/lib)
4 %bcond_without javadoc # skip building javadocs
5 %bcond_with jta # put jta jar into tomcat lib dir.
6 %bcond_without java_sun # build with gcj (does not work)
8 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
9 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
14 Group: Networking/Daemons/Java
15 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
16 # Source0-md5: eb3f196013550b9b1684e4ff18593a8e
17 Source1: apache-%{name}.init
18 Source2: apache-%{name}.sysconfig
19 Source10: apache-%{name}-context-ROOT.xml
20 Source11: apache-%{name}-context-balancer.xml
21 Source12: apache-%{name}-context-jsp-examples.xml
22 Source13: apache-%{name}-context-tomcat-docs.xml
23 Source14: apache-%{name}-context-webdav.xml
24 Patch0: apache-%{name}-skip-servletapi.patch
25 Patch1: apache-%{name}-nsis.patch
26 Patch2: apache-%{name}-native.patch
27 Patch3: apache-%{name}-skip-jdt.patch
28 Patch4: apache-%{name}-no-connectors.patch
29 Patch5: apache-%{name}-dbcp.patch
30 # this patch is needed for struts >= 1.3
31 Patch6: apache-%{name}-struts.patch
32 # WTF? Why is it needed? Is it related to struts version?
33 Patch7: apache-%{name}-admin-struts.patch
34 URL: http://tomcat.apache.org/
36 BuildRequires: java-sun >= 1.5
37 BuildRequires: java-sun-jre >= 1.5
39 # BuildRequires: jsse >= 0:1.0.3
40 BuildRequires: java-gcj-compat-devel
42 BuildRequires: ant >= 1.5.3
43 BuildRequires: ant-trax
44 BuildRequires: eclipse-jdt
46 BuildRequires: jakarta-regexp >= 0:1.3
47 BuildRequires: java-commons-beanutils >= 1.7
48 BuildRequires: java-commons-chain
49 BuildRequires: java-commons-collections >= 0:3.1
50 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
51 BuildRequires: java-commons-daemon >= 1.0
52 BuildRequires: java-commons-dbcp >= 0:1.2.1
53 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
54 BuildRequires: java-commons-digester >= 0:1.7
55 BuildRequires: java-commons-el >= 0:1.0
56 BuildRequires: java-commons-fileupload >= 0:1.0
57 BuildRequires: java-commons-httpclient
58 BuildRequires: java-commons-io >= 1.4
59 BuildRequires: java-commons-launcher >= 0:0.9
60 BuildRequires: java-commons-logging >= 0:1.0.4
61 BuildRequires: java-commons-modeler >= 2.0
62 BuildRequires: java-commons-pool >= 0:1.2
63 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
64 %{?with_jta:BuildRequires: java-jta >= 0:1.0.1}
65 BuildRequires: java-log4j
66 BuildRequires: java-mail >= 0:1.3.1
67 BuildRequires: java-puretls
68 BuildRequires: java-servletapi5 = %{version}
69 #BuildRequires: java-struts >= 0:1.2.7
70 BuildRequires: java-struts >= 1.0.2
71 BuildRequires: java-xerces >= 0:2.7.1
72 BuildRequires: java-xml-commons
73 #BuildRequires: java-xml-commons >= 1.3
74 BuildRequires: jaxp_parser_impl >= 0:2.7.1
75 BuildRequires: jdbc-stdext >= 0:2.0
77 BuildRequires: jndi >= 0:1.2.1
78 BuildRequires: jpackage-utils
79 BuildRequires: junit >= 0:3.8.1
80 BuildRequires: rpmbuild(macros) >= 1.300
81 Requires(post,postun): /sbin/ldconfig
82 Requires(post,preun): /sbin/chkconfig
83 Requires(postun): /usr/sbin/groupdel
84 Requires(postun): /usr/sbin/userdel
85 Requires(pre): /bin/id
86 Requires(pre): /usr/bin/getgid
87 Requires(pre): /usr/sbin/groupadd
88 Requires(pre): /usr/sbin/useradd
89 Requires: %{name}-jasper = %{version}-%{release}
91 #Requires: jaf >= 1.0.1
92 Requires: java-commons-beanutils
93 Requires: java-commons-collections
94 #Requires: java-commons-dbcp-tomcat5
95 Requires: java-commons-digester
96 Requires: java-commons-el
97 #Requires: java-commons-fileupload
98 Requires: java-commons-logging
99 Requires: java-commons-modeler
100 Requires: java-regexp
101 Requires: java-servletapi5 = %{version}
102 Requires: java-xml-commons
103 Requires: javamail >= 1.2
104 Requires: jaxp_parser_impl
105 Requires: jdbc-stdext >= 2.0
106 Requires: jndi >= 1.2.1
108 Requires: jsse >= 1.0.2
109 %{?with_jta:Requires: jta >= 1.0.1}
111 Provides: group(tomcat)
112 Provides: java-servlet-container
113 Provides: user(tomcat)
114 Obsoletes: apache-tomcat
115 Obsoletes: jakarta-tomcat
117 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
119 %define _tomcatdir %{_datadir}/tomcat
120 %define _logdir %{_var}/log
121 %define _vardir %{_var}/lib/tomcat
122 %define _sysconfdir /etc/tomcat
124 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
127 Tomcat is the servlet container that is used in the official Reference
128 Implementation for the Java Servlet and JavaServer Pages technologies.
129 The Java Servlet and JavaServer Pages specifications are developed by
130 Sun under the Java Community Process.
132 Tomcat is developed in an open and participatory environment and
133 released under the Apache Software License. Tomcat is intended to be a
134 collaboration of the best-of-breed developers from around the world.
135 We invite you to participate in this open development project.
137 %description -l pl.UTF-8
138 Tomcat to kontener serwletowy używany przez oficjalną implementację
139 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
140 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
144 Summary: The Apache Tomcat Servlet/JSP Container documentation
145 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
147 Obsoletes: apache-tomcat-doc
148 Obsoletes: jakarta-tomcat-doc
151 The Tomcat Servlet/JSP Container documentation.
153 %description doc -l pl.UTF-8
154 Dokumentacja do Tomcata - kontenera Servlet/JSP.
157 Summary: Apache Tomcat`s Administration Web Application
158 Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
159 Group: Networking/Daemons/Java/Servlets
160 Requires: %{name} = %{version}-%{release}
161 Requires: java-commons-chain
164 Administration Web Application for Apache Tomcat.
166 %description admin -l pl.UTF-8
167 Panel Administracyjny dla Apache Tomcat.
170 Summary: JSP compiler
171 Summary(pl.UTF-8): Kompilator JSP
172 Group: Libraries/Java
173 Requires: jpackage-utils
174 Obsoletes: apache-tomcat-jasper
177 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
180 %description jasper -l pl.UTF-8
181 Jasper jest kompilatorem Java ServerPages używanym przez kontener
182 servletów Apache Tomcat.
185 %setup -q -n apache-%{name}-%{version}-src
194 # we don't need dos scripts
195 rm -f container/catalina/src/bin/*.bat
197 # causes file(1) rpm to abort, and not really neccessary file
198 rm container/webapps/admin/images/Thumbs.db
199 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
200 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
202 # servletapi built from jakarta-servletapi5.spec
205 # Remove pre-built jars
206 find -name '*.jar' | xargs rm -fv
212 cat > build.properties <<EOF
213 commons-beanutils.jar=$(find-jar commons-beanutils-core)
214 commons-launcher.jar=$(find-jar commons-launcher)
215 commons-daemon.jar=$(find-jar commons-daemon)
216 commons-digester.jar=$(find-jar commons-digester)
217 commons-el.jar=$(find-jar commons-el)
218 commons-logging-api.jar=$(find-jar commons-logging-api)
219 commons-logging.jar=$(find-jar commons-logging)
220 commons-modeler.jar=$(find-jar commons-modeler)
221 xercesImpl.jar=$(find-jar jaxp_parser_impl)
222 xml-apis.jar=$(find-jar xml-commons-apis)
223 jdt.jar=$(find-jar org.eclipse.jdt.core)
224 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
225 commons-httpclient.jar=$(find-jar commons-httpclient)
226 commons-collections.jar=$(find-jar commons-collections)
227 commons-fileupload.jar=$(find-jar commons-fileupload)
228 commons-io.jar=$(find-jar commons-io)
229 jmx.jar=$(find-jar jmx)
230 jmx-tools.jar=$(find-jar jmx)
231 junit.jar=$(find-jar junit)
232 struts.jar=$(find-jar struts-core)
233 struts-core.jar=$(find-jar struts-core)
234 struts-taglib.jar=$(find-jar struts-taglib)
235 jcert.jar=$(find-jar jcert)
236 jnet.jar=$(find-jar jnet)
237 jsse.jar=$(find-jar jsse)
238 %{?with_jta:jta.jar=$(find-jar jta)}
239 puretls.jar=$(find-jar puretls)
240 servlet-api.jar=$(find-jar servlet-api)
241 servletapi.build.notrequired=true
242 jsp-api.jar=$(find-jar jsp-api)
243 jspapi.build.notrequired=true
244 log4j.jar=$(find-jar log4j)
245 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
246 struts.lib=%{_javadir}-struts
249 if grep '=$' build.properties; then
250 : Some .jar could not be found
258 rm -rf $RPM_BUILD_ROOT
260 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
261 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
263 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
264 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
266 install -d $TOMCATDIR/bin \
267 $TOMCATDIR/common/{lib,classes,endorsed} \
268 $TOMCATDIR/server/{lib,classes} \
270 $RPM_BUILD_ROOT%{_logdir}/tomcat \
271 $RPM_BUILD_ROOT%{_vardir}/webapps \
272 $RPM_BUILD_ROOT%{_vardir}/work \
273 $RPM_BUILD_ROOT%{_vardir}/conf \
274 $RPM_BUILD_ROOT/etc/sysconfig \
275 $RPM_BUILD_ROOT/etc/rc.d/init.d
277 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
278 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
280 cp -a conf/* $CATALINADIR/conf
281 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
282 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
283 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
284 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
285 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
286 cp -HR bin common server $TOMCATDIR
288 cp -a server/webapps $TOMCATDIR/server
289 cp -a webapps $TOMCATDIR
290 cp -a shared $TOMCATDIR
291 cp -a temp $CATALINADIR
293 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
294 ln -sf %{_vardir}/work $TOMCATDIR/work
295 ln -sf %{_vardir}/conf $TOMCATDIR/conf
296 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
298 # symlinks instead of copies
299 jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
302 ln -sf $jar $TOMCATDIR/common/lib
305 jars="jaxp_parser_impl xml-commons-apis"
308 ln -sf $jar $TOMCATDIR/common/endorsed
311 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
314 ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
318 # do not make these symlinks as ant didn't do
319 jars="commons-daemon"
322 ln -sf $jar $TOMCATDIR/bin
325 jars="activation ant commons-dbcp commons-logging-api commons-pool servlet jdbc-stdext
326 jmxri jndi %{?with_jta:jta} mail jsse junit mailapi pop3"
329 ln -sf $jar $TOMCATDIR/common/lib
332 ln -sf servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
333 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
334 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
335 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
337 jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
340 ln -sf $jar $TOMCATDIR/server/lib
342 ln -sf regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
343 ln -sf regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
346 install -d $RPM_BUILD_ROOT%{_javadir}
347 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
348 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
349 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
350 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
353 rm -rf $RPM_BUILD_ROOT
356 %groupadd -g 234 -r -f tomcat
357 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
360 /sbin/chkconfig --add tomcat
361 %service tomcat restart
364 if [ "$1" = "0" ]; then
366 /sbin/chkconfig --del tomcat
370 if [ "$1" = "0" ]; then
376 %defattr(644,root,root,755)
377 %doc build/{RELEASE-NOTES,RUNNING.txt}
378 %attr(754,root,root) /etc/rc.d/init.d/tomcat
379 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
382 %dir %{_tomcatdir}/conf
383 %dir %{_tomcatdir}/bin
384 %{_tomcatdir}/bin/catalina-tasks.xml
385 %{_tomcatdir}/bin/jkstatus-tasks.xml
386 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
387 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
388 %{_tomcatdir}/bin/*.jar
389 %dir %{_tomcatdir}/common
390 %dir %{_tomcatdir}/common/classes
391 %dir %{_tomcatdir}/common/endorsed
392 %dir %{_tomcatdir}/common/i18n
393 %{_tomcatdir}/common/endorsed/*.jar
394 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
395 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
396 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
397 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
398 %{_tomcatdir}/common/lib
399 %dir %{_tomcatdir}/server
400 %dir %{_tomcatdir}/server/classes
401 %{_tomcatdir}/server/lib
402 %dir %{_tomcatdir}/server/webapps
404 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
405 %{_tomcatdir}/server/webapps/host-manager
407 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
408 %{_tomcatdir}/server/webapps/manager
410 %dir %{_tomcatdir}/webapps
412 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
413 %{_tomcatdir}/webapps/ROOT
415 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
416 %{_tomcatdir}/webapps/balancer
418 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
419 %{_tomcatdir}/webapps/webdav
425 %dir %{_vardir}/conf/Catalina
426 %dir %{_vardir}/conf/Catalina/localhost
427 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
428 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
430 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
431 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
432 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
433 %dir %attr(1730,root,tomcat) %{_vardir}/work
434 %dir %attr(775,root,tomcat) %{_vardir}/webapps
435 %dir %attr(775,root,tomcat) %{_vardir}/temp
436 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
440 %defattr(644,root,root,755)
441 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
442 %{_tomcatdir}/webapps/tomcat-docs
445 %defattr(644,root,root,755)
446 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
447 %{_tomcatdir}/server/webapps/admin
450 %defattr(644,root,root,755)
451 %{_javadir}/jasper-compiler-jdt.jar
452 %{_javadir}/jasper-compiler.jar
453 %{_javadir}/jasper-runtime.jar