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-commons-pool-tomcat5
101 Requires: java-jdbc-mysql
102 Requires: java-regexp
103 Requires: java-servletapi5 = %{version}
104 Requires: java-xml-commons
105 Requires: javamail >= 1.2
106 Requires: jaxp_parser_impl
107 Requires: jdbc-stdext >= 2.0
108 Requires: jndi >= 1.2.1
110 Requires: jsse >= 1.0.2
111 %{?with_jta:Requires: jta >= 1.0.1}
113 Provides: group(servlet)
114 Provides: group(tomcat)
115 Provides: java-servlet-container
116 Provides: user(tomcat)
117 Obsoletes: apache-tomcat
118 Obsoletes: jakarta-tomcat
120 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
122 %define _tomcatdir %{_datadir}/tomcat
123 %define _logdir %{_var}/log
124 %define _vardir %{_var}/lib/tomcat
125 %define _sysconfdir /etc/tomcat
127 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
130 Tomcat is the servlet container that is used in the official Reference
131 Implementation for the Java Servlet and JavaServer Pages technologies.
132 The Java Servlet and JavaServer Pages specifications are developed by
133 Sun under the Java Community Process.
135 Tomcat is developed in an open and participatory environment and
136 released under the Apache Software License. Tomcat is intended to be a
137 collaboration of the best-of-breed developers from around the world.
138 We invite you to participate in this open development project.
140 %description -l pl.UTF-8
141 Tomcat to kontener serwletowy używany przez oficjalną implementację
142 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
143 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
147 Summary: The Apache Tomcat Servlet/JSP Container documentation
148 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
150 Obsoletes: apache-tomcat-doc
151 Obsoletes: jakarta-tomcat-doc
154 The Tomcat Servlet/JSP Container documentation.
156 %description doc -l pl.UTF-8
157 Dokumentacja do Tomcata - kontenera Servlet/JSP.
160 Summary: Apache Tomcat`s Administration Web Application
161 Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
162 Group: Networking/Daemons/Java/Servlets
163 Requires: %{name} = %{version}-%{release}
164 Requires: java-commons-chain
167 Administration Web Application for Apache Tomcat.
169 %description admin -l pl.UTF-8
170 Panel Administracyjny dla Apache Tomcat.
173 Summary: JSP compiler
174 Summary(pl.UTF-8): Kompilator JSP
175 Group: Libraries/Java
176 Requires: jpackage-utils
177 Obsoletes: apache-tomcat-jasper
180 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
183 %description jasper -l pl.UTF-8
184 Jasper jest kompilatorem Java ServerPages używanym przez kontener
185 servletów Apache Tomcat.
188 %setup -q -n apache-%{name}-%{version}-src
198 # we don't need dos scripts
199 rm -f container/catalina/src/bin/*.bat
201 rm -f container/catalina/src/bin/{startup,shutdown}.sh
203 # causes file(1) rpm to abort, and not really neccessary file
204 rm container/webapps/admin/images/Thumbs.db
205 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
206 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
208 # servletapi built from jakarta-servletapi5.spec
211 # Remove pre-built jars
212 find -name '*.jar' | xargs rm -fv
218 cat > build.properties <<EOF
219 commons-beanutils.jar=$(find-jar commons-beanutils-core)
220 commons-launcher.jar=$(find-jar commons-launcher)
221 commons-daemon.jar=$(find-jar commons-daemon)
222 commons-digester.jar=$(find-jar commons-digester)
223 commons-el.jar=$(find-jar commons-el)
224 commons-logging-api.jar=$(find-jar commons-logging-api)
225 commons-logging.jar=$(find-jar commons-logging)
226 commons-modeler.jar=$(find-jar commons-modeler)
227 xercesImpl.jar=$(find-jar jaxp_parser_impl)
228 xml-apis.jar=$(find-jar xml-commons-apis)
229 jdt.jar=$(find-jar org.eclipse.jdt.core)
230 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
231 commons-httpclient.jar=$(find-jar commons-httpclient)
232 commons-collections.jar=$(find-jar commons-collections)
233 commons-fileupload.jar=$(find-jar commons-fileupload)
234 commons-io.jar=$(find-jar commons-io)
235 jmx.jar=$(find-jar jmx)
236 jmx-tools.jar=$(find-jar jmx)
237 junit.jar=$(find-jar junit)
238 struts.jar=$(find-jar struts-core)
239 struts-core.jar=$(find-jar struts-core)
240 struts-taglib.jar=$(find-jar struts-taglib)
241 jcert.jar=$(find-jar jcert)
242 jnet.jar=$(find-jar jnet)
243 jsse.jar=$(find-jar jsse)
244 %{?with_jta:jta.jar=$(find-jar jta)}
245 puretls.jar=$(find-jar puretls)
246 servlet-api.jar=$(find-jar servlet-api)
247 servletapi.build.notrequired=true
248 jsp-api.jar=$(find-jar jsp-api)
249 jspapi.build.notrequired=true
250 log4j.jar=$(find-jar log4j)
251 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
252 struts.lib=%{_javadir}-struts
255 if grep '=$' build.properties; then
256 : Some .jar could not be found
264 rm -rf $RPM_BUILD_ROOT
266 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
267 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
269 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
270 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
272 install -d $TOMCATDIR/bin \
273 $TOMCATDIR/common/{lib,classes,endorsed} \
274 $TOMCATDIR/server/{lib,classes} \
276 $RPM_BUILD_ROOT%{_logdir}/tomcat \
277 $RPM_BUILD_ROOT%{_vardir}/webapps \
278 $RPM_BUILD_ROOT%{_vardir}/work \
279 $RPM_BUILD_ROOT%{_vardir}/conf \
280 $RPM_BUILD_ROOT/etc/sysconfig \
281 $RPM_BUILD_ROOT/etc/rc.d/init.d
283 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
284 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
286 cp -a conf/* $CATALINADIR/conf
287 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
288 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
289 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
290 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
291 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
292 cp -HR bin common server $TOMCATDIR
294 cp -a server/webapps $TOMCATDIR/server
295 cp -a webapps $TOMCATDIR
296 cp -a shared $TOMCATDIR
297 cp -a temp $CATALINADIR
299 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
300 ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
301 ln -sf %{_vardir}/work $TOMCATDIR/work
302 ln -sf %{_vardir}/conf $TOMCATDIR/conf
303 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
305 # symlinks instead of copies
306 jars="commons-daemon commons-logging-api"
309 ln -sf $jar $TOMCATDIR/bin
312 jars="commons-el commons-dbcp-tomcat5 commons-pool-tomcat5 servlet-api jsp-api commons-modeler jdbc-mysql"
315 ln -sf $jar $TOMCATDIR/common/lib
318 jars="jaxp_parser_impl xml-commons-apis"
321 ln -sf $jar $TOMCATDIR/common/endorsed
324 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
327 ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
330 jars="commons-modeler"
333 ln -sf $jar $TOMCATDIR/server/lib
336 install -d $RPM_BUILD_ROOT%{_javadir}
337 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
338 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
339 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
340 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
343 rm -rf $RPM_BUILD_ROOT
346 %groupadd -g 234 -r -f tomcat
347 %groupadd -g 237 -r -f servlet
348 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
351 /sbin/chkconfig --add tomcat
352 %service tomcat restart
355 if [ "$1" = "0" ]; then
357 /sbin/chkconfig --del tomcat
361 if [ "$1" = "0" ]; then
368 %defattr(644,root,root,755)
369 %doc build/{RELEASE-NOTES,RUNNING.txt}
370 %attr(754,root,root) /etc/rc.d/init.d/tomcat
371 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
374 %dir %{_tomcatdir}/conf
375 %dir %{_tomcatdir}/bin
376 %{_tomcatdir}/bin/catalina-tasks.xml
377 %{_tomcatdir}/bin/jkstatus-tasks.xml
378 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
379 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
380 %{_tomcatdir}/bin/*.jar
381 %dir %{_tomcatdir}/common
382 %dir %{_tomcatdir}/common/classes
383 %dir %{_tomcatdir}/common/endorsed
384 %dir %{_tomcatdir}/common/i18n
385 %{_tomcatdir}/common/endorsed/*.jar
386 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
387 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
388 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
389 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
390 %{_tomcatdir}/common/lib
391 %dir %{_tomcatdir}/server
392 %dir %{_tomcatdir}/server/classes
393 %{_tomcatdir}/server/lib
394 %dir %{_tomcatdir}/server/webapps
396 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
397 %{_tomcatdir}/server/webapps/host-manager
399 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
400 %{_tomcatdir}/server/webapps/manager
402 %dir %{_tomcatdir}/webapps
404 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
405 %{_tomcatdir}/webapps/ROOT
407 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
408 %{_tomcatdir}/webapps/balancer
410 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
411 %{_tomcatdir}/webapps/webdav
417 # these directory has to be writeable because /admin need to modify config
418 # files and create temporary files
419 %dir %attr(775,root,tomcat) %{_vardir}/conf
420 %dir %attr(775,root,tomcat) %{_vardir}/conf/Catalina
421 %dir %{_vardir}/conf/Catalina/localhost
422 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
423 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
424 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
425 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
426 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
427 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
428 %dir %attr(1730,root,tomcat) %{_vardir}/work
429 %dir %attr(775,root,tomcat) %{_vardir}/webapps
430 %dir %attr(775,root,tomcat) %{_vardir}/temp
431 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
435 %defattr(644,root,root,755)
436 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
437 %{_tomcatdir}/webapps/tomcat-docs
440 %defattr(644,root,root,755)
441 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
442 %{_tomcatdir}/server/webapps/admin
445 %defattr(644,root,root,755)
446 %{_javadir}/jasper-compiler-jdt.jar
447 %{_javadir}/jasper-compiler.jar
448 %{_javadir}/jasper-runtime.jar