-# TODO
-# - packages for *.renametojar files (-cgi and -ssi in server/lib)
-#
+# TODO
+# - 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
-Name: apache-tomcat
+Name: tomcat
Version: 5.5.27
-Release: 0.1
-License: Apache
-Group: Development/Languages/Java
-Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
+Release: 0.6
+License: Apache v2.0
+Group: Networking/Daemons/Java
+Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
# Source0-md5: eb3f196013550b9b1684e4ff18593a8e
-Source1: %{name}.init
-Source2: %{name}.sysconfig
-Patch0: %{name}-skip-servletapi.patch
-Patch1: %{name}-nsis.patch
-Patch2: %{name}-native.patch
-Patch3: %{name}-skip-jdt.patch
-Patch4: %{name}-no-connectors.patch
-Patch5: %{name}-dbcp.patch
+Source1: apache-%{name}.init
+Source2: apache-%{name}.sysconfig
+Source10: apache-%{name}-context-ROOT.xml
+Source11: apache-%{name}-context-balancer.xml
+Source12: apache-%{name}-context-jsp-examples.xml
+Source13: apache-%{name}-context-tomcat-docs.xml
+Source14: apache-%{name}-context-webdav.xml
+Patch0: apache-%{name}-skip-servletapi.patch
+Patch1: apache-%{name}-nsis.patch
+Patch2: apache-%{name}-native.patch
+Patch3: apache-%{name}-skip-jdt.patch
+Patch4: apache-%{name}-no-connectors.patch
+Patch5: apache-%{name}-dbcp.patch
# this patch is needed for struts >= 1.3
-Patch6: %{name}-struts.patch
+Patch6: apache-%{name}-struts.patch
+# WTF? Why is it needed? Is it related to struts version?
+Patch7: apache-%{name}-admin-struts.patch
URL: http://tomcat.apache.org/
+%if %{with java_sun}
+BuildRequires: java-sun >= 1.5
+BuildRequires: java-sun-jre >= 1.5
+%else
+# BuildRequires: jsse >= 0:1.0.3
+BuildRequires: java-gcj-compat-devel
+%endif
BuildRequires: ant >= 1.5.3
BuildRequires: ant-trax
BuildRequires: eclipse-jdt
BuildRequires: jaas
-BuildRequires: java-commons-httpclient
BuildRequires: jakarta-regexp >= 0:1.3
-#BuildRequires: java-struts >= 0:1.2.7
-BuildRequires: java-struts >= 1.0.2
BuildRequires: java-commons-beanutils >= 1.7
+BuildRequires: java-commons-chain
BuildRequires: java-commons-collections >= 0:3.1
BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
BuildRequires: java-commons-daemon >= 1.0
BuildRequires: java-commons-digester >= 0:1.7
BuildRequires: java-commons-el >= 0:1.0
BuildRequires: java-commons-fileupload >= 0:1.0
+BuildRequires: java-commons-httpclient
BuildRequires: java-commons-io >= 1.4
BuildRequires: java-commons-launcher >= 0:0.9
BuildRequires: java-commons-logging >= 0:1.0.4
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-mail >= 0:1.3.1
+BuildRequires: java-puretls
BuildRequires: java-servletapi5 = %{version}
-BuildRequires: javamail >= 0:1.3.1
+#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: 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(pre): /usr/bin/getgid
Requires(pre): /usr/sbin/groupadd
Requires(pre): /usr/sbin/useradd
+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-beanutils
+Requires: java-commons-collections
#Requires: java-commons-dbcp-tomcat5
-#Requires: java-commons-digester
+Requires: java-commons-digester
Requires: java-commons-el
#Requires: java-commons-fileupload
-#Requires: java-commons-logging
+Requires: java-commons-logging
+Requires: java-commons-modeler
+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(http)
-Provides: user(http)
+Provides: group(servlet)
+Provides: group(tomcat)
+Provides: java-servlet-container
+Provides: user(tomcat)
+Obsoletes: apache-tomcat
Obsoletes: jakarta-tomcat
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _vardir %{_var}/lib/tomcat
%define _sysconfdir /etc/tomcat
+%define find_jar() %{expand:%%define jarfile {%(jar=$(find-jar %1); echo ${jar:-%%nil})}}%{?jarfile}%{!?jarfile:%{error:find-jar %1 failed}}%{nil}
+
%description
Tomcat is the servlet container that is used in the official Reference
Implementation for the Java Servlet and JavaServer Pages technologies.
%package doc
Summary: The Apache Tomcat Servlet/JSP Container documentation
Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
-Group: Development/Languages/Java
+Group: Documentation
+Obsoletes: apache-tomcat-doc
Obsoletes: jakarta-tomcat-doc
%description doc
%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: Networking/Daemons/Java/Servlets
+Requires: %{name} = %{version}-%{release}
+Requires: java-commons-chain
+
+%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
+Group: Libraries/Java
+Requires: jpackage-utils
+Obsoletes: apache-tomcat-jasper
+
+%description jasper
+Jasper is Java ServerPages compiler used by Apache Tomcat servlet
+container.
+
+%description jasper -l pl.UTF-8
+Jasper jest kompilatorem Java ServerPages używanym przez kontener
+servletów Apache Tomcat.
+
%prep
-%setup -q -n %{name}-%{version}-src
+%setup -q -n apache-%{name}-%{version}-src
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+
+# we don't need dos scripts
+rm -f container/catalina/src/bin/*.bat
+# or those
+rm -f container/catalina/src/bin/{startup,shutdown}.sh
+
+# causes file(1) rpm to abort, and not really neccessary file
+rm container/webapps/admin/images/Thumbs.db
+# file: Thumbs.db: ERROR: Cannot read short stream (Invalid argument)
+# rpm: error: magic_file(ms, "Thumbs.db") failed: mode 37777700644 Cannot read short stream (Invalid argument)
# servletapi built from jakarta-servletapi5.spec
rm -rf servletapi
%build
TOPDIR=$(pwd)
-%if 0
-# build jasper javadocs
-cd jasper
-CLASSPATH=$(build-classpath xml-commons-apis)
-# building jasper needs eclipse classes
-cat > build.properties <<EOF
-ant.jar=$(find-jar ant)
-servlet-api.jar=$(find-jar servlet-api)
-jsp-api.jar=$(find-jar jsp-api)
-tools.jar=%{java_home}/lib/tools.jar
-xercesImpl.jar=$(find-jar jaxp_parser_impl)
-xmlParserAPIs.jar=$(find-jar xml-commons-apis)
-commons-collections.jar=$(find-jar commons-collections)
-commons-logging.jar=$(find-jar commons-logging)
-commons-daemon.jar=$(find-jar commons-daemon)
-junit.jar=$(find-jar junit)
-commons-el.jar=$(find-jar commons-el)
-EOF
-#%ant dist
-
-%if %{with javadoc}
-%ant javadoc \
- -Dcompile.source=1.4 \
- -Dbuild.compiler=modern \
-
-%endif
-cd -
-%endif
-
# build tomcat 5.5
cat > build.properties <<EOF
commons-beanutils.jar=$(find-jar commons-beanutils-core)
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
jspapi.build.notrequired=true
log4j.jar=$(find-jar log4j)
tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
-struts.lib=%{_datadir}/java-struts
+struts.lib=%{_javadir}-struts
EOF
+if grep '=$' build.properties; then
+ : Some .jar could not be found
+ exit 1
+fi
+
%ant \
-Dcompile.source=1.4
TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
-# we don't need dos scripts
-rm -f bin/*.bat
-
randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
%{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
$TOMCATDIR/common/{lib,classes,endorsed} \
$TOMCATDIR/server/{lib,classes} \
$TOMCATDIR/webapps \
- $RPM_BUILD_ROOT%{_sysconfdir} \
$RPM_BUILD_ROOT%{_logdir}/tomcat \
+ $RPM_BUILD_ROOT%{_vardir}/webapps \
$RPM_BUILD_ROOT%{_vardir}/work \
+ $RPM_BUILD_ROOT%{_vardir}/conf \
+ $RPM_BUILD_ROOT/etc/sysconfig \
$RPM_BUILD_ROOT/etc/rc.d/init.d
install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
-cp -pR conf/* $RPM_BUILD_ROOT%{_sysconfdir}
+cp -a conf/* $CATALINADIR/conf
+install %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml
+install %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/balancer.xml
+install %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/jsp-examples.xml
+install %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/tomcat-docs.xml
+install %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/webdav.xml
cp -HR bin common server $TOMCATDIR
-cp -rf server/webapps $TOMCATDIR/server
-cp -rf webapps $TOMCATDIR
-cp -rf shared $TOMCATDIR
-cp -rf temp $TOMCATDIR
+cp -a server/webapps $TOMCATDIR/server
+cp -a webapps $TOMCATDIR
+cp -a shared $TOMCATDIR
+cp -a temp $CATALINADIR
+ln -sf %{_logdir}/tomcat $CATALINADIR/logs
ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
ln -sf %{_vardir}/work $TOMCATDIR/work
-ln -sf %{_sysconfdir} $TOMCATDIR/conf
+ln -sf %{_vardir}/conf $TOMCATDIR/conf
+ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
# symlinks instead of copies
-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 commons-modeler) $TOMCATDIR/server/lib/commons-modeler.jar
+jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/common/lib
+done
+
+jars="jaxp_parser_impl xml-commons-apis"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/common/endorsed
+done
+
+jars="struts-core struts-taglib commons-collections commons-beanutils-core commons-digester commons-chain"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
+done
%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 $(find-jar activation) $TOMCATDIR/common/lib/activation.jar
-ln -sf $(find-jar ant) $TOMCATDIR/common/lib/ant.jar
-ln -sf $(find-jar commons-collections) $TOMCATDIR/common/lib/commons-collections.jar
-ln -sf $(find-jar commons-dbcp) $TOMCATDIR/common/lib/commons-dbcp.jar
-ln -sf $(find-jar commons-logging-api) $TOMCATDIR/common/lib/commons-logging-api.jar
-ln -sf $(find-jar commons-pool) $TOMCATDIR/common/lib/commons-pool.jar
-ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servlet.jar
-ln -sf $(find-jar servlet) $TOMCATDIR/common/lib/servletapi4.jar
-ln -sf $(find-jar jdbc-stdext) $TOMCATDIR/common/lib/jdbc-stdext.jar
+jars="commons-daemon"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/bin
+done
+
+jars="activation ant commons-dbcp commons-logging-api commons-pool servlet jdbc-stdext
+jmxri jndi %{?with_jta:jta} mail jsse junit mailapi pop3"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/common/lib
+done
+
+ln -sf servlet.jar $TOMCATDIR/common/lib/servletapi4.jar
ln -sf jdbc-stdext.jar $TOMCATDIR/common/lib/jdbc2_0-stdext.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
-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
-ln -sf $(find-jar mailapi) $TOMCATDIR/common/lib/mailapi.jar
-ln -sf $(find-jar pop3) $TOMCATDIR/common/lib/pop3.jar
ln -sf pop3.jar $TOMCATDIR/common/lib/pop.jar
-ln -sf $(find-jar smtp) $TOMCATDIR/common/lib/smtp.jar
-ln -sf $(find-jar imap) $TOMCATDIR/common/lib/imap.jar
-ln -sf $(find-jar commons-beanutils) $TOMCATDIR/server/lib/commons-beanutils.jar
-ln -sf $(find-jar commons-digester) $TOMCATDIR/server/lib/commons-digester.jar
-ln -sf $(find-jar commons-fileupload) $TOMCATDIR/server/lib/commons-fileupload.jar
-ln -sf $(find-jar commons-logging) $TOMCATDIR/server/lib/commons-logging.jar
-ln -sf $(find-jar jaas) $TOMCATDIR/server/lib/jaas.jar
-ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp.jar
-ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
-ln -sf $(find-jar regexp) $TOMCATDIR/server/lib/regexp-1.2.jar
+
+jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/server/lib
+done
+ln -sf regexp.jar $TOMCATDIR/server/lib/jakarta-regexp-1.2.jar
+ln -sf regexp.jar $TOMCATDIR/server/lib/regexp-1.2.jar
%endif
-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-core) $TOMCATDIR/server/webapps/admin/WEB-INF/lib/struts-core.jar
+install -d $RPM_BUILD_ROOT%{_javadir}
+mv $TOMCATDIR/common/lib/jasper*.jar $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-runtime.jar $TOMCATDIR/common/lib
%clean
rm -rf $RPM_BUILD_ROOT
%pre
-%groupadd -g 51 -r -f http
-%useradd -u 51 -r -d /home/services/httpd -s /bin/false -c "HTTP User" -g http http
+%groupadd -g 234 -r -f tomcat
+%groupadd -g 237 -r -f servlet
+%useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat -G servlet tomcat
%post
/sbin/chkconfig --add tomcat
%postun
if [ "$1" = "0" ]; then
- %userremove http
- %groupremove http
+ %userremove tomcat
+ %groupremove tomcat
+ %groupremove servlet
fi
%files
%defattr(644,root,root,755)
%doc build/{RELEASE-NOTES,RUNNING.txt}
-# tomcat wants to regenerate tomcat-users.xml
-%dir %attr(775,root,http) %{_sysconfdir}
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*
%attr(754,root,root) /etc/rc.d/init.d/tomcat
+%config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat
+%{_sysconfdir}
%dir %{_tomcatdir}
+%dir %{_tomcatdir}/conf
%dir %{_tomcatdir}/bin
%{_tomcatdir}/bin/catalina-tasks.xml
%{_tomcatdir}/bin/jkstatus-tasks.xml
%lang(fr) %{_tomcatdir}/common/i18n/tomcat-i18n-fr.jar
%lang(ja) %{_tomcatdir}/common/i18n/tomcat-i18n-ja.jar
%{_tomcatdir}/common/lib
-%{_tomcatdir}/conf
-%{_tomcatdir}/logs
%dir %{_tomcatdir}/server
%dir %{_tomcatdir}/server/classes
%{_tomcatdir}/server/lib
-%{_tomcatdir}/server/webapps
-%{_tomcatdir}/webapps
+%dir %{_tomcatdir}/server/webapps
+
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml
+%{_tomcatdir}/server/webapps/host-manager
+
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml
+%{_tomcatdir}/server/webapps/manager
+
+%dir %{_tomcatdir}/webapps
+
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml
+%{_tomcatdir}/webapps/ROOT
+
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/balancer.xml
+%{_tomcatdir}/webapps/balancer
+
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/webdav.xml
+%{_tomcatdir}/webapps/webdav
+
+%{_tomcatdir}/logs
%{_tomcatdir}/work
%{_tomcatdir}/shared
-%{_tomcatdir}/temp
%dir %{_vardir}
-%dir %attr(1730,root,http) %{_vardir}/work
-%dir %attr(1730,root,http) %{_logdir}/tomcat
+# these directory has to be writeable because /admin need to modify config
+# files and create temporary files
+%dir %attr(775,root,tomcat) %{_vardir}/conf
+%dir %attr(775,root,tomcat) %{_vardir}/conf/Catalina
+%dir %{_vardir}/conf/Catalina/localhost
+# tomcat config has to be writeable because of tomcat-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
+%dir %attr(1730,root,tomcat) %{_vardir}/work
+%dir %attr(775,root,tomcat) %{_vardir}/webapps
+%dir %attr(775,root,tomcat) %{_vardir}/temp
+%dir %attr(775,root,tomcat) %{_logdir}/tomcat
+%{_vardir}/logs
-%if 0
%files doc
%defattr(644,root,root,755)
-%doc catalina/docs/*
-%endif
+%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/tomcat-docs.xml
+%{_tomcatdir}/webapps/tomcat-docs
+
+%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(644,root,root,755)
+%{_javadir}/jasper-compiler-jdt.jar
+%{_javadir}/jasper-compiler.jar
+%{_javadir}/jasper-runtime.jar