X-Git-Url: http://git.pld-linux.org/?p=packages%2Ftomcat.git;a=blobdiff_plain;f=tomcat.spec;h=4b3fc1da6ba9de92fd410709ceb55482355f71b4;hp=17b455056c53cdd459e0a0f7bef7b8e0f27aca16;hb=d93791c;hpb=6cb2a277a81579f28157d5891abd892d4d056e71 diff --git a/tomcat.spec b/tomcat.spec index 17b4550..4b3fc1d 100644 --- a/tomcat.spec +++ b/tomcat.spec @@ -1,23 +1,26 @@ # 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: 2.1 +Version: 7.0.94 +Release: 1 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 @@ -27,32 +30,37 @@ Source12: %{name}-context-manager.xml 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 @@ -76,12 +84,16 @@ Requires: jre >= 1.2 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) @@ -89,8 +101,6 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _logdir %{_var}/log %define _vardir %{_var}/lib/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. @@ -111,6 +121,7 @@ Community Process. Summary: The Apache Tomcat Servlet/JSP Container documentation Summary(pl.UTF-8): Dokumentacja do Tomcata - kontenera Servlet/JSP Group: Documentation +Requires: %{name} = %{version}-%{release} Obsoletes: apache-tomcat-doc Obsoletes: jakarta-tomcat-doc Obsoletes: tomcat-doc @@ -258,9 +269,11 @@ javax.servlet.http, javax.servlet.jsp i java.servlet.jsp.tagext). %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 # Prepare java-commmons-logging sources -mkdir -p output/extras/logging +install -d output/extras/logging mv commons-logging-%{jclver}-src output/extras/logging cd output/extras/logging/commons-logging-%{jclver}-src %undos build.xml @@ -271,34 +284,39 @@ cd - rm bin/*.bat rm bin/{startup,shutdown}.sh -cp -a %{SOURCE3} build.properties -cat >>build.properties < build.properties.local <<-EOF + log4j.jar=$(find-jar log4j) + log4j12.jar=$(find-jar log4j) + junit.jar=$(find-jar junit) + logkit.jar=$(find-jar avalon-logkit) + avalon-framework-impl.jar=$(find-jar avalon-framework-impl.jar) + 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 +if grep '=$' build.properties; then + : Some .jar could not be found + exit 1 +fi + export LC_ALL=en_US # Base package -%ant \ - -Drpm.javadir=%{_javadir} \ - -Drpm.libdir=%{_libdir} - -# Extras -mkdir -p output/extras/webservices +%ant +%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 -Dcommons-logging-version=%{jclver} extras +%ant extras +%endif # Javadoc %if %{with javadoc} @@ -315,27 +333,30 @@ CATALINADIR=$RPM_BUILD_ROOT/var/lib/tomcat # useful for constructing relative symlinks. Is there a better way? TOMCATDIRREV=$(echo %{_tomcatdir} | sed 's#[^/]\+#..#g;s#^/##') CATALINADIRREV=$(echo /var/lib/tomcat | sed 's#[^/]\+#..#g;s#^/##') -SYSCONFDIRREV=$(echo %{_sysconfdir} | sed 's#[^/]\+#..#g;s#^/##') install -d $TOMCATDIR \ - $CATALINADIR/temp \ - $RPM_BUILD_ROOT%{_vardir}/webapps \ - $RPM_BUILD_ROOT%{_vardir}/work \ - $RPM_BUILD_ROOT%{_vardir}/conf \ - $RPM_BUILD_ROOT%{_logdir}/tomcat \ - $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d,logrotate.d} + $CATALINADIR/temp \ + $RPM_BUILD_ROOT%{_vardir}/webapps \ + $RPM_BUILD_ROOT%{_vardir}/work \ + $RPM_BUILD_ROOT%{_logdir}/{archive/,}tomcat \ + $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost \ + $RPM_BUILD_ROOT/etc/{sysconfig,rc.d/init.d,logrotate.d} install -p %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/tomcat -cp -a %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat - -cp -a conf/* $CATALINADIR/conf -install -d $CATALINADIR/conf/Catalina/localhost -cp -a %{SOURCE10} $CATALINADIR/conf/Catalina/localhost/ROOT.xml -cp -a %{SOURCE11} $CATALINADIR/conf/Catalina/localhost/docs.xml -cp -a %{SOURCE12} $CATALINADIR/conf/Catalina/localhost/manager.xml -cp -a %{SOURCE13} $CATALINADIR/conf/Catalina/localhost/host-manager.xml -cp -a %{SOURCE14} $CATALINADIR/conf/Catalina/localhost/examples.xml +cp -p %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/tomcat + +cp -a conf/* $RPM_BUILD_ROOT%{_sysconfdir}/%{name} +ln -sf $CATALINADIRREV%{_sysconfdir}/%{name} $RPM_BUILD_ROOT%{_vardir}/conf +cp -p %{SOURCE10} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost/ROOT.xml +cp -p %{SOURCE11} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost/docs.xml +cp -p %{SOURCE12} $RPM_BUILD_ROOT%{_sysconfdir}/%{name}/Catalina/localhost/manager.xml +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 @@ -344,7 +365,6 @@ ln -sf $CATALINADIRREV%{_logdir}/tomcat $CATALINADIR/logs ln -sf $TOMCATDIRREV%{_logdir}/tomcat $TOMCATDIR/logs ln -sf $TOMCATDIRREV%{_vardir}/work $TOMCATDIR/work ln -sf $TOMCATDIRREV%{_vardir}/conf $TOMCATDIR/conf -ln -sf $SYSCONFDIRREV%{_vardir}/conf $RPM_BUILD_ROOT%{_sysconfdir}/tomcat # symlinks instead of copies jars="commons-daemon commons-logging-api" @@ -384,12 +404,14 @@ ln -sf %{_javadir}/tomcat-api.jar $TOMCATDIR/lib/api.jar 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 @@ -397,6 +419,29 @@ ln -s %{_javadir}/jsr109.jar $TOMCATDIR/lib/jsr109.jar %clean 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 + if [ ! -L %{_sysconfdir}/%{name} ]; then + mv %{_vardir}/conf/* %{_sysconfdir}/%{name} + rmdir %{_vardir}/conf 2>/dev/null || mv -v %{_vardir}/conf{,.rpmsave} + else + mv -v %{_sysconfdir}/%{name}{,.rpmsave} + mv %{_vardir}/conf %{_sysconfdir}/%{name} + fi + else + mv %{_vardir}/conf %{_sysconfdir}/%{name} + fi + ln -s %{_sysconfdir}/%{name} %{_vardir}/conf +fi +exit 0 + %pre %groupadd -g 234 -r -f tomcat %groupadd -g 237 -r -f servlet @@ -425,7 +470,19 @@ fi %attr(754,root,root) /etc/rc.d/init.d/tomcat %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/tomcat %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/%{name} -%{_sysconfdir}/tomcat + +# these directory has to be writeable because /admin need to modify config +# files and create temporary files +%dir %attr(770,root,tomcat) %{_sysconfdir}/%{name} +%dir %attr(770,root,tomcat) %{_sysconfdir}/%{name}/Catalina +%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}/*.xml + +%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/Catalina/localhost/ROOT.xml + %dir %{_tomcatdir} %dir %{_tomcatdir}/conf %dir %{_tomcatdir}/bin @@ -445,71 +502,73 @@ fi %{_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 -%config(noreplace) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/ROOT.xml %{_tomcatdir}/webapps/ROOT %{_tomcatdir}/logs %{_tomcatdir}/work %dir %attr(770,root,tomcat) %{_vardir} -# these directory has to be writeable because /admin need to modify config -# files and create temporary files -%dir %attr(770,root,tomcat) %{_vardir}/conf -%dir %attr(770,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(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/catalina.policy -%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.properties* -%config(noreplace) %attr(660,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/*.xml %dir %attr(770,root,tomcat) %{_vardir}/work %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 webapp-docs %defattr(644,root,root,755) -%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/docs.xml +%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/Catalina/localhost/docs.xml %{_tomcatdir}/webapps/docs %files webapp-manager %defattr(644,root,root,755) -%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/manager.xml +%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/Catalina/localhost/manager.xml %{_tomcatdir}/webapps/manager %files webapp-host-manager %defattr(644,root,root,755) -%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/host-manager.xml +%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/Catalina/localhost/host-manager.xml %{_tomcatdir}/webapps/host-manager %files webapp-examples %defattr(644,root,root,755) -%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_vardir}/conf/Catalina/localhost/examples.xml +%config(noreplace,missingok) %attr(664,root,tomcat) %verify(not md5 mtime size) %{_sysconfdir}/%{name}/Catalina/localhost/examples.xml %{_tomcatdir}/webapps/examples %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) @@ -520,9 +579,11 @@ fi %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)