2 %bcond_with binary # build from binary source
3 %bcond_without javadoc # skip building javadocs
5 Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
6 Summary(pl): Tomcat - Zasobnik servletów/JSP
11 Group: Development/Languages/Java
12 #Source0: http://www.apache.org/dist/tomcat/tomcat-5/v5.0.30/src/%{name}-%{version}-src.tar.gz
13 Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-tomcat-%{version}-src.tar.gz
14 # Source0-md5: 362d1d8b15dc09882440dcab8c592dd7
15 #Source0: http://apache.zone-h.org/
17 URL: http://tomcat.apache.org/
19 BuildRequires: ant >= 1.5.3
21 BuildRequires: jakarta-commons-beanutils
22 BuildRequires: jakarta-commons-collections
23 BuildRequires: jakarta-commons-digester
24 BuildRequires: jakarta-commons-fileupload
25 BuildRequires: jakarta-commons-logging
26 BuildRequires: jakarta-regexp
27 BuildRequires: jakarta-servletapi >= 4
28 BuildRequires: jakarta-struts >= 1.0.2
29 BuildRequires: jaxp_parser_impl
30 BuildRequires: jdk >= 1.2
31 BuildRequires: jpackage-utils
32 BuildRequires: mx4j >= 1.1.1
33 BuildRequires: puretls
34 BuildRequires: rpmbuild(macros) >= 1.300
35 BuildRequires: xerces-j
37 BuildRequires: jaf >= 1.0.1
38 BuildRequires: jakarta-commons-daemon
39 BuildRequires: jakarta-commons-dbcp
40 BuildRequires: jakarta-commons-modeler
41 BuildRequires: jakarta-commons-pool
42 BuildRequires: javamail >= 1.2
43 BuildRequires: jdbc-stdext >= 2.0
44 BuildRequires: jndi >= 1.2.1
45 BuildRequires: jsse >= 1.0.2
46 BuildRequires: jta >= 1.0.1
47 BuildRequires: junit >= 3.7
48 BuildRequires: rpmbuild(macros) >= 1.268
49 BuildRequires: tyrex >= 1.0
50 BuildRequires: xml-commons
51 Requires(post,postun): /sbin/ldconfig
52 Requires(post,preun): /sbin/chkconfig
53 Requires(postun): /usr/sbin/groupdel
54 Requires(postun): /usr/sbin/userdel
55 Requires(pre): /bin/id
56 Requires(pre): /usr/bin/getgid
57 Requires(pre): /usr/sbin/groupadd
58 Requires(pre): /usr/sbin/useradd
60 Requires: jaf >= 1.0.1
61 Requires: jakarta-commons-beanutils
62 Requires: jakarta-commons-collections
63 Requires: jakarta-commons-digester
64 Requires: jakarta-commons-fileupload
65 Requires: jakarta-commons-logging
66 Requires: jakarta-regexp
67 Requires: jakarta-servletapi >= 4
68 Requires: javamail >= 1.2
69 Requires: jaxp_parser_impl
70 Requires: jdbc-stdext >= 2.0
71 Requires: jndi >= 1.2.1
73 Requires: jsse >= 1.0.2
74 Requires: jta >= 1.0.1
75 Requires: mx4j >= 1.1.1
77 Requires: tyrex >= 1.0
82 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
84 %define _tomcatdir %{_libdir}/tomcat
85 %define _logdir %{_var}/log
86 %define _vardir %{_var}/lib/tomcat
89 Tomcat is the servlet container that is used in the official Reference
90 Implementation for the Java Servlet and JavaServer Pages technologies.
91 The Java Servlet and JavaServer Pages specifications are developed by
92 Sun under the Java Community Process.
94 Tomcat is developed in an open and participatory environment and
95 released under the Apache Software License. Tomcat is intended to be a
96 collaboration of the best-of-breed developers from around the world.
97 We invite you to participate in this open development project.
100 Tomcat 4.0 - serwer implementuj±cy specyfikacje Servlet 2.3 oraz JSP
104 Summary: The Tomcat Servlet/JSP Container documentation
105 Summary(pl): Dokumentacja do Tomcata
106 Group: Development/Languages/Java
109 The Tomcat Servlet/JSP Container documentation.
111 %description doc -l pl
112 Dokumentacja do Tomcata.
115 %setup -q -n apache-tomcat-%{version}-src/
117 # Remove pre-built jars
118 find -name '*.jar' | xargs rm -fv
123 # build jsp-api, servlet-api as ant dist will later on require them for webapps
125 %ant -Dservletapi.build=build -Dservletapi.dist=dist -Dbuild.compiler=modern dist
128 %ant -Dservletapi.build=build -Dservletapi.dist=dist -Dbuild.compiler=modern dist
130 # build jasper subpackage
132 CLASSPATH=$(build-classpath xml-commons-apis xalan)
133 export CLASSPATH=$CLASSPATH:$TOPDIR/servletapi/jsr154/dist/lib/servlet-api.jar
134 cat > build.properties <<EOF
135 ant.jar=$(build-classpath ant)
136 servlet-api.jar=$TOPDIR/servletapi/jsr154/dist/lib/servlet-api.jar
137 jsp-api.jar=$TOPDIR/servletapi/jsr152/dist/lib/jsp-api.jar
138 tools.jar=%{java_home}/lib/tools.jar
139 xerces.jar=$(build-classpath xerces)
140 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
141 xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
142 commons-el.jar=$(build-classpath commons-el)
143 commons-collections.jar=$(build-classpath commons-collections)
144 commons-logging.jar=$(build-classpath commons-logging)
145 commons-daemon.jar=$(build-classpath commons-daemon)
146 junit.jar=$(build-classpath junit)
147 jasper-compiler-jdt.jar=$(build-classpath jdtcore)
149 %ant -Dbuild.compiler=modern javadoc
153 cat >> build.properties <<EOF
154 ant.jar=%{_javadir}/ant.jar
155 ant-launcher.jar=%{_javadir}/ant-launcher.jar
156 jtc.home=$TOPDIR/jakarta-tomcat-connectors/
157 jasper.home=$TOPDIR/jakarta-tomcat-jasper/jasper2
158 commons-beanutils.jar=$(build-classpath commons-beanutils)
159 commons-fileupload.jar=$(build-classpath commons-fileupload)
160 commons-collections.jar=$(build-classpath commons-collections)
161 commons-dbcp.jar=$(build-classpath commons-dbcp)
162 commons-digester.jar=$(build-classpath commons-digester)
163 commons-el.jar=$(build-classpath commons-el)
164 commons-launcher.jar=$(build-classpath commons-launcher)
165 commons-logging.jar=$(build-classpath commons-logging)
166 commons-logging-api.jar=$(build-classpath commons-logging-api)
167 commons-modeler.jar=$(build-classpath commons-modeler)
168 commons-pool.jar=$(build-classpath commons-pool)
169 jmx.jar=$(build-classpath jre/jmx)
170 jmx-tools.jar=$(build-classpath jre/jmx)
171 jmxri.jar=$(build-classpath jre/jmx)
172 junit.jar=$(build-classpath junit)
173 regexp.jar=$(build-classpath regexp)
174 servlet-api.jar=$TOPDIR/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar
175 jsp-api.jar=$TOPDIR/jakarta-servletapi-5/jsr152/dist/lib/jsp-api.jar
176 servlet.doc=$TOPDIR/jakarta-servletapi-5/jsr154/dist/docs/api
177 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
178 xml-apis.jar=$(build-classpath xml-commons-apis)
179 struts.jar=$(build-classpath struts)
180 struts.lib=%{_datadir}/struts
181 activation.jar=$(build-classpath jaf)
182 mail.jar=$(build-classpath javamail/mailapi)
183 jta.jar=$(build-classpath jta)
184 tyrex.jar=$(build-classpath tyrex)
185 jaas.jar=$(build-classpath jre/jaas)
186 jndi.jar=$(build-classpath jre/jndi)
187 jdbc20ext.jar=$(build-classpath jdbc-stdext)
188 puretls.jar=$(build-classpath puretls)
189 jcert.jar=$(build-classpath java/jcert)
190 jnet.jar=$(build-classpath java/jnet)
191 jsse.jar=$(build-classpath java/jsse)
192 servletapi.build.notrequired=true
193 jspapi.build.notrequired=true
194 taglibs-core.jar=$(build-classpath taglibs-core)
195 taglibs-standard.jar=$(build-classpath taglibs-standard)
205 # build the connectors
206 cd ../jakarta-tomcat-connectors
208 # this is just plain and simply evil but something changed in a major way between 5.0.16 and 5.0.18
209 oldclasspath=$CLASSPATH
210 export CLASSPATH=$TOPDIR/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar:\
211 $TOPDIR/jakarta-tomcat-5/build/server/lib/catalina.jar
213 cat > build.properties <<EOBP
214 activation.jar=$(build-classpath jaf)
215 ant.jar=%{_javadir}/ant.jar
216 junit.jar=$(build-classpath junit)
217 commons-beanutils.jar=$(build-classpath commons-beanutils)
218 commons-collections.jar=$(build-classpath commons-collections)
219 commons-digester.jar=$(build-classpath commons-digester)
220 commons-fileupload.jar=$(build-classpath commons-fileupload)
221 commons-logging.jar=$(build-classpath commons-logging)
222 commons-logging-api.jar=$(build-classpath commons-logging-api)
223 commons-modeler.jar=$(build-classpath commons-modeler)
224 commons-pool.jar=$(build-classpath commons-pool)
225 regexp.jar=$(build-classpath regexp)
226 jmx.jar=$(build-classpath mx4j/mx4j)
227 puretls=$(build-classpath puretls)
228 activation.jar=$(build-classpath jaf)
229 mail.jar=$(build-classpath javamail/mailapi)
230 jta.jar=$(build-classpath jta)
231 tyrex.jar=$(build-classpath tyrex)
232 jaas.jar=$(build-classpath jaas)
233 jndi.jar=$(build-classpath jndi)
234 jdbc20ext.jar=$(build-classpath java/jdbc-stdext)
235 puretls.jar=$(build-classpath puretls)
236 jcert.jar=$(build-classpath jsse/jcert)
237 jnet.jar=$(build-classpath jsse/jnet)
238 jsse.jar=$(build-classpath jsse/jsse)
240 %ant -Dbuild.compiler=modern -Djava.home=%{java_home} build
241 export CLASSPATH=$oldclasspath
243 # build the webapps and make the tree ready to install
244 cd ../jakarta-tomcat-5
245 %ant -Dbuild.compiler=modern -Djava.home=%{java_home} dist
249 rm -rf $RPM_BUILD_ROOT
251 DEST=$RPM_BUILD_ROOT%{_tomcatdir}
253 install -d $DEST/bin \
254 $DEST/common/{lib,classes,endorsed} \
255 $DEST/server/{lib,classes} \
257 $RPM_BUILD_ROOT%{_sysconfdir}/tomcat \
258 $RPM_BUILD_ROOT%{_logdir}/tomcat \
259 $RPM_BUILD_ROOT%{_vardir}/work \
260 $RPM_BUILD_ROOT/etc/rc.d/init.d
262 install build/bin/*.sh $DEST/bin
263 install build/bin/bootstrap*.jar $DEST/bin
264 install build/bin/tomcat*.jar $DEST/bin
265 install build/common/lib/naming-*.jar $DEST/common/lib
266 install build/common/lib/jasper-*.jar $DEST/common/lib
267 install build/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
268 install build/server/lib/catalina*.jar $DEST/server/lib
269 install build/server/lib/servlets*.jar $DEST/server/lib
270 install build/server/lib/tomcat*.jar $DEST/server/lib
271 install build/server/lib/servlets-cgi.renametojar $DEST/server/lib/servlets-cgi.jar
272 install build/server/lib/servlets-ssi.renametojar $DEST/server/lib/servlets-ssi.jar
273 cp -rf build/server/webapps $DEST/server
274 cp -rf build/webapps $DEST
275 cp -rf build/shared $DEST
276 cp -rf build/temp $DEST
278 ln -sf %{_logdir}/tomcat $DEST/logs
279 ln -sf %{_vardir}/work $DEST/work
280 ln -sf %{_sysconfdir}/tomcat $DEST/conf
282 # symlinks instead of copies
283 ln -sf %{_javadir}/commons-daemon.jar $DEST/bin
285 ln -sf %{_javadir}/activation.jar $DEST/common/lib
286 ln -sf %{_javadir}/ant.jar $DEST/common/lib
287 ln -sf %{_javadir}/commons-collections.jar $DEST/common/lib
288 ln -sf %{_javadir}/commons-dbcp.jar $DEST/common/lib
289 ln -sf %{_javadir}/commons-logging-api.jar $DEST/common/lib
290 ln -sf %{_javadir}/commons-pool.jar $DEST/common/lib
291 ln -sf %{_javadir}/servlet.jar $DEST/common/lib
292 ln -sf %{_javadir}/servlet.jar $DEST/common/lib/servletapi4.jar
293 ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc2_0-stdext.jar
294 ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc-stdext-2.0.jar
295 ln -sf %{_javadir}/jmxri.jar $DEST/common/lib
296 ln -sf %{_javadir}/jndi.jar $DEST/common/lib
297 ln -sf %{_javadir}/jta.jar $DEST/common/lib
298 ln -sf %{_javadir}/mail.jar $DEST/common/lib
299 ln -sf %{_javadir}/jsse.jar $DEST/common/lib
300 ln -sf %{_javadir}/tyrex.jar $DEST/common/lib
301 ln -sf %{_javadir}/junit.jar $DEST/common/lib
303 ln -sf %{_javadir}/mailapi.jar $DEST/common/lib
304 ln -sf %{_javadir}/pop3.jar $DEST/common/lib
305 ln -sf %{_javadir}/pop3.jar $DEST/common/lib/pop.jar
306 ln -sf %{_javadir}/smtp.jar $DEST/common/lib
307 ln -sf %{_javadir}/imap.jar $DEST/common/lib
309 ln -sf %{_javadir}/commons-beanutils.jar $DEST/server/lib
310 ln -sf %{_javadir}/commons-digester.jar $DEST/server/lib
311 ln -sf %{_javadir}/commons-fileupload.jar $DEST/server/lib
312 ln -sf %{_javadir}/commons-logging.jar $DEST/server/lib
313 ln -sf %{_javadir}/commons-modeler.jar $DEST/server/lib
314 ln -sf %{_javadir}/jaas.jar $DEST/server/lib/jaas.jar
315 ln -sf %{_javadir}/mx4j-jmx.jar $DEST/server/lib
316 ln -sf %{_javadir}/regexp.jar $DEST/server/lib
317 ln -sf %{_javadir}/regexp.jar $DEST/server/lib/jakarta-regexp-1.2.jar
318 ln -sf %{_javadir}/regexp.jar $DEST/server/lib/regexp-1.2.jar
320 ln -sf %{_javadir}/jaxp_parser_impl.jar $DEST/common/endorsed
321 ln -sf %{_javadir}/xml-commons-apis.jar $DEST/common/endorsed
323 ln -sf %{_javadir}/struts.jar $DEST/server/webapps/admin/WEB-INF/lib
325 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
328 rm -rf $RPM_BUILD_ROOT
331 %groupadd -g 51 -r -f http
332 %useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
335 /sbin/chkconfig --add tomcat
336 %service tomcat restart
339 if [ "$1" = "0" ]; then
341 /sbin/chkconfig --del tomcat
345 if [ "$1" = "0" ]; then
351 %defattr(644,root,root,755)
354 %dir %{_tomcatdir}/bin
355 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
356 %{_tomcatdir}/bin/*.jar
357 %dir %{_tomcatdir}/common
358 %dir %{_tomcatdir}/common/classes
359 %dir %{_tomcatdir}/common/endorsed
360 %{_tomcatdir}/common/endorsed/*.jar
361 %{_tomcatdir}/common/lib
364 %dir %{_tomcatdir}/server
365 %dir %{_tomcatdir}/server/classes
366 %{_tomcatdir}/server/lib
367 %{_tomcatdir}/server/webapps
368 %{_tomcatdir}/webapps
372 # tomcat wants to regenerate tomcat-users.xml
373 %attr(775,root,http) %dir %{_sysconfdir}/tomcat
374 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tomcat/*
375 %attr(754,root,root) /etc/rc.d/init.d/tomcat
377 %attr(1730,root,http) %dir %{_vardir}/work
378 %attr(1730,root,http) %dir %{_logdir}/tomcat
381 %defattr(644,root,root,755)