]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- apply -admin-struts.patch
[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.5
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-regexp
101 Requires:       java-servletapi5 = %{version}
102 Requires:       java-xml-commons
103 Requires:       javamail >= 1.2
104 Requires:       jaxp_parser_impl
105 Requires:       jdbc-stdext >= 2.0
106 Requires:       jndi >= 1.2.1
107 Requires:       jre >= 1.2
108 Requires:       jsse >= 1.0.2
109 %{?with_jta:Requires:   jta >= 1.0.1}
110 Requires:       rc-scripts
111 Provides:       group(tomcat)
112 Provides:       java-servlet-container
113 Provides:       user(tomcat)
114 Obsoletes:      apache-tomcat
115 Obsoletes:      jakarta-tomcat
116 BuildArch:      noarch
117 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
118
119 %define         _tomcatdir      %{_datadir}/tomcat
120 %define         _logdir         %{_var}/log
121 %define         _vardir         %{_var}/lib/tomcat
122 %define         _sysconfdir     /etc/tomcat
123
124 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
125
126 %description
127 Tomcat is the servlet container that is used in the official Reference
128 Implementation for the Java Servlet and JavaServer Pages technologies.
129 The Java Servlet and JavaServer Pages specifications are developed by
130 Sun under the Java Community Process.
131
132 Tomcat is developed in an open and participatory environment and
133 released under the Apache Software License. Tomcat is intended to be a
134 collaboration of the best-of-breed developers from around the world.
135 We invite you to participate in this open development project.
136
137 %description -l pl.UTF-8
138 Tomcat to kontener serwletowy używany przez oficjalną implementację
139 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
140 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
141 Community Process.
142
143 %package doc
144 Summary:        The Apache Tomcat Servlet/JSP Container documentation
145 Summary(pl.UTF-8):      Dokumentacja do Tomcata - kontenera Servlet/JSP
146 Group:          Documentation
147 Obsoletes:      apache-tomcat-doc
148 Obsoletes:      jakarta-tomcat-doc
149
150 %description doc
151 The Tomcat Servlet/JSP Container documentation.
152
153 %description doc -l pl.UTF-8
154 Dokumentacja do Tomcata - kontenera Servlet/JSP.
155
156 %package admin
157 Summary:        Apache Tomcat`s Administration Web Application
158 Summary(pl.UTF-8):      Panel Administracyjny dla Apache Tomcat
159 Group:          Networking/Daemons/Java/Servlets
160 Requires:       %{name} = %{version}-%{release}
161 Requires:       java-commons-chain
162
163 %description admin
164 Administration Web Application for Apache Tomcat.
165
166 %description admin -l pl.UTF-8
167 Panel Administracyjny dla Apache Tomcat.
168
169 %package jasper
170 Summary:        JSP compiler
171 Summary(pl.UTF-8):      Kompilator JSP
172 Group:          Libraries/Java
173 Requires:       jpackage-utils
174 Obsoletes:      apache-tomcat-jasper
175
176 %description jasper
177 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
178 container.
179
180 %description jasper -l pl.UTF-8
181 Jasper jest kompilatorem Java ServerPages używanym przez kontener
182 servletów Apache Tomcat.
183
184 %prep
185 %setup -q -n apache-%{name}-%{version}-src
186 %patch0 -p1
187 %patch1 -p1
188 %patch2 -p1
189 %patch3 -p1
190 %patch4 -p1
191 %patch5 -p1
192 %patch6 -p1
193 %patch7 -p1
194
195 # we don't need dos scripts
196 rm -f container/catalina/src/bin/*.bat
197
198 # causes file(1) rpm to abort, and not really neccessary file
199 rm container/webapps/admin/images/Thumbs.db
200 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
201 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
202
203 # servletapi built from jakarta-servletapi5.spec
204 rm -rf servletapi
205
206 # Remove pre-built jars
207 find -name '*.jar' | xargs rm -fv
208
209 %build
210 TOPDIR=$(pwd)
211
212 # build tomcat 5.5
213 cat > build.properties <<EOF
214 commons-beanutils.jar=$(find-jar commons-beanutils-core)
215 commons-launcher.jar=$(find-jar commons-launcher)
216 commons-daemon.jar=$(find-jar commons-daemon)
217 commons-digester.jar=$(find-jar commons-digester)
218 commons-el.jar=$(find-jar commons-el)
219 commons-logging-api.jar=$(find-jar commons-logging-api)
220 commons-logging.jar=$(find-jar commons-logging)
221 commons-modeler.jar=$(find-jar commons-modeler)
222 xercesImpl.jar=$(find-jar jaxp_parser_impl)
223 xml-apis.jar=$(find-jar xml-commons-apis)
224 jdt.jar=$(find-jar org.eclipse.jdt.core)
225 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
226 commons-httpclient.jar=$(find-jar commons-httpclient)
227 commons-collections.jar=$(find-jar commons-collections)
228 commons-fileupload.jar=$(find-jar commons-fileupload)
229 commons-io.jar=$(find-jar commons-io)
230 jmx.jar=$(find-jar jmx)
231 jmx-tools.jar=$(find-jar jmx)
232 junit.jar=$(find-jar junit)
233 struts.jar=$(find-jar struts-core)
234 struts-core.jar=$(find-jar struts-core)
235 struts-taglib.jar=$(find-jar struts-taglib)
236 jcert.jar=$(find-jar jcert)
237 jnet.jar=$(find-jar jnet)
238 jsse.jar=$(find-jar jsse)
239 %{?with_jta:jta.jar=$(find-jar jta)}
240 puretls.jar=$(find-jar puretls)
241 servlet-api.jar=$(find-jar servlet-api)
242 servletapi.build.notrequired=true
243 jsp-api.jar=$(find-jar jsp-api)
244 jspapi.build.notrequired=true
245 log4j.jar=$(find-jar log4j)
246 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
247 struts.lib=%{_javadir}-struts
248 EOF
249
250 if grep '=$' build.properties; then
251         : Some .jar could not be found
252         exit 1
253 fi
254
255 %ant \
256         -Dcompile.source=1.4
257
258 %install
259 rm -rf $RPM_BUILD_ROOT
260 cd build/build
261 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
262 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
263
264 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
265 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
266
267 install -d $TOMCATDIR/bin \
268             $TOMCATDIR/common/{lib,classes,endorsed} \
269             $TOMCATDIR/server/{lib,classes} \
270             $TOMCATDIR/webapps \
271             $RPM_BUILD_ROOT%{_logdir}/tomcat \
272             $RPM_BUILD_ROOT%{_vardir}/webapps \
273             $RPM_BUILD_ROOT%{_vardir}/work \
274             $RPM_BUILD_ROOT%{_vardir}/conf \
275             $RPM_BUILD_ROOT/etc/sysconfig \
276             $RPM_BUILD_ROOT/etc/rc.d/init.d
277
278 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
279 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
280
281 cp -a conf/* $CATALINADIR/conf
282 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
283 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
284 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
285 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
286 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
287 cp -HR bin common server $TOMCATDIR
288
289 cp -a server/webapps $TOMCATDIR/server
290 cp -a webapps $TOMCATDIR
291 cp -a shared $TOMCATDIR
292 cp -a temp $CATALINADIR
293
294 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
295 ln -sf %{_vardir}/work $TOMCATDIR/work
296 ln -sf %{_vardir}/conf $TOMCATDIR/conf
297 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
298
299 # symlinks instead of copies
300 jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
301 for jar in $jars; do
302         jar=$(find-jar $jar)
303         ln -sf $jar $TOMCATDIR/common/lib
304 done
305
306 jars="jaxp_parser_impl xml-commons-apis"
307 for jar in $jars; do
308         jar=$(find-jar $jar)
309         ln -sf $jar $TOMCATDIR/common/endorsed
310 done
311
312 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
313 for jar in $jars; do
314         jar=$(find-jar $jar)
315         ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
316 done
317
318 %if 0
319 # do not make these symlinks as ant didn't do
320 jars="commons-daemon"
321 for jar in $jars; do
322         jar=$(find-jar $jar)
323         ln -sf $jar $TOMCATDIR/bin
324 done
325
326 jars="activation ant commons-dbcp commons-logging-api commons-pool servlet jdbc-stdext
327 jmxri jndi %{?with_jta:jta} mail jsse junit mailapi pop3"
328 for jar in $jars; do
329         jar=$(find-jar $jar)
330         ln -sf $jar $TOMCATDIR/common/lib
331 done
332
333 ln -sf servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
334 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
335 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
336 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
337
338 jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
339 for jar in $jars; do
340         jar=$(find-jar $jar)
341         ln -sf $jar $TOMCATDIR/server/lib
342 done
343 ln -sf regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
344 ln -sf regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
345 %endif
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 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
359
360 %post
361 /sbin/chkconfig --add tomcat
362 %service tomcat restart
363
364 %preun
365 if [ "$1" = "0" ]; then
366         %service tomcat stop
367         /sbin/chkconfig --del tomcat
368 fi
369
370 %postun
371 if [ "$1" = "0" ]; then
372         %userremove tomcat
373         %groupremove tomcat
374 fi
375
376 %files
377 %defattr(644,root,root,755)
378 %doc build/{RELEASE-NOTES,RUNNING.txt}
379 %attr(754,root,root) /etc/rc.d/init.d/tomcat
380 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
381 %{_sysconfdir}
382 %dir %{_tomcatdir}
383 %dir %{_tomcatdir}/conf
384 %dir %{_tomcatdir}/bin
385 %{_tomcatdir}/bin/catalina-tasks.xml
386 %{_tomcatdir}/bin/jkstatus-tasks.xml
387 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
388 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
389 %{_tomcatdir}/bin/*.jar
390 %dir %{_tomcatdir}/common
391 %dir %{_tomcatdir}/common/classes
392 %dir %{_tomcatdir}/common/endorsed
393 %dir %{_tomcatdir}/common/i18n
394 %{_tomcatdir}/common/endorsed/*.jar
395 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
396 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
397 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
398 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
399 %{_tomcatdir}/common/lib
400 %dir %{_tomcatdir}/server
401 %dir %{_tomcatdir}/server/classes
402 %{_tomcatdir}/server/lib
403 %dir %{_tomcatdir}/server/webapps
404
405 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
406 %{_tomcatdir}/server/webapps/host-manager
407
408 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
409 %{_tomcatdir}/server/webapps/manager
410
411 %dir %{_tomcatdir}/webapps
412
413 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
414 %{_tomcatdir}/webapps/ROOT
415
416 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
417 %{_tomcatdir}/webapps/balancer
418
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
420 %{_tomcatdir}/webapps/webdav
421
422 %{_tomcatdir}/work
423 %{_tomcatdir}/shared
424 %dir %{_vardir}
425 %dir %{_vardir}/conf
426 %dir %{_vardir}/conf/Catalina
427 %dir %{_vardir}/conf/Catalina/localhost
428 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
430 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
431 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
432 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
433 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
434 %dir %attr(1730,root,tomcat) %{_vardir}/work
435 %dir %attr(775,root,tomcat) %{_vardir}/webapps
436 %dir %attr(775,root,tomcat) %{_vardir}/temp
437 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
438 %{_vardir}/logs
439
440 %files doc
441 %defattr(644,root,root,755)
442 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
443 %{_tomcatdir}/webapps/tomcat-docs
444
445 %files admin
446 %defattr(644,root,root,755)
447 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
448 %{_tomcatdir}/server/webapps/admin
449
450 %files jasper
451 %defattr(644,root,root,755)
452 %{_javadir}/jasper-compiler-jdt.jar
453 %{_javadir}/jasper-compiler.jar
454 %{_javadir}/jasper-runtime.jar
This page took 0.084674 seconds and 4 git commands to generate.