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: java-commons-httpclient
37 BuildRequires: jakarta-regexp >= 0:1.3
38 #BuildRequires: java-struts >= 0:1.2.7
39 BuildRequires: java-struts >= 1.0.2
40 BuildRequires: java-commons-beanutils >= 1.7
41 BuildRequires: java-commons-collections >= 0:3.1
42 BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
43 BuildRequires: java-commons-daemon >= 1.0
44 BuildRequires: java-commons-dbcp >= 0:1.2.1
45 BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
46 BuildRequires: java-commons-digester >= 0:1.7
47 BuildRequires: java-commons-el >= 0:1.0
48 BuildRequires: java-commons-fileupload >= 0:1.0
49 BuildRequires: java-commons-io >= 1.4
50 BuildRequires: java-commons-launcher >= 0:0.9
51 BuildRequires: java-commons-logging >= 0:1.0.4
52 BuildRequires: java-commons-modeler >= 2.0
53 BuildRequires: java-commons-pool >= 0:1.2
54 BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
55 BuildRequires: java-servletapi5 = %{version}
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
81 #Requires: jaf >= 1.0.1
82 Requires: jakarta-regexp
83 #Requires: java-commons-beanutils
84 #Requires: java-commons-collections
85 #Requires: java-commons-dbcp-tomcat5
86 #Requires: java-commons-digester
87 Requires: java-commons-el
88 #Requires: java-commons-fileupload
89 #Requires: java-commons-logging
90 Requires: java-servletapi5 = %{version}
91 Requires: javamail >= 1.2
92 Requires: jaxp_parser_impl
93 Requires: jdbc-stdext >= 2.0
94 Requires: jndi >= 1.2.1
96 Requires: jsse >= 1.0.2
97 Requires: jta >= 1.0.1
100 Provides: group(tomcat)
101 Provides: user(tomcat)
102 Obsoletes: jakarta-tomcat
104 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
106 %define _tomcatdir %{_datadir}/tomcat
107 %define _logdir %{_var}/log
108 %define _vardir %{_var}/lib/tomcat
109 %define _sysconfdir /etc/tomcat
112 Tomcat is the servlet container that is used in the official Reference
113 Implementation for the Java Servlet and JavaServer Pages technologies.
114 The Java Servlet and JavaServer Pages specifications are developed by
115 Sun under the Java Community Process.
117 Tomcat is developed in an open and participatory environment and
118 released under the Apache Software License. Tomcat is intended to be a
119 collaboration of the best-of-breed developers from around the world.
120 We invite you to participate in this open development project.
122 %description -l pl.UTF-8
123 Tomcat to kontener serwletowy używany przez oficjalną implementację
124 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
125 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
129 Summary: The Apache Tomcat Servlet/JSP Container documentation
130 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
131 Group: Development/Languages/Java
132 Obsoletes: jakarta-tomcat-doc
135 The Tomcat Servlet/JSP Container documentation.
137 %description doc -l pl.UTF-8
138 Dokumentacja do Tomcata - kontenera Servlet/JSP.
141 %setup -q -n %{name}-%{version}-src
150 # servletapi built from jakarta-servletapi5.spec
153 # Remove pre-built jars
154 find -name '*.jar' | xargs rm -fv
160 # build jasper javadocs
162 CLASSPATH=$(build-classpath xml-commons-apis)
163 # building jasper needs eclipse classes
164 cat > build.properties <<EOF
165 ant.jar=$(find-jar ant)
166 servlet-api.jar=$(find-jar servlet-api)
167 jsp-api.jar=$(find-jar jsp-api)
168 tools.jar=%{java_home}/lib/tools.jar
169 xercesImpl.jar=$(find-jar jaxp_parser_impl)
170 xmlParserAPIs.jar=$(find-jar xml-commons-apis)
171 commons-collections.jar=$(find-jar commons-collections)
172 commons-logging.jar=$(find-jar commons-logging)
173 commons-daemon.jar=$(find-jar commons-daemon)
174 junit.jar=$(find-jar junit)
175 commons-el.jar=$(find-jar commons-el)
181 -Dcompile.source=1.4 \
182 -Dbuild.compiler=modern \
189 cat > build.properties <<EOF
190 commons-beanutils.jar=$(find-jar commons-beanutils-core)
191 commons-launcher.jar=$(find-jar commons-launcher)
192 commons-daemon.jar=$(find-jar commons-daemon)
193 commons-digester.jar=$(find-jar commons-digester)
194 commons-el.jar=$(find-jar commons-el)
195 commons-logging-api.jar=$(find-jar commons-logging-api)
196 commons-logging.jar=$(find-jar commons-logging)
197 commons-modeler.jar=$(find-jar commons-modeler)
198 xercesImpl.jar=$(find-jar jaxp_parser_impl)
199 xml-apis.jar=$(find-jar xml-commons-apis)
200 jdt.jar=$(find-jar org.eclipse.jdt.core)
201 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
202 commons-httpclient.jar=$(find-jar commons-httpclient)
203 commons-collections.jar=$(find-jar commons-collections)
204 commons-fileupload.jar=$(find-jar commons-fileupload)
205 commons-io.jar=$(find-jar commons-io)
206 jmx.jar=$(find-jar jmx)
207 jmx-tools.jar=$(find-jar jmx)
208 junit.jar=$(find-jar junit)
209 struts.jar=$(find-jar struts-core)
210 struts-core.jar=$(find-jar struts-core)
211 struts-taglib.jar=$(find-jar struts-taglib)
212 jcert.jar=$(find-jar jcert)
213 jnet.jar=$(find-jar jnet)
214 jsse.jar=$(find-jar jsse)
215 jta.jar=$(find-jar jta)
216 puretls.jar=$(find-jar puretls)
217 servlet-api.jar=$(find-jar servlet-api)
218 servletapi.build.notrequired=true
219 jsp-api.jar=$(find-jar jsp-api)
220 jspapi.build.notrequired=true
221 log4j.jar=$(find-jar log4j)
222 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
223 struts.lib=%{_datadir}/java-struts
230 rm -rf $RPM_BUILD_ROOT
232 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
233 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
235 # we don't need dos scripts
238 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
239 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
241 install -d $TOMCATDIR/bin \
242 $TOMCATDIR/common/{lib,classes,endorsed} \
243 $TOMCATDIR/server/{lib,classes} \
245 $RPM_BUILD_ROOT%{_logdir}/tomcat \
246 $RPM_BUILD_ROOT%{_vardir}/webapps \
247 $RPM_BUILD_ROOT%{_vardir}/work \
248 $RPM_BUILD_ROOT%{_vardir}/conf \
249 $RPM_BUILD_ROOT/etc/sysconfig \
250 $RPM_BUILD_ROOT/etc/rc.d/init.d
252 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
253 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
255 cp -pR conf/* $CATALINADIR/conf
256 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
257 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
258 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
259 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
260 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
261 cp -HR bin common server $TOMCATDIR
263 cp -rf server/webapps $TOMCATDIR/server
264 cp -rf webapps $TOMCATDIR
265 cp -rf shared $TOMCATDIR
266 cp -rf temp $CATALINADIR
268 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
269 ln -sf %{_vardir}/work $TOMCATDIR/work
270 ln -sf %{_vardir}/conf $TOMCATDIR/conf
271 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
273 # symlinks instead of copies
274 ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
275 ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
276 ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
278 ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
281 # do not make these symlinks as ant didn't do
282 ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
283 ln -sf $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
284 ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
285 ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
286 ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
287 ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
288 ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
289 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
290 ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
291 ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
292 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
293 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
294 ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
295 ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
296 ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar
297 ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
298 ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
299 ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
300 ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
301 ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
302 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
303 ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
304 ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
305 ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
306 ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
307 ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
308 ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
309 ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
310 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
311 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
312 ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
315 ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
316 ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
317 ln -sf $(find-jar struts-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
320 rm -rf $RPM_BUILD_ROOT
323 %groupadd -g 51 -r -f tomcat
324 %useradd -u 51 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
327 /sbin/chkconfig --add tomcat
328 %service tomcat restart
331 if [ "$1" = "0" ]; then
333 /sbin/chkconfig --del tomcat
337 if [ "$1" = "0" ]; then
343 %defattr(644,root,root,755)
344 %doc build/{RELEASE-NOTES,RUNNING.txt}
345 %attr(754,root,root) /etc/rc.d/init.d/tomcat
346 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
349 %dir %{_tomcatdir}/conf
350 %dir %{_tomcatdir}/bin
351 %{_tomcatdir}/bin/catalina-tasks.xml
352 %{_tomcatdir}/bin/jkstatus-tasks.xml
353 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
354 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
355 %{_tomcatdir}/bin/*.jar
356 %dir %{_tomcatdir}/common
357 %dir %{_tomcatdir}/common/classes
358 %dir %{_tomcatdir}/common/endorsed
359 %dir %{_tomcatdir}/common/i18n
360 %{_tomcatdir}/common/endorsed/*.jar
361 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
362 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
363 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
364 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
365 %{_tomcatdir}/common/lib
366 %dir %{_tomcatdir}/server
367 %dir %{_tomcatdir}/server/classes
368 %{_tomcatdir}/server/lib
369 %{_tomcatdir}/server/webapps
370 %{_tomcatdir}/webapps
374 # tomcat config has to be writeable because of tomacta-users.xml file and
376 %config(noreplace) %attr(775,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf
377 %dir %attr(1730,root,tomcat) %{_vardir}/work
378 %dir %attr(775,root,tomcat) %{_vardir}/webapps
379 %dir %attr(775,root,tomcat) %{_vardir}/temp
380 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
385 %defattr(644,root,root,755)