# TODO
-# - packages for *.renametojar files (-cgi and -ssi in server/lib)
+# - rename %{name}-jasper -> java-jasper?
#
# Conditional build:
%bcond_without javadoc # skip building javadocs
Summary(pl.UTF-8): Silnik Servlet/JSP Apache będący wzorcową implementacją API Servlet 2.4/JSP 2.0
Name: tomcat
Version: 5.5.27
-Release: 0.3
+Release: 1
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
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: apache-%{name}-struts.patch
-# WTF? Why is it needed? Is it related to struts version?
Patch7: apache-%{name}-admin-struts.patch
+Patch8: apache-%{name}-no_links_to_examples.patch
+# Following patches are applied in tomcat svn. Remove them while updating to 5.5.28
+# See: http://tomcat.apache.org/security-5.html
+Patch100: tomcat-CVE-2008-5515.patch
+Patch101: tomcat-CVE-2009-0033.patch
+Patch102: tomcat-CVE-2009-0580.patch
+Patch103: tomcat-CVE-2009-0781.patch
+Patch104: tomcat-CVE-2009-0783.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: jaas
-BuildRequires: jakarta-regexp >= 0:1.3
+BuildRequires: java-regexp >= 0:1.3
BuildRequires: java-commons-beanutils >= 1.7
BuildRequires: java-commons-chain
BuildRequires: java-commons-collections >= 0:3.1
BuildRequires: java-commons-modeler >= 2.0
BuildRequires: java-commons-pool >= 0:1.2
BuildRequires: java-commons-pool-tomcat5 >= 0:1.2
+BuildRequires: java-jdbc-mysql
%{?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: 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: java-mail >= 0:1.3.1
BuildRequires: jaxp_parser_impl >= 0:2.7.1
BuildRequires: jdbc-stdext >= 0:2.0
BuildRequires: jmx
Requires(pre): /usr/sbin/useradd
Requires: %{name}-jasper = %{version}-%{release}
Requires: jaas
-#Requires: jaf >= 1.0.1
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-commons-modeler
+Requires: java-commons-pool-tomcat5
+Requires: java-jdbc-mysql
Requires: java-regexp
Requires: java-servletapi5 = %{version}
Requires: java-xml-commons
Requires: jsse >= 1.0.2
%{?with_jta:Requires: jta >= 1.0.1}
Requires: rc-scripts
+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.
Summary: The Apache Tomcat Servlet/JSP Container documentation
Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP
Group: Documentation
+Obsoletes: apache-tomcat-doc
Obsoletes: jakarta-tomcat-doc
%description doc
Dokumentacja do Tomcata - kontenera Servlet/JSP.
%package admin
-Summary: Apache Tomcat`s Administration Web Application
+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
+Obsoletes: apache-tomcat-admin
%description admin
Administration Web Application for Apache Tomcat.
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
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
-# we don't need dos scripts
+%patch100 -p0
+%patch101 -p0
+%patch102 -p0
+%patch103 -p0
+%patch104 -p0
+
+# we don't need those scripts
rm -f container/catalina/src/bin/*.bat
+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)
+rm container/webapps/admin/images/Thumbs.db
-# servletapi built from jakarta-servletapi5.spec
+# servletapi built from java-servletapi5.spec
rm -rf servletapi
# Remove pre-built jars
cp -a temp $CATALINADIR
ln -sf %{_logdir}/tomcat $CATALINADIR/logs
+ln -sf %{_logdir}/tomcat $TOMCATDIR/logs
ln -sf %{_vardir}/work $TOMCATDIR/work
ln -sf %{_vardir}/conf $TOMCATDIR/conf
ln -sf %{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}
# symlinks instead of copies
-jars="commons-el commons-dbcp-tomcat5 servlet-api jsp-api commons-modeler"
+jars="commons-daemon commons-logging-api"
+for jar in $jars; do
+ jar=$(find-jar $jar)
+ ln -sf $jar $TOMCATDIR/bin
+done
+
+jars="commons-el commons-dbcp-tomcat5 commons-pool-tomcat5 servlet-api jsp-api commons-modeler jdbc-mysql"
for jar in $jars; do
jar=$(find-jar $jar)
ln -sf $jar $TOMCATDIR/common/lib
ln -sf $jar $TOMCATDIR/server/webapps/admin/WEB-INF/lib
done
-%if 0
-# do not make these symlinks as ant didn't do
-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 pop3.jar $TOMCATDIR/common/lib/pop.jar
-
-jars="commons-beanutils commons-digester commons-fileupload commons-logging jaas regexp"
+jars="commons-modeler"
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
install -d $RPM_BUILD_ROOT%{_javadir}
mv $TOMCATDIR/common/lib/jasper*.jar $RPM_BUILD_ROOT%{_javadir}
%pre
%groupadd -g 234 -r -f tomcat
-%useradd -u 234 -r -d /var/lib/tomcat -s /bin/false -c "Tomcat User" -g tomcat 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
if [ "$1" = "0" ]; then
%userremove tomcat
%groupremove tomcat
+ %groupremove servlet
fi
%files
%dir %{_tomcatdir}/server/classes
%{_tomcatdir}/server/lib
%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
-%{_tomcatdir}/webapps
+
+%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
%dir %{_vardir}
-%dir %{_vardir}/conf
-%dir %{_vardir}/conf/Catalina
+# these directories have to be writeable because /admin needs 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 tomacta-users.xml file and Catalina dir
+# 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
-%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
+%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)