]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- groupadd/groupremove/Provide group: servlet
[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.5
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
199 # causes file(1) rpm to abort, and not really neccessary file
200 rm container/webapps/admin/images/Thumbs.db
201 # file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
202 # rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
203
204 # servletapi built from jakarta-servletapi5.spec
205 rm -rf servletapi
206
207 # Remove pre-built jars
208 find -name '*.jar' | xargs rm -fv
209
210 %build
211 TOPDIR=$(pwd)
212
213 # build tomcat 5.5
214 cat > build.properties <<EOF
215 commons-beanutils.jar=$(find-jar commons-beanutils-core)
216 commons-launcher.jar=$(find-jar commons-launcher)
217 commons-daemon.jar=$(find-jar commons-daemon)
218 commons-digester.jar=$(find-jar commons-digester)
219 commons-el.jar=$(find-jar commons-el)
220 commons-logging-api.jar=$(find-jar commons-logging-api)
221 commons-logging.jar=$(find-jar commons-logging)
222 commons-modeler.jar=$(find-jar commons-modeler)
223 xercesImpl.jar=$(find-jar jaxp_parser_impl)
224 xml-apis.jar=$(find-jar xml-commons-apis)
225 jdt.jar=$(find-jar org.eclipse.jdt.core)
226 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
227 commons-httpclient.jar=$(find-jar commons-httpclient)
228 commons-collections.jar=$(find-jar commons-collections)
229 commons-fileupload.jar=$(find-jar commons-fileupload)
230 commons-io.jar=$(find-jar commons-io)
231 jmx.jar=$(find-jar jmx)
232 jmx-tools.jar=$(find-jar jmx)
233 junit.jar=$(find-jar junit)
234 struts.jar=$(find-jar struts-core)
235 struts-core.jar=$(find-jar struts-core)
236 struts-taglib.jar=$(find-jar struts-taglib)
237 jcert.jar=$(find-jar jcert)
238 jnet.jar=$(find-jar jnet)
239 jsse.jar=$(find-jar jsse)
240 %{?with_jta:jta.jar=$(find-jar jta)}
241 puretls.jar=$(find-jar puretls)
242 servlet-api.jar=$(find-jar servlet-api)
243 servletapi.build.notrequired=true
244 jsp-api.jar=$(find-jar jsp-api)
245 jspapi.build.notrequired=true
246 log4j.jar=$(find-jar log4j)
247 tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
248 struts.lib=%{_javadir}-struts
249 EOF
250
251 if grep '=$' build.properties; then
252         : Some .jar could not be found
253         exit 1
254 fi
255
256 %ant \
257         -Dcompile.source=1.4
258
259 %install
260 rm -rf $RPM_BUILD_ROOT
261 cd build/build
262 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
263 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
264
265 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
266 %{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
267
268 install -d $TOMCATDIR/bin \
269             $TOMCATDIR/common/{lib,classes,endorsed} \
270             $TOMCATDIR/server/{lib,classes} \
271             $TOMCATDIR/webapps \
272             $RPM_BUILD_ROOT%{_logdir}/tomcat \
273             $RPM_BUILD_ROOT%{_vardir}/webapps \
274             $RPM_BUILD_ROOT%{_vardir}/work \
275             $RPM_BUILD_ROOT%{_vardir}/conf \
276             $RPM_BUILD_ROOT/etc/sysconfig \
277             $RPM_BUILD_ROOT/etc/rc.d/init.d
278
279 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
280 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
281
282 cp -a conf/* $CATALINADIR/conf
283 install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
284 install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
285 install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
286 install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
287 install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
288 cp -HR bin common server $TOMCATDIR
289
290 cp -a server/webapps $TOMCATDIR/server
291 cp -a webapps $TOMCATDIR
292 cp -a shared $TOMCATDIR
293 cp -a temp $CATALINADIR
294
295 ln -sf %{_logdir}/tomcat $CATALINADIR/logs
296 ln -sf %{_vardir}/work $TOMCATDIR/work
297 ln -sf %{_vardir}/conf $TOMCATDIR/conf
298 ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
299
300 # symlinks instead of copies
301 jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
302 for jar in $jars; do
303         jar=$(find-jar $jar)
304         ln -sf $jar $TOMCATDIR/common/lib
305 done
306
307 jars="jaxp_parser_impl xml-commons-apis"
308 for jar in $jars; do
309         jar=$(find-jar $jar)
310         ln -sf $jar $TOMCATDIR/common/endorsed
311 done
312
313 jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
314 for jar in $jars; do
315         jar=$(find-jar $jar)
316         ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
317 done
318
319 %if 0
320 # do not make these symlinks as ant didn't do
321 jars="commons-daemon"
322 for jar in $jars; do
323         jar=$(find-jar $jar)
324         ln -sf $jar $TOMCATDIR/bin
325 done
326
327 jars="activation ant commons-dbcp commons-logging-api commons-pool servlet jdbc-stdext
328 jmxri jndi %{?with_jta:jta} mail jsse junit mailapi pop3"
329 for jar in $jars; do
330         jar=$(find-jar $jar)
331         ln -sf $jar $TOMCATDIR/common/lib
332 done
333
334 ln -sf servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
335 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
336 ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
337 ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
338
339 jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
340 for jar in $jars; do
341         jar=$(find-jar $jar)
342         ln -sf $jar $TOMCATDIR/server/lib
343 done
344 ln -sf regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
345 ln -sf regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
346 %endif
347
348 install -d $RPM_BUILD_ROOT%{_javadir}
349 mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
350 ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
351 ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
352 ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
353
354 %clean
355 rm -rf $RPM_BUILD_ROOT
356
357 %pre
358 %groupadd -g 234 -r -f tomcat
359 %groupadd -g 237 -r -f servlet
360 %useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
361
362 %post
363 /sbin/chkconfig --add tomcat
364 %service tomcat restart
365
366 %preun
367 if [ "$1" = "0" ]; then
368         %service tomcat stop
369         /sbin/chkconfig --del tomcat
370 fi
371
372 %postun
373 if [ "$1" = "0" ]; then
374         %userremove tomcat
375         %groupremove tomcat
376         %groupremove servlet
377 fi
378
379 %files
380 %defattr(644,root,root,755)
381 %doc build/{RELEASE-NOTES,RUNNING.txt}
382 %attr(754,root,root) /etc/rc.d/init.d/tomcat
383 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
384 %{_sysconfdir}
385 %dir %{_tomcatdir}
386 %dir %{_tomcatdir}/conf
387 %dir %{_tomcatdir}/bin
388 %{_tomcatdir}/bin/catalina-tasks.xml
389 %{_tomcatdir}/bin/jkstatus-tasks.xml
390 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
391 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
392 %{_tomcatdir}/bin/*.jar
393 %dir %{_tomcatdir}/common
394 %dir %{_tomcatdir}/common/classes
395 %dir %{_tomcatdir}/common/endorsed
396 %dir %{_tomcatdir}/common/i18n
397 %{_tomcatdir}/common/endorsed/*.jar
398 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
399 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
400 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
401 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
402 %{_tomcatdir}/common/lib
403 %dir %{_tomcatdir}/server
404 %dir %{_tomcatdir}/server/classes
405 %{_tomcatdir}/server/lib
406 %dir %{_tomcatdir}/server/webapps
407
408 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
409 %{_tomcatdir}/server/webapps/host-manager
410
411 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
412 %{_tomcatdir}/server/webapps/manager
413
414 %dir %{_tomcatdir}/webapps
415
416 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
417 %{_tomcatdir}/webapps/ROOT
418
419 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
420 %{_tomcatdir}/webapps/balancer
421
422 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
423 %{_tomcatdir}/webapps/webdav
424
425 %{_tomcatdir}/work
426 %{_tomcatdir}/shared
427 %dir %{_vardir}
428 %dir %{_vardir}/conf
429 %dir %{_vardir}/conf/Catalina
430 %dir %{_vardir}/conf/Catalina/localhost
431 # tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
432 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
433 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
434 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
435 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
436 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
437 %dir %attr(1730,root,tomcat) %{_vardir}/work
438 %dir %attr(775,root,tomcat) %{_vardir}/webapps
439 %dir %attr(775,root,tomcat) %{_vardir}/temp
440 %dir %attr(775,root,tomcat) %{_logdir}/tomcat
441 %{_vardir}/logs
442
443 %files doc
444 %defattr(644,root,root,755)
445 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
446 %{_tomcatdir}/webapps/tomcat-docs
447
448 %files admin
449 %defattr(644,root,root,755)
450 %config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
451 %{_tomcatdir}/server/webapps/admin
452
453 %files jasper
454 %defattr(644,root,root,755)
455 %{_javadir}/jasper-compiler-jdt.jar
456 %{_javadir}/jasper-compiler.jar
457 %{_javadir}/jasper-runtime.jar
This page took 0.057756 seconds and 4 git commands to generate.