# - packages for *.renametojar files (-cgi and -ssi in server/lib)
#
# Conditional build:
-%bcond_without javadoc # skip building javadocs
+%bcond_without javadoc # skip building javadocs
+%bcond_with jta # put jta jar into tomcat lib dir.
+%bcond_without java_sun # build with gcj (does not work)
#
Summary: Apache Servlet/JSP Engine, RI for Servlet 2.4/JSP 2.0 API
Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
# this patch is needed for struts >= 1.3
Patch6: %{name}-struts.patch
URL: http://tomcat.apache.org/
+%if %{with java_sun}
+BuildRequires: java-sun >= 1.5
+BuildRequires: java-sun-jre >= 1.5
+%else
+BuildRequires: java-gcj-compat-devel
+# BuildRequires: jsse >= 0:1.0.3
+%endif
BuildRequires: ant >= 1.5.3
BuildRequires: ant-trax
BuildRequires: eclipse-jdt
BuildRequires: java-commons-modeler >= 2.0
BuildRequires: java-commons-pool >= 0:1.2
BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
+%{?with_jta:BuildRequires: java-jta >= 0:1.0.1}
+BuildRequires: java-log4j
+BuildRequires: java-puretls
BuildRequires: java-servletapi5 = %{version}
#BuildRequires: java-struts >= 0:1.2.7
BuildRequires: java-struts >= 1.0.2
+BuildRequires: java-xerces >= 0:2.7.1
+BuildRequires: java-xml-commons
+#BuildRequires: java-xml-commons >= 1.3
BuildRequires: javamail >= 0:1.3.1
BuildRequires: jaxp_parser_impl >= 0:2.7.1
BuildRequires: jdbc-stdext >= 0:2.0
-BuildRequires: jdk >= 1.5
BuildRequires: jmx
BuildRequires: jndi >= 0:1.2.1
BuildRequires: jpackage-utils
-BuildRequires: jsse >= 0:1.0.3
-BuildRequires: jta >= 0:1.0.1
BuildRequires: junit >= 0:3.8.1
-BuildRequires: logging-log4j
-BuildRequires: puretls
BuildRequires: rpmbuild(macros) >= 1.300
-BuildRequires: xerces-j >= 0:2.7.1
-BuildRequires: xml-commons
-#BuildRequires: xml-commons >= 1.3
Requires(post,postun): /sbin/ldconfig
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires: %{name}-jasper = %{version}-%{release}
Requires: jaas
#Requires: jaf >= 1.0.1
-Requires: jakarta-regexp
#Requires: java-commons-beanutils
#Requires: java-commons-collections
#Requires: java-commons-dbcp-tomcat5
Requires: java-commons-el
#Requires: java-commons-fileupload
#Requires: java-commons-logging
+Requires: java-regexp
Requires: java-servletapi5 = %{version}
+Requires: java-xml-commons
Requires: javamail >= 1.2
Requires: jaxp_parser_impl
Requires: jdbc-stdext >= 2.0
Requires: jndi >= 1.2.1
Requires: jre >= 1.2
Requires: jsse >= 1.0.2
-Requires: jta >= 1.0.1
+%{?with_jta:Requires: jta >= 1.0.1}
Requires: rc-scripts
-Requires: xml-commons
Provides: group(tomcat)
Provides: java-servlet-container
Provides: user(tomcat)
%description doc -l pl.UTF-8
Dokumentacja do Tomcata - kontenera Servlet/JSP.
+%package admin
+Summary: Apache Tomcat`s Administration Web Application
+Summary(pl.UTF-8): Panel Administracyjny dla Apache Tomcat
+Group: Applications/WWW
+
+%description admin
+Administration Web Application for Apache Tomcat.
+
+%description admin -l pl.UTF-8
+Panel Administracyjny dla Apache Tomcat.
+
%package jasper
Summary: JSP compiler
Summary(pl.UTF-8): Kompilator JSP
%endif
# build tomcat 5.5
+# XXX build process should fail if one of these find-jar commands fails
+# how to fix that?
cat > build.properties <<EOF
commons-beanutils.jar=$(find-jar commons-beanutils-core)
commons-launcher.jar=$(find-jar commons-launcher)
jcert.jar=$(find-jar jcert)
jnet.jar=$(find-jar jnet)
jsse.jar=$(find-jar jsse)
-jta.jar=$(find-jar jta)
+%{?with_jta:jta.jar=$(find-jar jta)}
puretls.jar=$(find-jar puretls)
servlet-api.jar=$(find-jar servlet-api)
servletapi.build.notrequired=true
ln -sf $(find-jar commons-el) $TOMCATDIR/common/lib/commons-el.jar
ln -sf $(find-jar jakarta-commons-dbcp-tomcat5) $TOMCATDIR/common/lib/jakarta-commons-dbcp-tomcat5.jar
ln -sf $(find-jar servlet-api) $TOMCATDIR/common/lib/servlet-api.jar
+ln -sf $(find-jar jsp-api) $TOMCATDIR/common/lib/jsp-api.jar
ln -sf $(find-jar commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
+ln -sf $(find-jar jaxp_parser_impl) $TOMCATDIR/common/endorsed/jaxp_parser_impl.jar
+ln -sf $(find-jar xml-commons-apis) $TOMCATDIR/common/endorsed/xml-commons-apis.jar
+ln -sf $(find-jar struts) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts.jar
+
%if 0
# do not make these symlinks as ant didn't do
ln -sf $(find-jar commons-daemon) $TOMCATDIR/bin/commons-daemon.jar
ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc-stdext-2.0.jar
ln -sf $(find-jar jmxri) $TOMCATDIR/common/lib/jmxri.jar
ln -sf $(find-jar jndi) $TOMCATDIR/common/lib/jndi.jar
-ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar
+%{?with_jta:ln -sf $(find-jar jta) $TOMCATDIR/common/lib/jta.jar}
ln -sf $(find-jar mail) $TOMCATDIR/common/lib/mail.jar
ln -sf $(find-jar jsse) $TOMCATDIR/common/lib/jsse.jar
ln -sf $(find-jar junit) $TOMCATDIR/common/lib/junit.jar
mv $TOMCATDIR/common/lib/jasper* $RPM_BUILD_ROOT%{_javadir}
ln -sf %{_javadir}/jasper-compiler-jdt.jar $TOMCATDIR/common/lib/
ln -sf %{_javadir}/jasper-compiler.jar $TOMCATDIR/common/lib/
-ln -sf %{_javadir}/jasper-compiler-runtime.jar $TOMCATDIR/common/lib/
+ln -sf %{_javadir}/jasper-runtime.jar $TOMCATDIR/common/lib/
%clean
rm -rf $RPM_BUILD_ROOT
%dir %{_tomcatdir}/server
%dir %{_tomcatdir}/server/classes
%{_tomcatdir}/server/lib
-%{_tomcatdir}/server/webapps
+%{_tomcatdir}/server/webapps/host-manager
+%{_tomcatdir}/server/webapps/manager
%{_tomcatdir}/webapps
%{_tomcatdir}/work
%{_tomcatdir}/shared
%dir %{_vardir}
-# tomcat config has to be writeable because of tomacta-users.xml file and
-# Catalina dir
-%config(noreplace) %attr(775,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf
+%dir %{_vardir}/conf/Catalina
+%dir %{_vardir}/conf/Catalina/localhost
+# tomcat config has to be writeable because of tomacta-users.xml file and Catalina dir
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/MANIFEST.MF
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties*
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.manifest
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/jsp-examples.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
%dir %attr(1730,root,tomcat) %{_vardir}/work
%dir %attr(775,root,tomcat) %{_vardir}/webapps
%dir %attr(775,root,tomcat) %{_vardir}/temp
%doc catalina/docs/*
%endif
+%files admin
+%defattr(644,root,root,755)
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/admin.xml
+%{_tomcatdir}/server/webapps/admin
+
%files jasper
-%defattr(754,root,root,755)
+%defattr(644,root,root,755)
%{_javadir}/jasper-compiler-jdt.jar
%{_javadir}/jasper-compiler.jar
%{_javadir}/jasper-runtime.jar