2 # - packages for *.renametojar files (-cgi and -ssi in server/lib)
5 %bcond_without javadoc # skip building javadocs
6 %bcond_with jta # put jta jar into tomcat lib dir.
7 %bcond_without java_sun # build with gcj (does not work)
9 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
10 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
15 Group: Networking/Daemons/Java
16 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
17 # Source0-md5: eb3f196013550b9b1684e4ff18593a8e
18 Source1: apache-%{name}.init
19 Source2: apache-%{name}.sysconfig
20 Source10: apache-%{name}-context-ROOT.xml
21 Source11: apache-%{name}-context-balancer.xml
22 Source12: apache-%{name}-context-jsp-examples.xml
23 Source13: apache-%{name}-context-tomcat-docs.xml
24 Source14: apache-%{name}-context-webdav.xml
25 Patch0: apache-%{name}-skip-servletapi.patch
26 Patch1: apache-%{name}-nsis.patch
27 Patch2: apache-%{name}-native.patch
28 Patch3: apache-%{name}-skip-jdt.patch
29 Patch4: apache-%{name}-no-connectors.patch
30 Patch5: apache-%{name}-dbcp.patch
31 # this patch is needed for struts >= 1.3
32 Patch6: apache-%{name}-struts.patch
33 # WTF? Why is it needed? Is it related to struts version?
34 Patch7: apache-%{name}-admin-struts.patch
35 URL: http://tomcat.apache.org/
37 BuildRequires: java-sun >= 1.5
38 BuildRequires: java-sun-jre >= 1.5
40 # BuildRequires: jsse >= 0:1.0.3
41 BuildRequires: java-gcj-compat-devel
43 BuildRequires: ant >= 1.5.3
44 BuildRequires: ant-trax
45 BuildRequires: eclipse-jdt
47 BuildRequires: jakarta-regexp >= 0:1.3
48 BuildRequires: java-commons-beanutils >= 1.7
49 BuildRequires: java-commons-chain
50 BuildRequires: java-commons-collections >= 0:3.1
51 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
52 BuildRequires: java-commons-daemon >= 1.0
53 BuildRequires: java-commons-dbcp >= 0:1.2.1
54 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
55 BuildRequires: java-commons-digester >= 0:1.7
56 BuildRequires: java-commons-el >= 0:1.0
57 BuildRequires: java-commons-fileupload >= 0:1.0
58 BuildRequires: java-commons-httpclient
59 BuildRequires: java-commons-io >= 1.4
60 BuildRequires: java-commons-launcher >= 0:0.9
61 BuildRequires: java-commons-logging >= 0:1.0.4
62 BuildRequires: java-commons-modeler >= 2.0
63 BuildRequires: java-commons-pool >= 0:1.2
64 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
65 %{?with_jta:BuildRequires: java-jta >= 0:1.0.1}
66 BuildRequires: java-log4j
67 BuildRequires: java-mail >= 0:1.3.1
68 BuildRequires: java-puretls
69 BuildRequires: java-servletapi5 = %{version}
70 #BuildRequires: java-struts >= 0:1.2.7
71 BuildRequires: java-struts >= 1.0.2
72 BuildRequires: java-xerces >= 0:2.7.1
73 BuildRequires: java-xml-commons
74 #BuildRequires: java-xml-commons >= 1.3
75 BuildRequires: jaxp_parser_impl >= 0:2.7.1
76 BuildRequires: jdbc-stdext >= 0:2.0
78 BuildRequires: jndi >= 0:1.2.1
79 BuildRequires: jpackage-utils
80 BuildRequires: junit >= 0:3.8.1
81 BuildRequires: rpmbuild(macros) >= 1.300
82 Requires(post,postun): /sbin/ldconfig
83 Requires(post,preun): /sbin/chkconfig
84 Requires(postun): /usr/sbin/groupdel
85 Requires(postun): /usr/sbin/userdel
86 Requires(pre): /bin/id
87 Requires(pre): /usr/bin/getgid
88 Requires(pre): /usr/sbin/groupadd
89 Requires(pre): /usr/sbin/useradd
90 Requires: %{name}-jasper = %{version}-%{release}
92 #Requires: jaf >= 1.0.1
93 Requires: java-commons-beanutils
94 Requires: java-commons-collections
95 #Requires: java-commons-dbcp-tomcat5
96 Requires: java-commons-digester
97 Requires: java-commons-el
98 #Requires: java-commons-fileupload
99 Requires: java-commons-logging
100 Requires: java-commons-modeler
101 Requires: java-regexp
102 Requires: java-servletapi5 = %{version}
103 Requires: java-xml-commons
104 Requires: javamail >= 1.2
105 Requires: jaxp_parser_impl
106 Requires: jdbc-stdext >= 2.0
107 Requires: jndi >= 1.2.1
109 Requires: jsse >= 1.0.2
110 %{?with_jta:Requires: jta >= 1.0.1}
112 Provides: group(tomcat)
113 Provides: java-servlet-container
114 Provides: user(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: jakarta-tomcat-doc
150 The Tomcat Servlet/JSP Container documentation.
152 %description doc -l pl.UTF-8
153 Dokumentacja do Tomcata - kontenera Servlet/JSP.
156 Summary: Apache Tomcat`s Administration Web Application
157 Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
158 Group: Networking/Daemons/Java/Servlets
159 Requires: %{name} = %{version}-%{release}
160 Requires: java-commons-chain
163 Administration Web Application for Apache Tomcat.
165 %description admin -l pl.UTF-8
166 Panel Administracyjny dla Apache Tomcat.
169 Summary: JSP compiler
170 Summary(pl.UTF-8): Kompilator JSP
171 Group: Libraries/Java
172 Requires: jpackage-utils
175 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
178 %description jasper -l pl.UTF-8
179 Jasper jest kompilatorem Java ServerPages używanym przez kontener
180 servletów Apache Tomcat.
183 %setup -q -n apache-%{name}-%{version}-src
192 # we don't need dos scripts
193 rm -f container/catalina/src/bin/*.bat
195 # causes file(1) rpm to abort, and not really neccessary file
196 rm container/webapps/admin/images/Thumbs.db
197 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
198 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
200 # servletapi built from jakarta-servletapi5.spec
203 # Remove pre-built jars
204 find -name '*.jar' | xargs rm -fv
210 cat > build.properties <<EOF
211 commons-beanutils.jar=$(find-jar commons-beanutils-core)
212 commons-launcher.jar=$(find-jar commons-launcher)
213 commons-daemon.jar=$(find-jar commons-daemon)
214 commons-digester.jar=$(find-jar commons-digester)
215 commons-el.jar=$(find-jar commons-el)
216 commons-logging-api.jar=$(find-jar commons-logging-api)
217 commons-logging.jar=$(find-jar commons-logging)
218 commons-modeler.jar=$(find-jar commons-modeler)
219 xercesImpl.jar=$(find-jar jaxp_parser_impl)
220 xml-apis.jar=$(find-jar xml-commons-apis)
221 jdt.jar=$(find-jar org.eclipse.jdt.core)
222 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
223 commons-httpclient.jar=$(find-jar commons-httpclient)
224 commons-collections.jar=$(find-jar commons-collections)
225 commons-fileupload.jar=$(find-jar commons-fileupload)
226 commons-io.jar=$(find-jar commons-io)
227 jmx.jar=$(find-jar jmx)
228 jmx-tools.jar=$(find-jar jmx)
229 junit.jar=$(find-jar junit)
230 struts.jar=$(find-jar struts-core)
231 struts-core.jar=$(find-jar struts-core)
232 struts-taglib.jar=$(find-jar struts-taglib)
233 jcert.jar=$(find-jar jcert)
234 jnet.jar=$(find-jar jnet)
235 jsse.jar=$(find-jar jsse)
236 %{?with_jta:jta.jar=$(find-jar jta)}
237 puretls.jar=$(find-jar puretls)
238 servlet-api.jar=$(find-jar servlet-api)
239 servletapi.build.notrequired=true
240 jsp-api.jar=$(find-jar jsp-api)
241 jspapi.build.notrequired=true
242 log4j.jar=$(find-jar log4j)
243 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
244 struts.lib=%{_javadir}-struts
247 if grep '=$' build.properties; then
248 : Some .jar could not be found
256 rm -rf $RPM_BUILD_ROOT
258 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
259 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
261 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
262 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
264 install -d $TOMCATDIR/bin \
265 $TOMCATDIR/common/{lib,classes,endorsed} \
266 $TOMCATDIR/server/{lib,classes} \
268 $RPM_BUILD_ROOT%{_logdir}/tomcat \
269 $RPM_BUILD_ROOT%{_vardir}/webapps \
270 $RPM_BUILD_ROOT%{_vardir}/work \
271 $RPM_BUILD_ROOT%{_vardir}/conf \
272 $RPM_BUILD_ROOT/etc/sysconfig \
273 $RPM_BUILD_ROOT/etc/rc.d/init.d
275 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
276 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
278 cp -a conf/* $CATALINADIR/conf
279 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
280 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
281 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
282 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
283 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
284 cp -HR bin common server $TOMCATDIR
286 cp -a server/webapps $TOMCATDIR/server
287 cp -a webapps $TOMCATDIR
288 cp -a shared $TOMCATDIR
289 cp -a temp $CATALINADIR
291 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
292 ln -sf %{_vardir}/work $TOMCATDIR/work
293 ln -sf %{_vardir}/conf $TOMCATDIR/conf
294 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
296 # symlinks instead of copies
297 jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
300 ln -sf $jar $TOMCATDIR/common/lib
303 jars="jaxp_parser_impl xml-commons-apis"
306 ln -sf $jar $TOMCATDIR/common/endorsed
309 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
312 ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
316 # do not make these symlinks as ant didn't do
317 jars="commons-daemon"
320 ln -sf $jar $TOMCATDIR/bin
323 jars="activation ant commons-dbcp commons-logging-api commons-pool servlet jdbc-stdext
324 jmxri jndi %{?with_jta:jta} mail jsse junit mailapi pop3"
327 ln -sf $jar $TOMCATDIR/common/lib
330 ln -sf servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
331 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
332 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
333 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
335 jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
338 ln -sf $jar $TOMCATDIR/server/lib
340 ln -sf regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
341 ln -sf regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
344 install -d $RPM_BUILD_ROOT%{_javadir}
345 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
346 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
347 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
348 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
351 rm -rf $RPM_BUILD_ROOT
354 %groupadd -g 234 -r -f tomcat
355 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
358 /sbin/chkconfig --add tomcat
359 %service tomcat restart
362 if [ "$1" = "0" ]; then
364 /sbin/chkconfig --del tomcat
368 if [ "$1" = "0" ]; then
374 %defattr(644,root,root,755)
375 %doc build/{RELEASE-NOTES,RUNNING.txt}
376 %attr(754,root,root) /etc/rc.d/init.d/tomcat
377 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
380 %dir %{_tomcatdir}/conf
381 %dir %{_tomcatdir}/bin
382 %{_tomcatdir}/bin/catalina-tasks.xml
383 %{_tomcatdir}/bin/jkstatus-tasks.xml
384 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
385 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
386 %{_tomcatdir}/bin/*.jar
387 %dir %{_tomcatdir}/common
388 %dir %{_tomcatdir}/common/classes
389 %dir %{_tomcatdir}/common/endorsed
390 %dir %{_tomcatdir}/common/i18n
391 %{_tomcatdir}/common/endorsed/*.jar
392 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
393 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
394 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
395 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
396 %{_tomcatdir}/common/lib
397 %dir %{_tomcatdir}/server
398 %dir %{_tomcatdir}/server/classes
399 %{_tomcatdir}/server/lib
400 %dir %{_tomcatdir}/server/webapps
401 %{_tomcatdir}/server/webapps/host-manager
402 %{_tomcatdir}/server/webapps/manager
403 %{_tomcatdir}/webapps
408 %dir %{_vardir}/conf/Catalina
409 %dir %{_vardir}/conf/Catalina/localhost
410 # tomcat config has to be writeable because of tomacta-users.xml file and Catalina dir
411 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
412 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
413 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
414 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
415 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
416 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
417 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
418 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/jsp-examples.xml
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
420 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
421 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
422 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
423 %dir %attr(1730,root,tomcat) %{_vardir}/work
424 %dir %attr(775,root,tomcat) %{_vardir}/webapps
425 %dir %attr(775,root,tomcat) %{_vardir}/temp
426 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
431 %defattr(644,root,root,755)
436 %defattr(644,root,root,755)
437 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
438 %{_tomcatdir}/server/webapps/admin
441 %defattr(644,root,root,755)
442 %{_javadir}/jasper-compiler-jdt.jar
443 %{_javadir}/jasper-compiler.jar
444 %{_javadir}/jasper-runtime.jar