]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- use relative symlinks for directories
[packages/tomcat.git] / tomcat.spec
1
2 # Conditional build:
3 %bcond_without  javadoc         # skip building javadocs
4 %bcond_without  webservices     # skip building webservices
5
6 %define         jspapiver       2.1
7 %define         servletapiver   2.5
8
9 %include        /usr/lib/rpm/macros.java
10 Summary:        Web server and Servlet/JSP Engine, RI for Servlet %{servletapiver}/JSP %{jspapiver} API
11 Summary(pl.UTF-8):      Serwer www i silnik Servlet/JSP będący wzorcową implementacją API Servlet %{servletapiver}/JSP %{jspapiver}
12 Name:           tomcat
13 Version:        6.0.29
14 Release:        2
15 License:        Apache v2.0
16 Group:          Networking/Daemons/Java
17 Source0:        http://www.apache.org/dist/tomcat/tomcat-6/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
18 # Source0-md5:  260de5ae62f415b9c085c5aeed4ef24c
19 Source1:        apache-%{name}.init
20 Source2:        apache-%{name}.sysconfig
21 Source3:        %{name}-build.properties
22 Source10:       %{name}-context-ROOT.xml
23 Source11:       %{name}-context-docs.xml
24 Source12:       %{name}-context-manager.xml
25 Source13:       %{name}-context-host-manager.xml
26 Source14:       %{name}-context-examples.xml
27 Patch0:         %{name}-build.xml.patch
28 Patch1:         %{name}-extras.xml.patch
29 Patch2:         server.xml-URIEncoding-utf8.patch
30 URL:            http://tomcat.apache.org/
31 BuildRequires:  ant >= 1.5.3
32 BuildRequires:  ant-trax
33 BuildRequires:  eclipse-jdt >= 3.2
34 BuildRequires:  java-commons-daemon >= 1.0
35 BuildRequires:  java-commons-dbcp-tomcat5 >= 0:1.1
36 BuildRequires:  java-commons-pool-tomcat5
37 %if %{with webservices}
38 BuildRequires:  java(JSR109)
39 BuildRequires:  java-geronimo-spec-jaxrpc
40 %endif
41 BuildRequires:  java-jdbc-mysql
42 BuildRequires:  java-mail
43 BuildRequires:  jdk
44 BuildRequires:  jpackage-utils
45 BuildRequires:  rpm-javaprov
46 BuildRequires:  rpmbuild(macros) >= 1.300
47 Requires(post,preun):   /sbin/chkconfig
48 Requires(postun):       /usr/sbin/groupdel
49 Requires(postun):       /usr/sbin/userdel
50 Requires(pre):  /bin/id
51 Requires(pre):  /usr/bin/getgid
52 Requires(pre):  /usr/sbin/groupadd
53 Requires(pre):  /usr/sbin/useradd
54 Requires:       java(jaxp_parser_impl)
55 Requires:       java(jndi) >= 1.2.1
56 Requires:       java-%{name}-catalina = %{epoch}:%{version}-%{release}
57 Requires:       java-%{name}-coyote = %{epoch}:%{version}-%{release}
58 Requires:       java-%{name}-jasper = %{epoch}:%{version}-%{release}
59 Requires:       java-commons-dbcp-tomcat5 >= 0:1.1
60 Requires:       java-commons-pool-tomcat5
61 Requires:       java-jdbc-mysql
62 Requires:       java-mail
63 Requires:       java-servletapi = %{epoch}:%{version}-%{release}
64 Requires:       jpackage-utils
65 Requires:       jre >= 1.2
66 Requires:       jsvc
67 Requires:       rc-scripts
68 Suggests:       tomcat-native
69 Provides:       group(servlet)
70 Provides:       group(tomcat)
71 Provides:       user(tomcat)
72 Obsoletes:      apache-tomcat
73 Obsoletes:      jakarta-tomcat
74 BuildArch:      noarch
75 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
76
77 %define         _tomcatdir      %{_datadir}/tomcat
78 %define         _logdir         %{_var}/log
79 %define         _vardir         %{_var}/lib/tomcat
80
81 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
82
83 %description
84 Tomcat is the servlet container that is used in the official Reference
85 Implementation for the Java Servlet and JavaServer Pages technologies.
86 The Java Servlet and JavaServer Pages specifications are developed by
87 Sun under the Java Community Process.
88
89 Tomcat is developed in an open and participatory environment and
90 released under the Apache Software License. Tomcat is intended to be a
91 collaboration of the best-of-breed developers from around the world.
92 We invite you to participate in this open development project.
93
94 %description -l pl.UTF-8
95 Tomcat to kontener serwletowy używany przez oficjalną implementację
96 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
97 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
98 Community Process.
99
100 %package webapp-docs
101 Summary:        The Apache Tomcat Servlet/JSP Container documentation
102 Summary(pl.UTF-8):      Dokumentacja do Tomcata - kontenera Servlet/JSP
103 Group:          Documentation
104 Obsoletes:      apache-tomcat-doc
105 Obsoletes:      jakarta-tomcat-doc
106 Obsoletes:      tomcat-doc
107
108 %description webapp-docs
109 The Tomcat Servlet/JSP Container documentation.
110
111 %description webapp-docs -l pl.UTF-8
112 Dokumentacja do Tomcata - kontenera Servlet/JSP.
113
114 %package webapp-manager
115 Summary:        The Apache Tomcat Servlet/JSP application manager
116 Summary(pl.UTF-8):      Zarządca aplikacji w Tomcacie
117 Group:          Networking/Daemons/Java/Servlets
118 Requires:       %{name} = %{epoch}:%{version}-%{release}
119
120 %description webapp-manager
121 The Apache Tomcat Servlet/JSP application manager.
122
123 %description webapp-manager -l pl.UTF-8
124 Zarządca aplikacji w Tomcacie.
125
126 %package webapp-host-manager
127 Summary:        The Apache Tomcat Servlet/JSP virtual hosts manager
128 Summary(pl.UTF-8):      Zarządca wirtualnych hostów w Tomcacie
129 Group:          Networking/Daemons/Java/Servlets
130 Requires:       %{name} = %{epoch}:%{version}-%{release}
131 Obsoletes:      tomcat-admin
132
133 %description webapp-host-manager
134 The Apache Tomcat Servlet/JSP virtual hosts manager.
135
136 %description webapp-host-manager -l pl.UTF-8
137 Zarządca wirtualnych hostów w Tomcacie.
138
139 %package webapp-examples
140 Summary:        The Apache Tomcat Servlet/JSP example applications
141 Summary(pl.UTF-8):      Przykładowe aplikacje dla Tomcata
142 Group:          Networking/Daemons/Java/Servlets
143 Requires:       %{name} = %{epoch}:%{version}-%{release}
144
145 %description webapp-examples
146 The Apache Tomcat Servlet/JSP example applications.
147
148 %description webapp-examples -l pl.UTF-8
149 Przykładowe aplikacje dla Tomcata.
150
151 %package webservices
152 Summary:        Web Services support (JSR 109)
153 Group:          Libraries/Java
154 Requires:       %{name} = %{epoch}:%{version}-%{release}
155 Requires:       java(JSR109)
156 Requires:       java-geronimo-spec-jaxrpc
157
158 %description webservices
159 Factories for JSR 109 which may be used to resolve web services
160 references.
161
162 %package -n java-tomcat-catalina
163 Summary:        Tomcat's servlet container
164 Group:          Libraries/Java
165 Requires:       jpackage-utils
166
167 %description -n java-tomcat-catalina
168 Catalina is Tomcat's servlet container. Catalina implements Sun
169 Microsystems' specifications for servlet and JavaServer Pages (JSP).
170
171 %package -n java-tomcat-coyote
172 Summary:        Tomcat HTTP connector
173 Group:          Libraries/Java
174 Requires:       jpackage-utils
175
176 %description -n java-tomcat-coyote
177 Coyote is Tomcat's HTTP Connector component that supports the HTTP 1.1
178 protocol for the web server or application container. Coyote listens
179 for incoming connections on a specific TCP port on the server and
180 forwards the request to the Tomcat Engine to process the request and
181 send back a response to the requesting client.
182
183 %package -n java-tomcat-jasper
184 Summary:        JSP compiler
185 Summary(pl.UTF-8):      Kompilator JSP
186 Group:          Libraries/Java
187 Requires:       eclipse-jdt >= 3.2
188 Requires:       jpackage-utils
189 Obsoletes:      apache-tomcat-jasper
190 Obsoletes:      tomcat-jasper
191
192 %description -n java-tomcat-jasper
193 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
194 container.
195
196 %description -n java-tomcat-jasper -l pl.UTF-8
197 Jasper jest kompilatorem Java ServerPages używanym przez kontener
198 servletów Apache Tomcat.
199
200 %package -n java-servletapi
201 Summary:        Java servlet and JSP implementation classes
202 Summary(pl.UTF-8):      Klasy z implementacją Java Servlet i JSP
203 Group:          Libraries/Java
204 Provides:       java(jsp) = %{jspapiver}
205 Provides:       java(servlet) = %{servletapiver}
206 Obsoletes:      java-servletapi5
207 Obsoletes:      jakarta-servletapi5
208
209 %description -n java-servletapi
210 Implementation classes of the Java Servlet and JSP APIs (packages
211 javax.servlet, javax.servlet.http, javax.servlet.jsp, and
212 javax.servlet.jsp.tagext).
213
214 %description -n java-servletapi -l pl.UTF-8
215 Implementacje klas API Java Servlet i JSP (pakiety javax.servlet,
216 javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext).
217
218 %prep
219 %setup -q -n apache-%{name}-%{version}-src
220 %patch0 -p0
221 %patch1 -p0
222 %patch2 -p1
223
224 # we don't need those scripts
225 rm bin/*.bat
226 rm bin/{startup,shutdown}.sh
227
228 cp -a %{SOURCE3} build.properties
229
230 %build
231 TOPDIR=$(pwd)
232
233 %ant \
234         -Drpm.javadir=%{_javadir} \
235         -Drpm.libdir=%{_libdir}
236
237 %if %{with javadoc}
238 %ant -f dist.xml dist-javadoc
239 %endif
240
241 %if %{with webservices}
242 mkdir -p output/extras/webservices
243
244 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
245 ln -s %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
246
247 %ant -f extras.xml webservices
248 %endif
249
250 %install
251 rm -rf $RPM_BUILD_ROOT
252 cd output/build
253
254 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
255 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
256
257 # useful for constructing relative symlinks. Is there a better way?
258 TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##')
259 CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##')
260 SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##')
261
262 install -d $TOMCATDIR \
263             $CATALINADIR/temp \
264             $RPM_BUILD_ROOT%{_vardir}/webapps \
265             $RPM_BUILD_ROOT%{_vardir}/work \
266             $RPM_BUILD_ROOT%{_vardir}/conf \
267             $RPM_BUILD_ROOT%{_logdir}/tomcat \
268             $RPM_BUILD_ROOT/etc/sysconfig \
269             $RPM_BUILD_ROOT/etc/rc.d/init.d
270
271 install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
272 cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
273
274 cp -a conf/* $CATALINADIR/conf
275 install -d $CATALINADIR/conf/Catalina/localhost
276 cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
277 cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml
278 cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml
279 cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml
280 cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml
281
282 cp -a bin lib webapps $TOMCATDIR
283 cp -a temp $CATALINADIR
284
285 ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs
286 ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs
287 ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work
288 ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf
289 ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
290
291 # symlinks instead of copies
292 jars="commons-daemon commons-logging-api"
293 for jar in $jars; do
294         jar=$(find-jar $jar)
295         ln -sf $jar $TOMCATDIR/bin
296 done
297
298 jars="commons-pool-tomcat5 commons-dbcp-tomcat5 mysql-connector-java org.eclipse.jdt.core mail"
299 for jar in $jars; do
300         jar=$(find-jar $jar)
301         ln -sf $jar $TOMCATDIR/lib
302 done
303
304 install -d $RPM_BUILD_ROOT%{_javadir}
305 mv $TOMCATDIR/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
306 mv $TOMCATDIR/lib/jsp-api.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api-%{jspapiver}.jar
307 mv $TOMCATDIR/lib/servlet-api.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api-%{servletapiver}.jar
308 mv $TOMCATDIR/lib/catalina.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-catalina.jar
309 mv $TOMCATDIR/lib/tomcat-coyote.jar $RPM_BUILD_ROOT%{_javadir}/tomcat6-coyote.jar
310
311 ln -s jsp-api-%{jspapiver}.jar $RPM_BUILD_ROOT%{_javadir}/jsp-api.jar
312 ln -s servlet-api-%{servletapiver}.jar $RPM_BUILD_ROOT%{_javadir}/servlet-api.jar
313
314 # XXX add softlinks jasper-compiler.jar and jasper-runtime for compatibility with tomcat 5.5?
315 ln -sf %{_javadir}/jasper-el.jar $TOMCATDIR/lib
316 ln -sf %{_javadir}/jasper.jar $TOMCATDIR/lib
317
318 ln -sf %{_javadir}/jsp-api-%{jspapiver}.jar $TOMCATDIR/lib/jsp-api.jar
319 ln -sf %{_javadir}/servlet-api-%{servletapiver}.jar $TOMCATDIR/lib/servlet-api.jar
320
321 ln -sf %{_javadir}/tomcat6-catalina.jar $TOMCATDIR/lib/catalina.jar
322 ln -sf %{_javadir}/tomcat6-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
323
324 %if %{with webservices}
325 install ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
326
327 ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
328 ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
329 %endif
330
331 %clean
332 rm -rf $RPM_BUILD_ROOT
333
334 %pre
335 %groupadd -g 234 -r -f tomcat
336 %groupadd -g 237 -r -f servlet
337 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
338
339 %post
340 /sbin/chkconfig --add tomcat
341 %service tomcat restart
342
343 %preun
344 if [ "$1" = "0" ]; then
345         %service tomcat stop
346         /sbin/chkconfig --del tomcat
347 fi
348
349 %postun
350 if [ "$1" = "0" ]; then
351         %userremove tomcat
352         %groupremove tomcat
353         %groupremove servlet
354 fi
355
356 %files
357 %defattr(644,root,root,755)
358 %doc KEYS RELEASE-NOTES RELEASE-PLAN-6.0.txt RUNNING.txt
359 %attr(754,root,root) /etc/rc.d/init.d/tomcat
360 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
361 %{_sysconfdir}/tomcat
362 %dir %{_tomcatdir}
363 %dir %{_tomcatdir}/conf
364 %dir %{_tomcatdir}/bin
365 %{_tomcatdir}/bin/catalina-tasks.xml
366 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
367 %{_tomcatdir}/bin/*.jar
368 %dir %{_tomcatdir}/lib
369 %{_tomcatdir}/lib/annotations-api.jar
370 %{_tomcatdir}/lib/catalina-ant.jar
371 %{_tomcatdir}/lib/catalina-ha.jar
372 %{_tomcatdir}/lib/catalina.jar
373 %{_tomcatdir}/lib/catalina-tribes.jar
374 %{_tomcatdir}/lib/commons-dbcp-tomcat5.jar
375 %{_tomcatdir}/lib/commons-pool-tomcat5.jar
376 %{_tomcatdir}/lib/el-api.jar
377 %{_tomcatdir}/lib/jasper-el.jar
378 %{_tomcatdir}/lib/jasper.jar
379 %{_tomcatdir}/lib/jsp-api.jar
380 %{_tomcatdir}/lib/mail.jar
381 %{_tomcatdir}/lib/mysql-connector-java.jar
382 %{_tomcatdir}/lib/org.eclipse.jdt.core.jar
383 %{_tomcatdir}/lib/servlet-api.jar
384 %{_tomcatdir}/lib/tomcat-coyote.jar
385 %{_tomcatdir}/lib/tomcat-i18n-es.jar
386 %{_tomcatdir}/lib/tomcat-i18n-fr.jar
387 %{_tomcatdir}/lib/tomcat-i18n-ja.jar
388
389 %dir %{_tomcatdir}/webapps
390
391 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
392 %{_tomcatdir}/webapps/ROOT
393
394 %{_tomcatdir}/logs
395 %{_tomcatdir}/work
396 %dir %attr(770,root,tomcat) %{_vardir}
397 # these directory has to be writeable because /admin need to modify config
398 # files and create temporary files
399 %dir %attr(770,root,tomcat) %{_vardir}/conf
400 %dir %attr(770,root,tomcat) %{_vardir}/conf/Catalina
401 %dir %{_vardir}/conf/Catalina/localhost
402 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
403 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
404 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
405 %config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
406 %dir %attr(770,root,tomcat) %{_vardir}/work
407 %dir %attr(770,root,tomcat) %{_vardir}/webapps
408 %dir %attr(770,root,tomcat) %{_vardir}/temp
409 %dir %attr(770,root,tomcat) %{_logdir}/tomcat
410 %{_vardir}/logs
411
412 %files webapp-docs
413 %defattr(644,root,root,755)
414 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml
415 %{_tomcatdir}/webapps/docs
416
417 %files webapp-manager
418 %defattr(644,root,root,755)
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
420 %{_tomcatdir}/webapps/manager
421
422 %files webapp-host-manager
423 %defattr(644,root,root,755)
424 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
425 %{_tomcatdir}/webapps/host-manager
426
427 %files webapp-examples
428 %defattr(644,root,root,755)
429 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml
430 %{_tomcatdir}/webapps/examples
431
432 %if %{with webservices}
433 %files webservices
434 %defattr(644,root,root,755)
435 %{_tomcatdir}/lib/catalina-ws.jar
436 %{_tomcatdir}/lib/jsr109.jar
437 %{_tomcatdir}/lib/jaxrpc.jar
438 %endif
439
440 %files -n java-tomcat-jasper
441 %defattr(644,root,root,755)
442 %{_javadir}/jasper-el.jar
443 %{_javadir}/jasper.jar
444
445 %files -n java-tomcat-catalina
446 %defattr(644,root,root,755)
447 %{_javadir}/tomcat6-catalina.jar
448
449 %files -n java-tomcat-coyote
450 %defattr(644,root,root,755)
451 %{_javadir}/tomcat6-coyote.jar
452
453 %files -n java-servletapi
454 %defattr(644,root,root,755)
455 %{_javadir}/jsp-api*.jar
456 %{_javadir}/servlet-api*.jar
This page took 1.663136 seconds and 4 git commands to generate.