]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- missing O:
[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:        1
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 Patch6:         apache-%{name}-struts.patch
31 Patch7:         apache-%{name}-admin-struts.patch
32 Patch8:         apache-%{name}-no_links_to_examples.patch
33 URL:            http://tomcat.apache.org/
34 %if %{with java_sun}
35 BuildRequires:  java-sun >= 1.5
36 BuildRequires:  java-sun-jre >= 1.5
37 %else
38 BuildRequires:  java-gcj-compat-devel
39 %endif
40 BuildRequires:  ant >= 1.5.3
41 BuildRequires:  ant-trax
42 BuildRequires:  eclipse-jdt
43 BuildRequires:  jaas
44 BuildRequires:  java-regexp >= 0:1.3
45 BuildRequires:  java-commons-beanutils >= 1.7
46 BuildRequires:  java-commons-chain
47 BuildRequires:  java-commons-collections >= 0:3.1
48 BuildRequires:  java-commons-collections-tomcat5 >= 0:3.1
49 BuildRequires:  java-commons-daemon >= 1.0
50 BuildRequires:  java-commons-dbcp >= 0:1.2.1
51 BuildRequires:  java-commons-dbcp-tomcat5 >= 0:1.2.1
52 BuildRequires:  java-commons-digester >= 0:1.7
53 BuildRequires:  java-commons-el >= 0:1.0
54 BuildRequires:  java-commons-fileupload >= 0:1.0
55 BuildRequires:  java-commons-httpclient
56 BuildRequires:  java-commons-io >= 1.4
57 BuildRequires:  java-commons-launcher >= 0:0.9
58 BuildRequires:  java-commons-logging >= 0:1.0.4
59 BuildRequires:  java-commons-modeler >= 2.0
60 BuildRequires:  java-commons-pool >= 0:1.2
61 BuildRequires:  java-commons-pool-tomcat5 >= 0:1.2
62 BuildRequires:  java-jdbc-mysql
63 %{?with_jta:BuildRequires:      java-jta >= 0:1.0.1}
64 BuildRequires:  java-log4j
65 BuildRequires:  java-mail >= 0:1.3.1
66 BuildRequires:  java-puretls
67 BuildRequires:  java-servletapi5 = %{version}
68 BuildRequires:  java-struts >= 1.0.2
69 BuildRequires:  java-xerces >= 0:2.7.1
70 BuildRequires:  java-xml-commons
71 BuildRequires:  jaxp_parser_impl >= 0:2.7.1
72 BuildRequires:  jdbc-stdext >= 0:2.0
73 BuildRequires:  jmx
74 BuildRequires:  jndi >= 0:1.2.1
75 BuildRequires:  jpackage-utils
76 BuildRequires:  junit >= 0:3.8.1
77 BuildRequires:  rpmbuild(macros) >= 1.300
78 Requires(post,postun):  /sbin/ldconfig
79 Requires(post,preun):   /sbin/chkconfig
80 Requires(postun):       /usr/sbin/groupdel
81 Requires(postun):       /usr/sbin/userdel
82 Requires(pre):  /bin/id
83 Requires(pre):  /usr/bin/getgid
84 Requires(pre):  /usr/sbin/groupadd
85 Requires(pre):  /usr/sbin/useradd
86 Requires:       %{name}-jasper = %{version}-%{release}
87 Requires:       jaas
88 Requires:       java-commons-beanutils
89 Requires:       java-commons-collections
90 Requires:       java-commons-digester
91 Requires:       java-commons-el
92 Requires:       java-commons-logging
93 Requires:       java-commons-modeler
94 Requires:       java-commons-pool-tomcat5
95 Requires:       java-jdbc-mysql
96 Requires:       java-regexp
97 Requires:       java-servletapi5 = %{version}
98 Requires:       java-xml-commons
99 Requires:       javamail >= 1.2
100 Requires:       jaxp_parser_impl
101 Requires:       jdbc-stdext >= 2.0
102 Requires:       jndi >= 1.2.1
103 Requires:       jre >= 1.2
104 Requires:       jsse >= 1.0.2
105 %{?with_jta:Requires:   jta >= 1.0.1}
106 Requires:       rc-scripts
107 Provides:       group(servlet)
108 Provides:       group(tomcat)
109 Provides:       java-servlet-container
110 Provides:       user(tomcat)
111 Obsoletes:      apache-tomcat
112 Obsoletes:      jakarta-tomcat
113 BuildArch:      noarch
114 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
115
116 %define         _tomcatdir      %{_datadir}/tomcat
117 %define         _logdir         %{_var}/log
118 %define         _vardir         %{_var}/lib/tomcat
119 %define         _sysconfdir     /etc/tomcat
120
121 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
122
123 %description
124 Tomcat is the servlet container that is used in the official Reference
125 Implementation for the Java Servlet and JavaServer Pages technologies.
126 The Java Servlet and JavaServer Pages specifications are developed by
127 Sun under the Java Community Process.
128
129 Tomcat is developed in an open and participatory environment and
130 released under the Apache Software License. Tomcat is intended to be a
131 collaboration of the best-of-breed developers from around the world.
132 We invite you to participate in this open development project.
133
134 %description -l pl.UTF-8
135 Tomcat to kontener serwletowy używany przez oficjalną implementację
136 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
137 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
138 Community Process.
139
140 %package doc
141 Summary:        The Apache Tomcat Servlet/JSP Container documentation
142 Summary(pl.UTF-8):      Dokumentacja do Tomcata - kontenera Servlet/JSP
143 Group:          Documentation
144 Obsoletes:      apache-tomcat-doc
145 Obsoletes:      jakarta-tomcat-doc
146
147 %description doc
148 The Tomcat Servlet/JSP Container documentation.
149
150 %description doc -l pl.UTF-8
151 Dokumentacja do Tomcata - kontenera Servlet/JSP.
152
153 %package admin
154 Summary:        Apache Tomcat`s Administration Web Application
155 Summary(pl.UTF-8):      Panel Administracyjny dla Apache Tomcat
156 Group:          Networking/Daemons/Java/Servlets
157 Requires:       %{name} = %{version}-%{release}
158 Requires:       java-commons-chain
159 Obsoletes:      apache-tomcat-admin
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 Obsoletes:      apache-tomcat-jasper
173
174 %description jasper
175 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
176 container.
177
178 %description jasper -l pl.UTF-8
179 Jasper jest kompilatorem Java ServerPages używanym przez kontener
180 servletów Apache Tomcat.
181
182 %prep
183 %setup -q -n apache-%{name}-%{version}-src
184 %patch0 -p1
185 %patch1 -p1
186 %patch2 -p1
187 %patch3 -p1
188 %patch4 -p1
189 %patch5 -p1
190 %patch6 -p1
191 %patch7 -p1
192 %patch8 -p1
193
194 # we don't need those scripts
195 rm -f container/catalina/src/bin/*.bat
196 rm -f container/catalina/src/bin/{startup,shutdown}.sh
197
198 # causes file(1) rpm to abort, and not really neccessary file
199 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
200 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
201 rm container/webapps/admin/images/Thumbs.db
202
203 # servletapi built from java-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 %{_logdir}/tomcat $TOMCATDIR/logs
296 ln -sf %{_vardir}/work $TOMCATDIR/work
297 ln -sf %{_vardir}/conf $TOMCATDIR/conf
298 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
299
300 # symlinks instead of copies
301 jars="commons-daemon commons-logging-api"
302 for jar in $jars; do
303         jar=$(find-jar $jar)
304         ln -sf $jar $TOMCATDIR/bin
305 done
306
307 jars="commons-el commons-dbcp-tomcat5 commons-pool-tomcat5 servlet-api jsp-api commons-modeler jdbc-mysql"
308 for jar in $jars; do
309         jar=$(find-jar $jar)
310         ln -sf $jar $TOMCATDIR/common/lib
311 done
312
313 jars="jaxp_parser_impl xml-commons-apis"
314 for jar in $jars; do
315         jar=$(find-jar $jar)
316         ln -sf $jar $TOMCATDIR/common/endorsed
317 done
318
319 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
320 for jar in $jars; do
321         jar=$(find-jar $jar)
322         ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
323 done
324
325 jars="commons-modeler"
326 for jar in $jars; do
327         jar=$(find-jar $jar)
328         ln -sf $jar $TOMCATDIR/server/lib
329 done
330
331 install -d $RPM_BUILD_ROOT%{_javadir}
332 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
333 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
334 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
335 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
336
337 %clean
338 rm -rf $RPM_BUILD_ROOT
339
340 %pre
341 %groupadd -g 234 -r -f tomcat
342 %groupadd -g 237 -r -f servlet
343 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
344
345 %post
346 /sbin/chkconfig --add tomcat
347 %service tomcat restart
348
349 %preun
350 if [ "$1" = "0" ]; then
351         %service tomcat stop
352         /sbin/chkconfig --del tomcat
353 fi
354
355 %postun
356 if [ "$1" = "0" ]; then
357         %userremove tomcat
358         %groupremove tomcat
359         %groupremove servlet
360 fi
361
362 %files
363 %defattr(644,root,root,755)
364 %doc build/{RELEASE-NOTES,RUNNING.txt}
365 %attr(754,root,root) /etc/rc.d/init.d/tomcat
366 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
367 %{_sysconfdir}
368 %dir %{_tomcatdir}
369 %dir %{_tomcatdir}/conf
370 %dir %{_tomcatdir}/bin
371 %{_tomcatdir}/bin/catalina-tasks.xml
372 %{_tomcatdir}/bin/jkstatus-tasks.xml
373 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
374 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
375 %{_tomcatdir}/bin/*.jar
376 %dir %{_tomcatdir}/common
377 %dir %{_tomcatdir}/common/classes
378 %dir %{_tomcatdir}/common/endorsed
379 %dir %{_tomcatdir}/common/i18n
380 %{_tomcatdir}/common/endorsed/*.jar
381 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
382 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
383 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
384 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
385 %{_tomcatdir}/common/lib
386 %dir %{_tomcatdir}/server
387 %dir %{_tomcatdir}/server/classes
388 %{_tomcatdir}/server/lib
389 %dir %{_tomcatdir}/server/webapps
390
391 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
392 %{_tomcatdir}/server/webapps/host-manager
393
394 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
395 %{_tomcatdir}/server/webapps/manager
396
397 %dir %{_tomcatdir}/webapps
398
399 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
400 %{_tomcatdir}/webapps/ROOT
401
402 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
403 %{_tomcatdir}/webapps/balancer
404
405 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
406 %{_tomcatdir}/webapps/webdav
407
408 %{_tomcatdir}/logs
409 %{_tomcatdir}/work
410 %{_tomcatdir}/shared
411 %dir %{_vardir}
412 # these directory has to be writeable because /admin need to modify config
413 # files and create temporary files
414 %dir %attr(775,root,tomcat) %{_vardir}/conf
415 %dir %attr(775,root,tomcat) %{_vardir}/conf/Catalina
416 %dir %{_vardir}/conf/Catalina/localhost
417 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
418 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
420 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
421 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
422 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
423 %dir %attr(1730,root,tomcat) %{_vardir}/work
424 %dir %attr(775,root,tomcat) %{_vardir}/webapps
425 %dir %attr(775,root,tomcat) %{_vardir}/temp
426 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
427 %{_vardir}/logs
428
429 %files doc
430 %defattr(644,root,root,755)
431 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
432 %{_tomcatdir}/webapps/tomcat-docs
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.053093 seconds and 3 git commands to generate.