]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
6c447071c311f40f355c7dd24e0d207a376af36e
[packages/tomcat.git] / tomcat.spec
1 #
2 # Conditional build:
3 %bcond_without  javadoc         # skip building javadocs
4 %bcond_with     jta             # put jta jar into tomcat lib dir.
5 %bcond_without  java_sun        # build with gcj (does not work)
6 #
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
9 Name:           tomcat
10 Version:        5.5.27
11 Release:        1
12 License:        Apache v2.0
13 Group:          Networking/Daemons/Java
14 Source0:        http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
15 # Source0-md5:  eb3f196013550b9b1684e4ff18593a8e
16 Source1:        apache-%{name}.init
17 Source2:        apache-%{name}.sysconfig
18 Source10:       apache-%{name}-context-ROOT.xml
19 Source11:       apache-%{name}-context-balancer.xml
20 Source12:       apache-%{name}-context-jsp-examples.xml
21 Source13:       apache-%{name}-context-tomcat-docs.xml
22 Source14:       apache-%{name}-context-webdav.xml
23 Patch0:         apache-%{name}-skip-servletapi.patch
24 Patch1:         apache-%{name}-nsis.patch
25 Patch2:         apache-%{name}-native.patch
26 Patch3:         apache-%{name}-skip-jdt.patch
27 Patch4:         apache-%{name}-no-connectors.patch
28 Patch5:         apache-%{name}-dbcp.patch
29 Patch6:         apache-%{name}-struts.patch
30 Patch7:         apache-%{name}-admin-struts.patch
31 Patch8:         apache-%{name}-no_links_to_examples.patch
32 URL:            http://tomcat.apache.org/
33 # http://tomcat.apache.org/security-5.html
34 # Requires upgrade to 6.0.20 or (in future) 5.5.28. Or patch:
35 # http://svn.apache.org/viewvc?rev=781362&view=rev
36 BuildRequires:  security(CVE-2009-0033)
37 # http://tomcat.apache.org/security-5.html
38 # Requires upgrade to 6.0.20 or (in future) 5.5.28. Or patch:
39 # http://svn.apache.org/viewvc?rev=781379&view=rev
40 BuildRequires:  security(CVE-2009-0580)
41 # http://tomcat.apache.org/security-5.html
42 # Requires upgrade to 6.0.20 or (in future) 5.5.28. Or patches:
43 # http://svn.apache.org/viewvc?rev=781542&view=rev
44 # http://svn.apache.org/viewvc?rev=681156&view=rev
45 BuildRequires:  security(CVE-2009-0783)
46 # http://tomcat.apache.org/security-5.html
47 # Requires upgrade to 6.0.20 or (in future) 5.5.28. Or patch:
48 # http://svn.apache.org/viewvc?rev=750928&view=rev
49 BuildRequires:  security(CVE-2009-0781)
50 %if %{with java_sun}
51 BuildRequires:  java-sun >= 1.5
52 BuildRequires:  java-sun-jre >= 1.5
53 %else
54 BuildRequires:  java-gcj-compat-devel
55 %endif
56 BuildRequires:  ant >= 1.5.3
57 BuildRequires:  ant-trax
58 BuildRequires:  eclipse-jdt
59 BuildRequires:  jaas
60 BuildRequires:  java-regexp >= 0:1.3
61 BuildRequires:  java-commons-beanutils >= 1.7
62 BuildRequires:  java-commons-chain
63 BuildRequires:  java-commons-collections >= 0:3.1
64 BuildRequires:  java-commons-collections-tomcat5 >= 0:3.1
65 BuildRequires:  java-commons-daemon >= 1.0
66 BuildRequires:  java-commons-dbcp >= 0:1.2.1
67 BuildRequires:  java-commons-dbcp-tomcat5 >= 0:1.2.1
68 BuildRequires:  java-commons-digester >= 0:1.7
69 BuildRequires:  java-commons-el >= 0:1.0
70 BuildRequires:  java-commons-fileupload >= 0:1.0
71 BuildRequires:  java-commons-httpclient
72 BuildRequires:  java-commons-io >= 1.4
73 BuildRequires:  java-commons-launcher >= 0:0.9
74 BuildRequires:  java-commons-logging >= 0:1.0.4
75 BuildRequires:  java-commons-modeler >= 2.0
76 BuildRequires:  java-commons-pool >= 0:1.2
77 BuildRequires:  java-commons-pool-tomcat5 >= 0:1.2
78 BuildRequires:  java-jdbc-mysql
79 %{?with_jta:BuildRequires:      java-jta >= 0:1.0.1}
80 BuildRequires:  java-log4j
81 BuildRequires:  java-mail >= 0:1.3.1
82 BuildRequires:  java-puretls
83 BuildRequires:  java-servletapi5 = %{version}
84 BuildRequires:  java-struts >= 1.0.2
85 BuildRequires:  java-xerces >= 0:2.7.1
86 BuildRequires:  java-xml-commons
87 BuildRequires:  jaxp_parser_impl >= 0:2.7.1
88 BuildRequires:  jdbc-stdext >= 0:2.0
89 BuildRequires:  jmx
90 BuildRequires:  jndi >= 0:1.2.1
91 BuildRequires:  jpackage-utils
92 BuildRequires:  junit >= 0:3.8.1
93 BuildRequires:  rpmbuild(macros) >= 1.300
94 Requires(post,postun):  /sbin/ldconfig
95 Requires(post,preun):   /sbin/chkconfig
96 Requires(postun):       /usr/sbin/groupdel
97 Requires(postun):       /usr/sbin/userdel
98 Requires(pre):  /bin/id
99 Requires(pre):  /usr/bin/getgid
100 Requires(pre):  /usr/sbin/groupadd
101 Requires(pre):  /usr/sbin/useradd
102 Requires:       %{name}-jasper = %{version}-%{release}
103 Requires:       jaas
104 Requires:       java-commons-beanutils
105 Requires:       java-commons-collections
106 Requires:       java-commons-digester
107 Requires:       java-commons-el
108 Requires:       java-commons-logging
109 Requires:       java-commons-modeler
110 Requires:       java-commons-pool-tomcat5
111 Requires:       java-jdbc-mysql
112 Requires:       java-regexp
113 Requires:       java-servletapi5 = %{version}
114 Requires:       java-xml-commons
115 Requires:       javamail >= 1.2
116 Requires:       jaxp_parser_impl
117 Requires:       jdbc-stdext >= 2.0
118 Requires:       jndi >= 1.2.1
119 Requires:       jre >= 1.2
120 Requires:       jsse >= 1.0.2
121 %{?with_jta:Requires:   jta >= 1.0.1}
122 Requires:       rc-scripts
123 Provides:       group(servlet)
124 Provides:       group(tomcat)
125 Provides:       java-servlet-container
126 Provides:       user(tomcat)
127 Obsoletes:      apache-tomcat
128 Obsoletes:      jakarta-tomcat
129 BuildArch:      noarch
130 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
131
132 %define         _tomcatdir      %{_datadir}/tomcat
133 %define         _logdir         %{_var}/log
134 %define         _vardir         %{_var}/lib/tomcat
135 %define         _sysconfdir     /etc/tomcat
136
137 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
138
139 %description
140 Tomcat is the servlet container that is used in the official Reference
141 Implementation for the Java Servlet and JavaServer Pages technologies.
142 The Java Servlet and JavaServer Pages specifications are developed by
143 Sun under the Java Community Process.
144
145 Tomcat is developed in an open and participatory environment and
146 released under the Apache Software License. Tomcat is intended to be a
147 collaboration of the best-of-breed developers from around the world.
148 We invite you to participate in this open development project.
149
150 %description -l pl.UTF-8
151 Tomcat to kontener serwletowy używany przez oficjalną implementację
152 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
153 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
154 Community Process.
155
156 %package doc
157 Summary:        The Apache Tomcat Servlet/JSP Container documentation
158 Summary(pl.UTF-8):      Dokumentacja do Tomcata - kontenera Servlet/JSP
159 Group:          Documentation
160 Obsoletes:      apache-tomcat-doc
161 Obsoletes:      jakarta-tomcat-doc
162
163 %description doc
164 The Tomcat Servlet/JSP Container documentation.
165
166 %description doc -l pl.UTF-8
167 Dokumentacja do Tomcata - kontenera Servlet/JSP.
168
169 %package admin
170 Summary:        Apache Tomcat`s Administration Web Application
171 Summary(pl.UTF-8):      Panel Administracyjny dla Apache Tomcat
172 Group:          Networking/Daemons/Java/Servlets
173 Requires:       %{name} = %{version}-%{release}
174 Requires:       java-commons-chain
175 Obsoletes:      apache-tomcat-admin
176
177 %description admin
178 Administration Web Application for Apache Tomcat.
179
180 %description admin -l pl.UTF-8
181 Panel Administracyjny dla Apache Tomcat.
182
183 %package jasper
184 Summary:        JSP compiler
185 Summary(pl.UTF-8):      Kompilator JSP
186 Group:          Libraries/Java
187 Requires:       jpackage-utils
188 Obsoletes:      apache-tomcat-jasper
189
190 %description jasper
191 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
192 container.
193
194 %description jasper -l pl.UTF-8
195 Jasper jest kompilatorem Java ServerPages używanym przez kontener
196 servletów Apache Tomcat.
197
198 %prep
199 %setup -q -n apache-%{name}-%{version}-src
200 %patch0 -p1
201 %patch1 -p1
202 %patch2 -p1
203 %patch3 -p1
204 %patch4 -p1
205 %patch5 -p1
206 %patch6 -p1
207 %patch7 -p1
208 %patch8 -p1
209
210 # we don't need those scripts
211 rm -f container/catalina/src/bin/*.bat
212 rm -f container/catalina/src/bin/{startup,shutdown}.sh
213
214 # causes file(1) rpm to abort, and not really neccessary file
215 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
216 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
217 rm container/webapps/admin/images/Thumbs.db
218
219 # servletapi built from java-servletapi5.spec
220 rm -rf servletapi
221
222 # Remove pre-built jars
223 find -name '*.jar' | xargs rm -fv
224
225 %build
226 TOPDIR=$(pwd)
227
228 # build tomcat 5.5
229 cat > build.properties <<EOF
230 commons-beanutils.jar=$(find-jar commons-beanutils-core)
231 commons-launcher.jar=$(find-jar commons-launcher)
232 commons-daemon.jar=$(find-jar commons-daemon)
233 commons-digester.jar=$(find-jar commons-digester)
234 commons-el.jar=$(find-jar commons-el)
235 commons-logging-api.jar=$(find-jar commons-logging-api)
236 commons-logging.jar=$(find-jar commons-logging)
237 commons-modeler.jar=$(find-jar commons-modeler)
238 xercesImpl.jar=$(find-jar jaxp_parser_impl)
239 xml-apis.jar=$(find-jar xml-commons-apis)
240 jdt.jar=$(find-jar org.eclipse.jdt.core)
241 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
242 commons-httpclient.jar=$(find-jar commons-httpclient)
243 commons-collections.jar=$(find-jar commons-collections)
244 commons-fileupload.jar=$(find-jar commons-fileupload)
245 commons-io.jar=$(find-jar commons-io)
246 jmx.jar=$(find-jar jmx)
247 jmx-tools.jar=$(find-jar jmx)
248 junit.jar=$(find-jar junit)
249 struts.jar=$(find-jar struts-core)
250 struts-core.jar=$(find-jar struts-core)
251 struts-taglib.jar=$(find-jar struts-taglib)
252 jcert.jar=$(find-jar jcert)
253 jnet.jar=$(find-jar jnet)
254 jsse.jar=$(find-jar jsse)
255 %{?with_jta:jta.jar=$(find-jar jta)}
256 puretls.jar=$(find-jar puretls)
257 servlet-api.jar=$(find-jar servlet-api)
258 servletapi.build.notrequired=true
259 jsp-api.jar=$(find-jar jsp-api)
260 jspapi.build.notrequired=true
261 log4j.jar=$(find-jar log4j)
262 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
263 struts.lib=%{_javadir}-struts
264 EOF
265
266 if grep '=$' build.properties; then
267         : Some .jar could not be found
268         exit 1
269 fi
270
271 %ant \
272         -Dcompile.source=1.4
273
274 %install
275 rm -rf $RPM_BUILD_ROOT
276 cd build/build
277 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
278 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
279
280 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
281 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
282
283 install -d $TOMCATDIR/bin \
284             $TOMCATDIR/common/{lib,classes,endorsed} \
285             $TOMCATDIR/server/{lib,classes} \
286             $TOMCATDIR/webapps \
287             $RPM_BUILD_ROOT%{_logdir}/tomcat \
288             $RPM_BUILD_ROOT%{_vardir}/webapps \
289             $RPM_BUILD_ROOT%{_vardir}/work \
290             $RPM_BUILD_ROOT%{_vardir}/conf \
291             $RPM_BUILD_ROOT/etc/sysconfig \
292             $RPM_BUILD_ROOT/etc/rc.d/init.d
293
294 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
295 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
296
297 cp -a conf/* $CATALINADIR/conf
298 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
299 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
300 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
301 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
302 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
303 cp -HR bin common server $TOMCATDIR
304
305 cp -a server/webapps $TOMCATDIR/server
306 cp -a webapps $TOMCATDIR
307 cp -a shared $TOMCATDIR
308 cp -a temp $CATALINADIR
309
310 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
311 ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
312 ln -sf %{_vardir}/work $TOMCATDIR/work
313 ln -sf %{_vardir}/conf $TOMCATDIR/conf
314 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
315
316 # symlinks instead of copies
317 jars="commons-daemon commons-logging-api"
318 for jar in $jars; do
319         jar=$(find-jar $jar)
320         ln -sf $jar $TOMCATDIR/bin
321 done
322
323 jars="commons-el commons-dbcp-tomcat5 commons-pool-tomcat5 servlet-api jsp-api commons-modeler jdbc-mysql"
324 for jar in $jars; do
325         jar=$(find-jar $jar)
326         ln -sf $jar $TOMCATDIR/common/lib
327 done
328
329 jars="jaxp_parser_impl xml-commons-apis"
330 for jar in $jars; do
331         jar=$(find-jar $jar)
332         ln -sf $jar $TOMCATDIR/common/endorsed
333 done
334
335 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
336 for jar in $jars; do
337         jar=$(find-jar $jar)
338         ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
339 done
340
341 jars="commons-modeler"
342 for jar in $jars; do
343         jar=$(find-jar $jar)
344         ln -sf $jar $TOMCATDIR/server/lib
345 done
346
347 install -d $RPM_BUILD_ROOT%{_javadir}
348 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
349 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
350 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
351 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
352
353 %clean
354 rm -rf $RPM_BUILD_ROOT
355
356 %pre
357 %groupadd -g 234 -r -f tomcat
358 %groupadd -g 237 -r -f servlet
359 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
360
361 %post
362 /sbin/chkconfig --add tomcat
363 %service tomcat restart
364
365 %preun
366 if [ "$1" = "0" ]; then
367         %service tomcat stop
368         /sbin/chkconfig --del tomcat
369 fi
370
371 %postun
372 if [ "$1" = "0" ]; then
373         %userremove tomcat
374         %groupremove tomcat
375         %groupremove servlet
376 fi
377
378 %files
379 %defattr(644,root,root,755)
380 %doc build/{RELEASE-NOTES,RUNNING.txt}
381 %attr(754,root,root) /etc/rc.d/init.d/tomcat
382 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
383 %{_sysconfdir}
384 %dir %{_tomcatdir}
385 %dir %{_tomcatdir}/conf
386 %dir %{_tomcatdir}/bin
387 %{_tomcatdir}/bin/catalina-tasks.xml
388 %{_tomcatdir}/bin/jkstatus-tasks.xml
389 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
390 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
391 %{_tomcatdir}/bin/*.jar
392 %dir %{_tomcatdir}/common
393 %dir %{_tomcatdir}/common/classes
394 %dir %{_tomcatdir}/common/endorsed
395 %dir %{_tomcatdir}/common/i18n
396 %{_tomcatdir}/common/endorsed/*.jar
397 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
398 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
399 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
400 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
401 %{_tomcatdir}/common/lib
402 %dir %{_tomcatdir}/server
403 %dir %{_tomcatdir}/server/classes
404 %{_tomcatdir}/server/lib
405 %dir %{_tomcatdir}/server/webapps
406
407 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
408 %{_tomcatdir}/server/webapps/host-manager
409
410 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
411 %{_tomcatdir}/server/webapps/manager
412
413 %dir %{_tomcatdir}/webapps
414
415 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
416 %{_tomcatdir}/webapps/ROOT
417
418 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
419 %{_tomcatdir}/webapps/balancer
420
421 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
422 %{_tomcatdir}/webapps/webdav
423
424 %{_tomcatdir}/logs
425 %{_tomcatdir}/work
426 %{_tomcatdir}/shared
427 %dir %{_vardir}
428 # these directory has to be writeable because /admin need to modify config
429 # files and create temporary files
430 %dir %attr(775,root,tomcat) %{_vardir}/conf
431 %dir %attr(775,root,tomcat) %{_vardir}/conf/Catalina
432 %dir %{_vardir}/conf/Catalina/localhost
433 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
434 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
435 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
436 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
437 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
438 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
439 %dir %attr(1730,root,tomcat) %{_vardir}/work
440 %dir %attr(775,root,tomcat) %{_vardir}/webapps
441 %dir %attr(775,root,tomcat) %{_vardir}/temp
442 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
443 %{_vardir}/logs
444
445 %files doc
446 %defattr(644,root,root,755)
447 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
448 %{_tomcatdir}/webapps/tomcat-docs
449
450 %files admin
451 %defattr(644,root,root,755)
452 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
453 %{_tomcatdir}/server/webapps/admin
454
455 %files jasper
456 %defattr(644,root,root,755)
457 %{_javadir}/jasper-compiler-jdt.jar
458 %{_javadir}/jasper-compiler.jar
459 %{_javadir}/jasper-runtime.jar
This page took 0.050137 seconds and 3 git commands to generate.