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: 362d1d8b15dc09882440dcab8c592dd7
16 Source1: jakarta-tomcat.init
17 Patch0: %{name}-skip-servletapi.patch
18 Patch1: %{name}-nsis.patch
19 Patch2: %{name}-native.patch
20 Patch3: %{name}-skip-jdt.patch
21 Patch4: %{name}-no-connectors.patch
22 URL: http://tomcat.apache.org/
23 BuildRequires: ant >= 1.5.3
24 BuildRequires: ant-trax
25 BuildRequires: eclipse-jdt
27 BuildRequires: jakarta-commons-beanutils >= 1.7
28 BuildRequires: jakarta-commons-collections >= 0:3.1
29 BuildRequires: jakarta-commons-collections-source >= 0:3.1
30 BuildRequires: jakarta-commons-daemon >= 1.0
31 BuildRequires: jakarta-commons-dbcp >= 0:1.2.1
32 BuildRequires: jakarta-commons-dbcp-source >= 0:1.2.1
33 BuildRequires: jakarta-commons-digester >= 0:1.7
34 BuildRequires: jakarta-commons-el >= 0:1.0
35 BuildRequires: jakarta-commons-fileupload >= 0:1.0
36 BuildRequires: jakarta-commons-httpclient
37 BuildRequires: jakarta-commons-launcher >= 0:0.9
38 BuildRequires: jakarta-commons-logging >= 0:1.0.4
39 BuildRequires: jakarta-commons-modeler >= 2.0
40 BuildRequires: jakarta-commons-pool >= 0:1.2
41 BuildRequires: jakarta-commons-pool-source >= 0:1.2
42 BuildRequires: jakarta-regexp >= 0:1.3
43 BuildRequires: jakarta-servletapi5
44 #BuildRequires: jakarta-struts >= 0:1.2.7
45 BuildRequires: jakarta-struts >= 1.0.2
46 BuildRequires: javamail >= 0:1.3.1
47 BuildRequires: jaxp_parser_impl >= 0:2.7.1
48 BuildRequires: jdbc-stdext >= 0:2.0
49 BuildRequires: jdk >= 1.5
51 BuildRequires: jndi >= 0:1.2.1
52 BuildRequires: jpackage-utils
53 BuildRequires: jsse >= 0:1.0.3
54 BuildRequires: jta >= 0:1.0.1
55 BuildRequires: junit >= 0:3.8.1
56 BuildRequires: logging-log4j
57 #BuildRequires: mx4j >= 0:3.0.1
58 BuildRequires: mx4j >= 1.1.1
59 BuildRequires: puretls
60 BuildRequires: rpmbuild(macros) >= 1.300
61 BuildRequires: xerces-j >= 0:2.7.1
62 BuildRequires: xml-commons
63 #BuildRequires: xml-commons >= 1.3
64 Requires(post,postun): /sbin/ldconfig
65 Requires(post,preun): /sbin/chkconfig
66 Requires(postun): /usr/sbin/groupdel
67 Requires(postun): /usr/sbin/userdel
68 Requires(pre): /bin/id
69 Requires(pre): /usr/bin/getgid
70 Requires(pre): /usr/sbin/groupadd
71 Requires(pre): /usr/sbin/useradd
73 #Requires: jaf >= 1.0.1
74 Requires: jakarta-commons-beanutils
75 Requires: jakarta-commons-collections
76 Requires: jakarta-commons-digester
77 Requires: jakarta-commons-fileupload
78 Requires: jakarta-commons-logging
79 Requires: jakarta-regexp
80 Requires: jakarta-servletapi >= 4
81 Requires: javamail >= 1.2
82 Requires: jaxp_parser_impl
83 Requires: jdbc-stdext >= 2.0
84 Requires: jndi >= 1.2.1
86 Requires: jsse >= 1.0.2
87 Requires: jta >= 1.0.1
88 Requires: mx4j >= 1.1.1
93 Obsoletes: jakarta-tomcat
95 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
97 %define _tomcatdir %{_datadir}/tomcat
98 %define _logdir %{_var}/log
99 %define _vardir %{_var}/lib/tomcat
100 %define _sysconfdir /etc/tomcat
103 Tomcat is the servlet container that is used in the official Reference
104 Implementation for the Java Servlet and JavaServer Pages technologies.
105 The Java Servlet and JavaServer Pages specifications are developed by
106 Sun under the Java Community Process.
108 Tomcat is developed in an open and participatory environment and
109 released under the Apache Software License. Tomcat is intended to be a
110 collaboration of the best-of-breed developers from around the world.
111 We invite you to participate in this open development project.
113 %description -l pl.UTF-8
114 Tomcat to kontener serwletowy używany przez oficjalną implementację
115 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
116 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
120 Summary: The Apache Tomcat Servlet/JSP Container documentation
121 Summary(pl.UTF-8): Dokumentacja do Tomcata - kontekera Servlet/JSP
122 Group: Development/Languages/Java
123 Obsoletes: jakarta-tomcat-doc
126 The Tomcat Servlet/JSP Container documentation.
128 %description doc -l pl.UTF-8
129 Dokumentacja do Tomcata - kontekera Servlet/JSP.
132 %setup -q -n %{name}-%{version}-src
139 # servletapi built from jakarta-servletapi5.spec
142 # Remove pre-built jars
143 find -name '*.jar' | xargs rm -fv
149 > tomcat-deps/tomcat-dbcp.jar
152 # build jasper javadocs
154 CLASSPATH=$(build-classpath xml-commons-apis)
155 cat > build.properties <<EOF
156 ant.jar=$(build-classpath ant)
157 servlet-api.jar=$(build-classpath servlet-api)
158 jsp-api.jar=$(build-classpath jsp-api)
159 tools.jar=%{java_home}/lib/tools.jar
160 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
161 xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
162 commons-collections.jar=$(build-classpath commons-collections)
163 commons-logging.jar=$(build-classpath commons-logging)
164 commons-daemon.jar=$(build-classpath commons-daemon)
165 junit.jar=$(build-classpath junit)
166 commons-el.jar=$(build-classpath commons-el)
168 # building jasper needs eclipse classes
173 -Dcompile.source=1.4 \
174 -Dbuild.compiler=modern \
181 cat > build.properties <<EOF
182 commons-beanutils.jar=$(build-classpath commons-beanutils)
183 commons-launcher.jar=$(build-classpath commons-launcher)
184 commons-daemon.jar=$(build-classpath commons-daemon)
185 commons-digester.jar=$(build-classpath commons-digester)
186 commons-el.jar=$(build-classpath commons-el)
187 commons-logging-api.jar=$(build-classpath commons-logging-api)
188 commons-logging.jar=$(build-classpath commons-logging)
189 commons-modeler.jar=$(build-classpath commons-modeler)
190 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
191 xml-apis.jar=$(build-classpath xml-commons-apis)
192 jdt.jar=$(build-classpath org.eclipse.jdt.core)
193 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
194 commons-httpclient.jar=$(build-classpath commons-httpclient)
195 commons-collections.jar=$(build-classpath commons-collections)
196 commons-fileupload.jar=$(build-classpath commons-fileupload)
197 jmx.jar=$(build-classpath jmx)
198 jmx-tools.jar=$(build-classpath jmx)
199 junit.jar=$(build-classpath junit)
200 struts.jar=$(build-classpath struts)
201 jcert.jar=$(build-classpath java/jcert)
202 jnet.jar=$(build-classpath java/jnet)
203 jsse.jar=$(build-classpath java/jsse)
204 jta.jar=$(build-classpath jta)
205 puretls.jar=$(build-classpath puretls)
206 servlet-api.jar=$(build-classpath servlet-api)
207 servletapi.build.notrequired=true
208 jsp-api.jar=$(build-classpath jsp-api)
209 jspapi.build.notrequired=true
210 log4j.jar=$(build-classpath log4j)
211 # source is needed because source is copied modified and recompiled as tomcat jar
212 # see <target name="-build-tomcat-dbcp"> in build/build.xml
213 commons-collections.home=%{_prefix}/src/jakarta-commons-collections-3.1
214 commons-pool.home=%{_prefix}/src/jakarta-commons-pool-1.3
215 commons-dbcp.home=%{_prefix}/src/jakarta-commons-dbcp-1.2.1
216 tomcat-dbcp.home=$TOPDIR/tomcat-deps
217 # err, it compiles three above and then appends to the jar, so the file should exist
218 tomcat-dbcp.jar=$TOPDIR/tomcat-deps/tomcat-dbcp.jar
225 rm -rf $RPM_BUILD_ROOT
227 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
228 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
230 # we don't need dos scripts
233 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
234 sed -i -e s:SHUTDOWN:${randpw}: conf/{server,server-minimal}.xml
236 install -d $TOMCATDIR/bin \
237 $TOMCATDIR/common/{lib,classes,endorsed} \
238 $TOMCATDIR/server/{lib,classes} \
240 $RPM_BUILD_ROOT%{_sysconfdir} \
241 $RPM_BUILD_ROOT%{_logdir}/tomcat \
242 $RPM_BUILD_ROOT%{_vardir}/work \
243 $RPM_BUILD_ROOT/etc/rc.d/init.d
245 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
247 cp -pR conf/* $RPM_BUILD_ROOT%{_sysconfdir}
248 cp -HR bin common server $TOMCATDIR
250 cp -rf server/webapps $TOMCATDIR/server
251 cp -rf webapps $TOMCATDIR
252 cp -rf shared $TOMCATDIR
253 cp -rf temp $TOMCATDIR
255 ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
256 ln -sf %{_vardir}/work $TOMCATDIR/work
257 ln -sf %{_sysconfdir} $TOMCATDIR/conf
259 # symlinks instead of copies
260 ln -sf %{_javadir}/commons-daemon.jar $TOMCATDIR/bin
262 ln -sf %{_javadir}/activation.jar $TOMCATDIR/common/lib
263 ln -sf %{_javadir}/ant.jar $TOMCATDIR/common/lib
264 ln -sf %{_javadir}/commons-collections.jar $TOMCATDIR/common/lib
265 ln -sf %{_javadir}/commons-dbcp.jar $TOMCATDIR/common/lib
266 ln -sf %{_javadir}/commons-logging-api.jar $TOMCATDIR/common/lib
267 ln -sf %{_javadir}/commons-pool.jar $TOMCATDIR/common/lib
268 ln -sf %{_javadir}/servlet.jar $TOMCATDIR/common/lib
269 ln -sf %{_javadir}/servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
270 ln -sf %{_javadir}/jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
271 ln -sf %{_javadir}/jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
272 ln -sf %{_javadir}/jmxri.jar $TOMCATDIR/common/lib
273 ln -sf %{_javadir}/jndi.jar $TOMCATDIR/common/lib
274 ln -sf %{_javadir}/jta.jar $TOMCATDIR/common/lib
275 ln -sf %{_javadir}/mail.jar $TOMCATDIR/common/lib
276 ln -sf %{_javadir}/jsse.jar $TOMCATDIR/common/lib
277 ln -sf %{_javadir}/junit.jar $TOMCATDIR/common/lib
279 ln -sf %{_javadir}/mailapi.jar $TOMCATDIR/common/lib
280 ln -sf %{_javadir}/pop3.jar $TOMCATDIR/common/lib
281 ln -sf %{_javadir}/pop3.jar $TOMCATDIR/common/lib/pop.jar
282 ln -sf %{_javadir}/smtp.jar $TOMCATDIR/common/lib
283 ln -sf %{_javadir}/imap.jar $TOMCATDIR/common/lib
285 ln -sf %{_javadir}/commons-beanutils.jar $TOMCATDIR/server/lib
286 ln -sf %{_javadir}/commons-digester.jar $TOMCATDIR/server/lib
287 ln -sf %{_javadir}/commons-fileupload.jar $TOMCATDIR/server/lib
288 ln -sf %{_javadir}/commons-logging.jar $TOMCATDIR/server/lib
289 ln -sf %{_javadir}/commons-modeler.jar $TOMCATDIR/server/lib
290 ln -sf %{_javadir}/jaas.jar $TOMCATDIR/server/lib/jaas.jar
291 ln -sf %{_javadir}/mx4j-jmx.jar $TOMCATDIR/server/lib
292 ln -sf %{_javadir}/regexp.jar $TOMCATDIR/server/lib
293 ln -sf %{_javadir}/regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
294 ln -sf %{_javadir}/regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
296 ln -sf %{_javadir}/jaxp_parser_impl.jar $TOMCATDIR/common/endorsed
297 ln -sf %{_javadir}/xml-commons-apis.jar $TOMCATDIR/common/endorsed
299 ln -sf %{_javadir}/struts.jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
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)
326 %doc build/{RELEASE-NOTES,RUNNING.txt}
327 # tomcat wants to regenerate tomcat-users.xml
328 %dir %attr(775,root,http) %{_sysconfdir}
329 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*
330 %attr(754,root,root) /etc/rc.d/init.d/tomcat
332 %dir %{_tomcatdir}/bin
333 %{_tomcatdir}/bin/catalina-tasks.xml
334 %{_tomcatdir}/bin/jkstatus-tasks.xml
335 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
336 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
337 %{_tomcatdir}/bin/*.jar
338 %dir %{_tomcatdir}/common
339 %dir %{_tomcatdir}/common/classes
340 %dir %{_tomcatdir}/common/endorsed
341 %dir %{_tomcatdir}/common/i18n
342 %{_tomcatdir}/common/endorsed/*.jar
343 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
344 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
345 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
346 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
347 %{_tomcatdir}/common/lib
350 %dir %{_tomcatdir}/server
351 %dir %{_tomcatdir}/server/classes
352 %{_tomcatdir}/server/lib
353 %{_tomcatdir}/server/webapps
354 %{_tomcatdir}/webapps
359 %dir %attr(1730,root,http) %{_vardir}/work
360 %dir %attr(1730,root,http) %{_logdir}/tomcat
364 %defattr(644,root,root,755)