From 122197843bc0b1c8cc3e6bbde7da455f6cc61068dda9883edd4f84adb7dd5a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Chv=C3=A1tal?= Date: Thu, 7 Apr 2016 12:59:42 +0000 Subject: [PATCH] Accepting request 385746 from home:dmacvicar:branches:Java:packages - package was partly merged with the scripts used in the Fedora distribution - support running multiple tomcat instances on the same server (fate#317783) - add catalina-jmx-remote.jar (fate#318403) - remove sysvinit support: systemd is required OBS-URL: https://build.opensuse.org/request/show/385746 OBS-URL: https://build.opensuse.org/package/show/Java:packages/tomcat?expand=0&rev=83 --- tomcat-7.0-jsvc.service | 25 --- tomcat-7.0-tomcat-sysd | 145 ---------------- tomcat-7.0.service | 24 --- tomcat-8.0-bootstrap-MANIFEST.MF.patch | 6 +- tomcat-8.0-digest.script | 17 +- tomcat-8.0-jsvc.service | 21 +++ tomcat-8.0-tomcat-users-webapp.patch | 6 +- tomcat-8.0-tool-wrapper.script | 20 +-- tomcat-8.0.conf | 84 +++++----- tomcat-8.0.service | 23 +++ tomcat-8.0.sysconfig | 11 ++ tomcat-8.0.wrapper | 81 ++------- tomcat-functions | 42 +++++ tomcat-named.service | 26 +++ tomcat-preamble | 52 ++++++ tomcat-server | 25 +++ tomcat.changes | 10 ++ tomcat.spec | 218 +++++++++++++------------ 18 files changed, 391 insertions(+), 445 deletions(-) delete mode 100644 tomcat-7.0-jsvc.service delete mode 100644 tomcat-7.0-tomcat-sysd delete mode 100644 tomcat-7.0.service create mode 100644 tomcat-8.0-jsvc.service create mode 100644 tomcat-8.0.service create mode 100644 tomcat-8.0.sysconfig create mode 100644 tomcat-functions create mode 100644 tomcat-named.service create mode 100644 tomcat-preamble create mode 100644 tomcat-server diff --git a/tomcat-7.0-jsvc.service b/tomcat-7.0-jsvc.service deleted file mode 100644 index 13fa3f4..0000000 --- a/tomcat-7.0-jsvc.service +++ /dev/null @@ -1,25 +0,0 @@ -# Systemd unit file for tomcat -# -# You can clone this service by: -# 1.) Add a new EnvironmentFile declaring the new values for CATALINA_BASE -# and others -# 2.) Define new Environment=JSVC_PIDFILE=/var/run/tomcat-foo.pid if you want -# to run more than one service - -[Unit] -Description=Apache Tomcat Web Application Container JSVC wrapper -After=network.target - -[Service] -Type=simple -EnvironmentFile=/etc/tomcat/tomcat.conf -#PIDFILE is needed for jsvc -#Environment=JSVC_PIDFILE=/var/run/tomcat-jsvc.pid -ExecStart=/usr/sbin/tomcat-jsvc-sysd start -ExecStop=/usr/sbin/tomcat-jsvc-sysd stop -StandardOutput=syslog -SyslogIdentifier=%n -SyslogFacility=daemon - -[Install] -WantedBy=multi-user.target diff --git a/tomcat-7.0-tomcat-sysd b/tomcat-7.0-tomcat-sysd deleted file mode 100644 index 871cf38..0000000 --- a/tomcat-7.0-tomcat-sysd +++ /dev/null @@ -1,145 +0,0 @@ -#!/bin/bash -# -# This script provides systemd activation of the tomcat service and tomcat -# throught jsvc wrapper - -# check the basic environment variables -if [[ -z "${CATALINA_BASE}" || \ - -z "${CATALINA_HOME}" || \ - -z "${CATALINA_TMPDIR}" ]]; then - -echo "ERROR: one of CATALINA_BASE, CATALINA_HOME or CATALINA_TMPDIR is not defined" >&2 -echo " use proper EnvironmentFile= in your .service file" >&2 -exit 1 - -fi - -if [[ "${0}" =~ tomcat-jsvc ]]; then - if [[ ! -x /usr/bin/jsvc ]]; then - echo "ERROR: cannot use ${0}, /usr/bin/jsvc does not exists" >&2 - exit 1 - fi - USE_JSVC=true - JSVC_PIDFILE=${JSVC_PIDFILE:-/var/run/${0##*/}} -else - USE_JSVC=false -fi - -#### from /usr/sbin/dtomcat -if [[ -r /usr/share/java-utils/java-functions ]]; then - . /usr/share/java-utils/java-functions -else - echo "ERROR: Can't read Java functions library, aborting" >&2 - exit 1 -fi - -set_javacmd -# CLASSPATH munging -if [[ -n "$JSSE_HOME" ]]; then - CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" -fi -CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" -CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" -CLASSPATH="${CLASSPATH}:$(build-classpath commons-daemon 2>/dev/null)" - -#sanitize the classpath - remove double and trailing colons -CLASSPATH="`echo ${CLASSPATH} | sed 's/::+/:/g; s/^://; s/:$//g'`" - -# See how we were called. -function start() { - - local ret - - # running as root is not allowed if not running with jsvc - if ! ${USE_JSVC} && [[ $(id -u) == 0 ]]; then - echo "ERROR: starting tomcat under uid 0 is not supported" >&2 - echo " use appropriate User/Group settings in service file" >&2 - echo " see man systemd.exec for details" >&2 - exit 2 - fi - - if [[ "$SECURITY_MANAGER" = "true" ]]; then - DSECURITY_MANAGER="-Djava.security.manager" - DSECURITY_POLICY="-Djava.security.policy=${CATALINA_BASE}/conf/catalina.policy" - else - unset DSECURITY_MANAGER - unset DSECURITY_POLICY - fi - - if ${USE_JSVC}; then - JAVACMD="/usr/bin/jsvc -pidfile ${JSVC_PIDFILE} -nodetach -user ${TOMCAT_USER:-tomcat}" - fi - - #bnc#779538 - cd ${CATALINA_BASE} - - exec ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ - -classpath "$CLASSPATH" \ - -Dcatalina.base="$CATALINA_BASE" \ - -Dcatalina.home="$CATALINA_HOME" \ - -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ - -Djava.io.tmpdir="$CATALINA_TMPDIR" ${DSECURITY_MANAGER} ${DSECURITY_POLICY} \ - -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ - -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ - org.apache.catalina.startup.Bootstrap start -} - -function stop() { - - local ret - - if ${USE_JSVC}; then - #XXX: foo is needed because of funny jsvc parser needs a class name - /usr/bin/jsvc -stop -pidfile ${JSVC_PIDFILE} foo - ret=${?} - - if [[ $ret == 0 ]]; then - rm -f ${JSVC_PIDFILE} - fi - else - ${JAVACMD} $JAVA_OPTS \ - -classpath "$CLASSPATH" \ - -Dcatalina.base="$CATALINA_BASE" \ - -Dcatalina.home="$CATALINA_HOME" \ - -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ - -Djava.io.tmpdir="$CATALINA_TMPDIR" \ - org.apache.catalina.startup.Bootstrap stop - ret=${?} - - # workaround the 143 code emmited by jvm in case of sigterm - # using ExecStart=- will ignore all other failures as well - if [[ ret == 143 ]]; then - ret=0 - fi - fi - - return $ret -} - -function version() { - - exec ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \ - org.apache.catalina.util.ServerInfo - -} - -# See how we were called. -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart) - stop - start - ;; - version) - version - ;; - *) - echo "Usage: $0 {start|stop|restart|version}" >&2 - exit 1 -esac - diff --git a/tomcat-7.0.service b/tomcat-7.0.service deleted file mode 100644 index 7d75bfc..0000000 --- a/tomcat-7.0.service +++ /dev/null @@ -1,24 +0,0 @@ -# Systemd unit file for tomcat -# -# You can clone this service by: -# 1.) Add a new EnvironmentFile declaring the new values for CATALINA_BASE -# and others - -[Unit] -Description=Apache Tomcat Web Application Container -After=network.target - -[Service] -Type=simple -EnvironmentFile=/etc/tomcat/tomcat.conf -User=tomcat -Group=tomcat -ExecStart=/usr/sbin/tomcat-sysd start -ExecStop=/usr/sbin/tomcat-sysd stop -StandardOutput=syslog -SyslogIdentifier=%n -SyslogFacility=daemon -SuccessExitStatus=143 - -[Install] -WantedBy=multi-user.target diff --git a/tomcat-8.0-bootstrap-MANIFEST.MF.patch b/tomcat-8.0-bootstrap-MANIFEST.MF.patch index 3324c3c..fa3c90f 100644 --- a/tomcat-8.0-bootstrap-MANIFEST.MF.patch +++ b/tomcat-8.0-bootstrap-MANIFEST.MF.patch @@ -1,7 +1,5 @@ -Index: apache-tomcat-7.0.2-src/res/META-INF/bootstrap.jar.manifest -=================================================================== ---- apache-tomcat-7.0.2-src.orig/res/META-INF/bootstrap.jar.manifest 2010-08-04 01:26:39.000000000 +0200 -+++ apache-tomcat-7.0.2-src/res/META-INF/bootstrap.jar.manifest 2010-09-23 11:25:07.237277450 +0200 +--- res/META-INF/bootstrap.jar.manifest.orig 2010-04-06 10:11:09.000000000 -0600 ++++ res/META-INF/bootstrap.jar.manifest 2010-04-06 10:45:56.000000000 -0600 @@ -1,6 +1,5 @@ Manifest-Version: 1.0 Main-Class: org.apache.catalina.startup.Bootstrap diff --git a/tomcat-8.0-digest.script b/tomcat-8.0-digest.script index 2f5c4e3..e4dcbf7 100644 --- a/tomcat-8.0-digest.script +++ b/tomcat-8.0-digest.script @@ -10,39 +10,36 @@ else echo "Can't find functions library, aborting" exit 1 fi - + # Get the tomcat config (use this for environment specific settings) if [ -z "${TOMCAT_CFG}" ]; then TOMCAT_CFG="/etc/tomcat/tomcat.conf" fi - + if [ -r "$TOMCAT_CFG" ]; then . $TOMCAT_CFG fi - + set_javacmd - + # CLASSPATH munging if [ -n "$JSSE_HOME" ]; then CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" fi CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" - -#sanitize the classpath - remove double and trailing colons -CLASSPATH="`echo ${CLASSPATH} | sed 's/::+/:/g; s/^://; s/:$//g'`" export CLASSPATH - + # Configuration MAIN_CLASS="org.apache.catalina.startup.Tool" BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" BASE_OPTIONS="" BASE_JARS="commons-daemon tomcat/catalina servlet" - + # Set parameters set_classpath $BASE_JARS set_flags $BASE_FLAGS set_options $BASE_OPTIONS - + # Let's start run -server org.apache.catalina.realm.RealmBase "$@" diff --git a/tomcat-8.0-jsvc.service b/tomcat-8.0-jsvc.service new file mode 100644 index 0000000..934c7bc --- /dev/null +++ b/tomcat-8.0-jsvc.service @@ -0,0 +1,21 @@ +# Systemd unit file for tomcat +# +# To create clones of this service: +# 1) By default SERVICE_NAME=tomcat. When cloned, the value must be defined +# before tomcat-sysd is called. +# 2) Create /etc/sysconfig/${SERVICE_NAME} from /etc/sysconfig/tomcat +# to override tomcat defaults + +[Unit] +Description=Apache Tomcat Web Application Container JSVC wrapper +After=syslog.target network.target + +[Service] +Type=simple +EnvironmentFile=/etc/tomcat/tomcat.conf +Environment="NAME=" "USE_JSVC=true" +ExecStart=/usr/lib/tomcat/server start +ExecStop=/usr/lib/tomcat/server stop + +[Install] +WantedBy=multi-user.target diff --git a/tomcat-8.0-tomcat-users-webapp.patch b/tomcat-8.0-tomcat-users-webapp.patch index 5324f7e..d0b97b6 100644 --- a/tomcat-8.0-tomcat-users-webapp.patch +++ b/tomcat-8.0-tomcat-users-webapp.patch @@ -1,7 +1,5 @@ -Index: apache-tomcat-7.0.2-src/conf/tomcat-users.xml -=================================================================== ---- apache-tomcat-7.0.2-src/conf/tomcat-users.xml 2010-08-04 01:26:35.000000000 +0200 -+++ apache-tomcat-7.0.2-src/conf/tomcat-users.xml 2010-09-23 11:27:11.819276755 +0200 +--- conf/tomcat-users.xml~ 2008-01-28 17:41:06.000000000 -0500 ++++ conf/tomcat-users.xml 2008-03-07 19:40:07.000000000 -0500 @@ -23,4 +23,14 @@ diff --git a/tomcat-8.0-tool-wrapper.script b/tomcat-8.0-tool-wrapper.script index a17bef4..1bf7d85 100644 --- a/tomcat-8.0-tool-wrapper.script +++ b/tomcat-8.0-tool-wrapper.script @@ -2,7 +2,7 @@ # # tomcat-digest script # JPackage Project - + # Source functions library if [ -f /usr/share/java-utils/java-functions ] ; then . /usr/share/java-utils/java-functions @@ -10,40 +10,36 @@ else echo "Can't find functions library, aborting" exit 1 fi - + # Get the tomcat config (use this for environment specific settings) if [ -z "${TOMCAT_CFG}" ]; then TOMCAT_CFG="/etc/tomcat/tomcat.conf" fi - + if [ -r "$TOMCAT_CFG" ]; then . $TOMCAT_CFG fi - + set_javacmd - + # CLASSPATH munging if [ -n "$JSSE_HOME" ]; then CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" fi CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" - -#sanitize the classpath - remove double and trailing colons -CLASSPATH="`echo ${CLASSPATH} | sed 's/::+/:/g; s/^://; s/:$//g'`" - export CLASSPATH - + # Configuration MAIN_CLASS="org.apache.catalina.startup.Tool" BASE_OPTIONS="" BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" BASE_JARS="commons-daemon tomcat/catalina servlet" - + # Set parameters set_classpath $BASE_JARS set_flags $BASE_FLAGS set_options $BASE_OPTIONS - + # Let's start run "$@" diff --git a/tomcat-8.0.conf b/tomcat-8.0.conf index ee44a36..12a466f 100644 --- a/tomcat-8.0.conf +++ b/tomcat-8.0.conf @@ -1,62 +1,52 @@ # System-wide configuration file for tomcat services -# This will be sourced by tomcat and any secondary service - +# This will be loaded by systemd as an environment file, +# so please keep the syntax. For shell expansion support +# place your custom files as /etc/tomcat/conf.d/*.conf +# +# There are 2 "classes" of startup behavior in this package. +# The old one, the default service named tomcat.service. +# The new named instances are called tomcat@instance.service. +# +# Use this file to change default values for all services. +# Change the service specific ones to affect only one service. +# For tomcat.service it's /etc/sysconfig/tomcat, for +# tomcat@instance it's /etc/sysconfig/tomcat@instance. + +# This variable is used to figure out if config is loaded or not. +TOMCAT_CFG_LOADED="1" + +# In new-style instances, if CATALINA_BASE isn't specified, it will +# be constructed by joining TOMCATS_BASE and NAME. +TOMCATS_BASE="/var/lib/tomcats/" + # Where your java installation lives -JAVA_HOME="@@@JAVAHOME@@@" - +JAVA_HOME="/usr/lib/jvm/jre" + # Where your tomcat installation lives CATALINA_HOME="@@@TCHOME@@@" -# where the given instance lives -CATALINA_BASE="@@@TCHOME@@@" -# the temp dir of the instance -CATALINA_TMPDIR="@@@TCTEMP@@@" - + +# System-wide tmp +CATALINA_TMPDIR="/var/cache/tomcat/temp" + # You can pass some parameters to java here if you wish to #JAVA_OPTS="-Xminf0.1 -Xmaxf0.3" - + # Use JAVA_OPTS to set java.library.path for libtcnative.so -#JAVA_OPTS="-Djava.library.path=@@@LIBDIR@@@" - -# What user should run tomcat -# This value is interpreted differently -# 1.) for systemd units derived from tomcat.service, the User/Group settings is used -# 2.) for systemd units derived from tomcat-jsvc.service this value is respected (with tomcat as a default) -# 3.) for sysv init script, this value is respected (with tomcat as a default) -#TOMCAT_USER="tomcat" - +#JAVA_OPTS="-Djava.library.path=/usr/lib" + +# Set default javax.sql.DataSource factory to apache commons one. See rhbz#1214381 +JAVA_OPTS="-Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory" + # You can change your tomcat locale here #LANG="en_US" - + # Run tomcat under the Java Security Manager SECURITY_MANAGER="false" - + # Time to wait in seconds, before killing process -SHUTDOWN_WAIT="30" - -# Whether to annoy the user with "attempting to shut down" messages or not -SHUTDOWN_VERBOSE="false" - -# Set the TOMCAT_PID location -# WARNING: does not make any sense for systemd users -#CATALINA_PID="/var/run/tomcat.pid" - -# Connector port is 8080 for this tomcat instance -#CONNECTOR_PORT="8080" - +# TODO(stingray): does nothing, fix. +# SHUTDOWN_WAIT="30" + # If you wish to further customize your tomcat environment, # put your own definitions here # (i.e. LD_LIBRARY_PATH for some jdbc drivers) - -# Clear work directory when tomcat is stopped or restarted -CLEAR_WORK="false" - -# Java runtime options used when the "start", or "run" command is executed -# Use # it if you want: -# Set a location of JAAS config file -# CATALINA_OPTS="-Djava.security.auth.login.config=$CATALINA_HOME/conf/jaas.config" -# To collect data on how long garbage collection is taking -# CATALINA_OPTS="-verbose:gc" -# Make jikes error messages compatible with jasper -# CATALINA_OPTS="-Dbuild.compiler.emacs=true" -# Debug the permission (WARNING - This will generate many megabytes of output!) -# CATALINA_OPTS="-Djava.security.debug=all" diff --git a/tomcat-8.0.service b/tomcat-8.0.service new file mode 100644 index 0000000..3bde97b --- /dev/null +++ b/tomcat-8.0.service @@ -0,0 +1,23 @@ +# Systemd unit file for default tomcat +# +# To create clones of this service: +# DO NOTHING, use tomcat@.service instead. + +[Unit] +Description=Apache Tomcat Web Application Container +After=syslog.target network.target + +[Service] +Type=simple +EnvironmentFile=/etc/tomcat/tomcat.conf +Environment="NAME=" +EnvironmentFile=-/etc/sysconfig/tomcat +ExecStart=/usr/lib/tomcat/server start +ExecStop=/usr/lib/tomcat/server stop +SuccessExitStatus=143 +User=tomcat +Group=tomcat + + +[Install] +WantedBy=multi-user.target diff --git a/tomcat-8.0.sysconfig b/tomcat-8.0.sysconfig new file mode 100644 index 0000000..05cc032 --- /dev/null +++ b/tomcat-8.0.sysconfig @@ -0,0 +1,11 @@ +# Service-specific configuration file for tomcat. This will be sourced by +# systemd for the default service (tomcat.service) +# If you want to customize named instance, make a similar file +# and name it tomcat@instancename. + +# You will not need to set this, usually. For default service it equals +# CATALINA_HOME. For named service, it equals ${TOMCATS_BASE}${NAME} +#CATALINA_BASE="@@@TCHOME@@@" + +# Please take a look at /etc/tomcat/tomcat.conf to have an idea what you +# can override. diff --git a/tomcat-8.0.wrapper b/tomcat-8.0.wrapper index 5dab047..21eaa4c 100644 --- a/tomcat-8.0.wrapper +++ b/tomcat-8.0.wrapper @@ -1,77 +1,24 @@ #!/bin/bash - -if [ -r /usr/share/java-utils/java-functions ]; then - . /usr/share/java-utils/java-functions -else - echo "Can't read Java functions library, aborting" - exit 1 -fi - -# Get the tomcat config (use this for environment specific settings) -if [ -z "${TOMCAT_CFG}" ]; then - TOMCAT_CFG="/etc/tomcat/tomcat.conf" -fi - -if [ -r "$TOMCAT_CFG" ]; then - . $TOMCAT_CFG -fi - -set_javacmd - -# CLASSPATH munging -if [ -n "$JSSE_HOME" ]; then - CLASSPATH="${CLASSPATH}:$(build-classpath jcert jnet jsse 2>/dev/null)" -fi -CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar" -CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" -CLASSPATH="${CLASSPATH}:$(build-classpath commons-daemon 2>/dev/null)" -#sanitize the classpath - remove double and trailing colons -CLASSPATH="`echo ${CLASSPATH} | sed 's/::+/:/g; s/^://; s/:$//g'`" - +if [ "$1" = "version" ]; then + . /usr/lib/tomcat/preamble + exec ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \ + org.apache.catalina.util.ServerInfo +fi + +SRV="tomcat" +if [ -n "$2" ]; then + SRV="tomcat@$2" +fi + if [ "$1" = "start" ]; then - ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ - -classpath "$CLASSPATH" \ - -Dcatalina.base="$CATALINA_BASE" \ - -Dcatalina.home="$CATALINA_HOME" \ - -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ - -Djava.io.tmpdir="$CATALINA_TMPDIR" \ - -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ - -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ - org.apache.catalina.startup.Bootstrap start \ - >> ${CATALINA_BASE}/logs/catalina.out 2>&1 & - if [ ! -z "$CATALINA_PID" ]; then - echo $! > $CATALINA_PID - fi -elif [ "$1" = "start-security" ]; then - ${JAVACMD} $JAVA_OPTS $CATALINA_OPTS \ - -classpath "$CLASSPATH" \ - -Dcatalina.base="$CATALINA_BASE" \ - -Dcatalina.home="$CATALINA_HOME" \ - -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ - -Djava.io.tmpdir="$CATALINA_TMPDIR" \ - -Djava.security.manager \ - -Djava.security.policy="${CATALINA_BASE}/conf/catalina.policy" \ - -Djava.util.logging.config.file="${CATALINA_BASE}/conf/logging.properties" \ - -Djava.util.logging.manager="org.apache.juli.ClassLoaderLogManager" \ - org.apache.catalina.startup.Bootstrap start \ - >> ${CATALINA_BASE}/logs/catalina.out 2>&1 & - if [ ! -z "$CATALINA_PID" ]; then - echo $! > $CATALINA_PID - fi + systemctl start ${SRV}.service elif [ "$1" = "stop" ]; then - ${JAVACMD} $JAVA_OPTS \ - -classpath "$CLASSPATH" \ - -Dcatalina.base="$CATALINA_BASE" \ - -Dcatalina.home="$CATALINA_HOME" \ - -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \ - -Djava.io.tmpdir="$CATALINA_TMPDIR" \ - org.apache.catalina.startup.Bootstrap stop \ - >> ${CATALINA_BASE}/logs/catalina.out 2>&1 + systemctl stop ${SRV}.service elif [ "$1" = "version" ]; then ${JAVACMD} -classpath ${CATALINA_HOME}/lib/catalina.jar \ org.apache.catalina.util.ServerInfo else - echo "Usage: $0 {start|start-security|stop|version}" + echo "Usage: $0 {start|stop|version} [server-id]" exit 1 fi diff --git a/tomcat-functions b/tomcat-functions new file mode 100644 index 0000000..721021c --- /dev/null +++ b/tomcat-functions @@ -0,0 +1,42 @@ +#!/bin/bash + +if [ -r /usr/share/java-utils/java-functions ]; then + . /usr/share/java-utils/java-functions +else + echo "Can't read Java functions library, aborting" + exit 1 +fi + +_save_function() { + local ORIG_FUNC=$(declare -f $1) + local NEWNAME_FUNC="$2${ORIG_FUNC#$1}" + eval "$NEWNAME_FUNC" +} + +run_jsvc(){ + if [ -x /usr/bin/jsvc ]; then + TOMCAT_USER="tomcat" + JSVC="/usr/bin/jsvc" + + JSVC_OPTS="-nodetach -pidfile /var/run/jsvc-tomcat${NAME}.pid -user ${TOMCAT_USER} -outfile ${CATALINA_BASE}/logs/catalina.out -errfile ${CATALINA_BASE}/logs/catalina.out" + if [ "$1" = "stop" ]; then + JSVC_OPTS="${JSVC_OPTS} -stop" + fi + + exec "${JSVC}" ${JSVC_OPTS} ${FLAGS} -classpath "${CLASSPATH}" ${OPTIONS} "${MAIN_CLASS}" "${@}" + else + echo "Can't find /usr/bin/jsvc executable" + fi + +} + +_save_function run run_java + +run() { + if [ "${USE_JSVC}" = "true" ] ; then + run_jsvc $@ + else + run_java $@ + fi +} + diff --git a/tomcat-named.service b/tomcat-named.service new file mode 100644 index 0000000..db49f77 --- /dev/null +++ b/tomcat-named.service @@ -0,0 +1,26 @@ +# Systemd unit file for tomcat instances. +# +# To create clones of this service: +# 0. systemctl enable tomcat@name.service +# 1. create catalina.base directory structure in +# /var/lib/tomcats/name +# 2. profit. + +[Unit] +Description=Apache Tomcat Web Application Container +After=syslog.target network.target + +[Service] +Type=simple +EnvironmentFile=/etc/tomcat/tomcat.conf +Environment="NAME=%I" +EnvironmentFile=-/etc/sysconfig/tomcat@%I +ExecStart=/usr/lib/tomcat/server start +ExecStop=/usr/lib/tomcat/server stop +SuccessExitStatus=143 +User=tomcat +Group=tomcat + +[Install] +WantedBy=multi-user.target + diff --git a/tomcat-preamble b/tomcat-preamble new file mode 100644 index 0000000..3adcea0 --- /dev/null +++ b/tomcat-preamble @@ -0,0 +1,52 @@ +#!/bin/bash + +. /usr/lib/tomcat/functions + +# Get the tomcat config (use this for environment specific settings) + +if [ -z "${TOMCAT_CFG_LOADED}" ]; then + if [ -z "${TOMCAT_CFG}" ]; then + TOMCAT_CFG="/etc/tomcat/tomcat.conf" + fi + . $TOMCAT_CFG +fi + +if [ -d "${TOMCAT_CONFD=/etc/tomcat/conf.d}" ]; then + for file in ${TOMCAT_CONFD}/*.conf ; do + if [ -f "$file" ] ; then + . "$file" + fi + done +fi + +if [ -z "$CATALINA_BASE" ]; then + if [ -n "$NAME" ]; then + if [ -z "$TOMCATS_BASE" ]; then + TOMCATS_BASE="/var/lib/tomcats/" + fi + CATALINA_BASE="${TOMCATS_BASE}${NAME}" + else + CATALINA_BASE="${CATALINA_HOME}" + fi +fi +VERBOSE=1 +set_javacmd +cd ${CATALINA_HOME} +# CLASSPATH munging +if [ ! -z "$CLASSPATH" ] ; then + CLASSPATH="$CLASSPATH": +fi + +if [ -n "$JSSE_HOME" ]; then + CLASSPATH="${CLASSPATH}$(build-classpath jcert jnet jsse 2>/dev/null):" +fi +CLASSPATH="${CLASSPATH}${CATALINA_HOME}/bin/bootstrap.jar" +CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/tomcat-juli.jar" +CLASSPATH="${CLASSPATH}:$(build-classpath commons-daemon 2>/dev/null)" + +if [ -z "$LOGGING_PROPERTIES" ] ; then + LOGGING_PROPERTIES="${CATALINA_BASE}/conf/logging.properties" + if [ ! -f "${LOGGING_PROPERTIES}" ] ; then + LOGGING_PROPERTIES="${CATALINA_HOME}/conf/logging.properties" + fi +fi diff --git a/tomcat-server b/tomcat-server new file mode 100644 index 0000000..969a849 --- /dev/null +++ b/tomcat-server @@ -0,0 +1,25 @@ +#!/bin/bash + +. /usr/lib/tomcat/preamble + +MAIN_CLASS=org.apache.catalina.startup.Bootstrap + +FLAGS="$JAVA_OPTS" +OPTIONS="-Dcatalina.base=$CATALINA_BASE \ +-Dcatalina.home=$CATALINA_HOME \ +-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \ +-Djava.io.tmpdir=$CATALINA_TMPDIR \ +-Djava.util.logging.config.file=${LOGGING_PROPERTIES} \ +-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" + +if [ "$1" = "start" ] ; then + FLAGS="${FLAGS} $CATALINA_OPTS" + if [ "${SECURITY_MANAGER}" = "true" ] ; then + OPTIONS="${OPTIONS} \ + -Djava.security.manager \ + -Djava.security.policy==${CATALINA_BASE}/conf/catalina.policy" + fi + run start +elif [ "$1" = "stop" ] ; then + run stop +fi diff --git a/tomcat.changes b/tomcat.changes index 71cb5b3..5ed8399 100644 --- a/tomcat.changes +++ b/tomcat.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Thu Mar 31 08:18:39 UTC 2016 - dmacvicar@suse.de + +- package was partly merged with the scripts used in the + Fedora distribution +- support running multiple tomcat instances on the same server + (fate#317783) +- add catalina-jmx-remote.jar (fate#318403) +- remove sysvinit support: systemd is required + ------------------------------------------------------------------- Mon Feb 29 12:45:46 UTC 2016 - dmacvicar@suse.de diff --git a/tomcat.spec b/tomcat.spec index 7ac7928..282d84d 100644 --- a/tomcat.spec +++ b/tomcat.spec @@ -17,7 +17,6 @@ # -%global with_systemd 0%{?suse_version} > 1210 %define jspspec 2.3 %define servletspec 3.1 %define elspec 3.0 @@ -26,7 +25,8 @@ %define micro_version 32 %define packdname apache-tomcat-%{version}-src # FHS 2.3 compliant tree structure - http://www.pathname.com/fhs/2.3/ -%define appdir /srv/%{name}/webapps +%global basedir /srv/%{name} +%define appdir %{basedir}/webapps %define bindir %{_datadir}/%{name}/bin %define confdir %{_sysconfdir}/%{name} %define homedir %{_datadir}/%{name} @@ -45,6 +45,7 @@ Url: http://tomcat.apache.org Source0: http://www.apache.org/dist/tomcat/tomcat-%{major_version}/v%{version}/src/%{packdname}.tar.gz Source1: %{name}-%{major_version}.%{minor_version}.conf Source2: %{name}-%{major_version}.%{minor_version}.init +Source3: %{name}-%{major_version}.%{minor_version}.sysconfig Source4: %{name}-%{major_version}.%{minor_version}.wrapper Source5: %{name}-%{major_version}.%{minor_version}.logrotate Source6: %{name}-%{major_version}.%{minor_version}-digest.script @@ -52,15 +53,18 @@ Source7: %{name}-%{major_version}.%{minor_version}-tool-wrapper.script Source8: servlet-api-OSGi-MANIFEST.MF Source9: jsp-api-OSGi-MANIFEST.MF Source10: %{name}-%{major_version}.%{minor_version}-log4j.properties -Source11: tomcat-7.0.service +Source11: %{name}-%{major_version}.%{minor_version}.service Source12: el-api-OSGi-MANIFEST.MF Source13: jasper-el-OSGi-MANIFEST.MF Source14: jasper-OSGi-MANIFEST.MF Source15: tomcat-api-OSGi-MANIFEST.MF Source16: tomcat-juli-OSGi-MANIFEST.MF -Source17: tomcat-7.0-tomcat-sysd -Source20: tomcat-7.0-jsvc.service -Source30: dbcp-tomcat-build.xml +Source20: %{name}-%{major_version}.%{minor_version}-jsvc.service +Source21: tomcat-functions +Source30: tomcat-preamble +Source31: tomcat-server +Source32: tomcat-named.service +Source40: dbcp-tomcat-build.xml Source1000: tomcat-rpmlintrc Source1001: http://www.apache.org/dist/tomcat/tomcat-%{major_version}/v%{version}/src/%{packdname}.tar.gz.asc Source1002: %{name}.keyring @@ -95,6 +99,8 @@ BuildRequires: javapackages-tools BuildRequires: junit BuildRequires: log4j BuildRequires: sed +BuildRequires: systemd +BuildRequires: systemd-rpm-macros BuildRequires: unzip BuildRequires: wsdl4j BuildRequires: zip @@ -104,19 +110,16 @@ Requires: jakarta-commons-dbcp Requires: jakarta-commons-logging Requires: jakarta-commons-pool Requires: log4j -Requires(post): /sbin/chkconfig +# FIXME: use proper Requires(pre/post/preun/...) +PreReq: %fillup_prereq +Requires(post): systemd-rpm-macros Requires(pre): %{_sbindir}/groupadd Requires(pre): %{_sbindir}/useradd -Requires(preun): /sbin/chkconfig Recommends: libtcnative-1-0 >= 1.1.24 +Recommends: logrotate BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildArch: noarch -%if %{with_systemd} -BuildRequires: systemd %systemd_requires -%else -Recommends: logrotate -%endif %description Tomcat is the servlet container that is used in the official Reference @@ -186,7 +189,6 @@ Obsoletes: jsp < %{jspspec} %description jsp-2_3-api Apache Tomcat JSP API implementation classes version 2.3 -%if %{with_systemd} %package jsvc Summary: Apache jsvc wrapper for Apache Tomcat as separate service Group: Productivity/Networking/Web/Servers @@ -197,7 +199,6 @@ Requires: apache-commons-daemon-jsvc Systemd service and wrapper scripts to start tomcat with jsvc, which allows tomcat to perform some privileged operations (e.g. bind to a port < 1024) and then switch identity to a non-privileged user. -%endif %package lib Summary: Libraries needed to run the Tomcat Web container @@ -242,8 +243,8 @@ The ROOT and examples web applications for Apache Tomcat # remove pre-built binaries and windows files find . -type f \( -name "*.bat" -o -name "*.class" -o -name Thumbs.db -o -name "*.gz" -o \ -name "*.jar" -o -name "*.war" -o -name "*.zip" \) | xargs -t rm -f -%patch0 -p1 -%patch1 -p1 +%patch0 +%patch1 %patch2 -p1 %patch3 %patch4 -p1 @@ -257,7 +258,7 @@ sed -i -e '/build-date/ d' webapps/docs/tomcat-docs.xsl mkdir -p commons/dbcp pushd commons/dbcp -cp %{SOURCE30} . +cp %{SOURCE40} . mkdir src cp -r %{_usrsrc}/commons-dbcp/java src/ export CLASSPATH=$(build-classpath commons-pool-tomcat5) @@ -297,7 +298,7 @@ ant -Dbase.path="." \ -Dno.build.dbcp=true \ -Dversion="%{version}" \ -Dversion.build="%{micro_version}" \ - deploy dist-prepare dist-source javadoc package embed-jars + deploy dist-prepare dist-source javadoc package embed-jars extras-jmx-remote # remove some jars that we'll replace with symlinks later rm output/build/bin/commons-daemon.jar \ @@ -345,25 +346,27 @@ export NO_BRP_CHECK_BYTECODE_VERSION=true install -d -m 0755 %{buildroot}%{_bindir} install -d -m 0755 %{buildroot}%{_sbindir} install -d -m 0755 %{buildroot}%{_javadocdir}/%{name} - -%if %{with_systemd} -install -d -m 0755 %{buildroot}%{_unitdir} -%else -install -d -m 0755 %{buildroot}%{_initddir} +install -d -m 0755 %{buildroot}%{_initrddir} +install -d -m 0755 %{buildroot}%{_systemddir} install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d -%endif - -install -d -m 0755 %{buildroot}%{_localstatedir}/log/%{name} +install -d -m 0755 %{buildroot}%{_sysconfdir}/sysconfig install -d -m 0755 %{buildroot}%{appdir} install -d -m 0755 %{buildroot}%{bindir} -install -d -m 0755 %{buildroot}%{confdir} -install -d -m 0755 %{buildroot}%{libdir} -install -d -m 0755 %{buildroot}%{logdir} -install -d -m 0755 %{buildroot}%{homedir} -install -d -m 0755 %{buildroot}%{tempdir} -install -d -m 0775 %{buildroot}%{workdir} +install -d -m 0775 %{buildroot}%{confdir} install -d -m 0755 %{buildroot}%{cachedir}/Catalina/localhost -install -d -m 0755 %{buildroot}/%{_sbindir} +install -d -m 0775 %{buildroot}%{confdir}/conf.d +/bin/echo "Place your custom *.conf files here. Shell expansion is supported." > %{buildroot}%{confdir}/conf.d/README +install -d -m 0755 %{buildroot}%{libdir} +install -d -m 0775 %{buildroot}%{logdir} +/bin/touch %{buildroot}%{logdir}/catalina.out +install -d -m 0775 %{buildroot}%{_localstatedir}/lib/tomcats +/bin/echo "%{name}-%{major_version}.%{minor_version}.%{micro_version} RPM installed" >> %{buildroot}%{logdir}/catalina.out +install -d -m 0775 %{buildroot}%{homedir} +install -d -m 0775 %{buildroot}%{tempdir} +install -d -m 0775 %{buildroot}%{workdir} +install -d -m 0755 %{buildroot}%{_unitdir} +install -d -m 0755 %{buildroot}%{_libexecdir}/%{name} +install -d -m 0755 %{buildroot}%{_localstatedir}/adm/fillup-templates # move things into place # First copy supporting libs to tomcat lib @@ -379,6 +382,11 @@ pushd output/embed cp -a *.jar %{buildroot}%{libdir} popd +# tomcat extras +pushd output/extras + cp -a *.jar %{buildroot}%{libdir} +popd + # bnc#847505: add missing tomcat-dbcp.jar cp -a commons/dbcp/dbcp-tomcat5/commons-dbcp-tomcat5.jar %{buildroot}/%{libdir}/tomcat-dbcp.jar @@ -386,42 +394,42 @@ cp -a commons/dbcp/dbcp-tomcat5/commons-dbcp-tomcat5.jar %{buildroot}/%{libdir}/ cp -a output/dist/webapps/docs/api/* %{buildroot}%{_javadocdir}/%{name} sed -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ - -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ - -e "s|\@\@\@JAVAHOME\@\@\@|%{_sysconfdir}/alternatives/jre|g" \ - -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE1} \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE1} \ > %{buildroot}%{confdir}/%{name}.conf - -%if %{with_systemd} +sed -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE3} \ + > %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} +install -m 0644 %{SOURCE4} \ + %{buildroot}%{_sbindir}/%{name} install -m 0644 %{SOURCE11} \ %{buildroot}%{_unitdir}/%{name}.service -install -m 0644 %{SOURCE17} \ - %{buildroot}%{_sbindir}/%{name}-sysd install -m 0644 %{SOURCE20} \ %{buildroot}%{_unitdir}/%{name}-jsvc.service -(cd %{buildroot}%{_sbindir}; ln -s %{name}-sysd %{name}-jsvc-sysd) -ln -sf %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name} -ln -sf %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name}-jsvc -%else -install -m 0755 %{SOURCE2} \ - %{buildroot}%{_initddir}/%{name} -ln -sf %{_initddir}/%{name} %{buildroot}/%{_sbindir}/rc%{name} -%endif - -install -m 0755 %{SOURCE4} \ - %{buildroot}%{_sbindir}/d%{name} -%if ! %{with_systemd} sed -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \ > %{buildroot}%{_sysconfdir}/logrotate.d/%{name} -%endif sed -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ - -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ - -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \ > %{buildroot}%{_bindir}/%{name}-digest sed -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ - -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ - -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE7} \ + -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE7} \ > %{buildroot}%{_bindir}/%{name}-tool-wrapper +install -m 0644 %{SOURCE21} \ + %{buildroot}%{_libexecdir}/%{name}/functions +install -m 0755 %{SOURCE30} \ + %{buildroot}%{_libexecdir}/%{name}/preamble +install -m 0755 %{SOURCE31} \ + %{buildroot}%{_libexecdir}/%{name}/server +install -m 0644 %{SOURCE32} \ + %{buildroot}%{_unitdir}/%{name}@.service + +ln -sf %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name} +ln -sf %{_sbindir}/service %{buildroot}/%{_sbindir}/rc%{name}-jsvc + # create jsp and servlet and el API symlinks pushd %{buildroot}%{_javadir} mv %{name}/jsp-api.jar %{name}-jsp-%{jspspec}-api.jar @@ -568,7 +576,7 @@ install -d -m 0755 %{buildroot}/%{_sysconfdir}/ant.d/ echo "%{name}/catalina-ant" > %{buildroot}/%{_sysconfdir}/ant.d/catalina-ant %fdupes %{buildroot} /srv/%{name} #bnc#565901 -ln -sf %{_sbindir}/d%{name} %{buildroot}/%{bindir}/catalina.sh +ln -sf %{_sbindir}/%{name} %{buildroot}/%{bindir}/catalina.sh # Install update-alternatives content mkdir -p %{buildroot}%{_sysconfdir}/alternatives @@ -581,38 +589,33 @@ ln -sf %{_sysconfdir}/alternatives/jsp.jar %{buildroot}%{_javadir}/jsp.jar touch %{buildroot}%{_sysconfdir}/alternatives/servlet.jar ln -sf %{_sysconfdir}/alternatives/servlet.jar %{buildroot}%{_javadir}/servlet.jar +mkdir -p %{buildroot}%{_tmpfilesdir} +cat > %{buildroot}%{_tmpfilesdir}/%{name}.conf </dev/null || : %{_sbindir}/useradd -c "Apache Tomcat" -g tomcat \ -s /bin/sh -r -d %{homedir} tomcat 2>/dev/null || : -%if %{with_systemd} %service_add_pre %{name}.service -%endif +%service_add_pre %{name}@.service %post -%if %{with_systemd} %service_add_post %{name}.service -%else -%{fillup_only %{name}} -%endif +%service_add_post %{name}@.service +%fillup_only +%{_bindir}/systemd-tmpfiles --create >/dev/null 2>&1 || : %preun -%if %{with_systemd} %service_del_preun %{name}.service -%else -%stop_on_removal %{name} -%endif +%service_del_preun %{name}@.service %postun -%if %{with_systemd} %service_del_postun %{name}.service -%else -%insserv_cleanup -%restart_on_update %{name} -%endif +%service_del_postun %{name}@.service -%if %{with_systemd} %pre jsvc %service_add_pre %{name}-jsvc.service @@ -624,7 +627,6 @@ ln -sf %{_sysconfdir}/alternatives/servlet.jar %{buildroot}%{_javadir}/servlet.j %postun jsvc %service_del_postun %{name}-jsvc.service -%endif %post el-3_0-api update-alternatives --install %{_javadir}/el_api.jar el_api %{_javadir}/%{name}-el-%{elspec}-api.jar 20300 @@ -665,34 +667,46 @@ rm -f \ %{libdir}/\[ecj\].jar >/dev/null 2>&1 %files -%defattr(-,root,root) +%defattr(0664,root,tomcat,0755) %doc {LICENSE,NOTICE,RELEASE*} %attr(0755,root,root) %{_bindir}/%{name}-digest %attr(0755,root,root) %{_bindir}/%{name}-tool-wrapper -%attr(0755,root,root) %{_sbindir}/d%{name} -%if %{with_systemd} +%attr(0755,root,root) %{_sbindir}/%{name} %attr(0644,root,root) %{_unitdir}/%{name}.service -%attr(0755,root,root) %{_sbindir}/%{name}-sysd -%else -%attr(0755,root,root) %{_initddir}/%{name} -%endif +%{_sbindir}/rc%{name} +%attr(0644,root,root) %{_unitdir}/%{name}@.service +%attr(0755,root,root) %dir %{_libexecdir}/%{name} +%attr(0755,root,root) %dir %{_localstatedir}/lib/tomcats +%attr(0755,root,root) %{_libexecdir}/%{name}/functions +%attr(0755,root,root) %{_libexecdir}/%{name}/preamble +%attr(0755,root,root) %{_libexecdir}/%{name}/server #bnc#565901 %{bindir}/catalina.sh -%if ! %{with_systemd} %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%endif -# bnc#726307 -%attr(0775,root,tomcat) %dir %{confdir} +%attr(0755,root,tomcat) %dir %{basedir} +%attr(0755,root,tomcat) %dir %{confdir} +%defattr(0664,tomcat,root,0770) +%attr(0775,root,tomcat) %dir %{appdir} +%attr(0770,tomcat,root) %{logdir} +%attr(0660,tomcat,tomcat) %{logdir}/catalina.out +%attr(0770,root,tomcat) %{cachedir} +%defattr(0664,root,tomcat,0770) +%attr(0770,root,tomcat) %dir %{tempdir} +%attr(0770,root,tomcat) %dir %{workdir} +# tomcat group writtable dirs - bnc#625415 +%defattr(0664,root,tomcat,0775) %{confdir}/Catalina -%config(noreplace) %{confdir}/%{name}.conf -%config(noreplace) %{confdir}/*.policy -%config(noreplace) %{confdir}/*.properties -%config(noreplace) %{confdir}/context.xml -%config(noreplace) %{confdir}/server.xml -%config(noreplace) %{confdir}/web.xml -%verify (not user group) %attr(0660,tomcat,tomcat) %config(noreplace) %{confdir}/tomcat-users.xml +%attr(0775,root,tomcat) %dir %{confdir}/conf.d +%attr(0664,tomcat,tomcat) %{confdir}/conf.d/README +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/%{name}.conf +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/*.policy +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/*.properties +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/context.xml +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/server.xml +%attr(0660,tomcat,tomcat) %config(noreplace) %{confdir}/tomcat-users.xml +%attr(0664,tomcat,tomcat) %config(noreplace) %{confdir}/web.xml %dir %{homedir} -%dir %{bindir} +%{_tmpfilesdir}/%{name}.conf %{bindir}/bootstrap.jar %{bindir}/catalina-tasks.xml %{homedir}/lib @@ -701,14 +715,7 @@ rm -f \ %{homedir}/work %{homedir}/logs %{homedir}/conf -%dir /srv/%{name} -%{_sbindir}/rc%{name} -%{confdir}/Catalina -# tomcat group writtable dirs - bnc#625415 -%defattr(0664,root,tomcat,0775) -%verify (not user group) %dir %{appdir} -%verify (not user group) %{logdir} -%verify (not user group) %{cachedir} +%{_localstatedir}/adm/fillup-templates/sysconfig.%{name} %files admin-webapps %defattr(0644,root,root,0755) @@ -795,12 +802,9 @@ rm -f \ %{appdir}/examples %{appdir}/sample -%if %{with_systemd} %files jsvc %defattr(755,root,root,0755) -%{_sbindir}/%{name}-jsvc-sysd -%{_sbindir}/rc%{name}-jsvc %attr(0644,root,root) %{_unitdir}/%{name}-jsvc.service -%endif +%{_sbindir}/rc%{name}-jsvc %changelog