]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- install jdbc-mysql in common/lib
[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.8
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-commons-pool-tomcat5
101 Requires:       java-jdbc-mysql
102 Requires:       java-regexp
103 Requires:       java-servletapi5 = %{version}
104 Requires:       java-xml-commons
105 Requires:       javamail >= 1.2
106 Requires:       jaxp_parser_impl
107 Requires:       jdbc-stdext >= 2.0
108 Requires:       jndi >= 1.2.1
109 Requires:       jre >= 1.2
110 Requires:       jsse >= 1.0.2
111 %{?with_jta:Requires:   jta >= 1.0.1}
112 Requires:       rc-scripts
113 Provides:       group(servlet)
114 Provides:       group(tomcat)
115 Provides:       java-servlet-container
116 Provides:       user(tomcat)
117 Obsoletes:      apache-tomcat
118 Obsoletes:      jakarta-tomcat
119 BuildArch:      noarch
120 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
121
122 %define         _tomcatdir      %{_datadir}/tomcat
123 %define         _logdir         %{_var}/log
124 %define         _vardir         %{_var}/lib/tomcat
125 %define         _sysconfdir     /etc/tomcat
126
127 %define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
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
166 %description admin
167 Administration Web Application for Apache Tomcat.
168
169 %description admin -l pl.UTF-8
170 Panel Administracyjny dla Apache Tomcat.
171
172 %package jasper
173 Summary:        JSP compiler
174 Summary(pl.UTF-8):      Kompilator JSP
175 Group:          Libraries/Java
176 Requires:       jpackage-utils
177 Obsoletes:      apache-tomcat-jasper
178
179 %description jasper
180 Jasper is Java ServerPages compiler used by Apache Tomcat servlet
181 container.
182
183 %description jasper -l pl.UTF-8
184 Jasper jest kompilatorem Java ServerPages używanym przez kontener
185 servletów Apache Tomcat.
186
187 %prep
188 %setup -q -n apache-%{name}-%{version}-src
189 %patch0 -p1
190 %patch1 -p1
191 %patch2 -p1
192 %patch3 -p1
193 %patch4 -p1
194 %patch5 -p1
195 %patch6 -p1
196 %patch7 -p1
197
198 # we don't need dos scripts
199 rm -f container/catalina/src/bin/*.bat
200 # or those
201 rm -f container/catalina/src/bin/{startup,shutdown}.sh
202
203 # causes file(1) rpm to abort, and not really neccessary file
204 rm container/webapps/admin/images/Thumbs.db
205 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
206 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
207
208 # servletapi built from jakarta-servletapi5.spec
209 rm -rf servletapi
210
211 # Remove pre-built jars
212 find -name '*.jar' | xargs rm -fv
213
214 %build
215 TOPDIR=$(pwd)
216
217 # build tomcat 5.5
218 cat > build.properties <<EOF
219 commons-beanutils.jar=$(find-jar commons-beanutils-core)
220 commons-launcher.jar=$(find-jar commons-launcher)
221 commons-daemon.jar=$(find-jar commons-daemon)
222 commons-digester.jar=$(find-jar commons-digester)
223 commons-el.jar=$(find-jar commons-el)
224 commons-logging-api.jar=$(find-jar commons-logging-api)
225 commons-logging.jar=$(find-jar commons-logging)
226 commons-modeler.jar=$(find-jar commons-modeler)
227 xercesImpl.jar=$(find-jar jaxp_parser_impl)
228 xml-apis.jar=$(find-jar xml-commons-apis)
229 jdt.jar=$(find-jar org.eclipse.jdt.core)
230 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
231 commons-httpclient.jar=$(find-jar commons-httpclient)
232 commons-collections.jar=$(find-jar commons-collections)
233 commons-fileupload.jar=$(find-jar commons-fileupload)
234 commons-io.jar=$(find-jar commons-io)
235 jmx.jar=$(find-jar jmx)
236 jmx-tools.jar=$(find-jar jmx)
237 junit.jar=$(find-jar junit)
238 struts.jar=$(find-jar struts-core)
239 struts-core.jar=$(find-jar struts-core)
240 struts-taglib.jar=$(find-jar struts-taglib)
241 jcert.jar=$(find-jar jcert)
242 jnet.jar=$(find-jar jnet)
243 jsse.jar=$(find-jar jsse)
244 %{?with_jta:jta.jar=$(find-jar jta)}
245 puretls.jar=$(find-jar puretls)
246 servlet-api.jar=$(find-jar servlet-api)
247 servletapi.build.notrequired=true
248 jsp-api.jar=$(find-jar jsp-api)
249 jspapi.build.notrequired=true
250 log4j.jar=$(find-jar log4j)
251 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
252 struts.lib=%{_javadir}-struts
253 EOF
254
255 if grep '=$' build.properties; then
256         : Some .jar could not be found
257         exit 1
258 fi
259
260 %ant \
261         -Dcompile.source=1.4
262
263 %install
264 rm -rf $RPM_BUILD_ROOT
265 cd build/build
266 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
267 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
268
269 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
270 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
271
272 install -d $TOMCATDIR/bin \
273             $TOMCATDIR/common/{lib,classes,endorsed} \
274             $TOMCATDIR/server/{lib,classes} \
275             $TOMCATDIR/webapps \
276             $RPM_BUILD_ROOT%{_logdir}/tomcat \
277             $RPM_BUILD_ROOT%{_vardir}/webapps \
278             $RPM_BUILD_ROOT%{_vardir}/work \
279             $RPM_BUILD_ROOT%{_vardir}/conf \
280             $RPM_BUILD_ROOT/etc/sysconfig \
281             $RPM_BUILD_ROOT/etc/rc.d/init.d
282
283 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
284 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
285
286 cp -a conf/* $CATALINADIR/conf
287 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
288 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
289 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
290 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
291 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
292 cp -HR bin common server $TOMCATDIR
293
294 cp -a server/webapps $TOMCATDIR/server
295 cp -a webapps $TOMCATDIR
296 cp -a shared $TOMCATDIR
297 cp -a temp $CATALINADIR
298
299 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
300 ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
301 ln -sf %{_vardir}/work $TOMCATDIR/work
302 ln -sf %{_vardir}/conf $TOMCATDIR/conf
303 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
304
305 # symlinks instead of copies
306 jars="commons-daemon commons-logging-api"
307 for jar in $jars; do
308         jar=$(find-jar $jar)
309         ln -sf $jar $TOMCATDIR/bin
310 done
311
312 jars="commons-el commons-dbcp-tomcat5 commons-pool-tomcat5 servlet-api jsp-api commons-modeler jdbc-mysql"
313 for jar in $jars; do
314         jar=$(find-jar $jar)
315         ln -sf $jar $TOMCATDIR/common/lib
316 done
317
318 jars="jaxp_parser_impl xml-commons-apis"
319 for jar in $jars; do
320         jar=$(find-jar $jar)
321         ln -sf $jar $TOMCATDIR/common/endorsed
322 done
323
324 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
325 for jar in $jars; do
326         jar=$(find-jar $jar)
327         ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
328 done
329
330 jars="commons-modeler"
331 for jar in $jars; do
332         jar=$(find-jar $jar)
333         ln -sf $jar $TOMCATDIR/server/lib
334 done
335
336 install -d $RPM_BUILD_ROOT%{_javadir}
337 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
338 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
339 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
340 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
341
342 %clean
343 rm -rf $RPM_BUILD_ROOT
344
345 %pre
346 %groupadd -g 234 -r -f tomcat
347 %groupadd -g 237 -r -f servlet
348 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
349
350 %post
351 /sbin/chkconfig --add tomcat
352 %service tomcat restart
353
354 %preun
355 if [ "$1" = "0" ]; then
356         %service tomcat stop
357         /sbin/chkconfig --del tomcat
358 fi
359
360 %postun
361 if [ "$1" = "0" ]; then
362         %userremove tomcat
363         %groupremove tomcat
364         %groupremove servlet
365 fi
366
367 %files
368 %defattr(644,root,root,755)
369 %doc build/{RELEASE-NOTES,RUNNING.txt}
370 %attr(754,root,root) /etc/rc.d/init.d/tomcat
371 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
372 %{_sysconfdir}
373 %dir %{_tomcatdir}
374 %dir %{_tomcatdir}/conf
375 %dir %{_tomcatdir}/bin
376 %{_tomcatdir}/bin/catalina-tasks.xml
377 %{_tomcatdir}/bin/jkstatus-tasks.xml
378 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
379 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
380 %{_tomcatdir}/bin/*.jar
381 %dir %{_tomcatdir}/common
382 %dir %{_tomcatdir}/common/classes
383 %dir %{_tomcatdir}/common/endorsed
384 %dir %{_tomcatdir}/common/i18n
385 %{_tomcatdir}/common/endorsed/*.jar
386 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
387 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
388 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
389 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
390 %{_tomcatdir}/common/lib
391 %dir %{_tomcatdir}/server
392 %dir %{_tomcatdir}/server/classes
393 %{_tomcatdir}/server/lib
394 %dir %{_tomcatdir}/server/webapps
395
396 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
397 %{_tomcatdir}/server/webapps/host-manager
398
399 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
400 %{_tomcatdir}/server/webapps/manager
401
402 %dir %{_tomcatdir}/webapps
403
404 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
405 %{_tomcatdir}/webapps/ROOT
406
407 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
408 %{_tomcatdir}/webapps/balancer
409
410 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
411 %{_tomcatdir}/webapps/webdav
412
413 %{_tomcatdir}/logs
414 %{_tomcatdir}/work
415 %{_tomcatdir}/shared
416 %dir %{_vardir}
417 # these directory has to be writeable because /admin need to modify config
418 # files and create temporary files
419 %dir %attr(775,root,tomcat) %{_vardir}/conf
420 %dir %attr(775,root,tomcat) %{_vardir}/conf/Catalina
421 %dir %{_vardir}/conf/Catalina/localhost
422 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
423 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
424 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
425 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
426 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
427 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
428 %dir %attr(1730,root,tomcat) %{_vardir}/work
429 %dir %attr(775,root,tomcat) %{_vardir}/webapps
430 %dir %attr(775,root,tomcat) %{_vardir}/temp
431 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
432 %{_vardir}/logs
433
434 %files doc
435 %defattr(644,root,root,755)
436 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
437 %{_tomcatdir}/webapps/tomcat-docs
438
439 %files admin
440 %defattr(644,root,root,755)
441 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
442 %{_tomcatdir}/server/webapps/admin
443
444 %files jasper
445 %defattr(644,root,root,755)
446 %{_javadir}/jasper-compiler-jdt.jar
447 %{_javadir}/jasper-compiler.jar
448 %{_javadir}/jasper-runtime.jar
This page took 0.190805 seconds and 4 git commands to generate.