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