]> git.pld-linux.org Git - packages/tomcat.git/blame_incremental - tomcat.spec
- one more symlink to /var/log/tomcat
[packages/tomcat.git] / tomcat.spec
... / ...
CommitLineData
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#
8Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
9Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
10Name: tomcat
11Version: 5.5.27
12Release: 0.6
13License: Apache v2.0
14Group: Networking/Daemons/Java
15Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
16# Source0-md5: eb3f196013550b9b1684e4ff18593a8e
17Source1: apache-%{name}.init
18Source2: apache-%{name}.sysconfig
19Source10: apache-%{name}-context-ROOT.xml
20Source11: apache-%{name}-context-balancer.xml
21Source12: apache-%{name}-context-jsp-examples.xml
22Source13: apache-%{name}-context-tomcat-docs.xml
23Source14: apache-%{name}-context-webdav.xml
24Patch0: apache-%{name}-skip-servletapi.patch
25Patch1: apache-%{name}-nsis.patch
26Patch2: apache-%{name}-native.patch
27Patch3: apache-%{name}-skip-jdt.patch
28Patch4: apache-%{name}-no-connectors.patch
29Patch5: apache-%{name}-dbcp.patch
30# this patch is needed for struts >= 1.3
31Patch6: apache-%{name}-struts.patch
32# WTF? Why is it needed? Is it related to struts version?
33Patch7: apache-%{name}-admin-struts.patch
34URL: http://tomcat.apache.org/
35%if %{with java_sun}
36BuildRequires: java-sun >= 1.5
37BuildRequires: java-sun-jre >= 1.5
38%else
39# BuildRequires: jsse >= 0:1.0.3
40BuildRequires: java-gcj-compat-devel
41%endif
42BuildRequires: ant >= 1.5.3
43BuildRequires: ant-trax
44BuildRequires: eclipse-jdt
45BuildRequires: jaas
46BuildRequires: jakarta-regexp >= 0:1.3
47BuildRequires: java-commons-beanutils >= 1.7
48BuildRequires: java-commons-chain
49BuildRequires: java-commons-collections >= 0:3.1
50BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
51BuildRequires: java-commons-daemon >= 1.0
52BuildRequires: java-commons-dbcp >= 0:1.2.1
53BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
54BuildRequires: java-commons-digester >= 0:1.7
55BuildRequires: java-commons-el >= 0:1.0
56BuildRequires: java-commons-fileupload >= 0:1.0
57BuildRequires: java-commons-httpclient
58BuildRequires: java-commons-io >= 1.4
59BuildRequires: java-commons-launcher >= 0:0.9
60BuildRequires: java-commons-logging >= 0:1.0.4
61BuildRequires: java-commons-modeler >= 2.0
62BuildRequires: java-commons-pool >= 0:1.2
63BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
64%{?with_jta:BuildRequires: java-jta >= 0:1.0.1}
65BuildRequires: java-log4j
66BuildRequires: java-mail >= 0:1.3.1
67BuildRequires: java-puretls
68BuildRequires: java-servletapi5 = %{version}
69#BuildRequires: java-struts >= 0:1.2.7
70BuildRequires: java-struts >= 1.0.2
71BuildRequires: java-xerces >= 0:2.7.1
72BuildRequires: java-xml-commons
73#BuildRequires: java-xml-commons >= 1.3
74BuildRequires: jaxp_parser_impl >= 0:2.7.1
75BuildRequires: jdbc-stdext >= 0:2.0
76BuildRequires: jmx
77BuildRequires: jndi >= 0:1.2.1
78BuildRequires: jpackage-utils
79BuildRequires: junit >= 0:3.8.1
80BuildRequires: rpmbuild(macros) >= 1.300
81Requires(post,postun): /sbin/ldconfig
82Requires(post,preun): /sbin/chkconfig
83Requires(postun): /usr/sbin/groupdel
84Requires(postun): /usr/sbin/userdel
85Requires(pre): /bin/id
86Requires(pre): /usr/bin/getgid
87Requires(pre): /usr/sbin/groupadd
88Requires(pre): /usr/sbin/useradd
89Requires: %{name}-jasper = %{version}-%{release}
90Requires: jaas
91#Requires: jaf >= 1.0.1
92Requires: java-commons-beanutils
93Requires: java-commons-collections
94#Requires: java-commons-dbcp-tomcat5
95Requires: java-commons-digester
96Requires: java-commons-el
97#Requires: java-commons-fileupload
98Requires: java-commons-logging
99Requires: java-commons-modeler
100Requires: java-regexp
101Requires: java-servletapi5 = %{version}
102Requires: java-xml-commons
103Requires: javamail >= 1.2
104Requires: jaxp_parser_impl
105Requires: jdbc-stdext >= 2.0
106Requires: jndi >= 1.2.1
107Requires: jre >= 1.2
108Requires: jsse >= 1.0.2
109%{?with_jta:Requires: jta >= 1.0.1}
110Requires: rc-scripts
111Provides: group(servlet)
112Provides: group(tomcat)
113Provides: java-servlet-container
114Provides: user(tomcat)
115Obsoletes: apache-tomcat
116Obsoletes: jakarta-tomcat
117BuildArch: noarch
118BuildRoot: %{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
128Tomcat is the servlet container that is used in the official Reference
129Implementation for the Java Servlet and JavaServer Pages technologies.
130The Java Servlet and JavaServer Pages specifications are developed by
131Sun under the Java Community Process.
132
133Tomcat is developed in an open and participatory environment and
134released under the Apache Software License. Tomcat is intended to be a
135collaboration of the best-of-breed developers from around the world.
136We invite you to participate in this open development project.
137
138%description -l pl.UTF-8
139Tomcat to kontener serwletowy używany przez oficjalną implementację
140wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
141Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
142Community Process.
143
144%package doc
145Summary: The Apache Tomcat Servlet/JSP Container documentation
146Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
147Group: Documentation
148Obsoletes: apache-tomcat-doc
149Obsoletes: jakarta-tomcat-doc
150
151%description doc
152The Tomcat Servlet/JSP Container documentation.
153
154%description doc -l pl.UTF-8
155Dokumentacja do Tomcata - kontenera Servlet/JSP.
156
157%package admin
158Summary: Apache Tomcat`s Administration Web Application
159Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
160Group: Networking/Daemons/Java/Servlets
161Requires: %{name} = %{version}-%{release}
162Requires: java-commons-chain
163
164%description admin
165Administration Web Application for Apache Tomcat.
166
167%description admin -l pl.UTF-8
168Panel Administracyjny dla Apache Tomcat.
169
170%package jasper
171Summary: JSP compiler
172Summary(pl.UTF-8): Kompilator JSP
173Group: Libraries/Java
174Requires: jpackage-utils
175Obsoletes: apache-tomcat-jasper
176
177%description jasper
178Jasper is Java ServerPages compiler used by Apache Tomcat servlet
179container.
180
181%description jasper -l pl.UTF-8
182Jasper jest kompilatorem Java ServerPages używanym przez kontener
183servletó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
197rm -f container/catalina/src/bin/*.bat
198# or those
199rm -f container/catalina/src/bin/{startup,shutdown}.sh
200
201# causes file(1) rpm to abort, and not really neccessary file
202rm 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
207rm -rf servletapi
208
209# Remove pre-built jars
210find -name '*.jar' | xargs rm -fv
211
212%build
213TOPDIR=$(pwd)
214
215# build tomcat 5.5
216cat > build.properties <<EOF
217commons-beanutils.jar=$(find-jar commons-beanutils-core)
218commons-launcher.jar=$(find-jar commons-launcher)
219commons-daemon.jar=$(find-jar commons-daemon)
220commons-digester.jar=$(find-jar commons-digester)
221commons-el.jar=$(find-jar commons-el)
222commons-logging-api.jar=$(find-jar commons-logging-api)
223commons-logging.jar=$(find-jar commons-logging)
224commons-modeler.jar=$(find-jar commons-modeler)
225xercesImpl.jar=$(find-jar jaxp_parser_impl)
226xml-apis.jar=$(find-jar xml-commons-apis)
227jdt.jar=$(find-jar org.eclipse.jdt.core)
228jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
229commons-httpclient.jar=$(find-jar commons-httpclient)
230commons-collections.jar=$(find-jar commons-collections)
231commons-fileupload.jar=$(find-jar commons-fileupload)
232commons-io.jar=$(find-jar commons-io)
233jmx.jar=$(find-jar jmx)
234jmx-tools.jar=$(find-jar jmx)
235junit.jar=$(find-jar junit)
236struts.jar=$(find-jar struts-core)
237struts-core.jar=$(find-jar struts-core)
238struts-taglib.jar=$(find-jar struts-taglib)
239jcert.jar=$(find-jar jcert)
240jnet.jar=$(find-jar jnet)
241jsse.jar=$(find-jar jsse)
242%{?with_jta:jta.jar=$(find-jar jta)}
243puretls.jar=$(find-jar puretls)
244servlet-api.jar=$(find-jar servlet-api)
245servletapi.build.notrequired=true
246jsp-api.jar=$(find-jar jsp-api)
247jspapi.build.notrequired=true
248log4j.jar=$(find-jar log4j)
249tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
250struts.lib=%{_javadir}-struts
251EOF
252
253if grep '=$' build.properties; then
254 : Some .jar could not be found
255 exit 1
256fi
257
258%ant \
259 -Dcompile.source=1.4
260
261%install
262rm -rf $RPM_BUILD_ROOT
263cd build/build
264TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
265CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
266
267randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
268%{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
269
270install -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
281install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
282install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
283
284cp -a conf/* $CATALINADIR/conf
285install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
286install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
287install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
288install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
289install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
290cp -HR bin common server $TOMCATDIR
291
292cp -a server/webapps $TOMCATDIR/server
293cp -a webapps $TOMCATDIR
294cp -a shared $TOMCATDIR
295cp -a temp $CATALINADIR
296
297ln -sf %{_logdir}/tomcat $CATALINADIR/logs
298ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
299ln -sf %{_vardir}/work $TOMCATDIR/work
300ln -sf %{_vardir}/conf $TOMCATDIR/conf
301ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
302
303# symlinks instead of copies
304jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
305for jar in $jars; do
306 jar=$(find-jar $jar)
307 ln -sf $jar $TOMCATDIR/common/lib
308done
309
310jars="jaxp_parser_impl xml-commons-apis"
311for jar in $jars; do
312 jar=$(find-jar $jar)
313 ln -sf $jar $TOMCATDIR/common/endorsed
314done
315
316jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
317for jar in $jars; do
318 jar=$(find-jar $jar)
319 ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
320done
321
322%if 0
323# do not make these symlinks as ant didn't do
324jars="commons-daemon"
325for jar in $jars; do
326 jar=$(find-jar $jar)
327 ln -sf $jar $TOMCATDIR/bin
328done
329
330jars="activation ant commons-dbcp commons-logging-api commons-pool servlet jdbc-stdext
331jmxri jndi %{?with_jta:jta} mail jsse junit mailapi pop3"
332for jar in $jars; do
333 jar=$(find-jar $jar)
334 ln -sf $jar $TOMCATDIR/common/lib
335done
336
337ln -sf servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
338ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
339ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
340ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
341
342jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
343for jar in $jars; do
344 jar=$(find-jar $jar)
345 ln -sf $jar $TOMCATDIR/server/lib
346done
347ln -sf regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
348ln -sf regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
349%endif
350
351install -d $RPM_BUILD_ROOT%{_javadir}
352mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
353ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib
354ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib
355ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib
356
357%clean
358rm -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
370if [ "$1" = "0" ]; then
371 %service tomcat stop
372 /sbin/chkconfig --del tomcat
373fi
374
375%postun
376if [ "$1" = "0" ]; then
377 %userremove tomcat
378 %groupremove tomcat
379 %groupremove servlet
380fi
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}/work
429%{_tomcatdir}/shared
430%dir %{_vardir}
431# these directory has to be writeable because /admin need to modify config
432# files and create temporary files
433%dir %attr(664,root,tomcat) %{_vardir}/conf
434%dir %attr(664,root,tomcat) %{_vardir}/conf/Catalina
435%dir %{_vardir}/conf/Catalina/localhost
436# tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
437%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
438%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
439%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
440%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
441%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
442%dir %attr(1730,root,tomcat) %{_vardir}/work
443%dir %attr(775,root,tomcat) %{_vardir}/webapps
444%dir %attr(775,root,tomcat) %{_vardir}/temp
445%dir %attr(775,root,tomcat) %{_logdir}/tomcat
446%{_vardir}/logs
447
448%files doc
449%defattr(644,root,root,755)
450%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
451%{_tomcatdir}/webapps/tomcat-docs
452
453%files admin
454%defattr(644,root,root,755)
455%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
456%{_tomcatdir}/server/webapps/admin
457
458%files jasper
459%defattr(644,root,root,755)
460%{_javadir}/jasper-compiler-jdt.jar
461%{_javadir}/jasper-compiler.jar
462%{_javadir}/jasper-runtime.jar
This page took 0.039649 seconds and 4 git commands to generate.