5 %bcond_with binary # build from binary source
6 %bcond_without javadoc # skip building javadocs
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: Development/Languages/Java
15 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
16 # Source0-md5: 362d1d8b15dc09882440dcab8c592dd7
17 Source1: jakarta-tomcat.init
18 Patch0: %{name}-skip-servletapi.patch
19 Patch1: %{name}-nsis.patch
20 Patch2: %{name}-native.patch
21 Patch3: %{name}-skip-jdt.patch
22 Patch4: %{name}-no-connectors.patch
23 URL: http://tomcat.apache.org/
24 BuildRequires: ant >= 1.5.3
25 BuildRequires: ant-trax
26 BuildRequires: eclipse-jdt
28 BuildRequires: jakarta-commons-beanutils
29 BuildRequires: jakarta-commons-collections
30 BuildRequires: jakarta-commons-collections-source
31 BuildRequires: jakarta-commons-daemon
32 BuildRequires: jakarta-commons-dbcp
33 BuildRequires: jakarta-commons-dbcp-source
34 BuildRequires: jakarta-commons-digester
35 %{?with_javadoc:BuildRequires: jakarta-commons-el}
36 BuildRequires: jakarta-commons-fileupload
37 BuildRequires: jakarta-commons-httpclient
38 BuildRequires: jakarta-commons-launcher
39 BuildRequires: jakarta-commons-logging
40 BuildRequires: jakarta-commons-modeler >= 2.0
41 BuildRequires: jakarta-commons-pool
42 BuildRequires: jakarta-commons-pool-source
43 BuildRequires: jakarta-regexp
44 BuildRequires: jakarta-servletapi5
45 BuildRequires: jakarta-struts >= 1.0.2
46 BuildRequires: javamail >= 1.2
47 BuildRequires: jaxp_parser_impl
48 BuildRequires: jdbc-stdext >= 2.0
49 BuildRequires: jdk >= 1.5
50 BuildRequires: jndi >= 1.2.1
51 BuildRequires: jpackage-utils
52 BuildRequires: jsse >= 1.0.2
53 BuildRequires: jta >= 1.0.1
54 BuildRequires: junit >= 3.7
55 BuildRequires: logging-log4j
56 BuildRequires: mx4j >= 1.1.1
57 BuildRequires: puretls
58 BuildRequires: rpmbuild(macros) >= 1.300
59 BuildRequires: tyrex >= 1.0
60 BuildRequires: xerces-j
61 BuildRequires: xml-commons
62 Requires(post,postun): /sbin/ldconfig
63 Requires(post,preun): /sbin/chkconfig
64 Requires(postun): /usr/sbin/groupdel
65 Requires(postun): /usr/sbin/userdel
66 Requires(pre): /bin/id
67 Requires(pre): /usr/bin/getgid
68 Requires(pre): /usr/sbin/groupadd
69 Requires(pre): /usr/sbin/useradd
71 #Requires: jaf >= 1.0.1
72 Requires: jakarta-commons-beanutils
73 Requires: jakarta-commons-collections
74 Requires: jakarta-commons-digester
75 Requires: jakarta-commons-fileupload
76 Requires: jakarta-commons-logging
77 Requires: jakarta-regexp
78 Requires: jakarta-servletapi >= 4
79 Requires: javamail >= 1.2
80 Requires: jaxp_parser_impl
81 Requires: jdbc-stdext >= 2.0
82 Requires: jndi >= 1.2.1
84 Requires: jsse >= 1.0.2
85 Requires: jta >= 1.0.1
86 Requires: mx4j >= 1.1.1
88 Requires: tyrex >= 1.0
92 Obsoletes: jakarta-tomcat
94 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96 %define _tomcatdir %{_libdir}/tomcat
97 %define _logdir %{_var}/log
98 %define _vardir %{_var}/lib/tomcat
101 Tomcat is the servlet container that is used in the official Reference
102 Implementation for the Java Servlet and JavaServer Pages technologies.
103 The Java Servlet and JavaServer Pages specifications are developed by
104 Sun under the Java Community Process.
106 Tomcat is developed in an open and participatory environment and
107 released under the Apache Software License. Tomcat is intended to be a
108 collaboration of the best-of-breed developers from around the world.
109 We invite you to participate in this open development project.
111 %description -l pl.UTF-8
112 Tomcat to kontener serwletowy używany przez oficjalną implementację
113 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
114 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
118 Summary: The Apache Tomcat Servlet/JSP Container documentation
119 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontekera Servlet/JSP
120 Group: Development/Languages/Java
121 Obsoletes: jakarta-tomcat-doc
124 The Tomcat Servlet/JSP Container documentation.
126 %description doc -l pl.UTF-8
127 Dokumentacja do Tomcata - kontekera Servlet/JSP.
130 %setup -q -n %{name}-%{version}-src
137 # servletapi built from jakarta-servletapi5.spec
140 # Remove pre-built jars
141 find -name '*.jar' | xargs rm -fv
147 > tomcat-deps/tomcat-dbcp.jar
150 # build jasper javadocs
152 CLASSPATH=$(build-classpath xml-commons-apis)
153 cat > build.properties <<EOF
154 ant.jar=$(build-classpath ant)
155 servlet-api.jar=$(build-classpath servlet-api)
156 jsp-api.jar=$(build-classpath jsp-api)
157 tools.jar=%{java_home}/lib/tools.jar
158 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
159 xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
160 commons-collections.jar=$(build-classpath commons-collections)
161 commons-logging.jar=$(build-classpath commons-logging)
162 commons-daemon.jar=$(build-classpath commons-daemon)
163 junit.jar=$(build-classpath junit)
164 commons-el.jar=$(build-classpath commons-el)
166 # building jasper needs eclipse classes
171 -Dcompile.source=1.4 \
172 -Dbuild.compiler=modern \
179 cat > build.properties <<EOF
180 commons-beanutils.jar=$(build-classpath commons-beanutils)
181 commons-launcher.jar=$(build-classpath commons-launcher)
182 commons-daemon.jar=$(build-classpath commons-daemon)
183 commons-digester.jar=$(build-classpath commons-digester)
184 commons-el.jar=$(build-classpath commons-el)
185 commons-logging-api.jar=$(build-classpath commons-logging-api)
186 commons-logging.jar=$(build-classpath commons-logging)
187 commons-modeler.jar=$(build-classpath commons-modeler)
188 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
189 xml-apis.jar=$(build-classpath xml-commons-apis)
190 jdt.jar=$(build-classpath org.eclipse.jdt.core)
191 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
192 commons-httpclient.jar=$(build-classpath commons-httpclient)
193 commons-collections.jar=$(build-classpath commons-collections)
194 commons-fileupload.jar=$(build-classpath commons-fileupload)
195 jmx.jar=$(build-classpath jre/jmx)
196 jmx-tools.jar=$(build-classpath jre/jmx)
197 junit.jar=$(build-classpath junit)
198 struts.jar=$(build-classpath struts)
199 jcert.jar=$(build-classpath java/jcert)
200 jnet.jar=$(build-classpath java/jnet)
201 jsse.jar=$(build-classpath java/jsse)
202 jta.jar=$(build-classpath jta)
203 puretls.jar=$(build-classpath puretls)
204 servlet-api.jar=$(build-classpath servlet-api)
205 servletapi.build.notrequired=true
206 jsp-api.jar=$(build-classpath jsp-api)
207 jspapi.build.notrequired=true
208 log4j.jar=$(build-classpath log4j)
209 # source is needed because source is copied modified and recompiled as tomcat jar
210 # see <target name="-build-tomcat-dbcp"> in build/build.xml
211 commons-collections.home=%{_prefix}/src/jakarta-commons-collections-3.1
212 commons-pool.home=%{_prefix}/src/jakarta-commons-pool-1.3
213 commons-dbcp.home=%{_prefix}/src/jakarta-commons-dbcp-1.2.1
214 tomcat-dbcp.home=$TOPDIR/tomcat-deps
215 # err, it compiles three above and then appends to the jar, so the file should exist
216 tomcat-dbcp.jar=$TOPDIR/tomcat-deps/tomcat-dbcp.jar
223 rm -rf $RPM_BUILD_ROOT
225 DEST=$RPM_BUILD_ROOT%{_tomcatdir}
227 install -d $DEST/bin \
228 $DEST/common/{lib,classes,endorsed} \
229 $DEST/server/{lib,classes} \
231 $RPM_BUILD_ROOT%{_sysconfdir}/tomcat \
232 $RPM_BUILD_ROOT%{_logdir}/tomcat \
233 $RPM_BUILD_ROOT%{_vardir}/work \
234 $RPM_BUILD_ROOT/etc/rc.d/init.d
236 install build/bin/*.sh $DEST/bin
237 install build/bin/bootstrap*.jar $DEST/bin
238 install build/bin/tomcat*.jar $DEST/bin
239 install build/common/lib/naming-*.jar $DEST/common/lib
240 install build/common/lib/jasper-*.jar $DEST/common/lib
241 install build/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
242 install build/server/lib/catalina*.jar $DEST/server/lib
243 install build/server/lib/servlets*.jar $DEST/server/lib
244 install build/server/lib/tomcat*.jar $DEST/server/lib
245 install build/server/lib/servlets-cgi.renametojar $DEST/server/lib/servlets-cgi.jar
246 install build/server/lib/servlets-ssi.renametojar $DEST/server/lib/servlets-ssi.jar
247 cp -rf build/server/webapps $DEST/server
248 cp -rf build/webapps $DEST
249 cp -rf build/shared $DEST
250 cp -rf build/temp $DEST
252 ln -sf %{_logdir}/tomcat $DEST/logs
253 ln -sf %{_vardir}/work $DEST/work
254 ln -sf %{_sysconfdir}/tomcat $DEST/conf
256 # symlinks instead of copies
257 ln -sf %{_javadir}/commons-daemon.jar $DEST/bin
259 ln -sf %{_javadir}/activation.jar $DEST/common/lib
260 ln -sf %{_javadir}/ant.jar $DEST/common/lib
261 ln -sf %{_javadir}/commons-collections.jar $DEST/common/lib
262 ln -sf %{_javadir}/commons-dbcp.jar $DEST/common/lib
263 ln -sf %{_javadir}/commons-logging-api.jar $DEST/common/lib
264 ln -sf %{_javadir}/commons-pool.jar $DEST/common/lib
265 ln -sf %{_javadir}/servlet.jar $DEST/common/lib
266 ln -sf %{_javadir}/servlet.jar $DEST/common/lib/servletapi4.jar
267 ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc2_0-stdext.jar
268 ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc-stdext-2.0.jar
269 ln -sf %{_javadir}/jmxri.jar $DEST/common/lib
270 ln -sf %{_javadir}/jndi.jar $DEST/common/lib
271 ln -sf %{_javadir}/jta.jar $DEST/common/lib
272 ln -sf %{_javadir}/mail.jar $DEST/common/lib
273 ln -sf %{_javadir}/jsse.jar $DEST/common/lib
274 ln -sf %{_javadir}/tyrex.jar $DEST/common/lib
275 ln -sf %{_javadir}/junit.jar $DEST/common/lib
277 ln -sf %{_javadir}/mailapi.jar $DEST/common/lib
278 ln -sf %{_javadir}/pop3.jar $DEST/common/lib
279 ln -sf %{_javadir}/pop3.jar $DEST/common/lib/pop.jar
280 ln -sf %{_javadir}/smtp.jar $DEST/common/lib
281 ln -sf %{_javadir}/imap.jar $DEST/common/lib
283 ln -sf %{_javadir}/commons-beanutils.jar $DEST/server/lib
284 ln -sf %{_javadir}/commons-digester.jar $DEST/server/lib
285 ln -sf %{_javadir}/commons-fileupload.jar $DEST/server/lib
286 ln -sf %{_javadir}/commons-logging.jar $DEST/server/lib
287 ln -sf %{_javadir}/commons-modeler.jar $DEST/server/lib
288 ln -sf %{_javadir}/jaas.jar $DEST/server/lib/jaas.jar
289 ln -sf %{_javadir}/mx4j-jmx.jar $DEST/server/lib
290 ln -sf %{_javadir}/regexp.jar $DEST/server/lib
291 ln -sf %{_javadir}/regexp.jar $DEST/server/lib/jakarta-regexp-1.2.jar
292 ln -sf %{_javadir}/regexp.jar $DEST/server/lib/regexp-1.2.jar
294 ln -sf %{_javadir}/jaxp_parser_impl.jar $DEST/common/endorsed
295 ln -sf %{_javadir}/xml-commons-apis.jar $DEST/common/endorsed
297 ln -sf %{_javadir}/struts.jar $DEST/server/webapps/admin/WEB-INF/lib
299 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
302 rm -rf $RPM_BUILD_ROOT
305 %groupadd -g 51 -r -f http
306 %useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
309 /sbin/chkconfig --add tomcat
310 %service tomcat restart
313 if [ "$1" = "0" ]; then
315 /sbin/chkconfig --del tomcat
319 if [ "$1" = "0" ]; then
325 %defattr(644,root,root,755)
328 %dir %{_tomcatdir}/bin
329 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
330 %{_tomcatdir}/bin/*.jar
331 %dir %{_tomcatdir}/common
332 %dir %{_tomcatdir}/common/classes
333 %dir %{_tomcatdir}/common/endorsed
334 %{_tomcatdir}/common/endorsed/*.jar
335 %{_tomcatdir}/common/lib
338 %dir %{_tomcatdir}/server
339 %dir %{_tomcatdir}/server/classes
340 %{_tomcatdir}/server/lib
341 %{_tomcatdir}/server/webapps
342 %{_tomcatdir}/webapps
346 # tomcat wants to regenerate tomcat-users.xml
347 %attr(775,root,http) %dir %{_sysconfdir}/tomcat
348 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tomcat/*
349 %attr(754,root,root) /etc/rc.d/init.d/tomcat
351 %attr(1730,root,http) %dir %{_vardir}/work
352 %attr(1730,root,http) %dir %{_logdir}/tomcat
355 %defattr(644,root,root,755)