Blame SPECS/tomcat.spec

9d02a3
# Copyright (c) 2000-2008, JPackage Project
9d02a3
# All rights reserved.
9d02a3
#
9d02a3
# Redistribution and use in source and binary forms, with or without
9d02a3
# modification, are permitted provided that the following conditions
9d02a3
# are met:
9d02a3
#
9d02a3
# 1. Redistributions of source code must retain the above copyright
9d02a3
#    notice, this list of conditions and the following disclaimer.
9d02a3
# 2. Redistributions in binary form must reproduce the above copyright
9d02a3
#    notice, this list of conditions and the following disclaimer in the
9d02a3
#    documentation and/or other materials provided with the
9d02a3
#    distribution.
9d02a3
# 3. Neither the name of the JPackage Project nor the names of its
9d02a3
#    contributors may be used to endorse or promote products derived
9d02a3
#    from this software without specific prior written permission.
9d02a3
#
9d02a3
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
9d02a3
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
9d02a3
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
9d02a3
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
9d02a3
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
9d02a3
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
9d02a3
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
9d02a3
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
9d02a3
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
9d02a3
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
9d02a3
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
9d02a3
#
9d02a3
9d02a3
%global jspspec 2.3
9d02a3
%global major_version 9
9d02a3
%global minor_version 0
9d02a3
%global micro_version 62
9d02a3
%global packdname apache-tomcat-%{version}-src
9d02a3
%global servletspec 4.0
9d02a3
%global elspec 3.0
9d02a3
%global tcuid 53
9d02a3
# Recommended version is specified in java/org/apache/catalina/core/AprLifecycleListener.java
9d02a3
%global native_version 1.2.21
9d02a3
9d02a3
9d02a3
# FHS 2.3 compliant tree structure - http://www.pathname.com/fhs/2.3/
9d02a3
%global basedir %{_var}/lib/%{name}
9d02a3
%global appdir %{basedir}/webapps
9d02a3
%global homedir %{_datadir}/%{name}
9d02a3
%global bindir %{homedir}/bin
9d02a3
%global confdir %{_sysconfdir}/%{name}
9d02a3
%global libdir %{_javadir}/%{name}
9d02a3
%global logdir %{_var}/log/%{name}
9d02a3
%global cachedir %{_var}/cache/%{name}
9d02a3
%global tempdir %{cachedir}/temp
9d02a3
%global workdir %{cachedir}/work
9d02a3
%global _systemddir /lib/systemd/system
9d02a3
9d02a3
Name:          tomcat
9d02a3
Epoch:         1
9d02a3
Version:       %{major_version}.%{minor_version}.%{micro_version}
9d02a3
Release:       5%{?dist}
9d02a3
Summary:       Apache Servlet/JSP Engine, RI for Servlet %{servletspec}/JSP %{jspspec} API
9d02a3
9d02a3
License:       ASL 2.0
9d02a3
URL:           http://tomcat.apache.org/
9d02a3
Source0:       http://www.apache.org/dist/tomcat/tomcat-%{major_version}/v%{version}/src/%{packdname}.tar.gz
9d02a3
Source1:       %{name}-%{major_version}.%{minor_version}.conf
9d02a3
Source3:       %{name}-%{major_version}.%{minor_version}.sysconfig
9d02a3
Source4:       %{name}-%{major_version}.%{minor_version}.wrapper
9d02a3
Source5:       %{name}-%{major_version}.%{minor_version}.logrotate
9d02a3
Source6:       %{name}-%{major_version}.%{minor_version}-digest.script
9d02a3
Source7:       %{name}-%{major_version}.%{minor_version}-tool-wrapper.script
9d02a3
Source11:      %{name}-%{major_version}.%{minor_version}.service
9d02a3
Source21:      tomcat-functions
9d02a3
Source30:      tomcat-preamble
9d02a3
Source31:      tomcat-server
9d02a3
Source32:      tomcat-named.service
9d02a3
Source33:      java-9-start-up-parameters.conf
9d02a3
9d02a3
Patch0:        %{name}-%{major_version}.%{minor_version}-bootstrap-MANIFEST.MF.patch
9d02a3
Patch1:        %{name}-%{major_version}.%{minor_version}-tomcat-users-webapp.patch
9d02a3
Patch2:        %{name}-build.patch
9d02a3
Patch3:        %{name}-%{major_version}.%{minor_version}-catalina-policy.patch
9d02a3
Patch4:        rhbz-1857043.patch
9d02a3
Patch5:        %{name}-%{major_version}.%{minor_version}-JDTCompiler.patch
9d02a3
# remove bnd dependency which version is too low on rhel8
9d02a3
Patch6:        remove-bnd-annotation.patch
9d02a3
# The fixes for memory leak which have been fixed in 9.0.64, remove this patch in the next tomcat update
9d02a3
Patch7:        %{name}-%{major_version}.%{minor_version}-memory-leak.patch
9d02a3
Patch8:        fix-malformed-dtd.patch
9d02a3
9d02a3
BuildArch:     noarch
9d02a3
9d02a3
BuildRequires: ant
9d02a3
BuildRequires: ecj >= 1:4.10
9d02a3
BuildRequires: findutils
9d02a3
BuildRequires: java-devel >= 1:1.8.0
9d02a3
BuildRequires: javapackages-local
9d02a3
BuildRequires: aqute-bnd
9d02a3
BuildRequires: aqute-bndlib
9d02a3
BuildRequires: systemd
9d02a3
9d02a3
Requires:      java-headless >= 1:1.8.0
9d02a3
Requires:      javapackages-tools
9d02a3
Requires:      %{name}-lib = %{epoch}:%{version}-%{release}
9d02a3
%if 0%{?fedora} || 0%{?rhel} > 7
9d02a3
Recommends:    tomcat-native >= %{native_version}
9d02a3
%endif
9d02a3
Requires(pre):    shadow-utils
9d02a3
Requires(post):   systemd
9d02a3
Requires(preun):  systemd
9d02a3
Requires(postun): systemd
9d02a3
9d02a3
# We will change it to an obsoletes whenever the pki team is able to make the switch
9d02a3
Conflicts: pki-servlet-engine <= 1:9.0.50
9d02a3
9d02a3
# added after log4j sub-package was removed
9d02a3
Provides:         %{name}-log4j = %{epoch}:%{version}-%{release}
9d02a3
9d02a3
%description
9d02a3
Tomcat is the servlet container that is used in the official Reference
9d02a3
Implementation for the Java Servlet and JavaServer Pages technologies.
9d02a3
The Java Servlet and JavaServer Pages specifications are developed by
9d02a3
Sun under the Java Community Process.
9d02a3
9d02a3
Tomcat is developed in an open and participatory environment and
9d02a3
released under the Apache Software License version 2.0. Tomcat is intended
9d02a3
to be a collaboration of the best-of-breed developers from around the world.
9d02a3
9d02a3
%package admin-webapps
9d02a3
Summary: The host-manager and manager web applications for Apache Tomcat
9d02a3
Requires: %{name} = %{epoch}:%{version}-%{release}
9d02a3
9d02a3
%description admin-webapps
9d02a3
The host-manager and manager web applications for Apache Tomcat.
9d02a3
9d02a3
%package docs-webapp
9d02a3
Summary: The docs web application for Apache Tomcat
9d02a3
Requires: %{name} = %{epoch}:%{version}-%{release}
9d02a3
9d02a3
%description docs-webapp
9d02a3
The docs web application for Apache Tomcat.
9d02a3
9d02a3
%package jsp-%{jspspec}-api
9d02a3
Summary: Apache Tomcat JavaServer Pages v%{jspspec} API Implementation Classes
9d02a3
Provides: jsp = %{jspspec}
9d02a3
Obsoletes: %{name}-jsp-2.2-api
9d02a3
Requires: %{name}-servlet-%{servletspec}-api = %{epoch}:%{version}-%{release}
9d02a3
Requires: %{name}-el-%{elspec}-api = %{epoch}:%{version}-%{release}
9d02a3
Conflicts: pki-servlet-engine <= 1:9.0.50
9d02a3
9d02a3
%description jsp-%{jspspec}-api
9d02a3
Apache Tomcat JSP API Implementation Classes.
9d02a3
9d02a3
%package lib
9d02a3
Summary: Libraries needed to run the Tomcat Web container
9d02a3
Requires: %{name}-jsp-%{jspspec}-api = %{epoch}:%{version}-%{release}
9d02a3
Requires: %{name}-servlet-%{servletspec}-api = %{epoch}:%{version}-%{release}
9d02a3
Requires: %{name}-el-%{elspec}-api = %{epoch}:%{version}-%{release}
9d02a3
Requires: ecj >= 1:4.10
9d02a3
Requires(preun): coreutils
9d02a3
Conflicts: pki-servlet-engine <= 1:9.0.50
9d02a3
9d02a3
%description lib
9d02a3
Libraries needed to run the Tomcat Web container.
9d02a3
9d02a3
%package servlet-%{servletspec}-api
9d02a3
Summary: Apache Tomcat Java Servlet v%{servletspec} API Implementation Classes
9d02a3
Provides: servlet = %{servletspec}
9d02a3
Provides: servlet6
9d02a3
Provides: servlet3
9d02a3
Obsoletes: %{name}-servlet-3.1-api
9d02a3
Conflicts: pki-servlet-4.0-api <= 1:9.0.50
9d02a3
9d02a3
%description servlet-%{servletspec}-api
9d02a3
Apache Tomcat Servlet API Implementation Classes.
9d02a3
9d02a3
%package el-%{elspec}-api
9d02a3
Summary: Apache Tomcat Expression Language v%{elspec} API Implementation Classes
9d02a3
Provides: el_api = %{elspec}
9d02a3
Obsoletes: %{name}-el-2.2-api
9d02a3
Conflicts: pki-servlet-engine <= 1:9.0.50 and pki-servlet-container <= 1:9.0.7
9d02a3
9d02a3
%description el-%{elspec}-api
9d02a3
Apache Tomcat EL API Implementation Classes.
9d02a3
9d02a3
%package webapps
9d02a3
Summary: The ROOT web application for Apache Tomcat
9d02a3
Requires: %{name} = %{epoch}:%{version}-%{release}
9d02a3
9d02a3
%description webapps
9d02a3
The ROOT web application for Apache Tomcat.
9d02a3
9d02a3
%prep
9d02a3
%setup -q -n %{packdname}
9d02a3
# remove pre-built binaries and windows files
9d02a3
find . -type f \( -name "*.bat" -o -name "*.class" -o -name Thumbs.db -o -name "*.gz" -o \
9d02a3
   -name "*.jar" -o -name "*.war" -o -name "*.zip" \) -delete
9d02a3
9d02a3
%patch0 -p0
9d02a3
%patch1 -p0
9d02a3
%patch2 -p0
9d02a3
%patch3 -p0
9d02a3
%patch4 -p0
9d02a3
%patch5 -p0
9d02a3
%patch6 -p1
9d02a3
%patch7 -p1
9d02a3
%patch8 -p1
9d02a3
9d02a3
# Remove webservices naming resources as it's generally unused
9d02a3
%{__rm} -rf java/org/apache/naming/factory/webservices
9d02a3
9d02a3
# Configure maven files
9d02a3
%mvn_package ":tomcat-el-api" tomcat-el-api
9d02a3
%mvn_alias "org.apache.tomcat:tomcat-el-api" "org.eclipse.jetty.orbit:javax.el"
9d02a3
%mvn_package ":tomcat-jsp-api" tomcat-jsp-api
9d02a3
%mvn_alias "org.apache.tomcat:tomcat-jsp-api" "org.eclipse.jetty.orbit:javax.servlet.jsp"
9d02a3
%mvn_package ":tomcat-servlet-api" tomcat-servlet-api
9d02a3
9d02a3
9d02a3
%build
9d02a3
export OPT_JAR_LIST="xalan-j2-serializer"
9d02a3
# we don't care about the tarballs and we're going to replace
9d02a3
# tomcat-dbcp.jar with apache-commons-{collections,dbcp,pool}-tomcat5.jar
9d02a3
# so just create a dummy file for later removal
9d02a3
touch HACK
9d02a3
9d02a3
# who needs a build.properties file anyway
9d02a3
%{ant} -Dbase.path="." \
9d02a3
  -Dbuild.compiler="modern" \
9d02a3
  -Dcommons-daemon.jar="HACK" \
9d02a3
  -Dcommons-daemon.native.src.tgz="HACK" \
9d02a3
  -Djdt.jar="$(build-classpath ecj/ecj)" \
9d02a3
  -Dtomcat-native.tar.gz="HACK" \
9d02a3
  -Dtomcat-native.home="." \
9d02a3
  -Dcommons-daemon.native.win.mgr.exe="HACK" \
9d02a3
  -Dnsis.exe="HACK" \
9d02a3
  -Djaxrpc-lib.jar="HACK" \
9d02a3
  -Dwsdl4j-lib.jar="HACK" \
9d02a3
  -Dbnd.jar="HACK" \
9d02a3
  -Dversion="%{version}" \
9d02a3
  -Dversion.build="%{micro_version}" \
9d02a3
  deploy
9d02a3
9d02a3
# remove some jars that we'll replace with symlinks later
9d02a3
%{__rm} output/build/bin/commons-daemon.jar output/build/lib/ecj.jar
9d02a3
# Remove the example webapps per Apache Tomcat Security Considerations
9d02a3
# see https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html
9d02a3
%{__rm} -rf output/build/webapps/examples
9d02a3
9d02a3
9d02a3
%install
9d02a3
# build initial path structure
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir}
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sbindir}
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_systemddir}
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{appdir}
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{bindir}
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{confdir}
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{confdir}/Catalina/localhost
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{confdir}/conf.d
9d02a3
/bin/echo "Place your custom *.conf files here. Shell expansion is supported." > ${RPM_BUILD_ROOT}%{confdir}/conf.d/README
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{libdir}
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{logdir}
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{_localstatedir}/lib/tomcats
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{homedir}
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{tempdir}
9d02a3
%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{workdir}
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_unitdir}
9d02a3
%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}
9d02a3
9d02a3
# move things into place
9d02a3
# First copy supporting libs to tomcat lib
9d02a3
pushd output/build
9d02a3
    %{__cp} -a bin/*.{jar,xml} ${RPM_BUILD_ROOT}%{bindir}
9d02a3
    %{__cp} -a conf/*.{policy,properties,xml,xsd} ${RPM_BUILD_ROOT}%{confdir}
9d02a3
    %{__cp} -a lib/*.jar ${RPM_BUILD_ROOT}%{libdir}
9d02a3
    %{__cp} -a webapps/* ${RPM_BUILD_ROOT}%{appdir}
9d02a3
popd
9d02a3
9d02a3
%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
9d02a3
   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
9d02a3
   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE1} \
9d02a3
    > ${RPM_BUILD_ROOT}%{confdir}/%{name}.conf
9d02a3
%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
9d02a3
   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
9d02a3
   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE3} \
9d02a3
    > ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}
9d02a3
%{__install} -m 0644 %{SOURCE4} \
9d02a3
    ${RPM_BUILD_ROOT}%{_sbindir}/%{name}
9d02a3
%{__install} -m 0644 %{SOURCE11} \
9d02a3
    ${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service
9d02a3
%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \
9d02a3
    > ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}.disabled
9d02a3
%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
9d02a3
   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
9d02a3
   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \
9d02a3
    > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-digest
9d02a3
%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
9d02a3
   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
9d02a3
   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE7} \
9d02a3
    > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-tool-wrapper
9d02a3
9d02a3
%{__install} -m 0644 %{SOURCE21} \
9d02a3
    ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/functions
9d02a3
%{__install} -m 0755 %{SOURCE30} \
9d02a3
    ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/preamble
9d02a3
%{__install} -m 0755 %{SOURCE31} \
9d02a3
    ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/server
9d02a3
%{__install} -m 0644 %{SOURCE32} \
9d02a3
    ${RPM_BUILD_ROOT}%{_unitdir}/%{name}@.service
9d02a3
9d02a3
%{__install} -m 0644 %{SOURCE33} ${RPM_BUILD_ROOT}%{confdir}/conf.d/
9d02a3
9d02a3
# Substitute libnames in catalina-tasks.xml
9d02a3
sed -i \
9d02a3
   "s,el-api.jar,%{name}-el-%{elspec}-api.jar,;
9d02a3
    s,servlet-api.jar,%{name}-servlet-%{servletspec}-api.jar,;
9d02a3
    s,jsp-api.jar,%{name}-jsp-%{jspspec}-api.jar,;" \
9d02a3
    ${RPM_BUILD_ROOT}%{bindir}/catalina-tasks.xml
9d02a3
9d02a3
# create jsp and servlet API symlinks
9d02a3
pushd ${RPM_BUILD_ROOT}%{_javadir}
9d02a3
   %{__mv} %{name}/jsp-api.jar %{name}-jsp-%{jspspec}-api.jar
9d02a3
   %{__ln_s} %{name}-jsp-%{jspspec}-api.jar %{name}-jsp-api.jar
9d02a3
   %{__mv} %{name}/servlet-api.jar %{name}-servlet-%{servletspec}-api.jar
9d02a3
   %{__ln_s} %{name}-servlet-%{servletspec}-api.jar %{name}-servlet-api.jar
9d02a3
   %{__mv} %{name}/el-api.jar %{name}-el-%{elspec}-api.jar
9d02a3
   %{__ln_s} %{name}-el-%{elspec}-api.jar %{name}-el-api.jar
9d02a3
popd
9d02a3
9d02a3
pushd output/build
9d02a3
    %{_bindir}/build-jar-repository lib ecj 2>&1
9d02a3
popd
9d02a3
9d02a3
pushd ${RPM_BUILD_ROOT}%{libdir}
9d02a3
    # symlink JSP and servlet API jars
9d02a3
    %{__ln_s} ../../java/%{name}-jsp-%{jspspec}-api.jar .
9d02a3
    %{__ln_s} ../../java/%{name}-servlet-%{servletspec}-api.jar .
9d02a3
    %{__ln_s} ../../java/%{name}-el-%{elspec}-api.jar .
9d02a3
    %{__ln_s} $(build-classpath ecj/ecj) jasper-jdt.jar
9d02a3
popd
9d02a3
9d02a3
# symlink to the FHS locations where we've installed things
9d02a3
pushd ${RPM_BUILD_ROOT}%{homedir}
9d02a3
    %{__ln_s} %{appdir} webapps
9d02a3
    %{__ln_s} %{confdir} conf
9d02a3
    %{__ln_s} %{libdir} lib
9d02a3
    %{__ln_s} %{logdir} logs
9d02a3
    %{__ln_s} %{tempdir} temp
9d02a3
    %{__ln_s} %{workdir} work
9d02a3
popd
9d02a3
9d02a3
# Install the maven metadata for the spec impl artifacts as other projects use them
9d02a3
#%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_mavenpomdir}
9d02a3
pushd res/maven
9d02a3
    for pom in tomcat-el-api.pom tomcat-jsp-api.pom tomcat-servlet-api.pom; do
9d02a3
        # fix-up version in all pom files
9d02a3
        sed -i 's/@MAVEN.DEPLOY.VERSION@/%{version}/g' $pom
9d02a3
    done
9d02a3
popd
9d02a3
9d02a3
# Configure and install maven artifacts
9d02a3
%mvn_artifact res/maven/tomcat-el-api.pom output/build/lib/el-api.jar
9d02a3
%mvn_artifact res/maven/tomcat-jsp-api.pom output/build/lib/jsp-api.jar
9d02a3
%mvn_artifact res/maven/tomcat-servlet-api.pom output/build/lib/servlet-api.jar
9d02a3
%mvn_install
9d02a3
9d02a3
%pre
9d02a3
# add the tomcat user and group
9d02a3
getent group tomcat >/dev/null || %{_sbindir}/groupadd -f -g %{tcuid} -r tomcat
9d02a3
if ! getent passwd tomcat >/dev/null ; then
9d02a3
    if ! getent passwd %{tcuid} >/dev/null ; then
9d02a3
        %{_sbindir}/useradd -r -u %{tcuid} -g tomcat -d %{homedir} -s /sbin/nologin -c "Apache Tomcat" tomcat
9d02a3
        # Tomcat uses a reserved ID, so there should never be an else
9d02a3
    fi
9d02a3
fi
9d02a3
exit 0
9d02a3
9d02a3
%post
9d02a3
# install but don't activate
9d02a3
%systemd_post %{name}.service
9d02a3
9d02a3
%post jsp-%{jspspec}-api
9d02a3
%{_sbindir}/update-alternatives --install %{_javadir}/jsp.jar jsp \
9d02a3
    %{_javadir}/%{name}-jsp-%{jspspec}-api.jar 20200
9d02a3
9d02a3
%post servlet-%{servletspec}-api
9d02a3
%{_sbindir}/update-alternatives --install %{_javadir}/servlet.jar servlet \
9d02a3
    %{_javadir}/%{name}-servlet-%{servletspec}-api.jar 30000
9d02a3
9d02a3
%post el-%{elspec}-api
9d02a3
%{_sbindir}/update-alternatives --install %{_javadir}/elspec.jar elspec \
9d02a3
   %{_javadir}/%{name}-el-%{elspec}-api.jar 20300
9d02a3
9d02a3
%preun
9d02a3
# clean tempdir and workdir on removal or upgrade
9d02a3
%{__rm} -rf %{workdir}/* %{tempdir}/*
9d02a3
%systemd_preun %{name}.service
9d02a3
9d02a3
%postun
9d02a3
%systemd_postun_with_restart %{name}.service 
9d02a3
9d02a3
%postun jsp-%{jspspec}-api
9d02a3
if [ "$1" = "0" ]; then
9d02a3
    %{_sbindir}/update-alternatives --remove jsp \
9d02a3
        %{_javadir}/%{name}-jsp-%{jspspec}-api.jar
9d02a3
fi
9d02a3
9d02a3
%postun servlet-%{servletspec}-api
9d02a3
if [ "$1" = "0" ]; then
9d02a3
    %{_sbindir}/update-alternatives --remove servlet \
9d02a3
        %{_javadir}/%{name}-servlet-%{servletspec}-api.jar
9d02a3
fi
9d02a3
9d02a3
%postun el-%{elspec}-api
9d02a3
if [ "$1" = "0" ]; then
9d02a3
    %{_sbindir}/update-alternatives --remove elspec \
9d02a3
        %{_javadir}/%{name}-el-%{elspec}-api.jar
9d02a3
fi
9d02a3
9d02a3
%files 
9d02a3
%defattr(0664,root,tomcat,0755)
9d02a3
%doc {LICENSE,NOTICE,RELEASE*}
9d02a3
%attr(0755,root,root) %{_bindir}/%{name}-digest
9d02a3
%attr(0755,root,root) %{_bindir}/%{name}-tool-wrapper
9d02a3
%attr(0755,root,root) %{_sbindir}/%{name}
9d02a3
%attr(0644,root,root) %{_unitdir}/%{name}.service
9d02a3
%attr(0644,root,root) %{_unitdir}/%{name}@.service
9d02a3
%attr(0755,root,root) %dir %{_libexecdir}/%{name}
9d02a3
%attr(0755,root,root) %dir %{_localstatedir}/lib/tomcats
9d02a3
%attr(0644,root,root) %{_libexecdir}/%{name}/functions
9d02a3
%attr(0755,root,root) %{_libexecdir}/%{name}/preamble
9d02a3
%attr(0755,root,root) %{_libexecdir}/%{name}/server
9d02a3
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/%{name}
9d02a3
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}.disabled
9d02a3
%attr(0755,root,tomcat) %dir %{basedir}
9d02a3
%attr(0755,root,tomcat) %dir %{confdir}
9d02a3
9d02a3
%defattr(0664,tomcat,root,0770)
9d02a3
%attr(0770,tomcat,root) %dir %{logdir}
9d02a3
9d02a3
%defattr(0664,root,tomcat,0770)
9d02a3
%attr(0770,root,tomcat) %dir %{cachedir}
9d02a3
%attr(0770,root,tomcat) %dir %{tempdir}
9d02a3
%attr(0770,root,tomcat) %dir %{workdir}
9d02a3
9d02a3
%defattr(0644,root,tomcat,0775)
9d02a3
%attr(0775,root,tomcat) %dir %{appdir}
9d02a3
%attr(0775,root,tomcat) %dir %{confdir}/Catalina
9d02a3
%attr(0775,root,tomcat) %dir %{confdir}/Catalina/localhost
9d02a3
%attr(0755,root,tomcat) %dir %{confdir}/conf.d
9d02a3
%{confdir}/conf.d/README
9d02a3
%{confdir}/conf.d/java-9-start-up-parameters.conf
9d02a3
%config(noreplace) %{confdir}/%{name}.conf
9d02a3
%config(noreplace) %{confdir}/*.policy
9d02a3
%config(noreplace) %{confdir}/*.properties
9d02a3
%config(noreplace) %{confdir}/context.xml
9d02a3
%config(noreplace) %{confdir}/server.xml
9d02a3
%attr(0640,root,tomcat) %config(noreplace) %{confdir}/tomcat-users.xml
9d02a3
%attr(0664,root,tomcat) %{confdir}/tomcat-users.xsd
9d02a3
%attr(0664,root,tomcat) %config(noreplace) %{confdir}/jaspic-providers.xml
9d02a3
%attr(0664,root,tomcat) %{confdir}/jaspic-providers.xsd
9d02a3
%config(noreplace) %{confdir}/web.xml
9d02a3
%dir %{homedir}
9d02a3
%{bindir}/bootstrap.jar
9d02a3
%{bindir}/catalina-tasks.xml
9d02a3
%{homedir}/lib
9d02a3
%{homedir}/temp
9d02a3
%{homedir}/webapps
9d02a3
%{homedir}/work
9d02a3
%{homedir}/logs
9d02a3
%{homedir}/conf
9d02a3
9d02a3
%files admin-webapps
9d02a3
%defattr(0664,root,tomcat,0755)
9d02a3
%{appdir}/host-manager
9d02a3
%{appdir}/manager
9d02a3
9d02a3
%files docs-webapp
9d02a3
%{appdir}/docs
9d02a3
9d02a3
%files lib
9d02a3
%dir %{libdir}
9d02a3
%{libdir}/*.jar
9d02a3
%{_javadir}/*.jar
9d02a3
%{bindir}/tomcat-juli.jar
9d02a3
%exclude %{libdir}/%{name}-el-%{elspec}-api.jar
9d02a3
%exclude %{_javadir}/%{name}-servlet-%{servletspec}*.jar
9d02a3
%exclude %{_javadir}/%{name}-el-%{elspec}-api.jar
9d02a3
%exclude %{_javadir}/%{name}-jsp-%{jspspec}*.jar
9d02a3
9d02a3
%files jsp-%{jspspec}-api -f .mfiles-tomcat-jsp-api
9d02a3
%{_javadir}/%{name}-jsp-%{jspspec}*.jar
9d02a3
9d02a3
%files servlet-%{servletspec}-api -f .mfiles-tomcat-servlet-api
9d02a3
%doc LICENSE
9d02a3
%{_javadir}/%{name}-servlet-%{servletspec}*.jar
9d02a3
9d02a3
%files el-%{elspec}-api -f .mfiles-tomcat-el-api
9d02a3
%doc LICENSE
9d02a3
%{_javadir}/%{name}-el-%{elspec}-api.jar
9d02a3
%{libdir}/%{name}-el-%{elspec}-api.jar
9d02a3
9d02a3
%files webapps
9d02a3
%defattr(0644,tomcat,tomcat,0755)
9d02a3
%{appdir}/ROOT
9d02a3
9d02a3
9d02a3
%changelog
9d02a3
* Thu Feb 16 2023 Coty Sutherland <csutherl@redhat.com> - 1:9.0.62-5
9d02a3
- Related: #2160455 Add conflicts to subpackage
9d02a3
9d02a3
* Wed Feb 15 2023 Hui Wang <huwang@redhat.com> - 1:9.0.62-4
9d02a3
- Resolves: #2160455 Add Tomcat 9 to RHEL8