2 # - packages for *.renametojar files (-cgi and -ssi in server/lib)
5 %bcond_without javadoc # skip building javadocs
7 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
8 Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
13 Group: Development/Languages/Java
14 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
15 # Source0-md5: eb3f196013550b9b1684e4ff18593a8e
17 Source2: %{name}.sysconfig
18 Source10: %{name}-context-ROOT.xml
19 Source11: %{name}-context-balancer.xml
20 Source12: %{name}-context-jsp-examples.xml
21 Source13: %{name}-context-tomcat-docs.xml
22 Source14: %{name}-context-webdav.xml
23 Patch0: %{name}-skip-servletapi.patch
24 Patch1: %{name}-nsis.patch
25 Patch2: %{name}-native.patch
26 Patch3: %{name}-skip-jdt.patch
27 Patch4: %{name}-no-connectors.patch
28 Patch5: %{name}-dbcp.patch
29 # this patch is needed for struts >= 1.3
30 Patch6: %{name}-struts.patch
31 URL: http://tomcat.apache.org/
32 BuildRequires: ant >= 1.5.3
33 BuildRequires: ant-trax
34 BuildRequires: eclipse-jdt
36 BuildRequires: jakarta-regexp >= 0:1.3
37 BuildRequires: java-commons-beanutils >= 1.7
38 BuildRequires: java-commons-collections >= 0:3.1
39 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
40 BuildRequires: java-commons-daemon >= 1.0
41 BuildRequires: java-commons-dbcp >= 0:1.2.1
42 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
43 BuildRequires: java-commons-digester >= 0:1.7
44 BuildRequires: java-commons-el >= 0:1.0
45 BuildRequires: java-commons-fileupload >= 0:1.0
46 BuildRequires: java-commons-httpclient
47 BuildRequires: java-commons-io >= 1.4
48 BuildRequires: java-commons-launcher >= 0:0.9
49 BuildRequires: java-commons-logging >= 0:1.0.4
50 BuildRequires: java-commons-modeler >= 2.0
51 BuildRequires: java-commons-pool >= 0:1.2
52 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
53 BuildRequires: java-servletapi5 = %{version}
54 #BuildRequires: java-struts >= 0:1.2.7
55 BuildRequires: java-struts >= 1.0.2
56 BuildRequires: javamail >= 0:1.3.1
57 BuildRequires: jaxp_parser_impl >= 0:2.7.1
58 BuildRequires: jdbc-stdext >= 0:2.0
59 BuildRequires: jdk >= 1.5
61 BuildRequires: jndi >= 0:1.2.1
62 BuildRequires: jpackage-utils
63 BuildRequires: jsse >= 0:1.0.3
64 BuildRequires: jta >= 0:1.0.1
65 BuildRequires: junit >= 0:3.8.1
66 BuildRequires: logging-log4j
67 BuildRequires: puretls
68 BuildRequires: rpmbuild(macros) >= 1.300
69 BuildRequires: xerces-j >= 0:2.7.1
70 BuildRequires: xml-commons
71 #BuildRequires: xml-commons >= 1.3
72 Requires(post,postun): /sbin/ldconfig
73 Requires(post,preun): /sbin/chkconfig
74 Requires(postun): /usr/sbin/groupdel
75 Requires(postun): /usr/sbin/userdel
76 Requires(pre): /bin/id
77 Requires(pre): /usr/bin/getgid
78 Requires(pre): /usr/sbin/groupadd
79 Requires(pre): /usr/sbin/useradd
80 Requires: %{name}-jasper = %{version}
82 #Requires: jaf >= 1.0.1
83 Requires: jakarta-regexp
84 #Requires: java-commons-beanutils
85 #Requires: java-commons-collections
86 #Requires: java-commons-dbcp-tomcat5
87 #Requires: java-commons-digester
88 Requires: java-commons-el
89 #Requires: java-commons-fileupload
90 #Requires: java-commons-logging
91 Requires: java-servletapi5 = %{version}
92 Requires: javamail >= 1.2
93 Requires: jaxp_parser_impl
94 Requires: jdbc-stdext >= 2.0
95 Requires: jndi >= 1.2.1
97 Requires: jsse >= 1.0.2
98 Requires: jta >= 1.0.1
100 Requires: xml-commons
101 Provides: group(tomcat)
102 Provides: java-servlet-container
103 Provides: user(tomcat)
104 Obsoletes: jakarta-tomcat
106 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
108 %define _tomcatdir %{_datadir}/tomcat
109 %define _logdir %{_var}/log
110 %define _vardir %{_var}/lib/tomcat
111 %define _sysconfdir /etc/tomcat
114 Tomcat is the servlet container that is used in the official Reference
115 Implementation for the Java Servlet and JavaServer Pages technologies.
116 The Java Servlet and JavaServer Pages specifications are developed by
117 Sun under the Java Community Process.
119 Tomcat is developed in an open and participatory environment and
120 released under the Apache Software License. Tomcat is intended to be a
121 collaboration of the best-of-breed developers from around the world.
122 We invite you to participate in this open development project.
124 %description -l pl.UTF-8
125 Tomcat to kontener serwletowy używany przez oficjalną implementację
126 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
127 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
131 Summary: The Apache Tomcat Servlet/JSP Container documentation
132 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
133 Group: Development/Languages/Java
134 Obsoletes: jakarta-tomcat-doc
137 The Tomcat Servlet/JSP Container documentation.
139 %description doc -l pl.UTF-8
140 Dokumentacja do Tomcata - kontenera Servlet/JSP.
143 Summary: Jasper classes from Apache Tomcat
144 Group: Libraries/Java
147 This package contains compiled classes of Apache Tomcat`s Jasper.
150 %setup -q -n %{name}-%{version}-src
159 # servletapi built from jakarta-servletapi5.spec
162 # Remove pre-built jars
163 find -name '*.jar' | xargs rm -fv
169 # build jasper javadocs
171 CLASSPATH=$(build-classpath xml-commons-apis)
172 # building jasper needs eclipse classes
173 cat > build.properties <<EOF
174 ant.jar=$(find-jar ant)
175 servlet-api.jar=$(find-jar servlet-api)
176 jsp-api.jar=$(find-jar jsp-api)
177 tools.jar=%{java_home}/lib/tools.jar
178 xercesImpl.jar=$(find-jar jaxp_parser_impl)
179 xmlParserAPIs.jar=$(find-jar xml-commons-apis)
180 commons-collections.jar=$(find-jar commons-collections)
181 commons-logging.jar=$(find-jar commons-logging)
182 commons-daemon.jar=$(find-jar commons-daemon)
183 junit.jar=$(find-jar junit)
184 commons-el.jar=$(find-jar commons-el)
190 -Dcompile.source=1.4 \
191 -Dbuild.compiler=modern \
198 cat > build.properties <<EOF
199 commons-beanutils.jar=$(find-jar commons-beanutils-core)
200 commons-launcher.jar=$(find-jar commons-launcher)
201 commons-daemon.jar=$(find-jar commons-daemon)
202 commons-digester.jar=$(find-jar commons-digester)
203 commons-el.jar=$(find-jar commons-el)
204 commons-logging-api.jar=$(find-jar commons-logging-api)
205 commons-logging.jar=$(find-jar commons-logging)
206 commons-modeler.jar=$(find-jar commons-modeler)
207 xercesImpl.jar=$(find-jar jaxp_parser_impl)
208 xml-apis.jar=$(find-jar xml-commons-apis)
209 jdt.jar=$(find-jar org.eclipse.jdt.core)
210 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
211 commons-httpclient.jar=$(find-jar commons-httpclient)
212 commons-collections.jar=$(find-jar commons-collections)
213 commons-fileupload.jar=$(find-jar commons-fileupload)
214 commons-io.jar=$(find-jar commons-io)
215 jmx.jar=$(find-jar jmx)
216 jmx-tools.jar=$(find-jar jmx)
217 junit.jar=$(find-jar junit)
218 struts.jar=$(find-jar struts-core)
219 struts-core.jar=$(find-jar struts-core)
220 struts-taglib.jar=$(find-jar struts-taglib)
221 jcert.jar=$(find-jar jcert)
222 jnet.jar=$(find-jar jnet)
223 jsse.jar=$(find-jar jsse)
224 jta.jar=$(find-jar jta)
225 puretls.jar=$(find-jar puretls)
226 servlet-api.jar=$(find-jar servlet-api)
227 servletapi.build.notrequired=true
228 jsp-api.jar=$(find-jar jsp-api)
229 jspapi.build.notrequired=true
230 log4j.jar=$(find-jar log4j)
231 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
232 struts.lib=%{_javadir}-struts
239 rm -rf $RPM_BUILD_ROOT
241 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
242 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
244 # we don't need dos scripts
247 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
248 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
250 install -d $TOMCATDIR/bin \
251 $TOMCATDIR/common/{lib,classes,endorsed} \
252 $TOMCATDIR/server/{lib,classes} \
254 $RPM_BUILD_ROOT%{_logdir}/tomcat \
255 $RPM_BUILD_ROOT%{_vardir}/webapps \
256 $RPM_BUILD_ROOT%{_vardir}/work \
257 $RPM_BUILD_ROOT%{_vardir}/conf \
258 $RPM_BUILD_ROOT/etc/sysconfig \
259 $RPM_BUILD_ROOT/etc/rc.d/init.d
261 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
262 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
264 cp -pR conf/* $CATALINADIR/conf
265 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
266 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
267 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
268 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
269 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
270 cp -HR bin common server $TOMCATDIR
272 cp -rf server/webapps $TOMCATDIR/server
273 cp -rf webapps $TOMCATDIR
274 cp -rf shared $TOMCATDIR
275 cp -rf temp $CATALINADIR
277 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
278 ln -sf %{_vardir}/work $TOMCATDIR/work
279 ln -sf %{_vardir}/conf $TOMCATDIR/conf
280 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
282 # symlinks instead of copies
283 ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
284 ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
285 ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
287 ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
290 # do not make these symlinks as ant didn't do
291 ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
292 ln -sf $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
293 ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
294 ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
295 ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
296 ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
297 ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
298 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
299 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
300 ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
301 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
302 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
303 ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
304 ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
305 ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar
306 ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
307 ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
308 ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
309 ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
310 ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
311 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
312 ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
313 ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
314 ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
315 ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
316 ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
317 ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
318 ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
319 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
320 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
321 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
324 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
325 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
326 ln -sf $(find-jar struts-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
328 install -d $RPM_BUILD_ROOT%{_javadir}
329 mv $TOMCATDIR/common/lib/jasper* $RPM_BUILD_ROOT%{_javadir}
330 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib/
331 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib/
332 ln -sf %{_javadir}/jasper-compiler-runtime.jar $TOMCATDIR/common/lib/
335 rm -rf $RPM_BUILD_ROOT
338 %groupadd -g 234 -r -f tomcat
339 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
342 /sbin/chkconfig --add tomcat
343 %service tomcat restart
346 if [ "$1" = "0" ]; then
348 /sbin/chkconfig --del tomcat
352 if [ "$1" = "0" ]; then
358 %defattr(644,root,root,755)
359 %doc build/{RELEASE-NOTES,RUNNING.txt}
360 %attr(754,root,root) /etc/rc.d/init.d/tomcat
361 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
364 %dir %{_tomcatdir}/conf
365 %dir %{_tomcatdir}/bin
366 %{_tomcatdir}/bin/catalina-tasks.xml
367 %{_tomcatdir}/bin/jkstatus-tasks.xml
368 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
369 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
370 %{_tomcatdir}/bin/*.jar
371 %dir %{_tomcatdir}/common
372 %dir %{_tomcatdir}/common/classes
373 %dir %{_tomcatdir}/common/endorsed
374 %dir %{_tomcatdir}/common/i18n
375 %{_tomcatdir}/common/endorsed/*.jar
376 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
377 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
378 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
379 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
380 %{_tomcatdir}/common/lib
381 %dir %{_tomcatdir}/server
382 %dir %{_tomcatdir}/server/classes
383 %{_tomcatdir}/server/lib
384 %{_tomcatdir}/server/webapps
385 %{_tomcatdir}/webapps
389 # tomcat config has to be writeable because of tomacta-users.xml file and
391 %config(noreplace) %attr(775,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf
392 %dir %attr(1730,root,tomcat) %{_vardir}/work
393 %dir %attr(775,root,tomcat) %{_vardir}/webapps
394 %dir %attr(775,root,tomcat) %{_vardir}/temp
395 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
400 %defattr(644,root,root,755)
405 %defattr(644,root,root,755)
406 %{_javadir}/jasper-compiler-jdt.jar
407 %{_javadir}/jasper-compiler.jar
408 %{_javadir}/jasper-runtime.jar