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