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