##
## tomcat4.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2004 The OpenPKG Project
## Copyright (c) 2000-2004 Ralf S. Engelschall
## Copyright (c) 2000-2004 Cable & Wireless
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package information
Name: tomcat5
Summary: Apache Jakarta Tomcat
URL: http://jakarta.apache.org/
Vendor: Apache Software Foundation
Packager: The OpenPKG Project
Distribution: OpenPKG
Class: EVAL
Group: Web
License: Apache Software License 1.1
Version: 5.0.25
Release: 20040517
# list of sources
Source0: http://www.apache.org/dist/jakarta/tomcat-5/v%{version}/bin/jakarta-tomcat-%{version}.tar.gz
Source1: rc.tomcat5
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20040130
PreReq: OpenPKG, openpkg >= 20040130, JRE
AutoReq: no
AutoReqProv: no
#Conflicts: none
%option tomcatUser www
%option tomcatGroup www
%option tomcatAppGrp alummail
%description
Apache Jakarta Tomcat %{version} is a complete rewrite of Jserv and
supplies the functionality of both a Servlet API 2.4 and a JSP 2.0
compliant container.
%track
prog tomcat5 = {
version = %{version}
url = http://www.apache.org/dist/jakarta/tomcat-5/
regex = (v\d+\.\d+\.\d+)
url = http://www.apache.org/dist/jakarta/tomcat-5/__NEWVER__/bin/
regex = jakarta-tomcat-(\d+\.\d+\.\d+).tar.gz
}
%prep
%setup -q -n jakarta-tomcat-%{version}
%build
rm -rf $RPM_BUILD_ROOT
JAVA_HOME="`%{l_prefix}/etc/rc --query java_home`"; export JAVA_HOME
# create installation tree
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5 \
$RPM_BUILD_ROOT%{l_prefix}/share/tomcat5/doc \
$RPM_BUILD_ROOT%{l_prefix}/var/tomcat5/log \
$RPM_BUILD_ROOT%{l_prefix}/var/tomcat5/temp \
$RPM_BUILD_ROOT%{l_prefix}/var/tomcat5/work
# unpack vendor distribution and relocate to final location
%{l_tar} -cf - \
bin/*.sh bin/*.jar bin/jsvc.tar.gz common conf server shared webapps |\
( umask 022
cd $RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/
%{l_tar} -xf -
) || exit $?
# Build the daemon to run tomcat (jsvc)
( cd $RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/bin
%{l_tar} -zxf jsvc.tar.gz
cd jsvc-src
%{l_autoconf}
sh ./configure --with-java=${JAVA_HOME}
%{l_make}
cp jsvc ..
)
%install
# move ${jkHome}/conf to var
mv $RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/conf \
$RPM_BUILD_ROOT%{l_prefix}/var/tomcat5/conf
# move ${jkHome}/webapps to var
mv $RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/webapps \
$RPM_BUILD_ROOT%{l_prefix}/var/tomcat5/webapps
# provide symlink for ${jkHome}/{work,conf,webapps}
ln -s \
%{l_prefix}/var/tomcat5/work \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/work
ln -s \
%{l_prefix}/var/tomcat5/conf \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/conf
ln -s \
%{l_prefix}/var/tomcat5/log \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/logs
ln -s \
%{l_prefix}/var/tomcat5/webapps \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/webapps
# patch paths for logs and temp
%{l_shtool} -d subst \
-e 's;directory="logs";directory="%{l_prefix}/var/tomcat5/log";' \
-e '13,$s;^;;' \
$RPM_BUILD_ROOT%{l_prefix}/var/tomcat5/conf/server.xml
%{l_shtool} subst \
-e 's;"$CATALINA_BASE"/temp;%{l_prefix}/var/tomcat5/temp;' \
-e 's;"$CATALINA_BASE"/logs;%{l_prefix}/var/tomcat5/log;' \
$RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/bin/catalina.sh
# make scripts executable
chmod 755 $RPM_BUILD_ROOT%{l_prefix}/libexec/tomcat5/bin/*
# install run-command script
%{l_shtool} install -c -m 755 %{l_value -s -a} \
%{SOURCE rc.tomcat5} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# locate conf directory through /etc
ln -s \
%{l_prefix}/libexec/tomcat5/conf \
$RPM_BUILD_ROOT%{l_prefix}/etc/tomcat5
# determine package files
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%attr(2770,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/log' \
'%attr(2770,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/temp' \
'%attr(2770,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/work' \
'%attr(2770,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/webapps' \
'%attr(2770,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/conf' \
'%config %attr(660,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/conf/*' \
'%attr(2770,%{tomcatUser},%{tomcatAppGrp}) %{l_prefix}/var/tomcat5/conf/Catalina' \
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
%post
# after upgrade, restart service
if [ $1 -eq 2 ]; then
eval `%{l_rc} tomcat5 status 2>/dev/null`
[ ".$tomcat5_active" = .yes ] && %{l_rc} tomcat5 restart
fi
exit 0
%preun
if [ $1 -eq 0 ]; then
# before erase, stop service and remove log files
%{l_rc} tomcat5 stop 2>/dev/null
rm -f $RPM_INSTALL_PREFIX/var/tomcat5/log/*
rm -rf $RPM_INSTALL_PREFIX/var/tomcat5/temp/*
rm -rf $RPM_INSTALL_PREFIX/var/tomcat5/work/*
rm -f $RPM_INSTALL_PREFIX/var/tomcat5/conf/jk2.properties.save
fi
exit 0