# Conditional build:
%bcond_without javadoc # skip building javadocs
+%bcond_without extras # skip building extras
%define jspapiver 2.2
%define servletapiver 3.0
+%define tomcatnatver 1.1.27
+
# Java Commons Logging version. Must be >= 1.1.
-%define jclver 1.1.1
+%define jclver 1.2
%include /usr/lib/rpm/macros.java
Summary: Web server and Servlet/JSP Engine, RI for Servlet %{servletapiver}/JSP %{jspapiver} API
Summary(pl.UTF-8): Serwer www i silnik Servlet/JSP będący wzorcową implementacją API Servlet %{servletapiver}/JSP %{jspapiver}
Name: tomcat
-Version: 7.0.41
-Release: 5
+Version: 7.0.94
+Release: 2
License: Apache v2.0
Group: Networking/Daemons/Java
Source0: http://www.apache.org/dist/tomcat/tomcat-7/v%{version}/src/apache-%{name}-%{version}-src.tar.gz
-# Source0-md5: 8f1312436629c914564f3e8d88237be3
+# Source0-md5: ab9ce1e8190fbfed2b4843c2ca69106c
Source1: apache-%{name}.init
Source2: apache-%{name}.sysconfig
Source3: %{name}-build.properties
Source13: %{name}-context-host-manager.xml
Source14: %{name}-context-examples.xml
Source15: %{name}.logrotate
+Source16: log4j.properties
Source100: http://www.apache.org/dist/commons/logging/source/commons-logging-%{jclver}-src.tar.gz
-# Source100-md5: e5cfa8cca13152d7545fde6b1783c60a
+# Source100-md5: ce977548f1cbf46918e93cd38ac35163
Patch0: %{name}-build.xml.patch
Patch1: server.xml-URIEncoding-utf8.patch
Patch2: %{name}-LDAPUserDatabase.patch
Patch3: %{name}-catalina.policy-javadir.patch
Patch4: %{name}-userdir.patch
Patch5: logging.patch
+Patch6: jcl.patch
+Patch7: %{name}-build.patch
Patch100: jcl-build.xml.patch
URL: http://tomcat.apache.org/
BuildRequires: ant >= 1.5.3
-BuildRequires: eclipse-jdt >= 4.2.2
BuildRequires: java(JSR109)
BuildRequires: java-avalon-framework
BuildRequires: java-avalon-logkit
BuildRequires: java-commons-daemon >= 1.0
BuildRequires: java-commons-dbcp-tomcat5 >= 0:1.1
BuildRequires: java-commons-pool-tomcat5
+BuildRequires: java-eclipse-jdt >= 4.4.2
BuildRequires: java-geronimo-spec-jaxrpc
BuildRequires: java-jdbc-mysql
BuildRequires: java-junit
BuildRequires: java-log4j
BuildRequires: java-mail
-BuildRequires: jdk
+BuildRequires: jdk >= 1.6
BuildRequires: jpackage-utils
+BuildRequires: rpm >= 4.4.9-56
BuildRequires: rpm-javaprov
-BuildRequires: rpmbuild(macros) >= 1.553
+BuildRequires: rpmbuild(macros) >= 1.657
BuildRequires: sed >= 4.0
Requires(post,preun): /sbin/chkconfig
Requires(postun): /usr/sbin/groupdel
Requires: jsvc
Requires: rc-scripts
Suggests: logrotate
-Suggests: tomcat-native >= 1.1.27
+Suggests: tomcat-native >= %{tomcatnatver}
Provides: group(servlet)
Provides: group(tomcat)
Provides: user(tomcat)
Obsoletes: apache-tomcat
Obsoletes: jakarta-tomcat
+%if "%{pld_release}" != "ac"
+Conflicts: logrotate < 3.8.0
+%endif
+Conflicts: tomcat-native < %{tomcatnatver}
BuildArch: noarch
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%patch3 -p1
%patch4 -p1
%patch5 -p1
+%patch6 -p1
+%patch7 -p1
# Prepare java-commmons-logging sources
install -d output/extras/logging
avalon-framework-api.jar=$(find-jar avalon-framework-api.jar)
servletapi.jar=$(pwd)/output/build/lib/servlet-api.jar
commons-logging.version=%{jclver}
+ java.7.home=%{java_home}
EOF
cat build.properties.local >> build.properties
fi
# Base package
%ant
-# Extras
+%if %{with extras}
install -d output/extras/webservices
-
ln -sf %{_javadir}/geronimo-spec-jaxrpc.jar output/extras/webservices/jaxrpc.jar
ln -sf %{_javadir}/jsr109.jar output/extras/webservices/wsdl4j.jar
-
%ant extras
+%endif
# Javadoc
%if %{with javadoc}
$CATALINADIR/temp \
$RPM_BUILD_ROOT%{_vardir}/webapps \
$RPM_BUILD_ROOT%{_vardir}/work \
- $RPM_BUILD_ROOT%{_logdir}/tomcat \
+ $RPM_BUILD_ROOT%{_logdir}/{archive/,}tomcat \
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost \
$RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d,logrotate.d}
cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost/host-manager.xml
cp -p %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost/examples.xml
cp -p %{SOURCE15} $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+%if "%{pld_release}" == "ac"
+%{__sed} -i -e '/su/d' $RPM_BUILD_ROOT/etc/logrotate.d/%{name}
+%endif
+cp -p %{SOURCE16} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}
cp -a bin lib webapps $TOMCATDIR
cp -a temp $CATALINADIR
ln -sf %{_javadir}/tomcat-coyote.jar $TOMCATDIR/lib/tomcat-coyote.jar
+%if %{with extras}
cp -a ../extras/catalina-ws.jar $TOMCATDIR/lib/catalina-ws.jar
cp -a ../extras/catalina-jmx-remote.jar $TOMCATDIR/lib/catalina-jmx-remote.jar
cp -a ../extras/tomcat-juli-adapters.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli-adapters.jar
cp -a ../extras/tomcat-juli.jar $RPM_BUILD_ROOT%{_javadir}/tomcat-juli.jar
ln -sf %{_javadir}/tomcat-juli-adapters.jar $TOMCATDIR/lib/juli-adapters.jar
ln -sf %{_javadir}/tomcat-juli.jar $TOMCATDIR/lib/juli.jar
+%endif
ln -s %{_javadir}/geronimo-spec-jaxrpc.jar $TOMCATDIR/lib/jaxrpc.jar
ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar
rm -rf $RPM_BUILD_ROOT
%pretrans
+# handle /var/lib/tomcat/logs -> /var/log/tomcat migration
+if [ -d %{_vardir}/logs ] && [ ! -L %{_vardir}/logs ]; then
+ mv -v %{_vardir}/logs{,.rpmsave}
+fi
+
# migrate /var/lib/tomcat/conf to /etc/tomcat
if [ -d %{_vardir}/conf ] && [ ! -L %{_vardir}/conf ]; then
if [ -d %{_sysconfdir}/%{name} ]; then
%dir %{_sysconfdir}/%{name}/Catalina/localhost
# tomcat config has to be writeable because of tomcat-users.xml file and Catalina dir
%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/catalina.policy
-%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.properties*
+%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.properties
%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/*.xml
%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/Catalina/localhost/ROOT.xml
%{_tomcatdir}/lib/jasper-el.jar
%{_tomcatdir}/lib/jasper.jar
%{_tomcatdir}/lib/jsp-api.jar
-%{_tomcatdir}/lib/juli-adapters.jar
-%{_tomcatdir}/lib/juli.jar
%{_tomcatdir}/lib/mail.jar
%{_tomcatdir}/lib/mysql-connector-java.jar
%{_tomcatdir}/lib/org.eclipse.jdt.core.jar
%{_tomcatdir}/lib/servlet-api.jar
%{_tomcatdir}/lib/tomcat-jdbc.jar
%{_tomcatdir}/lib/tomcat-coyote.jar
+%{_tomcatdir}/lib/tomcat-dbcp.jar
%{_tomcatdir}/lib/tomcat-i18n-es.jar
%{_tomcatdir}/lib/tomcat-i18n-fr.jar
%{_tomcatdir}/lib/tomcat-i18n-ja.jar
+%{_tomcatdir}/lib/tomcat-i18n-ru.jar
+%{_tomcatdir}/lib/tomcat7-websocket.jar
+%{_tomcatdir}/lib/websocket-api.jar
%{_tomcatdir}/lib/util.jar
+%if %{with extras}
+%{_tomcatdir}/lib/juli-adapters.jar
+%{_tomcatdir}/lib/juli.jar
+%endif
%dir %{_tomcatdir}/webapps
%dir %attr(770,root,tomcat) %{_vardir}/webapps
%dir %attr(770,root,tomcat) %{_vardir}/temp
%dir %attr(770,root,tomcat) %{_logdir}/tomcat
+%dir %attr(770,root,root) %{_logdir}/archive/tomcat
%{_vardir}/conf
%{_vardir}/logs
%files webservices
%defattr(644,root,root,755)
-%{_tomcatdir}/lib/catalina-ws.jar
%{_tomcatdir}/lib/jsr109.jar
%{_tomcatdir}/lib/jaxrpc.jar
+%if %{with extras}
+%{_tomcatdir}/lib/catalina-ws.jar
+%endif
+%if %{with extras}
%files jmx
%defattr(644,root,root,755)
%{_tomcatdir}/lib/catalina-jmx-remote.jar
+%endif
%files -n java-tomcat-jasper
%defattr(644,root,root,755)
%defattr(644,root,root,755)
%{_javadir}/tomcat-api.jar
%{_javadir}/tomcat-catalina.jar
+%{_javadir}/tomcat-util.jar
+%if %{with extras}
%{_javadir}/tomcat-juli-adapters.jar
%{_javadir}/tomcat-juli.jar
-%{_javadir}/tomcat-util.jar
+%endif
%files -n java-tomcat-coyote
%defattr(644,root,root,755)