+# TODO
+# - packages for *.renametojar files (-cgi and -ssi in server/lib)
#
# Conditional build:
-%bcond_with binary # build from binary source
%bcond_without javadoc # skip building javadocs
#
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
-Version: 5.5.23
-Release: 0.1
+Version: 5.5.27
+Release: 0.2
License: Apache
Group: Development/Languages/Java
-#Source0: http://www.apache.org/dist/tomcat/tomcat-5/v5.0.30/src/%{name}-%{version}-src.tar.gz
Source0: http://www.apache.org/dist/tomcat/tomcat-5/v%{version}/src/%{name}-%{version}-src.tar.gz
-# Source0-md5: 362d1d8b15dc09882440dcab8c592dd7
-#Source0: http://apache.zone-h.org/
-Source1: jakarta-tomcat.init
+# Source0-md5: eb3f196013550b9b1684e4ff18593a8e
+Source1: %{name}.init
+Source2: %{name}.sysconfig
+Source10: %{name}-context-ROOT.xml
+Source11: %{name}-context-balancer.xml
+Source12: %{name}-context-jsp-examples.xml
+Source13: %{name}-context-tomcat-docs.xml
+Source14: %{name}-context-webdav.xml
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
+# this patch is needed for struts >= 1.3
+Patch6: %{name}-struts.patch
URL: http://tomcat.apache.org/
-# required:
BuildRequires: ant >= 1.5.3
-BuildRequires: jaas
-BuildRequires: jakarta-commons-beanutils
-BuildRequires: jakarta-commons-collections
-BuildRequires: jakarta-commons-collections-source
-BuildRequires: jakarta-commons-daemon
-BuildRequires: jakarta-commons-dbcp
-BuildRequires: jakarta-commons-dbcp-source
-BuildRequires: jakarta-commons-digester
-BuildRequires: jakarta-commons-fileupload
-BuildRequires: jakarta-commons-httpclient
-BuildRequires: jakarta-commons-launcher
+BuildRequires: ant-trax
BuildRequires: eclipse-jdt
-BuildRequires: jakarta-commons-logging
-BuildRequires: jakarta-commons-modeler >= 2.0
-BuildRequires: jakarta-commons-pool
-BuildRequires: jakarta-commons-pool-source
-BuildRequires: jakarta-regexp
-BuildRequires: jakarta-servletapi5
-BuildRequires: jakarta-struts >= 1.0.2
-BuildRequires: jaxp_parser_impl
+BuildRequires: jaas
+BuildRequires: jakarta-regexp >= 0:1.3
+BuildRequires: java-commons-beanutils >= 1.7
+BuildRequires: java-commons-collections >= 0:3.1
+BuildRequires: java-commons-collections-tomcat5 >= 0:3.1
+BuildRequires: java-commons-daemon >= 1.0
+BuildRequires: java-commons-dbcp >= 0:1.2.1
+BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.2.1
+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
+BuildRequires: java-servletapi5 = %{version}
+#BuildRequires: java-struts >= 0:1.2.7
+BuildRequires: java-struts >= 1.0.2
+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: mx4j >= 1.1.1
+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
-%if %{with javadoc}
-BuildRequires: jakarta-commons-el
-%endif
-# optional:
-BuildRequires: jaf >= 1.0.1
-BuildRequires: jakarta-commons-dbcp
-BuildRequires: jakarta-commons-pool
-BuildRequires: javamail >= 1.2
-BuildRequires: jdbc-stdext >= 2.0
-BuildRequires: jndi >= 1.2.1
-BuildRequires: jsse >= 1.0.2
-BuildRequires: jta >= 1.0.1
-BuildRequires: junit >= 3.7
-BuildRequires: rpmbuild(macros) >= 1.268
-BuildRequires: tyrex >= 1.0
+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-commons-beanutils
-Requires: jakarta-commons-collections
-Requires: jakarta-commons-digester
-Requires: jakarta-commons-fileupload
-Requires: jakarta-commons-logging
+#Requires: jaf >= 1.0.1
Requires: jakarta-regexp
-Requires: jakarta-servletapi >= 4
+#Requires: java-commons-beanutils
+#Requires: java-commons-collections
+#Requires: java-commons-dbcp-tomcat5
+#Requires: java-commons-digester
+Requires: java-commons-el
+#Requires: java-commons-fileupload
+#Requires: java-commons-logging
+Requires: java-servletapi5 = %{version}
Requires: javamail >= 1.2
Requires: jaxp_parser_impl
Requires: jdbc-stdext >= 2.0
Requires: jre >= 1.2
Requires: jsse >= 1.0.2
Requires: jta >= 1.0.1
-Requires: mx4j >= 1.1.1
Requires: rc-scripts
-Requires: tyrex >= 1.0
Requires: xml-commons
-Provides: group(http)
-Provides: user(http)
+Provides: group(tomcat)
+Provides: java-servlet-container
+Provides: user(tomcat)
Obsoletes: jakarta-tomcat
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _tomcatdir %{_libdir}/tomcat
+%define _tomcatdir %{_datadir}/tomcat
%define _logdir %{_var}/log
%define _vardir %{_var}/lib/tomcat
+%define _sysconfdir /etc/tomcat
%description
Tomcat is the servlet container that is used in the official Reference
%package doc
Summary: The Apache Tomcat Servlet/JSP Container documentation
-Summary(pl.UTF-8): Dokumentacja do Tomcata - kontekera Servlet/JSP
+Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
Group: Development/Languages/Java
Obsoletes: jakarta-tomcat-doc
The Tomcat Servlet/JSP Container documentation.
%description doc -l pl.UTF-8
-Dokumentacja do Tomcata - kontekera Servlet/JSP.
+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
+Group: Libraries/Java
+Requires: jpackage-utils
+
+%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
%patch2 -p1
%patch3 -p1
%patch4 -p1
+%patch5 -p1
+%patch6 -p1
# servletapi built from jakarta-servletapi5.spec
rm -rf servletapi
%build
TOPDIR=$(pwd)
-#xerces.jar=$(build-classpath xerces)
-#jasper-compiler-jdt.jar=$(build-classpath jdtcore)
-
-mkdir -p tomcat-deps
-> tomcat-deps/tomcat-dbcp.jar
%if 0
# build jasper javadocs
cd jasper
CLASSPATH=$(build-classpath xml-commons-apis)
+# building jasper needs eclipse classes
cat > build.properties <<EOF
-ant.jar=$(build-classpath ant)
-servlet-api.jar=$(build-classpath servlet-api)
-jsp-api.jar=$(build-classpath jsp-api)
+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=$(build-classpath jaxp_parser_impl)
-xmlParserAPIs.jar=$(build-classpath xml-commons-apis)
-commons-collections.jar=$(build-classpath commons-collections)
-commons-logging.jar=$(build-classpath commons-logging)
-commons-daemon.jar=$(build-classpath commons-daemon)
-junit.jar=$(build-classpath junit)
-commons-el.jar=$(build-classpath commons-el)
+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
-# building jasper needs eclipse classes
#%ant dist
%if %{with javadoc}
%endif
# build tomcat 5.5
-#cd build
cat > build.properties <<EOF
-commons-beanutils.jar=$(build-classpath commons-beanutils)
-commons-launcher.jar=$(build-classpath commons-launcher)
-commons-daemon.jar=$(build-classpath commons-daemon)
-commons-digester.jar=$(build-classpath commons-digester)
-commons-el.jar=$(build-classpath commons-el)
-commons-logging-api.jar=$(build-classpath commons-logging-api)
-commons-logging.jar=$(build-classpath commons-logging)
-commons-modeler.jar=$(build-classpath commons-modeler)
-xercesImpl.jar=$(build-classpath jaxp_parser_impl)
-xml-apis.jar=$(build-classpath xml-commons-apis)
-jdt.jar=$(build-classpath org.eclipse.jdt.core)
+commons-beanutils.jar=$(find-jar commons-beanutils-core)
+commons-launcher.jar=$(find-jar commons-launcher)
+commons-daemon.jar=$(find-jar commons-daemon)
+commons-digester.jar=$(find-jar commons-digester)
+commons-el.jar=$(find-jar commons-el)
+commons-logging-api.jar=$(find-jar commons-logging-api)
+commons-logging.jar=$(find-jar commons-logging)
+commons-modeler.jar=$(find-jar commons-modeler)
+xercesImpl.jar=$(find-jar jaxp_parser_impl)
+xml-apis.jar=$(find-jar xml-commons-apis)
+jdt.jar=$(find-jar org.eclipse.jdt.core)
jasper-compiler-jdt.home=$TOPDIR/tomcat-deps
-%if 0
-log4j.jar=${log4j.lib}/dist/lib/log4j-1.2.12.jar
-%endif
-commons-httpclient.jar=$(build-classpath commons-httpclient)
-commons-collections.jar=$(build-classpath commons-collections)
-commons-fileupload.jar=$(build-classpath commons-fileupload)
-
-
-%if 0
-jmx.jar=${jmx.lib}/mx4j.jar
-%endif
-jmx.jar=$(build-classpath jre/jmx)
-%if 0
-jmx-tools.jar=${jmx.lib}/mx4j-tools.jar
-%endif
-jmx-tools.jar=$(build-classpath jre/jmx)
-%if 0
-jmx-remote.jar=${jmx.lib}/mx4j-remote.jar
-%endif
-junit.jar=$(build-classpath junit)
-%if 0
-rhino.jar=${rhino.home}/js.jar
-%endif
-struts.jar=$(build-classpath struts)
-activation.jar=$(build-classpath jaf)
-jcert.jar=$(build-classpath java/jcert)
-jnet.jar=$(build-classpath java/jnet)
-jsse.jar=$(build-classpath java/jsse)
-jta.jar=$(build-classpath jta)
-mail.jar=$(build-classpath javamail/mailapi)
-puretls.jar=$(build-classpath puretls)
-
-servlet-api.jar=$(build-classpath servlet-api)
-# how the fck those bools work
-# build.xml:103: servletapi/jsr154/src not found.
-servletapi.build.notrequired=true
-
-jsp-api.jar=$(build-classpath jsp-api)
-jspapi.build.notrequired=true
-
-log4j.jar=$(build-classpath logging-log4j)
-#log4j.loc=%{_javadir}
-
-# source is needed because source is copied modified and recompiled as tomcat jar
-# see <target name="-build-tomcat-dbcp"> in build/build.xml
-tomcat-dbcp.home=
-commons-collections.home=%{_prefix}/src/jakarta-commons-collections-3.1
-commons-pool.home=%{_prefix}/src/jakarta-commons-pool-1.3
-commons-dbcp.home=%{_prefix}/src/jakarta-commons-dbcp-1.2.1
-tomcat-dbcp.home=$TOPDIR/tomcat-deps
-# err, it compiles three above and then appends to the jar, so the file should exist
-tomcat-dbcp.jar=$TOPDIR/tomcat-deps/tomcat-dbcp.jar
-
-%if 0
-ant.jar=%{_javadir}/ant.jar
-ant-launcher.jar=%{_javadir}/ant-launcher.jar
-jtc.home=$TOPDIR/jakarta-tomcat-connectors/
-jasper.home=$TOPDIR/jakarta-tomcat-jasper/jasper2
-commons-dbcp.jar=$(build-classpath commons-dbcp)
-commons-pool.jar=$(build-classpath commons-pool)
-jmxri.jar=$(build-classpath jre/jmx)
-regexp.jar=$(build-classpath regexp)
-jsp-api.jar=$TOPDIR/jakarta-servletapi-5/jsr152/dist/lib/jsp-api.jar
-servlet.doc=$TOPDIR/jakarta-servletapi-5/jsr154/dist/docs/api
-struts.lib=%{_datadir}/struts
+commons-httpclient.jar=$(find-jar commons-httpclient)
+commons-collections.jar=$(find-jar commons-collections)
+commons-fileupload.jar=$(find-jar commons-fileupload)
+commons-io.jar=$(find-jar commons-io)
+jmx.jar=$(find-jar jmx)
+jmx-tools.jar=$(find-jar jmx)
+junit.jar=$(find-jar junit)
+struts.jar=$(find-jar struts-core)
+struts-core.jar=$(find-jar struts-core)
+struts-taglib.jar=$(find-jar struts-taglib)
+jcert.jar=$(find-jar jcert)
+jnet.jar=$(find-jar jnet)
+jsse.jar=$(find-jar jsse)
+jta.jar=$(find-jar jta)
+puretls.jar=$(find-jar puretls)
+servlet-api.jar=$(find-jar servlet-api)
servletapi.build.notrequired=true
-tyrex.jar=$(build-classpath tyrex)
-jaas.jar=$(build-classpath jre/jaas)
-jndi.jar=$(build-classpath jre/jndi)
-jdbc20ext.jar=$(build-classpath jdbc-stdext)
+jsp-api.jar=$(find-jar jsp-api)
jspapi.build.notrequired=true
-taglibs-core.jar=$(build-classpath taglibs-core)
-taglibs-standard.jar=$(build-classpath taglibs-standard)
-%endif
-
+log4j.jar=$(find-jar log4j)
+tomcat-dbcp.jar=$(find-jar commons-dbcp-tomcat5)
+struts.lib=%{_javadir}-struts
EOF
%ant \
-Dcompile.source=1.4
-exit 1
+%install
+rm -rf $RPM_BUILD_ROOT
+cd build/build
+TOMCATDIR=$RPM_BUILD_ROOT%{_tomcatdir}
+CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat
-# build the connectors
-cd connectors
+# we don't need dos scripts
+rm -f bin/*.bat
-%if 0
+randpw=$(echo $RANDOM$$ | md5sum | cut -c 1-15)
+%{__sed} -i -e "s:SHUTDOWN:${randpw}:" conf/{server,server-minimal}.xml
-# this is just plain and simply evil but something changed in a major way between 5.0.16 and 5.0.18
-oldclasspath=$CLASSPATH
-export CLASSPATH=$TOPDIR/jakarta-servletapi-5/jsr154/dist/lib/servlet-api.jar:\
-$TOPDIR/jakarta-tomcat-5/build/server/lib/catalina.jar
-%endif
-
-%if 0
-cat > build.properties <<EOF
+install -d $TOMCATDIR/bin \
+ $TOMCATDIR/common/{lib,classes,endorsed} \
+ $TOMCATDIR/server/{lib,classes} \
+ $TOMCATDIR/webapps \
+ $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
-activation.jar=$(build-classpath jaf)
-ant.jar=%{_javadir}/ant.jar
-junit.jar=$(build-classpath junit)
-commons-beanutils.jar=$(build-classpath commons-beanutils)
-commons-collections.jar=$(build-classpath commons-collections)
-commons-digester.jar=$(build-classpath commons-digester)
-commons-fileupload.jar=$(build-classpath commons-fileupload)
-commons-logging.jar=$(build-classpath commons-logging)
-commons-logging-api.jar=$(build-classpath commons-logging-api)
-commons-modeler.jar=$(build-classpath commons-modeler)
-commons-pool.jar=$(build-classpath commons-pool)
-regexp.jar=$(build-classpath regexp)
-jmx.jar=$(build-classpath mx4j/mx4j)
-puretls=$(build-classpath puretls)
-activation.jar=$(build-classpath jaf)
-mail.jar=$(build-classpath javamail/mailapi)
-jta.jar=$(build-classpath jta)
-tyrex.jar=$(build-classpath tyrex)
-jaas.jar=$(build-classpath jaas)
-jndi.jar=$(build-classpath jndi)
-jdbc20ext.jar=$(build-classpath java/jdbc-stdext)
-puretls.jar=$(build-classpath puretls)
-jcert.jar=$(build-classpath jsse/jcert)
-jnet.jar=$(build-classpath jsse/jnet)
-jsse.jar=$(build-classpath jsse/jsse)
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
+install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat
+
+cp -pR 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 $CATALINADIR
+
+ln -sf %{_logdir}/tomcat $CATALINADIR/logs
+ln -sf %{_vardir}/work $TOMCATDIR/work
+ln -sf %{_vardir}/conf $TOMCATDIR/conf
+ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
-%endif
+# 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 jsp-api) $TOMCATDIR/common/lib/jsp-api.jar
-%if 0
-commons-beanutils.jar=${commons-beanutils.lib}/commons-beanutils.jar
-commons-collections.jar=${commons-collections.lib}/commons-collections.jar
-commons-digester.jar=${commons-digester.lib}/commons-digester.jar
-commons-fileupload.jar=${commons-fileupload.lib}/commons-fileupload-1.0-beta-1.jar
-commons-logging-api.jar=${commons-logging.lib}/commons-logging-api.jar
-commons-logging.jar=${commons-logging.lib}/commons-logging.jar
-jndi.jar=${jndi.lib}/jndi.jar
-ldap.jar=${jndi.lib}/ldap.jar
-jaas.jar=${jndi.lib}/jaas.jar
-regexp.jar=${regexp.lib}/jakarta-regexp-1.4.jar
-servlet.jar=${servlet.lib}/servlet.jar
-#xerces.jar=${xerces.lib}/xerces.jar
-xercesImpl.jar=${xerces.lib}/xercesImpl.jar
-xml-apis.jar=${xerces.lib}/xml-apis.jar
-activation.jar=${activation.lib}/activation.jar
-commons-daemon.jar=${commons-daemon.lib}/commons-daemon.jar
-commons-dbcp.jar=${commons-dbcp.lib}/commons-dbcp.jar
-commons-modeler.jar=${commons-modeler.lib}/commons-modeler.jar
-commons-pool.jar=${commons-pool.lib}/commons-pool.jar
-jdbc20ext.jar=${jdbc20ext.lib}/jdbc2_0-stdext.jar
-jmx.jar=${jmx.lib}/mx4j-jmx.jar
-jcert.jar=${jsse.lib}/jcert.jar
-jnet.jar=${jsse.lib}/jnet.jar
-jsse.jar=${jsse.lib}/jsse.jar
-jta.jar=${jta.lib}/jta.jar
-junit.jar=${junit.lib}/junit.jar
-mail.jar=${mail.lib}/mail.jar
-puretls.jar=${puretls.lib}/puretls.jar
-struts.jar=${struts.lib}/struts.jar
-tyrex.jar=${tyrex.lib}/tyrex-1.0.jar
-tomcat5.jar=${tomcat5.home}/server/lib/catalina.jar
-servlet-api.jar=${tomcat5.home}/common/lib/servlet-api.jar
-tomcat41.jar=${tomcat41.home}/server/lib/catalina.jar
-servlet-api.jar=${tomcat41.home}/common/lib/servlet.jar
-tomcat33.jar=${tomcat33.home}/lib/common/tomcat_core.jar
-%endif
+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
-EOF
-%ant build \
- -Dbuild.compiler=modern \
- -Djava.home=%{java_home}
+# 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
+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
%endif
-%if 0
-export CLASSPATH=$oldclasspath
-
-# build the webapps and make the tree ready to install
-cd ../jakarta-tomcat-5
-%ant -Dbuild.compiler=modern -Djava.home=%{java_home} dist
-%endif
-
-%install
-rm -rf $RPM_BUILD_ROOT
-
-DEST=$RPM_BUILD_ROOT%{_tomcatdir}
-install -d $DEST/bin \
- $DEST/common/{lib,classes,endorsed} \
- $DEST/server/{lib,classes} \
- $DEST/webapps \
- $RPM_BUILD_ROOT%{_sysconfdir}/tomcat \
- $RPM_BUILD_ROOT%{_logdir}/tomcat \
- $RPM_BUILD_ROOT%{_vardir}/work \
- $RPM_BUILD_ROOT/etc/rc.d/init.d
-
-install build/bin/*.sh $DEST/bin
-install build/bin/bootstrap*.jar $DEST/bin
-install build/bin/tomcat*.jar $DEST/bin
-install build/common/lib/naming-*.jar $DEST/common/lib
-install build/common/lib/jasper-*.jar $DEST/common/lib
-install build/conf/* $RPM_BUILD_ROOT%{_sysconfdir}/tomcat
-install build/server/lib/catalina*.jar $DEST/server/lib
-install build/server/lib/servlets*.jar $DEST/server/lib
-install build/server/lib/tomcat*.jar $DEST/server/lib
-install build/server/lib/servlets-cgi.renametojar $DEST/server/lib/servlets-cgi.jar
-install build/server/lib/servlets-ssi.renametojar $DEST/server/lib/servlets-ssi.jar
-cp -rf build/server/webapps $DEST/server
-cp -rf build/webapps $DEST
-cp -rf build/shared $DEST
-cp -rf build/temp $DEST
-
-ln -sf %{_logdir}/tomcat $DEST/logs
-ln -sf %{_vardir}/work $DEST/work
-ln -sf %{_sysconfdir}/tomcat $DEST/conf
-
-# symlinks instead of copies
-ln -sf %{_javadir}/commons-daemon.jar $DEST/bin
-
-ln -sf %{_javadir}/activation.jar $DEST/common/lib
-ln -sf %{_javadir}/ant.jar $DEST/common/lib
-ln -sf %{_javadir}/commons-collections.jar $DEST/common/lib
-ln -sf %{_javadir}/commons-dbcp.jar $DEST/common/lib
-ln -sf %{_javadir}/commons-logging-api.jar $DEST/common/lib
-ln -sf %{_javadir}/commons-pool.jar $DEST/common/lib
-ln -sf %{_javadir}/servlet.jar $DEST/common/lib
-ln -sf %{_javadir}/servlet.jar $DEST/common/lib/servletapi4.jar
-ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc2_0-stdext.jar
-ln -sf %{_javadir}/jdbc-stdext.jar $DEST/common/lib/jdbc-stdext-2.0.jar
-ln -sf %{_javadir}/jmxri.jar $DEST/common/lib
-ln -sf %{_javadir}/jndi.jar $DEST/common/lib
-ln -sf %{_javadir}/jta.jar $DEST/common/lib
-ln -sf %{_javadir}/mail.jar $DEST/common/lib
-ln -sf %{_javadir}/jsse.jar $DEST/common/lib
-ln -sf %{_javadir}/tyrex.jar $DEST/common/lib
-ln -sf %{_javadir}/junit.jar $DEST/common/lib
-
-ln -sf %{_javadir}/mailapi.jar $DEST/common/lib
-ln -sf %{_javadir}/pop3.jar $DEST/common/lib
-ln -sf %{_javadir}/pop3.jar $DEST/common/lib/pop.jar
-ln -sf %{_javadir}/smtp.jar $DEST/common/lib
-ln -sf %{_javadir}/imap.jar $DEST/common/lib
-
-ln -sf %{_javadir}/commons-beanutils.jar $DEST/server/lib
-ln -sf %{_javadir}/commons-digester.jar $DEST/server/lib
-ln -sf %{_javadir}/commons-fileupload.jar $DEST/server/lib
-ln -sf %{_javadir}/commons-logging.jar $DEST/server/lib
-ln -sf %{_javadir}/commons-modeler.jar $DEST/server/lib
-ln -sf %{_javadir}/jaas.jar $DEST/server/lib/jaas.jar
-ln -sf %{_javadir}/mx4j-jmx.jar $DEST/server/lib
-ln -sf %{_javadir}/regexp.jar $DEST/server/lib
-ln -sf %{_javadir}/regexp.jar $DEST/server/lib/jakarta-regexp-1.2.jar
-ln -sf %{_javadir}/regexp.jar $DEST/server/lib/regexp-1.2.jar
-
-ln -sf %{_javadir}/jaxp_parser_impl.jar $DEST/common/endorsed
-ln -sf %{_javadir}/xml-commons-apis.jar $DEST/common/endorsed
-
-ln -sf %{_javadir}/struts.jar $DEST/server/webapps/admin/WEB-INF/lib
+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 %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat
+install -d $RPM_BUILD_ROOT%{_javadir}
+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-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
+%useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat tomcat
%post
/sbin/chkconfig --add tomcat
%postun
if [ "$1" = "0" ]; then
- %userremove http
- %groupremove http
+ %userremove tomcat
+ %groupremove tomcat
fi
%files
%defattr(644,root,root,755)
-%doc *.txt LICENSE
+%doc build/{RELEASE-NOTES,RUNNING.txt}
+%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
+%{_tomcatdir}/bin/jmxaccessor-tasks.xml
%attr(755,root,root) %{_tomcatdir}/bin/*.sh
%{_tomcatdir}/bin/*.jar
%dir %{_tomcatdir}/common
%dir %{_tomcatdir}/common/classes
%dir %{_tomcatdir}/common/endorsed
+%dir %{_tomcatdir}/common/i18n
%{_tomcatdir}/common/endorsed/*.jar
+%{_tomcatdir}/common/i18n/tomcat-i18n-en.jar
+%lang(es) %{_tomcatdir}/common/i18n/tomcat-i18n-es.jar
+%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}/server/webapps/host-manager
+%{_tomcatdir}/server/webapps/manager
%{_tomcatdir}/webapps
%{_tomcatdir}/work
%{_tomcatdir}/shared
-%{_tomcatdir}/temp
-# tomcat wants to regenerate tomcat-users.xml
-%attr(775,root,http) %dir %{_sysconfdir}/tomcat
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/tomcat/*
-%attr(754,root,root) /etc/rc.d/init.d/tomcat
%dir %{_vardir}
-%attr(1730,root,http) %dir %{_vardir}/work
-%attr(1730,root,http) %dir %{_logdir}/tomcat
+%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
+%dir %attr(775,root,tomcat) %{_logdir}/tomcat
+%{_vardir}/logs
+%if 0
%files doc
%defattr(644,root,root,755)
%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(644,root,root,755)
+%{_javadir}/jasper-compiler-jdt.jar
+%{_javadir}/jasper-compiler.jar
+%{_javadir}/jasper-runtime.jar