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