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