]> git.pld-linux.org Git - packages/apache-tomcat.git/blame_incremental - apache-tomcat.spec
- still some connectors needed
[packages/apache-tomcat.git] / apache-tomcat.spec
... / ...
CommitLineData
1#
2# Conditional build:
3%bcond_with binary # build from binary source
4%bcond_without javadoc # skip building javadocs
5#
6Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
7Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
8Name: apache-tomcat
9Version: 5.5.23
10Release: 0.1
11License: Apache
12Group: Development/Languages/Java
13#Source0: http://www.apache.org/dist/tomcat/tomcat-5/v5.0.30/src/%{name}-%{version}-src.tar.gz
14Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
15# Source0-md5: 362d1d8b15dc09882440dcab8c592dd7
16#Source0: http://apache.zone-h.org/
17Source1: jakarta-tomcat.init
18Patch0: %{name}-skip-servletapi.patch
19Patch1: %{name}-nsis.patch
20Patch2: %{name}-native.patch
21Patch3: %{name}-skip-jdt.patch
22Patch4: %{name}-no-connectors.patch
23URL: http://tomcat.apache.org/
24# required:
25BuildRequires: ant >= 1.5.3
26BuildRequires: jaas
27BuildRequires: jakarta-commons-beanutils
28BuildRequires: jakarta-commons-collections
29BuildRequires: jakarta-commons-collections-source
30BuildRequires: jakarta-commons-daemon
31BuildRequires: jakarta-commons-dbcp
32BuildRequires: jakarta-commons-dbcp-source
33BuildRequires: jakarta-commons-digester
34BuildRequires: jakarta-commons-fileupload
35BuildRequires: jakarta-commons-httpclient
36BuildRequires: jakarta-commons-logging
37BuildRequires: jakarta-commons-modeler >= 2.0
38BuildRequires: jakarta-commons-pool
39BuildRequires: jakarta-commons-pool-source
40BuildRequires: jakarta-regexp
41BuildRequires: jakarta-servletapi5
42BuildRequires: jakarta-struts >= 1.0.2
43BuildRequires: jaxp_parser_impl
44BuildRequires: jdk >= 1.5
45BuildRequires: jpackage-utils
46BuildRequires: mx4j >= 1.1.1
47BuildRequires: puretls
48BuildRequires: rpmbuild(macros) >= 1.300
49BuildRequires: xerces-j
50%if %{with javadoc}
51BuildRequires: jakarta-commons-el
52%endif
53# optional:
54BuildRequires: jaf >= 1.0.1
55BuildRequires: jakarta-commons-dbcp
56BuildRequires: jakarta-commons-pool
57BuildRequires: javamail >= 1.2
58BuildRequires: jdbc-stdext >= 2.0
59BuildRequires: jndi >= 1.2.1
60BuildRequires: jsse >= 1.0.2
61BuildRequires: jta >= 1.0.1
62BuildRequires: junit >= 3.7
63BuildRequires: rpmbuild(macros) >= 1.268
64BuildRequires: tyrex >= 1.0
65BuildRequires: xml-commons
66Requires(post,postun): /sbin/ldconfig
67Requires(post,preun): /sbin/chkconfig
68Requires(postun): /usr/sbin/groupdel
69Requires(postun): /usr/sbin/userdel
70Requires(pre): /bin/id
71Requires(pre): /usr/bin/getgid
72Requires(pre): /usr/sbin/groupadd
73Requires(pre): /usr/sbin/useradd
74Requires: jaas
75Requires: jaf >= 1.0.1
76Requires: jakarta-commons-beanutils
77Requires: jakarta-commons-collections
78Requires: jakarta-commons-digester
79Requires: jakarta-commons-fileupload
80Requires: jakarta-commons-logging
81Requires: jakarta-regexp
82Requires: jakarta-servletapi >= 4
83Requires: javamail >= 1.2
84Requires: jaxp_parser_impl
85Requires: jdbc-stdext >= 2.0
86Requires: jndi >= 1.2.1
87Requires: jre >= 1.2
88Requires: jsse >= 1.0.2
89Requires: jta >= 1.0.1
90Requires: mx4j >= 1.1.1
91Requires: rc-scripts
92Requires: tyrex >= 1.0
93Requires: xml-commons
94Provides: group(http)
95Provides: user(http)
96Obsoletes: jakarta-tomcat
97BuildArch: noarch
98BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
99
100%define _tomcatdir %{_libdir}/tomcat
101%define _logdir %{_var}/log
102%define _vardir %{_var}/lib/tomcat
103
104%description
105Tomcat is the servlet container that is used in the official Reference
106Implementation for the Java Servlet and JavaServer Pages technologies.
107The Java Servlet and JavaServer Pages specifications are developed by
108Sun under the Java Community Process.
109
110Tomcat is developed in an open and participatory environment and
111released under the Apache Software License. Tomcat is intended to be a
112collaboration of the best-of-breed developers from around the world.
113We invite you to participate in this open development project.
114
115%description -l pl.UTF-8
116Tomcat to kontener serwletowy używany przez oficjalną implementację
117wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
118Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
119Community Process.
120
121%package doc
122Summary: The Apache Tomcat Servlet/JSP Container documentation
123Summary(pl.UTF-8): Dokumentacja do Tomcata - kontekera Servlet/JSP
124Group: Development/Languages/Java
125Obsoletes: jakarta-tomcat-doc
126
127%description doc
128The Tomcat Servlet/JSP Container documentation.
129
130%description doc -l pl.UTF-8
131Dokumentacja do Tomcata - kontekera Servlet/JSP.
132
133%prep
134%setup -q -n %{name}-%{version}-src
135%patch0 -p1
136%patch1 -p1
137%patch2 -p1
138%patch3 -p1
139%patch4 -p1
140
141# servletapi built from jakarta-servletapi5.spec
142rm -rf servletapi
143# connectors (apache2 for now only) are built from apache-mod_jk.spec
144rm -rf connectors
145
146# Remove pre-built jars
147find -name '*.jar' | xargs rm -fv
148
149%build
150TOPDIR=$(pwd)
151#xerces.jar=$(build-classpath xerces)
152#jasper-compiler-jdt.jar=$(build-classpath jdtcore)
153
154mkdir -p tomcat-deps
155> tomcat-deps/tomcat-dbcp.jar
156
157%if 0
158# build jasper javadocs
159cd jasper
160CLASSPATH=$(build-classpath xml-commons-apis)
161cat > build.properties <<EOF
162ant.jar=$(build-classpath ant)
163servlet-api.jar=$(build-classpath servlet-api)
164jsp-api.jar=$(build-classpath jsp-api)
165tools.jar=%{java_home}/lib/tools.jar
166xercesImpl.jar=$(build-classpath jaxp_parser_impl)
167xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
168commons-collections.jar=$(build-classpath commons-collections)
169commons-logging.jar=$(build-classpath commons-logging)
170commons-daemon.jar=$(build-classpath commons-daemon)
171junit.jar=$(build-classpath junit)
172commons-el.jar=$(build-classpath commons-el)
173EOF
174# building jasper needs eclipse classes
175#%ant dist
176
177%if %{with javadoc}
178%ant javadoc \
179 -Dcompile.source=1.4 \
180 -Dbuild.compiler=modern \
181
182%endif
183cd -
184%endif
185
186# build tomcat 5.5
187#cd build
188cat > build.properties <<EOF
189commons-beanutils.jar=$(build-classpath commons-beanutils)
190commons-launcher.jar=$(build-classpath commons-launcher)
191commons-daemon.jar=$(build-classpath commons-daemon)
192commons-digester.jar=$(build-classpath commons-digester)
193commons-el.jar=$(build-classpath commons-el)
194commons-logging-api.jar=$(build-classpath commons-logging-api)
195commons-logging.jar=$(build-classpath commons-logging)
196commons-modeler.jar=$(build-classpath commons-modeler)
197xercesImpl.jar=$(build-classpath jaxp_parser_impl)
198xml-apis.jar=$(build-classpath xml-commons-apis)
199%if 0
200jdt.jar=${jdt.lib}/org.eclipse.jdt.core_3.1.2.jar
201log4j.jar=${log4j.lib}/dist/lib/log4j-1.2.12.jar
202%endif
203commons-httpclient.jar=$(build-classpath commons-httpclient)
204commons-collections.jar=$(build-classpath commons-collections)
205commons-fileupload.jar=$(build-classpath commons-fileupload)
206
207
208%if 0
209jmx.jar=${jmx.lib}/mx4j.jar
210%endif
211jmx.jar=$(build-classpath jre/jmx)
212%if 0
213jmx-tools.jar=${jmx.lib}/mx4j-tools.jar
214%endif
215jmx-tools.jar=$(build-classpath jre/jmx)
216%if 0
217jmx-remote.jar=${jmx.lib}/mx4j-remote.jar
218%endif
219junit.jar=$(build-classpath junit)
220%if 0
221rhino.jar=${rhino.home}/js.jar
222%endif
223struts.jar=$(build-classpath struts)
224activation.jar=$(build-classpath jaf)
225jcert.jar=$(build-classpath java/jcert)
226jnet.jar=$(build-classpath java/jnet)
227jsse.jar=$(build-classpath java/jsse)
228jta.jar=$(build-classpath jta)
229mail.jar=$(build-classpath javamail/mailapi)
230puretls.jar=$(build-classpath puretls)
231
232servlet-api.jar=$(build-classpath servlet-api)
233# how the fck those bools work
234# build.xml:103: servletapi/jsr154/src not found.
235servletapi.build.notrequired=true
236
237jsp-api.jar=$(build-classpath jsp-api)
238jspapi.build.notrequired=true
239
240log4j.jar=$(build-classpath logging-log4j)
241#log4j.loc=%{_javadir}
242
243# source is needed because source is copied modified and recompiled as tomcat jar
244# see <target name="-build-tomcat-dbcp"> in build/build.xml
245tomcat-dbcp.home=
246commons-collections.home=%{_prefix}/src/jakarta-commons-collections-3.1
247commons-pool.home=%{_prefix}/src/jakarta-commons-pool-1.3
248commons-dbcp.home=%{_prefix}/src/jakarta-commons-dbcp-1.2.1
249tomcat-dbcp.home=$TOPDIR/tomcat-deps
250# err, it compiles three above and then appends to the jar, so the file should exist
251tomcat-dbcp.jar=$TOPDIR/tomcat-deps/tomcat-dbcp.jar
252
253%if 0
254ant.jar=%{_javadir}/ant.jar
255ant-launcher.jar=%{_javadir}/ant-launcher.jar
256jtc.home=$TOPDIR/jakarta-tomcat-connectors/
257jasper.home=$TOPDIR/jakarta-tomcat-jasper/jasper2
258commons-dbcp.jar=$(build-classpath commons-dbcp)
259commons-pool.jar=$(build-classpath commons-pool)
260jmxri.jar=$(build-classpath jre/jmx)
261regexp.jar=$(build-classpath regexp)
262jsp-api.jar=$TOPDIR/jakarta-servletapi-5/jsr152/dist/lib/jsp-api.jar
263servlet.doc=$TOPDIR/jakarta-servletapi-5/jsr154/dist/docs/api
264struts.lib=%{_datadir}/struts
265servletapi.build.notrequired=true
266tyrex.jar=$(build-classpath tyrex)
267jaas.jar=$(build-classpath jre/jaas)
268jndi.jar=$(build-classpath jre/jndi)
269jdbc20ext.jar=$(build-classpath jdbc-stdext)
270jspapi.build.notrequired=true
271taglibs-core.jar=$(build-classpath taglibs-core)
272taglibs-standard.jar=$(build-classpath taglibs-standard)
273%endif
274
275EOF
276
277%ant \
278 -Dcompile.source=1.4
279
280exit 1
281
282# build the connectors
283cd connectors
284
285%if 0
286
287# this is just plain and simply evil but something changed in a major way between 5.0.16 and 5.0.18
288oldclasspath=$CLASSPATH
289export CLASSPATH=$TOPDIR/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar:\
290$TOPDIR/jakarta-tomcat-5/build/server/lib/catalina.jar
291%endif
292
293%if 0
294cat > build.properties <<EOF
295
296activation.jar=$(build-classpath jaf)
297ant.jar=%{_javadir}/ant.jar
298junit.jar=$(build-classpath junit)
299commons-beanutils.jar=$(build-classpath commons-beanutils)
300commons-collections.jar=$(build-classpath commons-collections)
301commons-digester.jar=$(build-classpath commons-digester)
302commons-fileupload.jar=$(build-classpath commons-fileupload)
303commons-logging.jar=$(build-classpath commons-logging)
304commons-logging-api.jar=$(build-classpath commons-logging-api)
305commons-modeler.jar=$(build-classpath commons-modeler)
306commons-pool.jar=$(build-classpath commons-pool)
307regexp.jar=$(build-classpath regexp)
308jmx.jar=$(build-classpath mx4j/mx4j)
309puretls=$(build-classpath puretls)
310activation.jar=$(build-classpath jaf)
311mail.jar=$(build-classpath javamail/mailapi)
312jta.jar=$(build-classpath jta)
313tyrex.jar=$(build-classpath tyrex)
314jaas.jar=$(build-classpath jaas)
315jndi.jar=$(build-classpath jndi)
316jdbc20ext.jar=$(build-classpath java/jdbc-stdext)
317puretls.jar=$(build-classpath puretls)
318jcert.jar=$(build-classpath jsse/jcert)
319jnet.jar=$(build-classpath jsse/jnet)
320jsse.jar=$(build-classpath jsse/jsse)
321
322%endif
323
324%if 0
325commons-beanutils.jar=${commons-beanutils.lib}/commons-beanutils.jar
326commons-collections.jar=${commons-collections.lib}/commons-collections.jar
327commons-digester.jar=${commons-digester.lib}/commons-digester.jar
328commons-fileupload.jar=${commons-fileupload.lib}/commons-fileupload-1.0-beta-1.jar
329commons-logging-api.jar=${commons-logging.lib}/commons-logging-api.jar
330commons-logging.jar=${commons-logging.lib}/commons-logging.jar
331jndi.jar=${jndi.lib}/jndi.jar
332ldap.jar=${jndi.lib}/ldap.jar
333jaas.jar=${jndi.lib}/jaas.jar
334regexp.jar=${regexp.lib}/jakarta-regexp-1.4.jar
335servlet.jar=${servlet.lib}/servlet.jar
336#xerces.jar=${xerces.lib}/xerces.jar
337xercesImpl.jar=${xerces.lib}/xercesImpl.jar
338xml-apis.jar=${xerces.lib}/xml-apis.jar
339activation.jar=${activation.lib}/activation.jar
340commons-daemon.jar=${commons-daemon.lib}/commons-daemon.jar
341commons-dbcp.jar=${commons-dbcp.lib}/commons-dbcp.jar
342commons-modeler.jar=${commons-modeler.lib}/commons-modeler.jar
343commons-pool.jar=${commons-pool.lib}/commons-pool.jar
344jdbc20ext.jar=${jdbc20ext.lib}/jdbc2_0-stdext.jar
345jmx.jar=${jmx.lib}/mx4j-jmx.jar
346jcert.jar=${jsse.lib}/jcert.jar
347jnet.jar=${jsse.lib}/jnet.jar
348jsse.jar=${jsse.lib}/jsse.jar
349jta.jar=${jta.lib}/jta.jar
350junit.jar=${junit.lib}/junit.jar
351mail.jar=${mail.lib}/mail.jar
352puretls.jar=${puretls.lib}/puretls.jar
353struts.jar=${struts.lib}/struts.jar
354tyrex.jar=${tyrex.lib}/tyrex-1.0.jar
355tomcat5.jar=${tomcat5.home}/server/lib/catalina.jar
356servlet-api.jar=${tomcat5.home}/common/lib/servlet-api.jar
357tomcat41.jar=${tomcat41.home}/server/lib/catalina.jar
358servlet-api.jar=${tomcat41.home}/common/lib/servlet.jar
359tomcat33.jar=${tomcat33.home}/lib/common/tomcat_core.jar
360%endif
361
362
363%if 0
364EOF
365%ant build \
366 -Dbuild.compiler=modern \
367 -Djava.home=%{java_home}
368%endif
369%if 0
370export CLASSPATH=$oldclasspath
371
372# build the webapps and make the tree ready to install
373cd ../jakarta-tomcat-5
374%ant -Dbuild.compiler=modern -Djava.home=%{java_home} dist
375%endif
376
377%install
378rm -rf $RPM_BUILD_ROOT
379
380DEST=$RPM_BUILD_ROOT%{_tomcatdir}
381
382install -d $DEST/bin \
383 $DEST/common/{lib,classes,endorsed} \
384 $DEST/server/{lib,classes} \
385 $DEST/webapps \
386 $RPM_BUILD_ROOT%{_sysconfdir}/tomcat \
387 $RPM_BUILD_ROOT%{_logdir}/tomcat \
388 $RPM_BUILD_ROOT%{_vardir}/work \
389 $RPM_BUILD_ROOT/etc/rc.d/init.d
390
391install build/bin/*.sh $DEST/bin
392install build/bin/bootstrap*.jar $DEST/bin
393install build/bin/tomcat*.jar $DEST/bin
394install build/common/lib/naming-*.jar $DEST/common/lib
395install build/common/lib/jasper-*.jar $DEST/common/lib
396install build/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
397install build/server/lib/catalina*.jar $DEST/server/lib
398install build/server/lib/servlets*.jar $DEST/server/lib
399install build/server/lib/tomcat*.jar $DEST/server/lib
400install build/server/lib/servlets-cgi.renametojar $DEST/server/lib/servlets-cgi.jar
401install build/server/lib/servlets-ssi.renametojar $DEST/server/lib/servlets-ssi.jar
402cp -rf build/server/webapps $DEST/server
403cp -rf build/webapps $DEST
404cp -rf build/shared $DEST
405cp -rf build/temp $DEST
406
407ln -sf %{_logdir}/tomcat $DEST/logs
408ln -sf %{_vardir}/work $DEST/work
409ln -sf %{_sysconfdir}/tomcat $DEST/conf
410
411# symlinks instead of copies
412ln -sf %{_javadir}/commons-daemon.jar $DEST/bin
413
414ln -sf %{_javadir}/activation.jar $DEST/common/lib
415ln -sf %{_javadir}/ant.jar $DEST/common/lib
416ln -sf %{_javadir}/commons-collections.jar $DEST/common/lib
417ln -sf %{_javadir}/commons-dbcp.jar $DEST/common/lib
418ln -sf %{_javadir}/commons-logging-api.jar $DEST/common/lib
419ln -sf %{_javadir}/commons-pool.jar $DEST/common/lib
420ln -sf %{_javadir}/servlet.jar $DEST/common/lib
421ln -sf %{_javadir}/servlet.jar $DEST/common/lib/servletapi4.jar
422ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc2_0-stdext.jar
423ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc-stdext-2.0.jar
424ln -sf %{_javadir}/jmxri.jar $DEST/common/lib
425ln -sf %{_javadir}/jndi.jar $DEST/common/lib
426ln -sf %{_javadir}/jta.jar $DEST/common/lib
427ln -sf %{_javadir}/mail.jar $DEST/common/lib
428ln -sf %{_javadir}/jsse.jar $DEST/common/lib
429ln -sf %{_javadir}/tyrex.jar $DEST/common/lib
430ln -sf %{_javadir}/junit.jar $DEST/common/lib
431
432ln -sf %{_javadir}/mailapi.jar $DEST/common/lib
433ln -sf %{_javadir}/pop3.jar $DEST/common/lib
434ln -sf %{_javadir}/pop3.jar $DEST/common/lib/pop.jar
435ln -sf %{_javadir}/smtp.jar $DEST/common/lib
436ln -sf %{_javadir}/imap.jar $DEST/common/lib
437
438ln -sf %{_javadir}/commons-beanutils.jar $DEST/server/lib
439ln -sf %{_javadir}/commons-digester.jar $DEST/server/lib
440ln -sf %{_javadir}/commons-fileupload.jar $DEST/server/lib
441ln -sf %{_javadir}/commons-logging.jar $DEST/server/lib
442ln -sf %{_javadir}/commons-modeler.jar $DEST/server/lib
443ln -sf %{_javadir}/jaas.jar $DEST/server/lib/jaas.jar
444ln -sf %{_javadir}/mx4j-jmx.jar $DEST/server/lib
445ln -sf %{_javadir}/regexp.jar $DEST/server/lib
446ln -sf %{_javadir}/regexp.jar $DEST/server/lib/jakarta-regexp-1.2.jar
447ln -sf %{_javadir}/regexp.jar $DEST/server/lib/regexp-1.2.jar
448
449ln -sf %{_javadir}/jaxp_parser_impl.jar $DEST/common/endorsed
450ln -sf %{_javadir}/xml-commons-apis.jar $DEST/common/endorsed
451
452ln -sf %{_javadir}/struts.jar $DEST/server/webapps/admin/WEB-INF/lib
453
454install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
455
456%clean
457rm -rf $RPM_BUILD_ROOT
458
459%pre
460%groupadd -g 51 -r -f http
461%useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
462
463%post
464/sbin/chkconfig --add tomcat
465%service tomcat restart
466
467%preun
468if [ "$1" = "0" ]; then
469 %service tomcat stop
470 /sbin/chkconfig --del tomcat
471fi
472
473%postun
474if [ "$1" = "0" ]; then
475 %userremove http
476 %groupremove http
477fi
478
479%files
480%defattr(644,root,root,755)
481%doc *.txt LICENSE
482%dir %{_tomcatdir}
483%dir %{_tomcatdir}/bin
484%attr(755,root,root) %{_tomcatdir}/bin/*.sh
485%{_tomcatdir}/bin/*.jar
486%dir %{_tomcatdir}/common
487%dir %{_tomcatdir}/common/classes
488%dir %{_tomcatdir}/common/endorsed
489%{_tomcatdir}/common/endorsed/*.jar
490%{_tomcatdir}/common/lib
491%{_tomcatdir}/conf
492%{_tomcatdir}/logs
493%dir %{_tomcatdir}/server
494%dir %{_tomcatdir}/server/classes
495%{_tomcatdir}/server/lib
496%{_tomcatdir}/server/webapps
497%{_tomcatdir}/webapps
498%{_tomcatdir}/work
499%{_tomcatdir}/shared
500%{_tomcatdir}/temp
501# tomcat wants to regenerate tomcat-users.xml
502%attr(775,root,http) %dir %{_sysconfdir}/tomcat
503%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tomcat/*
504%attr(754,root,root) /etc/rc.d/init.d/tomcat
505%dir %{_vardir}
506%attr(1730,root,http) %dir %{_vardir}/work
507%attr(1730,root,http) %dir %{_logdir}/tomcat
508
509%files doc
510%defattr(644,root,root,755)
511%doc catalina/docs/*
This page took 0.098419 seconds and 4 git commands to generate.