]> git.pld-linux.org Git - packages/tomcat.git/blob - tomcat.spec
- some packaging attempts
[packages/tomcat.git] / tomcat.spec
1 # TODO
2 # - spec vs filename
3 #
4 # Conditional build:
5 %bcond_without  javadoc # skip building javadocs
6 #
7 Summary:        Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
8 Summary(pl.UTF-8):      Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
9 Name:           apache-tomcat
10 Version:        5.5.23
11 Release:        0.1
12 License:        Apache
13 Group:          Development/Languages/Java
14 Source0:        http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
15 # Source0-md5:  362d1d8b15dc09882440dcab8c592dd7
16 Source1:        jakarta-tomcat.init
17 Patch0:         %{name}-skip-servletapi.patch
18 Patch1:         %{name}-nsis.patch
19 Patch2:         %{name}-native.patch
20 Patch3:         %{name}-skip-jdt.patch
21 Patch4:         %{name}-no-connectors.patch
22 URL:            http://tomcat.apache.org/
23 BuildRequires:  ant >= 1.5.3
24 BuildRequires:  ant-trax
25 BuildRequires:  eclipse-jdt
26 BuildRequires:  jaas
27 BuildRequires:  jakarta-commons-beanutils >= 1.7
28 BuildRequires:  jakarta-commons-collections >= 0:3.1
29 BuildRequires:  jakarta-commons-collections-source >= 0:3.1
30 BuildRequires:  jakarta-commons-daemon >= 1.0
31 BuildRequires:  jakarta-commons-dbcp >= 0:1.2.1
32 BuildRequires:  jakarta-commons-dbcp-source >= 0:1.2.1
33 BuildRequires:  jakarta-commons-digester >= 0:1.7
34 BuildRequires:  jakarta-commons-el >= 0:1.0
35 BuildRequires:  jakarta-commons-fileupload >= 0:1.0
36 BuildRequires:  jakarta-commons-httpclient
37 BuildRequires:  jakarta-commons-launcher >= 0:0.9
38 BuildRequires:  jakarta-commons-logging >= 0:1.0.4
39 BuildRequires:  jakarta-commons-modeler >= 2.0
40 BuildRequires:  jakarta-commons-pool >= 0:1.2
41 BuildRequires:  jakarta-commons-pool-source >= 0:1.2
42 BuildRequires:  jakarta-regexp >= 0:1.3
43 BuildRequires:  jakarta-servletapi5
44 #BuildRequires: jakarta-struts >= 0:1.2.7
45 BuildRequires:  jakarta-struts >= 1.0.2
46 BuildRequires:  javamail >= 0:1.3.1
47 BuildRequires:  jaxp_parser_impl >= 0:2.7.1
48 BuildRequires:  jdbc-stdext >= 0:2.0
49 BuildRequires:  jdk >= 1.5
50 BuildRequires:  jmx
51 BuildRequires:  jndi >= 0:1.2.1
52 BuildRequires:  jpackage-utils
53 BuildRequires:  jsse >= 0:1.0.3
54 BuildRequires:  jta >= 0:1.0.1
55 BuildRequires:  junit >= 0:3.8.1
56 BuildRequires:  logging-log4j
57 #BuildRequires: mx4j >= 0:3.0.1
58 BuildRequires:  mx4j >= 1.1.1
59 BuildRequires:  puretls
60 BuildRequires:  rpmbuild(macros) >= 1.300
61 BuildRequires:  xerces-j >= 0:2.7.1
62 BuildRequires:  xml-commons
63 #BuildRequires: xml-commons >= 1.3
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:       xml-commons
91 Provides:       group(http)
92 Provides:       user(http)
93 Obsoletes:      jakarta-tomcat
94 BuildArch:      noarch
95 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
96
97 %define         _tomcatdir      %{_datadir}/tomcat
98 %define         _logdir         %{_var}/log
99 %define         _vardir         %{_var}/lib/tomcat
100 %define         _sysconfdir     /etc/tomcat
101
102 %description
103 Tomcat is the servlet container that is used in the official Reference
104 Implementation for the Java Servlet and JavaServer Pages technologies.
105 The Java Servlet and JavaServer Pages specifications are developed by
106 Sun under the Java Community Process.
107
108 Tomcat is developed in an open and participatory environment and
109 released under the Apache Software License. Tomcat is intended to be a
110 collaboration of the best-of-breed developers from around the world.
111 We invite you to participate in this open development project.
112
113 %description -l pl.UTF-8
114 Tomcat to kontener serwletowy używany przez oficjalną implementację
115 wzorcową technologii Java Servlet i JavaServer Pages. Specyfikacje
116 Java Servlet i JavaServer Pages są rozwijane przez Suna zgodnie z Java
117 Community Process.
118
119 %package doc
120 Summary:        The Apache Tomcat Servlet/JSP Container documentation
121 Summary(pl.UTF-8):      Dokumentacja do Tomcata - kontekera Servlet/JSP
122 Group:          Development/Languages/Java
123 Obsoletes:      jakarta-tomcat-doc
124
125 %description doc
126 The Tomcat Servlet/JSP Container documentation.
127
128 %description doc -l pl.UTF-8
129 Dokumentacja do Tomcata - kontekera Servlet/JSP.
130
131 %prep
132 %setup -q -n %{name}-%{version}-src
133 %patch0 -p1
134 %patch1 -p1
135 %patch2 -p1
136 %patch3 -p1
137 %patch4 -p1
138
139 # servletapi built from jakarta-servletapi5.spec
140 rm -rf servletapi
141
142 # Remove pre-built jars
143 find -name '*.jar' | xargs rm -fv
144
145 %build
146 TOPDIR=$(pwd)
147
148 mkdir -p tomcat-deps
149 > tomcat-deps/tomcat-dbcp.jar
150
151 %if 0
152 # build jasper javadocs
153 cd jasper
154 CLASSPATH=$(build-classpath xml-commons-apis)
155 cat > build.properties <<EOF
156 ant.jar=$(build-classpath ant)
157 servlet-api.jar=$(build-classpath servlet-api)
158 jsp-api.jar=$(build-classpath jsp-api)
159 tools.jar=%{java_home}/lib/tools.jar
160 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
161 xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
162 commons-collections.jar=$(build-classpath commons-collections)
163 commons-logging.jar=$(build-classpath commons-logging)
164 commons-daemon.jar=$(build-classpath commons-daemon)
165 junit.jar=$(build-classpath junit)
166 commons-el.jar=$(build-classpath commons-el)
167 EOF
168 # building jasper needs eclipse classes
169 #%ant dist
170
171 %if %{with javadoc}
172 %ant javadoc \
173         -Dcompile.source=1.4 \
174         -Dbuild.compiler=modern \
175
176 %endif
177 cd -
178 %endif
179
180 # build tomcat 5.5
181 cat > build.properties <<EOF
182 commons-beanutils.jar=$(build-classpath commons-beanutils)
183 commons-launcher.jar=$(build-classpath commons-launcher)
184 commons-daemon.jar=$(build-classpath commons-daemon)
185 commons-digester.jar=$(build-classpath commons-digester)
186 commons-el.jar=$(build-classpath commons-el)
187 commons-logging-api.jar=$(build-classpath commons-logging-api)
188 commons-logging.jar=$(build-classpath commons-logging)
189 commons-modeler.jar=$(build-classpath commons-modeler)
190 xercesImpl.jar=$(build-classpath jaxp_parser_impl)
191 xml-apis.jar=$(build-classpath xml-commons-apis)
192 jdt.jar=$(build-classpath org.eclipse.jdt.core)
193 jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
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 jmx.jar=$(build-classpath jmx)
198 jmx-tools.jar=$(build-classpath jmx)
199 junit.jar=$(build-classpath junit)
200 struts.jar=$(build-classpath struts)
201 jcert.jar=$(build-classpath java/jcert)
202 jnet.jar=$(build-classpath java/jnet)
203 jsse.jar=$(build-classpath java/jsse)
204 jta.jar=$(build-classpath jta)
205 puretls.jar=$(build-classpath puretls)
206 servlet-api.jar=$(build-classpath servlet-api)
207 servletapi.build.notrequired=true
208 jsp-api.jar=$(build-classpath jsp-api)
209 jspapi.build.notrequired=true
210 log4j.jar=$(build-classpath log4j)
211 # source is needed because source is copied modified and recompiled as tomcat jar
212 # see <target name="-build-tomcat-dbcp"> in build/build.xml
213 commons-collections.home=%{_prefix}/src/jakarta-commons-collections-3.1
214 commons-pool.home=%{_prefix}/src/jakarta-commons-pool-1.3
215 commons-dbcp.home=%{_prefix}/src/jakarta-commons-dbcp-1.2.1
216 tomcat-dbcp.home=$TOPDIR/tomcat-deps
217 # err, it compiles three above and then appends to the jar, so the file should exist
218 tomcat-dbcp.jar=$TOPDIR/tomcat-deps/tomcat-dbcp.jar
219 EOF
220
221 %ant \
222         -Dcompile.source=1.4
223
224 %install
225 rm -rf $RPM_BUILD_ROOT
226 cd build/build
227 TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
228 CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
229
230 # we don't need dos scripts
231 rm -f bin/*.bat
232
233 randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
234 sed -i -e s:SHUTDOWN:${randpw}: conf/{server,server-minimal}.xml
235
236 install -d $TOMCATDIR/bin \
237             $TOMCATDIR/common/{lib,classes,endorsed} \
238             $TOMCATDIR/server/{lib,classes} \
239             $TOMCATDIR/webapps \
240             $RPM_BUILD_ROOT%{_sysconfdir} \
241             $RPM_BUILD_ROOT%{_logdir}/tomcat \
242             $RPM_BUILD_ROOT%{_vardir}/work \
243             $RPM_BUILD_ROOT/etc/rc.d/init.d
244
245 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
246
247 cp -pR conf/* $RPM_BUILD_ROOT%{_sysconfdir}
248 cp -HR bin common server $TOMCATDIR
249
250 cp -rf  server/webapps  $TOMCATDIR/server
251 cp -rf  webapps                 $TOMCATDIR
252 cp -rf  shared          $TOMCATDIR
253 cp -rf  temp            $TOMCATDIR
254
255 ln -sf %{_logdir}/tomcat        $TOMCATDIR/logs
256 ln -sf %{_vardir}/work          $TOMCATDIR/work
257 ln -sf %{_sysconfdir}   $TOMCATDIR/conf
258
259 # symlinks instead of copies
260 ln -sf %{_javadir}/commons-daemon.jar   $TOMCATDIR/bin
261
262 ln -sf %{_javadir}/activation.jar               $TOMCATDIR/common/lib
263 ln -sf %{_javadir}/ant.jar                      $TOMCATDIR/common/lib
264 ln -sf %{_javadir}/commons-collections.jar      $TOMCATDIR/common/lib
265 ln -sf %{_javadir}/commons-dbcp.jar             $TOMCATDIR/common/lib
266 ln -sf %{_javadir}/commons-logging-api.jar      $TOMCATDIR/common/lib
267 ln -sf %{_javadir}/commons-pool.jar             $TOMCATDIR/common/lib
268 ln -sf %{_javadir}/servlet.jar          $TOMCATDIR/common/lib
269 ln -sf %{_javadir}/servlet.jar          $TOMCATDIR/common/lib/servletapi4.jar
270 ln -sf %{_javadir}/jdbc-stdext.jar              $TOMCATDIR/common/lib/jdbc2_0-stdext.jar
271 ln -sf %{_javadir}/jdbc-stdext.jar              $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
272 ln -sf %{_javadir}/jmxri.jar                    $TOMCATDIR/common/lib
273 ln -sf %{_javadir}/jndi.jar                     $TOMCATDIR/common/lib
274 ln -sf %{_javadir}/jta.jar                      $TOMCATDIR/common/lib
275 ln -sf %{_javadir}/mail.jar                     $TOMCATDIR/common/lib
276 ln -sf %{_javadir}/jsse.jar                     $TOMCATDIR/common/lib
277 ln -sf %{_javadir}/junit.jar                    $TOMCATDIR/common/lib
278
279 ln -sf %{_javadir}/mailapi.jar          $TOMCATDIR/common/lib
280 ln -sf %{_javadir}/pop3.jar                     $TOMCATDIR/common/lib
281 ln -sf %{_javadir}/pop3.jar                     $TOMCATDIR/common/lib/pop.jar
282 ln -sf %{_javadir}/smtp.jar                     $TOMCATDIR/common/lib
283 ln -sf %{_javadir}/imap.jar                     $TOMCATDIR/common/lib
284
285 ln -sf %{_javadir}/commons-beanutils.jar        $TOMCATDIR/server/lib
286 ln -sf %{_javadir}/commons-digester.jar $TOMCATDIR/server/lib
287 ln -sf %{_javadir}/commons-fileupload.jar       $TOMCATDIR/server/lib
288 ln -sf %{_javadir}/commons-logging.jar  $TOMCATDIR/server/lib
289 ln -sf %{_javadir}/commons-modeler.jar  $TOMCATDIR/server/lib
290 ln -sf %{_javadir}/jaas.jar                     $TOMCATDIR/server/lib/jaas.jar
291 ln -sf %{_javadir}/mx4j-jmx.jar         $TOMCATDIR/server/lib
292 ln -sf %{_javadir}/regexp.jar           $TOMCATDIR/server/lib
293 ln -sf %{_javadir}/regexp.jar           $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
294 ln -sf %{_javadir}/regexp.jar           $TOMCATDIR/server/lib/regexp-1.2.jar
295
296 ln -sf %{_javadir}/jaxp_parser_impl.jar $TOMCATDIR/common/endorsed
297 ln -sf %{_javadir}/xml-commons-apis.jar $TOMCATDIR/common/endorsed
298
299 ln -sf %{_javadir}/struts.jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
300
301 %clean
302 rm -rf $RPM_BUILD_ROOT
303
304 %pre
305 %groupadd -g 51 -r -f http
306 %useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
307
308 %post
309 /sbin/chkconfig --add tomcat
310 %service tomcat restart
311
312 %preun
313 if [ "$1" = "0" ]; then
314         %service tomcat stop
315         /sbin/chkconfig --del tomcat
316 fi
317
318 %postun
319 if [ "$1" = "0" ]; then
320         %userremove http
321         %groupremove http
322 fi
323
324 %files
325 %defattr(644,root,root,755)
326 %doc build/{RELEASE-NOTES,RUNNING.txt}
327 # tomcat wants to regenerate tomcat-users.xml
328 %dir %attr(775,root,http) %{_sysconfdir}
329 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*
330 %attr(754,root,root) /etc/rc.d/init.d/tomcat
331 %dir %{_tomcatdir}
332 %dir %{_tomcatdir}/bin
333 %{_tomcatdir}/bin/catalina-tasks.xml
334 %{_tomcatdir}/bin/jkstatus-tasks.xml
335 %{_tomcatdir}/bin/jmxaccessor-tasks.xml
336 %attr(755,root,root) %{_tomcatdir}/bin/*.sh
337 %{_tomcatdir}/bin/*.jar
338 %dir %{_tomcatdir}/common
339 %dir %{_tomcatdir}/common/classes
340 %dir %{_tomcatdir}/common/endorsed
341 %dir %{_tomcatdir}/common/i18n
342 %{_tomcatdir}/common/endorsed/*.jar
343 %{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
344 %lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
345 %lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
346 %lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
347 %{_tomcatdir}/common/lib
348 %{_tomcatdir}/conf
349 %{_tomcatdir}/logs
350 %dir %{_tomcatdir}/server
351 %dir %{_tomcatdir}/server/classes
352 %{_tomcatdir}/server/lib
353 %{_tomcatdir}/server/webapps
354 %{_tomcatdir}/webapps
355 %{_tomcatdir}/work
356 %{_tomcatdir}/shared
357 %{_tomcatdir}/temp
358 %dir %{_vardir}
359 %dir %attr(1730,root,http) %{_vardir}/work
360 %dir %attr(1730,root,http) %{_logdir}/tomcat
361
362 %if 0
363 %files doc
364 %defattr(644,root,root,755)
365 %doc catalina/docs/*
366 %endif
This page took 0.109074 seconds and 4 git commands to generate.