]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- remove unused macro, misc changes
[packages/tomcat.git] / tomcat.spec
1 # TODO
2 # - rename %{name}-jasper -> java-jasper?
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:        1
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 Patch6:         apache-%{name}-struts.patch
32 Patch7:         apache-%{name}-admin-struts.patch
33 Patch8:         apache-%{name}-no_links_to_examples.patch
34 # Following patches are applied in tomcat svn. Remove them while updating to 5.5.28
35 # See: http://tomcat.apache.org/security-5.html
36 Patch100:       tomcat-CVE-2008-5515.patch
37 Patch101:       tomcat-CVE-2009-0033.patch
38 Patch102:       tomcat-CVE-2009-0580.patch
39 Patch103:       tomcat-CVE-2009-0781.patch
40 Patch104:       tomcat-CVE-2009-0783.patch
41 URL:            http://tomcat.apache.org/
42 %if %{with java_sun}
43 BuildRequires:  java-sun >= 1.5
44 BuildRequires:  java-sun-jre >= 1.5
45 %else
46 BuildRequires:  java-gcj-compat-devel
47 %endif
48 BuildRequires:  ant >= 1.5.3
49 BuildRequires:  ant-trax
50 BuildRequires:  eclipse-jdt
51 BuildRequires:  jaas
52 BuildRequires:  java-regexp >= 0:1.3
53 BuildRequires:  java-commons-beanutils >= 1.7
54 BuildRequires:  java-commons-chain
55 BuildRequires:  java-commons-collections >= 0:3.1
56 BuildRequires:  java-commons-collections-tomcat5 >= 0:3.1
57 BuildRequires:  java-commons-daemon >= 1.0
58 BuildRequires:  java-commons-dbcp >= 0:1.2.1
59 BuildRequires:  java-commons-dbcp-tomcat5 >= 0:1.2.1
60 BuildRequires:  java-commons-digester >= 0:1.7
61 BuildRequires:  java-commons-el >= 0:1.0
62 BuildRequires:  java-commons-fileupload >= 0:1.0
63 BuildRequires:  java-commons-httpclient
64 BuildRequires:  java-commons-io >= 1.4
65 BuildRequires:  java-commons-launcher >= 0:0.9
66 BuildRequires:  java-commons-logging >= 0:1.0.4
67 BuildRequires:  java-commons-modeler >= 2.0
68 BuildRequires:  java-commons-pool >= 0:1.2
69 BuildRequires:  java-commons-pool-tomcat5 >= 0:1.2
70 BuildRequires:  java-jdbc-mysql
71 %{?with_jta:BuildRequires:      java-jta >= 0:1.0.1}
72 BuildRequires:  java-log4j
73 BuildRequires:  java-mail >= 0:1.3.1
74 BuildRequires:  java-puretls
75 BuildRequires:  java-servletapi5 = %{version}
76 BuildRequires:  java-struts >= 1.0.2
77 BuildRequires:  java-xerces >= 0:2.7.1
78 BuildRequires:  java-xml-commons
79 BuildRequires:  jaxp_parser_impl >= 0:2.7.1
80 BuildRequires:  jdbc-stdext >= 0:2.0
81 BuildRequires:  jmx
82 BuildRequires:  jndi >= 0:1.2.1
83 BuildRequires:  jpackage-utils
84 BuildRequires:  junit >= 0:3.8.1
85 BuildRequires:  rpmbuild(macros) >= 1.300
86 Requires(post,postun):  /sbin/ldconfig
87 Requires(post,preun):   /sbin/chkconfig
88 Requires(postun):       /usr/sbin/groupdel
89 Requires(postun):       /usr/sbin/userdel
90 Requires(pre):  /bin/id
91 Requires(pre):  /usr/bin/getgid
92 Requires(pre):  /usr/sbin/groupadd
93 Requires(pre):  /usr/sbin/useradd
94 Requires:       %{name}-jasper = %{version}-%{release}
95 Requires:       jaas
96 Requires:       java-commons-beanutils
97 Requires:       java-commons-collections
98 Requires:       java-commons-digester
99 Requires:       java-commons-el
100 Requires:       java-commons-logging
101 Requires:       java-commons-modeler
102 Requires:       java-commons-pool-tomcat5
103 Requires:       java-jdbc-mysql
104 Requires:       java-regexp
105 Requires:       java-servletapi5 = %{version}
106 Requires:       java-xml-commons
107 Requires:       javamail >= 1.2
108 Requires:       jaxp_parser_impl
109 Requires:       jdbc-stdext >= 2.0
110 Requires:       jndi >= 1.2.1
111 Requires:       jre >= 1.2
112 Requires:       jsse >= 1.0.2
113 %{?with_jta:Requires:   jta >= 1.0.1}
114 Requires:       rc-scripts
115 Provides:       group(servlet)
116 Provides:       group(tomcat)
117 Provides:       java-servlet-container
118 Provides:       user(tomcat)
119 Obsoletes:      apache-tomcat
120 Obsoletes:      jakarta-tomcat
121 BuildArch:      noarch
122 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
123
124 %define         _tomcatdir      %{_datadir}/tomcat
125 %define         _logdir         %{_var}/log
126 %define         _vardir         %{_var}/lib/tomcat
127 %define         _sysconfdir     /etc/tomcat
128
129 %description
130 Tomcat is the servlet container that is used in the official Reference
131 Implementation for the Java Servlet and JavaServer Pages technologies.
132 The Java Servlet and JavaServer Pages specifications are developed by
133 Sun under the Java Community Process.
134
135 Tomcat is developed in an open and participatory environment and
136 released under the Apache Software License. Tomcat is intended to be a
137 collaboration of the best-of-breed developers from around the world.
138 We invite you to participate in this open development project.
139
140 %description -l pl.UTF-8
141 Tomcat to kontener serwletowy używany przez oficjalną implementację
142 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
143 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
144 Community Process.
145
146 %package doc
147 Summary:        The Apache Tomcat Servlet/JSP Container documentation
148 Summary(pl.UTF-8):      Dokumentacja do Tomcata - kontenera Servlet/JSP
149 Group:          Documentation
150 Obsoletes:      apache-tomcat-doc
151 Obsoletes:      jakarta-tomcat-doc
152
153 %description doc
154 The Tomcat Servlet/JSP Container documentation.
155
156 %description doc -l pl.UTF-8
157 Dokumentacja do Tomcata - kontenera Servlet/JSP.
158
159 %package admin
160 Summary:        Apache Tomcat's Administration Web Application
161 Summary(pl.UTF-8):      Panel Administracyjny dla Apache Tomcat
162 Group:          Networking/Daemons/Java/Servlets
163 Requires:       %{name} = %{version}-%{release}
164 Requires:       java-commons-chain
165 Obsoletes:      apache-tomcat-admin
166
167 %description admin
168 Administration Web Application for Apache Tomcat.
169
170 %description admin -l pl.UTF-8
171 Panel Administracyjny dla Apache Tomcat.
172
173 %package jasper
174 Summary:        JSP compiler
175 Summary(pl.UTF-8):      Kompilator JSP
176 Group:          Libraries/Java
177 Requires:       jpackage-utils
178 Obsoletes:      apache-tomcat-jasper
179
180 %description jasper
181 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
182 container.
183
184 %description jasper -l pl.UTF-8
185 Jasper jest kompilatorem Java ServerPages używanym przez kontener
186 servletów Apache Tomcat.
187
188 %prep
189 %setup -q -n apache-%{name}-%{version}-src
190 %patch0 -p1
191 %patch1 -p1
192 %patch2 -p1
193 %patch3 -p1
194 %patch4 -p1
195 %patch5 -p1
196 %patch6 -p1
197 %patch7 -p1
198 %patch8 -p1
199
200 %patch100 -p0
201 %patch101 -p0
202 %patch102 -p0
203 %patch103 -p0
204 %patch104 -p0
205
206 # we don't need those scripts
207 rm -f container/catalina/src/bin/*.bat
208 rm -f container/catalina/src/bin/{startup,shutdown}.sh
209
210 # causes file(1) rpm to abort, and not really neccessary file
211 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
212 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
213 rm container/webapps/admin/images/Thumbs.db
214
215 # servletapi built from java-servletapi5.spec
216 rm -rf servletapi
217
218 # Remove pre-built jars
219 find -name '*.jar' | xargs rm -fv
220
221 %build
222 TOPDIR=$(pwd)
223
224 # build tomcat 5.5
225 cat > build.properties <<EOF
226 commons-beanutils.jar=$(find-jar commons-beanutils-core)
227 commons-launcher.jar=$(find-jar commons-launcher)
228 commons-daemon.jar=$(find-jar commons-daemon)
229 commons-digester.jar=$(find-jar commons-digester)
230 commons-el.jar=$(find-jar commons-el)
231 commons-logging-api.jar=$(find-jar commons-logging-api)
232 commons-logging.jar=$(find-jar commons-logging)
233 commons-modeler.jar=$(find-jar commons-modeler)
234 xercesImpl.jar=$(find-jar jaxp_parser_impl)
235 xml-apis.jar=$(find-jar xml-commons-apis)
236 jdt.jar=$(find-jar org.eclipse.jdt.core)
237 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
238 commons-httpclient.jar=$(find-jar commons-httpclient)
239 commons-collections.jar=$(find-jar commons-collections)
240 commons-fileupload.jar=$(find-jar commons-fileupload)
241 commons-io.jar=$(find-jar commons-io)
242 jmx.jar=$(find-jar jmx)
243 jmx-tools.jar=$(find-jar jmx)
244 junit.jar=$(find-jar junit)
245 struts.jar=$(find-jar struts-core)
246 struts-core.jar=$(find-jar struts-core)
247 struts-taglib.jar=$(find-jar struts-taglib)
248 jcert.jar=$(find-jar jcert)
249 jnet.jar=$(find-jar jnet)
250 jsse.jar=$(find-jar jsse)
251 %{?with_jta:jta.jar=$(find-jar jta)}
252 puretls.jar=$(find-jar puretls)
253 servlet-api.jar=$(find-jar servlet-api)
254 servletapi.build.notrequired=true
255 jsp-api.jar=$(find-jar jsp-api)
256 jspapi.build.notrequired=true
257 log4j.jar=$(find-jar log4j)
258 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
259 struts.lib=%{_javadir}-struts
260 EOF
261
262 if grep '=$' build.properties; then
263         : Some .jar could not be found
264         exit 1
265 fi
266
267 %ant \
268         -Dcompile.source=1.4
269
270 %install
271 rm -rf $RPM_BUILD_ROOT
272 cd build/build
273 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
274 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
275
276 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
277 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
278
279 install -d $TOMCATDIR/bin \
280             $TOMCATDIR/common/{lib,classes,endorsed} \
281             $TOMCATDIR/server/{lib,classes} \
282             $TOMCATDIR/webapps \
283             $RPM_BUILD_ROOT%{_logdir}/tomcat \
284             $RPM_BUILD_ROOT%{_vardir}/webapps \
285             $RPM_BUILD_ROOT%{_vardir}/work \
286             $RPM_BUILD_ROOT%{_vardir}/conf \
287             $RPM_BUILD_ROOT/etc/sysconfig \
288             $RPM_BUILD_ROOT/etc/rc.d/init.d
289
290 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
291 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
292
293 cp -a conf/* $CATALINADIR/conf
294 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
295 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
296 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
297 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
298 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
299 cp -HR bin common server $TOMCATDIR
300
301 cp -a server/webapps $TOMCATDIR/server
302 cp -a webapps $TOMCATDIR
303 cp -a shared $TOMCATDIR
304 cp -a temp $CATALINADIR
305
306 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
307 ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
308 ln -sf %{_vardir}/work $TOMCATDIR/work
309 ln -sf %{_vardir}/conf $TOMCATDIR/conf
310 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
311
312 # symlinks instead of copies
313 jars="commons-daemon commons-logging-api"
314 for jar in $jars; do
315         jar=$(find-jar $jar)
316         ln -sf $jar $TOMCATDIR/bin
317 done
318
319 jars="commons-el commons-dbcp-tomcat5 commons-pool-tomcat5 servlet-api jsp-api commons-modeler jdbc-mysql"
320 for jar in $jars; do
321         jar=$(find-jar $jar)
322         ln -sf $jar $TOMCATDIR/common/lib
323 done
324
325 jars="jaxp_parser_impl xml-commons-apis"
326 for jar in $jars; do
327         jar=$(find-jar $jar)
328         ln -sf $jar $TOMCATDIR/common/endorsed
329 done
330
331 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
332 for jar in $jars; do
333         jar=$(find-jar $jar)
334         ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
335 done
336
337 jars="commons-modeler"
338 for jar in $jars; do
339         jar=$(find-jar $jar)
340         ln -sf $jar $TOMCATDIR/server/lib
341 done
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 %groupadd -g 237 -r -f servlet
355 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
356
357 %post
358 /sbin/chkconfig --add tomcat
359 %service tomcat restart
360
361 %preun
362 if [ "$1" = "0" ]; then
363         %service tomcat stop
364         /sbin/chkconfig --del tomcat
365 fi
366
367 %postun
368 if [ "$1" = "0" ]; then
369         %userremove tomcat
370         %groupremove tomcat
371         %groupremove servlet
372 fi
373
374 %files
375 %defattr(644,root,root,755)
376 %doc build/{RELEASE-NOTES,RUNNING.txt}
377 %attr(754,root,root) /etc/rc.d/init.d/tomcat
378 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
379 %{_sysconfdir}
380 %dir %{_tomcatdir}
381 %dir %{_tomcatdir}/conf
382 %dir %{_tomcatdir}/bin
383 %{_tomcatdir}/bin/catalina-tasks.xml
384 %{_tomcatdir}/bin/jkstatus-tasks.xml
385 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
386 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
387 %{_tomcatdir}/bin/*.jar
388 %dir %{_tomcatdir}/common
389 %dir %{_tomcatdir}/common/classes
390 %dir %{_tomcatdir}/common/endorsed
391 %dir %{_tomcatdir}/common/i18n
392 %{_tomcatdir}/common/endorsed/*.jar
393 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
394 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
395 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
396 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
397 %{_tomcatdir}/common/lib
398 %dir %{_tomcatdir}/server
399 %dir %{_tomcatdir}/server/classes
400 %{_tomcatdir}/server/lib
401 %dir %{_tomcatdir}/server/webapps
402
403 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
404 %{_tomcatdir}/server/webapps/host-manager
405
406 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
407 %{_tomcatdir}/server/webapps/manager
408
409 %dir %{_tomcatdir}/webapps
410
411 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
412 %{_tomcatdir}/webapps/ROOT
413
414 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
415 %{_tomcatdir}/webapps/balancer
416
417 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
418 %{_tomcatdir}/webapps/webdav
419
420 %{_tomcatdir}/logs
421 %{_tomcatdir}/work
422 %{_tomcatdir}/shared
423 %dir %{_vardir}
424 # these directories have to be writeable because /admin needs to modify config files and create temporary files
425 %dir %attr(775,root,tomcat) %{_vardir}/conf
426 %dir %attr(775,root,tomcat) %{_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.122604 seconds and 4 git commands to generate.