diff --git a/.tomcat.metadata b/.tomcat.metadata
new file mode 100644
index 0000000..3f0cce6
--- /dev/null
+++ b/.tomcat.metadata
@@ -0,0 +1 @@
+df0facd5b89243fbda74c91861c29c4039b9cd7d SOURCES/apache-tomcat-7.0.40-src.tar.gz
diff --git a/README.md b/README.md
deleted file mode 100644
index 0e7897f..0000000
--- a/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-The master branch has no content
- 
-Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6
- 
-If you find this file in a distro specific branch, it means that no content has been checked in yet
diff --git a/SOURCES/el-api-OSGi-MANIFEST.MF b/SOURCES/el-api-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..69b797f
--- /dev/null
+++ b/SOURCES/el-api-OSGi-MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Export-Package: javax.el;version="2.2.0"
+Bundle-Vendor: %bundleProvider
+Bundle-ClassPath: .
+Bundle-Version: 2.2.0
+Bundle-Name: %bundleName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: javax.el
+DynamicImport-Package: org.apache.el
+Bundle-RequiredExecutionEnvironment: J2SE-1.4,CDC-1.0/Foundation-1.0,J
+ 2SE-1.3
+
diff --git a/SOURCES/jasper-OSGi-MANIFEST.MF b/SOURCES/jasper-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..9a3d98a
--- /dev/null
+++ b/SOURCES/jasper-OSGi-MANIFEST.MF
@@ -0,0 +1,40 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.jasper;version="7.0.21",org.apache.jasper.c
+ ompiler;version="7.0.21",org.apache.jasper.compiler.tagplugin;version
+ ="7.0.21",org.apache.jasper.resources;version="7.0.21",org.apache.jas
+ per.runtime;version="7.0.21",org.apache.jasper.security;version="7.0.
+ 19",org.apache.jasper.servlet;version="7.0.21",org.apache.jasper.tagp
+ lugins.jstl;version="7.0.21",org.apache.jasper.tagplugins.jstl.core;v
+ ersion="7.0.21",org.apache.jasper.util;version="7.0.21",org.apache.ja
+ sper.xmlparser;version="7.0.21"
+Bundle-Vendor: %bundleProvider
+Bundle-ClassPath: .
+Bundle-Version: 7.0.21
+Bundle-Localization: plugin
+Bundle-Name: %bundleName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.jasper
+Import-Package: javax.servlet;version="[2.4.0, 3.0.0]",javax.servlet.h
+ ttp;version="[2.4.0, 3.0.0]",javax.servlet.jsp;version="[2.0.0, 2.2.0
+ ]",javax.servlet.jsp.el;version="[2.0.0, 2.2.0]",javax.servlet.jsp.re
+ sources;version="[2.0.0, 2.2.0]",javax.servlet.jsp.tagext;version="[2
+ .0.0, 2.2.0]",javax.servlet.resources;version="[2.4.0, 3.0.0]",javax.
+ xml.parsers,org.apache.commons.el;version="[1.0.0,2.0.0)",org.apache.
+ commons.logging;version="[1.0.0,2.0.0)",org.apache.tools.ant;resoluti
+ on:=optional,org.apache.tools.ant.taskdefs;resolution:=optional,org.a
+ pache.tools.ant.types;resolution:=optional,org.apache.tools.ant.util;
+ resolution:=optional,org.w3c.dom,org.xml.sax,org.xml.sax.ext,org.xml.
+ sax.helpers,org.apache.tomcat;version="7.0.21",org.apache.juli.loggin
+ g;version="7.0.21",javax.el;version="2.2.0",org.eclipse.jdt.internal.
+ compiler,org.eclipse.jdt.internal.compiler.parser,org.eclipse.jdt.int
+ ernal.compiler.parser.diagnose,org.eclipse.jdt.internal.compiler.flow
+ ,org.eclipse.jdt.internal.compiler.util,org.eclipse.jdt.internal.comp
+ iler.impl,org.eclipse.jdt.internal.compiler.lookup,org.eclipse.jdt.in
+ ternal.compiler.codegen,org.eclipse.jdt.internal.compiler.batch,org.e
+ clipse.jdt.internal.compiler.classfmt,org.eclipse.jdt.internal.compil
+ er.ast,org.eclipse.jdt.internal.compiler.problem,org.eclipse.jdt.inte
+ rnal.compiler.env,org.eclipse.jdt.internal.core.util,org.eclipse.jdt.
+ core.compiler
+Bundle-RequiredExecutionEnvironment: J2SE-1.4,CDC-1.0/Foundation-1.0,J
+ 2SE-1.3
+
diff --git a/SOURCES/jasper-el-OSGi-MANIFEST.MF b/SOURCES/jasper-el-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..fd2879f
--- /dev/null
+++ b/SOURCES/jasper-el-OSGi-MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.el;version="7.0.21"
+Bundle-Vendor: %bundleProvider
+Bundle-ClassPath: .
+Bundle-Version: 7.0.21
+Bundle-Name: %bundleName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Import-Package: javax.el;version="2.2"
+Bundle-SymbolicName: org.apache.el
+Bundle-RequiredExecutionEnvironment: J2SE-1.4,CDC-1.0/Foundation-1.0,J
+ 2SE-1.3
+
diff --git a/SOURCES/jsp-api-OSGi-MANIFEST.MF b/SOURCES/jsp-api-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..62bc00d
--- /dev/null
+++ b/SOURCES/jsp-api-OSGi-MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-Vendor: %bundleProvider
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: CDC-1.0/Foundation-1.0,J2SE-1.3
+Bundle-Name: %bundleName
+Bundle-SymbolicName: javax.servlet.jsp
+Export-Package: javax.servlet.jsp; version=2.2,javax.servlet.jsp.el; v
+ ersion=2.2,javax.servlet.jsp.resources; version=2.2,javax.servlet.jsp
+ .tagext; version=2.2
+Bundle-Version: 2.2.0.v200806031607
+Bundle-ManifestVersion: 2
+Import-Package: javax.servlet; version=3.0,javax.servlet.http; version
+ =3.0,javax.servlet.resources; version=3.0,javax.el;version="2.2.0"
diff --git a/SOURCES/servlet-api-OSGi-MANIFEST.MF b/SOURCES/servlet-api-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..3938935
--- /dev/null
+++ b/SOURCES/servlet-api-OSGi-MANIFEST.MF
@@ -0,0 +1,17 @@
+Manifest-Version: 1.0
+Bundle-RequiredExecutionEnvironment: CDC-1.1/Foundation-1.1,J2SE-1.4
+Bundle-SymbolicName: javax.servlet
+Bundle-ManifestVersion: 2
+Bundle-Name: %bundleName
+Bundle-Localization: plugin
+Bundle-Version: 3.0.0
+Bundle-Vendor: %bundleProvider
+Export-Package: javax.servlet;version="3.0",
+ javax.servlet;version="2.6",
+ javax.servlet.http;version="3.0",
+ javax.servlet.http;version="2.6",
+ javax.servlet.annotation;version="2.6",
+ javax.servlet.descriptor;version="3.0",
+ javax.servlet.descriptor;version="2.6",
+ javax.servlet.resources;version="3.0",
+ javax.servlet.resources;version="2.6"
diff --git a/SOURCES/tomcat-7.0-bootstrap-MANIFEST.MF.patch b/SOURCES/tomcat-7.0-bootstrap-MANIFEST.MF.patch
new file mode 100644
index 0000000..e2ee93e
--- /dev/null
+++ b/SOURCES/tomcat-7.0-bootstrap-MANIFEST.MF.patch
@@ -0,0 +1,9 @@
+--- 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
+-Class-Path: commons-daemon.jar
+ Specification-Title: Apache Tomcat Bootstrap
+ Specification-Version: @VERSION_MAJOR_MINOR@
+ Specification-Vendor: Apache Software Foundation
diff --git a/SOURCES/tomcat-7.0-digest.script b/SOURCES/tomcat-7.0-digest.script
new file mode 100644
index 0000000..2ff7e64
--- /dev/null
+++ b/SOURCES/tomcat-7.0-digest.script
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# tomcat-digest script
+# JPackage Project <http://www.jpackage.org/>
+
+# Source functions library
+if [ -f /usr/share/java-utils/java-functions ] ; then
+  . /usr/share/java-utils/java-functions
+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"
+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/SOURCES/tomcat-7.0-jsvc.service b/SOURCES/tomcat-7.0-jsvc.service
new file mode 100644
index 0000000..3792cef
--- /dev/null
+++ b/SOURCES/tomcat-7.0-jsvc.service
@@ -0,0 +1,19 @@
+# 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=forking
+ExecStart=/usr/sbin/tomcat-jsvc-sysd start
+ExecStop=/usr/sbin/tomcat-jsvc-sysd stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/SOURCES/tomcat-7.0-jsvc.wrapper b/SOURCES/tomcat-7.0-jsvc.wrapper
new file mode 100644
index 0000000..56fcc09
--- /dev/null
+++ b/SOURCES/tomcat-7.0-jsvc.wrapper
@@ -0,0 +1,83 @@
+#!/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)"
+
+# if jsvc installed and USE_JSVC=true
+# then use jsvc instead of calling java directly
+if [ -x /usr/bin/jsvc ]; then
+  JAVACMD="/usr/bin/jsvc -nodetach -user ${TOMCAT_USER} -outfile ${CATALINA_BASE}/logs/catalina.out -errfile ${CATALINA_BASE}/logs/catalina.out"
+  if [ "$1" = "stop" ]; then
+    JAVACMD="${JAVACMD} -stop"
+  fi
+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
+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
+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}"
+  exit 1
+fi
diff --git a/SOURCES/tomcat-7.0-log4j.properties b/SOURCES/tomcat-7.0-log4j.properties
new file mode 100644
index 0000000..1252a64
--- /dev/null
+++ b/SOURCES/tomcat-7.0-log4j.properties
@@ -0,0 +1,11 @@
+log4j.rootLogger=debug, R 
+log4j.appender.R=org.apache.log4j.RollingFileAppender 
+log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
+log4j.appender.R.MaxFileSize=10MB 
+log4j.appender.R.MaxBackupIndex=10 
+log4j.appender.R.layout=org.apache.log4j.PatternLayout 
+log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n 
+log4j.logger.org.apache.catalina=DEBUG, R
+log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
+log4j.logger.org.apache.catalina.core=DEBUG, R
+log4j.logger.org.apache.catalina.session=DEBUG, R
diff --git a/SOURCES/tomcat-7.0-tomcat-jsvc-sysd b/SOURCES/tomcat-7.0-tomcat-jsvc-sysd
new file mode 100644
index 0000000..9134d5b
--- /dev/null
+++ b/SOURCES/tomcat-7.0-tomcat-jsvc-sysd
@@ -0,0 +1,113 @@
+#!/bin/bash
+#
+# This script provides systemd activation of the tomcat service
+# To create clones of this service:
+# 1) SERVICE_NAME must be defined before calling this script
+# 2) Create /etc/sysconfig/${SERVICE_NAME} from /etc/sysconfig/tomcat
+# to override tomcat defaults
+
+# SERVICE_NAME is a required value only if the service name is 
+# different from 'tomcat'
+#
+NAME="${SERVICE_NAME:-tomcat}"
+
+#I'll bet this isn't required. 
+# unset ISBOOT
+
+# For SELinux we need to use 'runuser' not 'su'
+if [ -x "/sbin/runuser" ]; then
+    SU="/sbin/runuser -s /bin/sh"
+else
+    SU="/bin/su -s /bin/sh"
+fi
+
+# Path to the tomcat launch script
+TOMCAT_SCRIPT="/usr/sbin/tomcat-jsvc"
+        
+# Define the tomcat username
+TOMCAT_USER="${TOMCAT_USER:-tomcat}"
+
+# TOMCAT_LOG should be different from catalina.out.
+# Usually the below config is all that is necessary
+TOMCAT_LOG=/var/log/${NAME}/${NAME}-sysd.log
+
+# Get the tomcat config (use this for environment specific settings)
+TOMCAT_CFG="/etc/tomcat/tomcat.conf"
+if [ -r "$TOMCAT_CFG" ]; then
+    . $TOMCAT_CFG
+fi
+
+# Get instance specific config file
+if [ -r "/etc/sysconfig/${NAME}" ]; then
+    . /etc/sysconfig/${NAME}
+fi
+
+function parseOptions() {
+    options=""
+    options="$options $(
+                 awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }' \
+                 $TOMCAT_CFG
+             )"
+    if [ -r "/etc/sysconfig/${NAME}" ]; then
+        options="$options $(
+                     awk '!/^#/ && !/^$/ { ORS=" ";
+                                           print "export ", $0, ";" }' \
+                     /etc/sysconfig/${NAME}
+                 )"
+    fi
+    TOMCAT_SCRIPT="$options ${TOMCAT_SCRIPT}"
+}
+
+# See how we were called.
+function start() {
+    # fix permissions on the log and pid files
+    export CATALINA_PID="/var/run/${NAME}.pid"
+    touch $CATALINA_PID 2>&1 
+    if [ "$?" -eq "0" ]; then
+      chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
+    fi
+
+    touch $TOMCAT_LOG 2>&1 
+    if [ "$?" -eq "0" ]; then
+      chown ${TOMCAT_USER}:${TOMCAT_USER} $TOMCAT_LOG
+    fi
+
+    # if jsvc installed and USE_JSVC=true
+    # then start as root and use jsvc to drop privileges
+    if [ -x /usr/bin/jsvc ]; then
+      TOMCAT_USER="root"
+    fi
+
+    parseOptions  
+    if [ "$SECURITY_MANAGER" = "true" ]; then
+       $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start-security" >> $TOMCAT_LOG 2>&1 
+    else
+       $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> $TOMCAT_LOG 2>&1
+    fi
+}
+
+function stop() {
+    # if jsvc installed and USE_JSVC=true
+    # then start as root and use jsvc to drop privileges
+    if [ -x /usr/bin/jsvc ]; then
+      TOMCAT_USER="root"
+    fi
+
+    parseOptions  
+    $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> $TOMCAT_LOG 2>&1
+}
+
+# See how we were called.
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        stop
+        start
+        ;;
+esac
+
diff --git a/SOURCES/tomcat-7.0-tomcat-sysd b/SOURCES/tomcat-7.0-tomcat-sysd
new file mode 100644
index 0000000..192329c
--- /dev/null
+++ b/SOURCES/tomcat-7.0-tomcat-sysd
@@ -0,0 +1,79 @@
+#!/bin/bash
+#
+# This script provides systemd activation of the tomcat service
+# To create clones of this service:
+# 1) SERVICE_NAME must be defined before calling this script
+# 2) Create /etc/sysconfig/${SERVICE_NAME} from /etc/sysconfig/tomcat
+# to override tomcat defaults
+
+# SERVICE_NAME is a required value only if the service name is 
+# different from 'tomcat'
+#
+export NAME="${SERVICE_NAME:-tomcat}"
+
+#I'll bet this isn't required. 
+# unset ISBOOT
+
+# For SELinux we need to use 'runuser' not 'su'
+if [ -x "/sbin/runuser" ]; then
+    SU="/sbin/runuser -s /bin/sh"
+else
+    SU="/bin/su -s /bin/sh"
+fi
+
+# Path to the tomcat launch script
+TOMCAT_SCRIPT="/usr/sbin/tomcat"
+        
+# Define the tomcat username
+TOMCAT_USER="${TOMCAT_USER:-tomcat}"
+
+# TOMCAT_LOG should be different from catalina.out.
+# Usually the below config is all that is necessary
+TOMCAT_LOG=/var/log/${NAME}/${NAME}-sysd.log
+
+# Get the tomcat config (use this for environment specific settings)
+TOMCAT_CFG="/etc/tomcat/tomcat.conf"
+if [ -r "$TOMCAT_CFG" ]; then
+    . $TOMCAT_CFG
+fi
+
+# Get instance specific config file
+if [ -r "/etc/sysconfig/${NAME}" ]; then
+    . /etc/sysconfig/${NAME}
+fi
+
+# See how we were called.
+function start() {
+    # fix permissions on the log and pid files
+    export CATALINA_PID="/var/run/${NAME}.pid"
+
+    touch $TOMCAT_LOG 2>&1 
+    if [ "$?" -eq "0" ]; then
+      chown ${TOMCAT_USER}:${TOMCAT_USER} $TOMCAT_LOG
+    fi
+
+    if [ "$SECURITY_MANAGER" = "true" ]; then
+       ${TOMCAT_SCRIPT} start-security >> $TOMCAT_LOG 2>&1 
+    else
+       ${TOMCAT_SCRIPT} start #>> $TOMCAT_LOG 2>&1
+    fi
+}
+
+function stop() {
+    ${TOMCAT_SCRIPT} stop >> $TOMCAT_LOG 2>&1
+}
+
+# See how we were called.
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        stop
+        start
+        ;;
+esac
+
diff --git a/SOURCES/tomcat-7.0-tomcat-users-webapp.patch b/SOURCES/tomcat-7.0-tomcat-users-webapp.patch
new file mode 100644
index 0000000..9f05e37
--- /dev/null
+++ b/SOURCES/tomcat-7.0-tomcat-users-webapp.patch
@@ -0,0 +1,17 @@
+--- 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 @@
+   <user username="both" password="tomcat" roles="tomcat,role1"/>
+   <user username="role1" password="tomcat" roles="role1"/>
+ -->
++
++<!-- <role rolename="admin"/> -->
++<!-- <role rolename="admin-gui"/> -->
++<!-- <role rolename="admin-script"/> -->
++<!-- <role rolename="manager"/> -->
++<!-- <role rolename="manager-gui"/> -->
++<!-- <role rolename="manager-script"/> -->
++<!-- <role rolename="manager-jmx"/> -->
++<!-- <role rolename="manager-status"/> -->
++<!-- <user name="admin" password="adminadmin" roles="admin,manager,admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status" /> -->
+ </tomcat-users>
diff --git a/SOURCES/tomcat-7.0-tool-wrapper.script b/SOURCES/tomcat-7.0-tool-wrapper.script
new file mode 100644
index 0000000..2640ce2
--- /dev/null
+++ b/SOURCES/tomcat-7.0-tool-wrapper.script
@@ -0,0 +1,45 @@
+#!/bin/sh
+#
+# tomcat-digest script
+# JPackage Project <http://www.jpackage.org/>
+
+# Source functions library
+if [ -f /usr/share/java-utils/java-functions ] ; then
+  . /usr/share/java-utils/java-functions
+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"
+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/SOURCES/tomcat-7.0.conf b/SOURCES/tomcat-7.0.conf
new file mode 100644
index 0000000..a500479
--- /dev/null
+++ b/SOURCES/tomcat-7.0.conf
@@ -0,0 +1,50 @@
+# System-wide configuration file for tomcat services
+# This will be sourced by tomcat and any secondary service
+# Values will be overridden by service-specific configuration
+# files in /etc/sysconfig
+#
+# Use this one to change default values for all services
+# Change the service specific ones to affect only one service
+# (see, for instance, /etc/sysconfig/tomcat)
+#
+
+# Where your java installation lives
+JAVA_HOME="/usr/lib/jvm/jre"
+
+# Where your tomcat installation lives
+CATALINA_BASE="@@@TCHOME@@@"
+CATALINA_HOME="@@@TCHOME@@@"
+JASPER_HOME="@@@TCHOME@@@"
+CATALINA_TMPDIR="@@@TCTEMP@@@"
+
+# 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
+TOMCAT_USER="tomcat"
+
+# 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
+CATALINA_PID="/var/run/tomcat.pid"
+
+# Connector port is 8080 for this tomcat instance
+#CONNECTOR_PORT="8080"
+
+# If you wish to further customize your tomcat environment,
+# put your own definitions here
+# (i.e. LD_LIBRARY_PATH for some jdbc drivers)
+
diff --git a/SOURCES/tomcat-7.0.init b/SOURCES/tomcat-7.0.init
new file mode 100644
index 0000000..f5269f5
--- /dev/null
+++ b/SOURCES/tomcat-7.0.init
@@ -0,0 +1,319 @@
+#!/bin/bash
+#
+# tomcat      This shell script takes care of starting and stopping Tomcat
+#
+# chkconfig: - 80 20
+#
+### BEGIN INIT INFO
+# Provides: tomcat
+# Required-Start: $network $syslog
+# Required-Stop: $network $syslog
+# Default-Start:
+# Default-Stop:
+# Description: Release implementation for Servlet 3.0 and JSP 2.2
+# Short-Description: start and stop tomcat
+### END INIT INFO
+#
+# - originally written by Henri Gomez, Keith Irwin, and Nicolas Mailhot
+# - heavily rewritten by Deepak Bhole and Jason Corley
+#
+
+## Source function library.
+#. /etc/rc.d/init.d/functions
+# Source LSB function library.
+if [ -r /lib/lsb/init-functions ]; then
+    . /lib/lsb/init-functions
+else
+    exit 1
+fi
+
+DISTRIB_ID=`lsb_release -i -s 2>/dev/null`
+
+NAME="$(basename $0)"
+unset ISBOOT
+if [ "${NAME:0:1}" = "S" -o "${NAME:0:1}" = "K" ]; then
+    NAME="${NAME:3}"
+    ISBOOT="1"
+fi
+
+# For SELinux we need to use 'runuser' not 'su'
+if [ -x "/sbin/runuser" ]; then
+    SU="/sbin/runuser -s /bin/sh"
+else
+    SU="/bin/su -s /bin/sh"
+fi
+
+# Get the tomcat config (use this for environment specific settings)
+TOMCAT_CFG="/etc/tomcat/tomcat.conf"
+if [ -r "$TOMCAT_CFG" ]; then
+    . $TOMCAT_CFG
+fi
+
+# Get instance specific config file
+if [ -r "/etc/sysconfig/${NAME}" ]; then
+    . /etc/sysconfig/${NAME}
+fi
+
+# Define which connector port to use
+CONNECTOR_PORT="${CONNECTOR_PORT:-8080}"
+
+# Path to the tomcat launch script
+TOMCAT_SCRIPT="/usr/sbin/tomcat"
+
+# Tomcat program name
+TOMCAT_PROG="${NAME}"
+        
+# Define the tomcat username
+TOMCAT_USER="${TOMCAT_USER:-tomcat}"
+
+# Define the tomcat log file
+TOMCAT_LOG="${TOMCAT_LOG:-${CATALINA_HOME}/logs/${NAME}-initd.log}"
+
+
+RETVAL="0"
+
+# Look for open ports, as the function name might imply
+function findFreePorts() {
+    local isSet1="false"
+    local isSet2="false"
+    local isSet3="false"
+    local lower="8000"
+    randomPort1="0"
+    randomPort2="0"
+    randomPort3="0"
+    local -a listeners="( $(
+                        netstat -ntl | \
+                        awk '/^tcp/ {gsub("(.)*:", "", $4); print $4}'
+                    ) )"
+    while [ "$isSet1" = "false" ] || \
+          [ "$isSet2" = "false" ] || \
+          [ "$isSet3" = "false" ]; do
+        let port="${lower}+${RANDOM:0:4}"
+        if [ -z `expr " ${listeners[*]} " : ".*\( $port \).*"` ]; then
+            if [ "$isSet1" = "false" ]; then
+                export randomPort1="$port"
+                isSet1="true"
+            elif [ "$isSet2" = "false" ]; then
+                export randomPort2="$port"
+                isSet2="true"
+            elif [ "$isSet3" = "false" ]; then
+                export randomPort3="$port"
+                isSet3="true"
+            fi
+        fi
+    done
+}
+
+function makeHomeDir() {
+    if [ ! -d "$CATALINA_HOME" ]; then
+        echo "$CATALINA_HOME does not exist, creating"
+        if [ ! -d "/usr/share/${NAME}" ]; then
+            mkdir /usr/share/${NAME}
+            cp -pLR /usr/share/tomcat/* /usr/share/${NAME}
+        fi
+        mkdir -p /var/log/${NAME} \
+                 /var/cache/${NAME} \
+                 /var/tmp/${NAME}
+        ln -fs /var/cache/${NAME} ${CATALINA_HOME}/work
+        ln -fs /var/tmp/${NAME} ${CATALINA_HOME}/temp
+        cp -pLR /usr/share/${NAME}/bin $CATALINA_HOME
+        cp -pLR /usr/share/${NAME}/conf $CATALINA_HOME
+        ln -fs /usr/share/java/tomcat ${CATALINA_HOME}/lib
+        ln -fs /usr/share/tomcat/webapps ${CATALINA_HOME}/webapps
+        chown ${TOMCAT_USER}:${TOMCAT_USER} /var/log/${NAME}
+    fi
+}
+
+function parseOptions() {
+    options=""
+    options="$options $(
+                 awk '!/^#/ && !/^$/ { ORS=" "; print "export ", $0, ";" }' \
+                 $TOMCAT_CFG
+             )"
+    if [ -r "/etc/sysconfig/${NAME}" ]; then
+        options="$options $(
+                     awk '!/^#/ && !/^$/ { ORS=" "; 
+                                           print "export ", $0, ";" }' \
+                     /etc/sysconfig/${NAME}
+                 )"
+    fi
+    TOMCAT_SCRIPT="$options ${TOMCAT_SCRIPT}"
+}
+
+# See how we were called.
+function start() {
+  
+   echo -n "Starting ${TOMCAT_PROG}: "
+   if [ "$RETVAL" != "0" ]; then 
+     log_failure_msg
+     return
+   fi
+   if [ -f "/var/lock/subsys/${NAME}" ]; then
+        if [ -s "/var/run/${NAME}.pid" ]; then
+            read kpid < /var/run/${NAME}.pid
+#           if checkpid $kpid 2>&1; then
+            if [ -d "/proc/${kpid}" ]; then
+                log_success_msg
+                if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then
+                    echo
+                fi
+                return 0
+            fi
+        fi
+    fi
+    # fix permissions on the log and pid files
+    export CATALINA_PID="/var/run/${NAME}.pid"
+    touch $CATALINA_PID 2>&1 || RETVAL="4"
+    if [ "$RETVAL" -eq "0" -a "$?" -eq "0" ]; then 
+      chown ${TOMCAT_USER}:${TOMCAT_USER} $CATALINA_PID
+    fi
+    [ "$RETVAL" -eq "0" ] && touch $TOMCAT_LOG 2>&1 || RETVAL="4" 
+    if [ "$RETVAL" -eq "0" -a "$?" -eq "0" ]; then
+      chown ${TOMCAT_USER}:${TOMCAT_USER} $TOMCAT_LOG
+    fi
+    if [ "$CATALINA_HOME" != "/usr/share/tomcat" -a "$RETVAL" -eq "0" ]; then
+        # Create a tomcat directory if it doesn't exist
+        makeHomeDir
+        # If CATALINA_HOME doesn't exist modify port number so that
+        # multiple instances don't interfere with each other
+        findFreePorts
+        sed -i -e "s/8005/${randomPort1}/g" -e "s/8080/${CONNECTOR_PORT}/g" \
+            -e "s/8009/${randomPort2}/g" -e "s/8443/${randomPort3}/g" \
+            ${CATALINA_HOME}/conf/server.xml
+    fi
+    parseOptions
+    if [ "$RETVAL" -eq "0" -a "$SECURITY_MANAGER" = "true" ]; then
+        $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start-security" \
+            >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
+    else
+       
+       [ "$RETVAL" -eq "0" ] && $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} start" >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
+    fi
+    if [ "$RETVAL" -eq "0" ]; then 
+        log_success_msg
+        touch /var/lock/subsys/${NAME}
+    else
+        log_failure_msg "Error code ${RETVAL}"
+    fi
+    if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then
+        echo
+    fi
+}
+
+function stop() {
+    echo -n "Stopping ${TOMCAT_PROG}: "
+    if [ -f "/var/lock/subsys/${NAME}" ]; then
+      parseOptions
+      if [ "$RETVAL" -eq "0" ]; then
+         touch /var/lock/subsys/${NAME} 2>&1 || RETVAL="4"
+         [ "$RETVAL" -eq "0" ] && $SU - $TOMCAT_USER -c "${TOMCAT_SCRIPT} stop" >> ${TOMCAT_LOG} 2>&1 || RETVAL="4"
+      fi
+      if [ "$RETVAL" -eq "0" ]; then
+         count="0"
+         if [ -s "/var/run/${NAME}.pid" ]; then
+            read kpid < /var/run/${NAME}.pid
+            until [ "$(ps --pid $kpid | grep -c $kpid)" -eq "0" ] || \
+                      [ "$count" -gt "$SHUTDOWN_WAIT" ]; do
+                    if [ "$SHUTDOWN_VERBOSE" = "true" ]; then
+                        echo "waiting for processes $kpid to exit"
+                    fi
+                    sleep 1
+                    let count="${count}+1"
+                done
+                if [ "$count" -gt "$SHUTDOWN_WAIT" ]; then
+                    if [ "$SHUTDOWN_VERBOSE" = "true" ]; then
+                        log_warning_msg "killing processes which did not stop after ${SHUTDOWN_WAIT} seconds"
+                    fi
+                    kill -9 $kpid
+                fi
+                log_success_msg
+            fi
+            rm -f /var/lock/subsys/${NAME} /var/run/${NAME}.pid
+        else
+            log_failure_msg
+            RETVAL="4"
+        fi
+    else
+        log_success_msg
+        RETVAL="0"
+    fi
+    if [ "$DISTRIB_ID" = "MandrivaLinux" ]; then
+        echo
+    fi
+}
+
+function usage()
+{
+   echo "Usage: $0 {start|stop|restart|condrestart|try-restart|reload|force-reload|status|version}"
+   RETVAL="2"
+}
+
+# See how we were called.
+RETVAL="0"
+case "$1" in
+    start)
+        start
+        ;;
+    stop)
+        stop
+        ;;
+    restart)
+        stop
+        start
+        ;;
+    condrestart|try-restart)
+        if [ -s "/var/run/${NAME}.pid" ]; then
+            stop
+            start
+        fi
+        ;;
+    reload)
+        RETVAL="3"
+        ;;
+    force-reload)
+        if [ -s "/var/run/${NAME}.pid" ]; then
+            stop
+            start
+        fi
+        ;;
+    status)
+        if [ -s "/var/run/${NAME}.pid" ]; then
+            read kpid < /var/run/${NAME}.pid
+            if [ -d "/proc/${kpid}" ]; then
+                log_success_msg "${NAME} (pid ${kpid}) is running..."
+                RETVAL="0"
+            else
+# The pid file exists but the process is not running
+               log_warning_msg "PID file exists, but process is not running"
+               RETVAL="1"
+            fi
+        else
+            pid="$(/usr/bin/pgrep -d , -u ${TOMCAT_USER} -G ${TOMCAT_USER} java)"
+            if [ -z "$pid" ]; then
+#               status ${NAME}
+#               RETVAL="$?"
+                log_success_msg "${NAME} is stopped"
+                RETVAL="3"
+            else
+                log_success_msg "${NAME} (pid $pid) is running..."
+                RETVAL="0"
+            fi
+        fi
+         if [ -f /var/lock/subsys/${NAME} ]; then
+            pid="$(/usr/bin/pgrep -d , -u ${TOMCAT_USER} -G ${TOMCAT_USER} java)"
+# The lockfile exists but the process is not running
+            if [ -z "$pid" ]; then
+               log_failure_msg "${NAME} lockfile exists but process is not running"
+               RETVAL="2"
+            fi
+         fi
+        ;;
+    version)
+        ${TOMCAT_SCRIPT} version
+        ;;
+    *)
+      usage
+      ;;
+esac
+
+exit $RETVAL
diff --git a/SOURCES/tomcat-7.0.logrotate b/SOURCES/tomcat-7.0.logrotate
new file mode 100644
index 0000000..a87b4c0
--- /dev/null
+++ b/SOURCES/tomcat-7.0.logrotate
@@ -0,0 +1,8 @@
+@@@TCLOG@@@/catalina.out {
+    copytruncate
+    weekly
+    rotate 52
+    compress
+    missingok
+    create 0644 tomcat tomcat
+}
diff --git a/SOURCES/tomcat-7.0.service b/SOURCES/tomcat-7.0.service
new file mode 100644
index 0000000..e2ab30c
--- /dev/null
+++ b/SOURCES/tomcat-7.0.service
@@ -0,0 +1,23 @@
+# 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
+After=syslog.target network.target
+
+[Service]
+Type=forking
+ExecStart=/usr/sbin/tomcat-sysd start
+ExecStop=/usr/sbin/tomcat-sysd stop
+SuccessExitStatus=143
+User=tomcat
+Group=tomcat
+
+
+[Install]
+WantedBy=multi-user.target
diff --git a/SOURCES/tomcat-7.0.sysconfig b/SOURCES/tomcat-7.0.sysconfig
new file mode 100644
index 0000000..c1337e8
--- /dev/null
+++ b/SOURCES/tomcat-7.0.sysconfig
@@ -0,0 +1,56 @@
+# Service-specific configuration file for tomcat. This will be sourced by
+# the SysV init script after the global configuration file
+# /etc/tomcat/tomcat.conf, thus allowing values to be overridden in
+# a per-service manner.
+#
+# NEVER change the init script itself. To change values for all services make
+# your changes in /etc/tomcat/tomcat.conf
+#
+# To change values for a specific service make your edits here.
+# To create a new service create a link from /etc/init.d/<your new service> to
+# /etc/init.d/tomcat (do not copy the init script) and make a copy of the
+# /etc/sysconfig/tomcat file to /etc/sysconfig/<your new service> and change
+# the property values so the two services won't conflict. Register the new
+# service in the system as usual (see chkconfig and similars).
+#
+
+# Where your java installation lives
+#JAVA_HOME="/usr/lib/jvm/java"
+
+# Where your tomcat installation lives
+#CATALINA_BASE="@@@TCHOME@@@"
+#CATALINA_HOME="@@@TCHOME@@@"
+#JASPER_HOME="@@@TCHOME@@@"
+#CATALINA_TMPDIR="@@@TCTEMP@@@"
+
+# 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
+#TOMCAT_USER="tomcat"
+
+# 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
+#CATALINA_PID="/var/run/tomcat.pid"
+
+# Connector port is 8080 for this tomcat instance
+#CONNECTOR_PORT="8080"
+
+# If you wish to further customize your tomcat environment,
+# put your own definitions here
+# (i.e. LD_LIBRARY_PATH for some jdbc drivers)
+
diff --git a/SOURCES/tomcat-7.0.wrapper b/SOURCES/tomcat-7.0.wrapper
new file mode 100644
index 0000000..8d35a2f
--- /dev/null
+++ b/SOURCES/tomcat-7.0.wrapper
@@ -0,0 +1,83 @@
+#!/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
+
+# Get instance specific config file
+if [ -r "/etc/sysconfig/${NAME}" ]; then
+    . /etc/sysconfig/${NAME}
+fi
+
+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 [ "$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
+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
+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}"
+  exit 1
+fi
diff --git a/SOURCES/tomcat-api-OSGi-MANIFEST.MF b/SOURCES/tomcat-api-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..3522c72
--- /dev/null
+++ b/SOURCES/tomcat-api-OSGi-MANIFEST.MF
@@ -0,0 +1,12 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.tomcat;version="7.0.21"
+Bundle-Vendor: %bundleProvider
+Bundle-ClassPath: .
+Bundle-Version: 7.0.21
+Bundle-Name: %bundleName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.tomcat
+Bundle-RequiredExecutionEnvironment: J2SE-1.4,CDC-1.0/Foundation-1.0,J
+ 2SE-1.3
+
diff --git a/SOURCES/tomcat-juli-OSGi-MANIFEST.MF b/SOURCES/tomcat-juli-OSGi-MANIFEST.MF
new file mode 100644
index 0000000..cbb5674
--- /dev/null
+++ b/SOURCES/tomcat-juli-OSGi-MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Export-Package: org.apache.juli;version="7.0.21",org.apache.juli.loggi
+ ng;version="7.0.21"
+Bundle-Vendor: %bundleProvider
+Bundle-ClassPath: .
+Bundle-Version: 7.0.21
+Bundle-Name: %bundleName
+Bundle-Localization: plugin
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.apache.juli
+Bundle-RequiredExecutionEnvironment: J2SE-1.4,CDC-1.0/Foundation-1.0,J
+ 2SE-1.3
+
diff --git a/SPECS/tomcat.spec b/SPECS/tomcat.spec
new file mode 100644
index 0000000..ddb2cab
--- /dev/null
+++ b/SPECS/tomcat.spec
@@ -0,0 +1,855 @@
+# Copyright (c) 2000-2008, JPackage Project
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in the
+#    documentation and/or other materials provided with the
+#    distribution.
+# 3. Neither the name of the JPackage Project nor the names of its
+#    contributors may be used to endorse or promote products derived
+#    from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS 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 COPYRIGHT
+# OWNER OR 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.
+#
+
+%global jspspec 2.2
+%global major_version 7
+%global minor_version 0
+%global micro_version 40
+%global packdname apache-tomcat-%{version}-src
+%global servletspec 3.0
+%global elspec 2.2
+%global tcuid 91
+
+# FHS 2.3 compliant tree structure - http://www.pathname.com/fhs/2.3/
+%global basedir %{_var}/lib/%{name}
+%global appdir %{basedir}/webapps
+%global homedir %{_datadir}/%{name}
+%global bindir %{homedir}/bin
+%global confdir %{_sysconfdir}/%{name}
+%global libdir %{_javadir}/%{name}
+%global logdir %{_var}/log/%{name}
+%global cachedir %{_var}/cache/%{name}
+%global tempdir %{cachedir}/temp
+%global workdir %{cachedir}/work
+%global _initrddir %{_sysconfdir}/init.d
+%global _systemddir /lib/systemd/system
+
+Name:          tomcat
+Epoch:         0
+Version:       %{major_version}.%{minor_version}.%{micro_version}
+Release:       2%{?dist}
+Summary:       Apache Servlet/JSP Engine, RI for Servlet %{servletspec}/JSP %{jspspec} API
+
+Group:         System Environment/Daemons
+License:       ASL 2.0
+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
+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:      %{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:      %{name}-%{major_version}.%{minor_version}-tomcat-sysd
+Source18:      %{name}-%{major_version}.%{minor_version}-tomcat-jsvc-sysd
+Source19:      %{name}-%{major_version}.%{minor_version}-jsvc.wrapper
+Source20:      %{name}-%{major_version}.%{minor_version}-jsvc.service
+
+
+Patch0:        %{name}-%{major_version}.%{minor_version}-bootstrap-MANIFEST.MF.patch
+Patch1:        %{name}-%{major_version}.%{minor_version}-tomcat-users-webapp.patch
+
+BuildArch:     noarch
+
+BuildRequires: ant
+BuildRequires: ant-nodeps
+BuildRequires: ecj >= 1:4.2.1
+BuildRequires: findutils
+BuildRequires: apache-commons-collections
+BuildRequires: apache-commons-daemon
+BuildRequires: apache-commons-dbcp
+BuildRequires: apache-commons-pool
+BuildRequires: jakarta-taglibs-standard
+BuildRequires: java-devel >= 1:1.6.0
+BuildRequires: jpackage-utils >= 0:1.7.0
+BuildRequires: junit
+BuildRequires: log4j
+BuildRequires: geronimo-jaxrpc
+BuildRequires: wsdl4j
+BuildRequires: systemd-units
+Requires:      apache-commons-daemon
+Requires:      apache-commons-logging
+Requires:      apache-commons-collections
+Requires:      apache-commons-dbcp
+Requires:      apache-commons-pool
+Requires:      java >= 1:1.6.0
+Requires:      procps
+Requires:      %{name}-lib = %{epoch}:%{version}-%{release}
+Requires(pre):    shadow-utils
+Requires(post):   chkconfig
+Requires(preun):  chkconfig
+Requires(post):   systemd-units
+Requires(preun):  systemd-units
+Requires(postun): systemd-units
+
+%description
+Tomcat is the servlet container that is used in the official Reference
+Implementation for the Java Servlet and JavaServer Pages technologies.
+The Java Servlet and JavaServer Pages specifications are developed by
+Sun under the Java Community Process.
+
+Tomcat is developed in an open and participatory environment and
+released under the Apache Software License version 2.0. Tomcat is intended
+to be a collaboration of the best-of-breed developers from around the world.
+
+%package admin-webapps
+Group: Applications/System
+Summary: The host-manager and manager web applications for Apache Tomcat
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description admin-webapps
+The host-manager and manager web applications for Apache Tomcat.
+
+%package docs-webapp
+Group: Applications/Text
+Summary: The docs web application for Apache Tomcat
+Requires: %{name} = %{epoch}:%{version}-%{release}
+
+%description docs-webapp
+The docs web application for Apache Tomcat.
+
+%package javadoc
+Group: Documentation
+Summary: Javadoc generated documentation for Apache Tomcat
+Requires: jpackage-utils
+
+%description javadoc
+Javadoc generated documentation for Apache Tomcat.
+
+%package systemv
+Group: System Environment/Daemons
+Summary: Systemv scripts for Apache Tomcat
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires(post): chkconfig
+Requires(postun): chkconfig
+
+%description systemv
+SystemV scripts to start and stop tomcat service
+
+%package jsvc
+Group: System Environment/Daemons
+Summary: Apache jsvc wrapper for Apache Tomcat as separate service
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: apache-commons-daemon-jsvc
+
+%description 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.
+
+%package jsp-%{jspspec}-api
+Group: Development/Libraries
+Summary: Apache Tomcat JSP API implementation classes
+Provides: jsp = %{jspspec}
+Provides: jsp22
+Requires: %{name}-servlet-%{servletspec}-api = %{epoch}:%{version}-%{release}
+Requires(post): chkconfig
+Requires(postun): chkconfig
+
+%description jsp-%{jspspec}-api
+Apache Tomcat JSP API implementation classes.
+
+
+%package lib
+Group: Development/Libraries
+Summary: Libraries needed to run the Tomcat Web container
+Requires: %{name}-jsp-%{jspspec}-api = %{epoch}:%{version}-%{release}
+Requires: %{name}-servlet-%{servletspec}-api = %{epoch}:%{version}-%{release}
+Requires: %{name}-el-%{elspec}-api = %{epoch}:%{version}-%{release}
+Requires: ecj >= 1:4.2.1
+Requires: apache-commons-collections
+Requires: apache-commons-dbcp
+Requires: apache-commons-pool
+Requires(preun): coreutils
+
+%description lib
+Libraries needed to run the Tomcat Web container.
+
+%package servlet-%{servletspec}-api
+Group: Development/Libraries
+Summary: Apache Tomcat Servlet API implementation classes
+Provides: servlet = %{servletspec}
+Provides: servlet6
+Provides: servlet3
+Requires(post): chkconfig
+Requires(postun): chkconfig
+
+%description servlet-%{servletspec}-api
+Apache Tomcat Servlet API implementation classes.
+
+%package el-%{elspec}-api
+Group: Development/Libraries
+Summary: Expression Language v1.0 API
+Provides: el_1_0_api = %{epoch}:%{version}-%{release}
+Provides: el_api = %{elspec}
+Requires(post): chkconfig
+Requires(postun): chkconfig
+
+%description el-%{elspec}-api
+Expression Language 1.0.
+
+%package webapps
+Group: Applications/Internet
+Summary: The ROOT and examples web applications for Apache Tomcat
+Requires: %{name} = %{epoch}:%{version}-%{release}
+Requires: jakarta-taglibs-standard >= 0:1.1
+
+%description webapps
+The ROOT and examples web applications for Apache Tomcat.
+
+%prep
+%setup -q -n %{packdname}
+# 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" \) -delete
+
+%patch0 -p0
+%patch1 -p0
+%{__ln_s} $(build-classpath jakarta-taglibs-core) webapps/examples/WEB-INF/lib/jstl.jar
+%{__ln_s} $(build-classpath jakarta-taglibs-standard) webapps/examples/WEB-INF/lib/standard.jar
+
+%build
+export OPT_JAR_LIST="xalan-j2-serializer"
+   # we don't care about the tarballs and we're going to replace
+   # tomcat-dbcp.jar with apache-commons-{collections,dbcp,pool}-tomcat5.jar
+   # so just create a dummy file for later removal
+   touch HACK
+   %{__mkdir_p} HACKDIR
+   touch HACKDIR/build.xml
+   # who needs a build.properties file anyway
+   %{ant} -Dbase.path="." \
+      -Dbuild.compiler="modern" \
+      -Dcommons-collections.jar="$(build-classpath apache-commons-collections)" \
+      -Dcommons-daemon.jar="$(build-classpath apache-commons-daemon)" \
+      -Dcommons-daemon.native.src.tgz="HACK" \
+      -Djasper-jdt.jar="$(build-classpath ecj)" \
+      -Djdt.jar="$(build-classpath ecj)" \
+      -Dtomcat-dbcp.jar="$(build-classpath apache-commons-dbcp)" \
+      -Dtomcat-native.tar.gz="HACK" \
+      -Dtomcat-native.home="." \
+      -Dcommons-daemon.native.win.mgr.exe="HACK" \
+      -Dnsis.exe="HACK" \
+      -Djaxrpc-lib.jar="$(build-classpath jaxrpc)" \
+      -Dwsdl4j-lib.jar="$(build-classpath wsdl4j)" \
+      -Dcommons-pool.home="HACKDIR" \
+      -Dcommons-dbcp.home="HACKDIR" \
+      -Dno.build.dbcp=true \
+      -Dversion="%{version}" \
+      -Dversion.build="%{micro_version}" \
+      deploy dist-prepare dist-source javadoc
+
+    # remove some jars that we'll replace with symlinks later
+   %{__rm} output/build/bin/commons-daemon.jar \
+           output/build/lib/ecj.jar \
+           output/build/lib/apache-commons-dbcp.jar
+
+    # remove the cruft we created
+   %{__rm} output/build/bin/tomcat-native.tar.gz
+pushd output/dist/src/webapps/docs/appdev/sample/src
+%{__mkdir_p} ../web/WEB-INF/classes
+%{javac} -cp ../../../../../../../../output/build/lib/servlet-api.jar -d ../web/WEB-INF/classes mypackage/Hello.java
+pushd ../web
+%{jar} cf ../../../../../../../../output/build/webapps/docs/appdev/sample/sample.war *
+popd
+popd
+
+# inject OSGi manifests
+mkdir -p META-INF
+cp -p %{SOURCE8} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/lib/servlet-api.jar META-INF/MANIFEST.MF
+cp -p %{SOURCE9} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/lib/jsp-api.jar META-INF/MANIFEST.MF
+cp -p %{SOURCE12} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/lib/el-api.jar META-INF/MANIFEST.MF
+cp -p %{SOURCE13} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/lib/jasper-el.jar META-INF/MANIFEST.MF
+cp -p %{SOURCE14} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/lib/jasper.jar META-INF/MANIFEST.MF
+cp -p %{SOURCE15} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/lib/tomcat-api.jar META-INF/MANIFEST.MF
+cp -p %{SOURCE16} META-INF/MANIFEST.MF
+touch META-INF/MANIFEST.MF
+zip -u output/build/bin/tomcat-juli.jar META-INF/MANIFEST.MF
+
+%install
+# build initial path structure
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_bindir}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sbindir}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_javadocdir}/%{name}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_initrddir}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_systemddir}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{appdir}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{bindir}
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{confdir}
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{confdir}/Catalina/localhost
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{libdir}
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{logdir}
+/bin/touch ${RPM_BUILD_ROOT}%{logdir}/catalina.out
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{_localstatedir}/run
+/bin/touch ${RPM_BUILD_ROOT}%{_localstatedir}/run/%{name}.pid
+/bin/echo "%{name}-%{major_version}.%{minor_version}.%{micro_version} RPM installed" >> ${RPM_BUILD_ROOT}%{logdir}/catalina.out
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{homedir}
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{tempdir}
+%{__install} -d -m 0775 ${RPM_BUILD_ROOT}%{workdir}
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_unitdir}
+
+# move things into place
+# First copy supporting libs to tomcat lib
+pushd output/build
+    %{__cp} -a bin/*.{jar,xml} ${RPM_BUILD_ROOT}%{bindir}
+    %{__cp} %{SOURCE10} conf/log4j.properties
+    %{__cp} -a conf/*.{policy,properties,xml} ${RPM_BUILD_ROOT}%{confdir}
+    %{__cp} -a lib/*.jar ${RPM_BUILD_ROOT}%{libdir}
+    %{__cp} -a webapps/* ${RPM_BUILD_ROOT}%{appdir}
+popd
+# javadoc
+%{__cp} -a output/dist/webapps/docs/api/* ${RPM_BUILD_ROOT}%{_javadocdir}/%{name}
+
+%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
+   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
+   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE1} \
+    > ${RPM_BUILD_ROOT}%{confdir}/%{name}.conf
+%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
+   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
+   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE3} \
+    > ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name}
+%{__install} -m 0644 %{SOURCE2} \
+    ${RPM_BUILD_ROOT}%{_initrddir}/%{name}
+%{__install} -m 0644 %{SOURCE4} \
+    ${RPM_BUILD_ROOT}%{_sbindir}/%{name}
+%{__install} -m 0644 %{SOURCE11} \
+    ${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service
+%{__install} -m 0644 %{SOURCE17} \
+    ${RPM_BUILD_ROOT}%{_sbindir}/%{name}-sysd
+%{__install} -m 0644 %{SOURCE19} \
+    ${RPM_BUILD_ROOT}%{_sbindir}/%{name}-jsvc
+%{__install} -m 0644 %{SOURCE20} \
+    ${RPM_BUILD_ROOT}%{_unitdir}/%{name}-jsvc.service
+%{__install} -m 0644 %{SOURCE18} \
+    ${RPM_BUILD_ROOT}%{_sbindir}/%{name}-jsvc-sysd
+%{__ln_s} %{name} ${RPM_BUILD_ROOT}%{_sbindir}/d%{name}
+%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \
+    > ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}
+%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
+   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
+   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \
+    > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-digest
+%{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \
+   -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \
+   -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE7} \
+    > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-tool-wrapper
+# create jsp and servlet API symlinks
+pushd ${RPM_BUILD_ROOT}%{_javadir}
+   %{__mv} %{name}/jsp-api.jar %{name}-jsp-%{jspspec}-api.jar
+   %{__ln_s} %{name}-jsp-%{jspspec}-api.jar %{name}-jsp-api.jar
+   %{__mv} %{name}/servlet-api.jar %{name}-servlet-%{servletspec}-api.jar
+   %{__ln_s} %{name}-servlet-%{servletspec}-api.jar %{name}-servlet-api.jar
+   %{__mv} %{name}/el-api.jar %{name}-el-%{elspec}-api.jar
+   %{__ln_s} %{name}-el-%{elspec}-api.jar %{name}-el-api.jar
+popd
+
+pushd output/build
+    %{_bindir}/build-jar-repository lib apache-commons-collections \
+                                        apache-commons-dbcp apache-commons-pool ecj 2>&1
+    # need to use -p here with b-j-r otherwise the examples webapp fails to
+    # load with a java.io.IOException
+    %{_bindir}/build-jar-repository -p webapps/examples/WEB-INF/lib \
+    taglibs-core.jar taglibs-standard.jar 2>&1
+popd
+
+pushd ${RPM_BUILD_ROOT}%{libdir}
+    # symlink JSP and servlet API jars
+    %{__ln_s} ../%{name}-jsp-%{jspspec}-api.jar .
+    %{__ln_s} ../%{name}-servlet-%{servletspec}-api.jar .
+    %{__ln_s} ../%{name}-el-%{elspec}-api.jar .
+    %{__ln_s} $(build-classpath apache-commons-collections) commons-collections.jar
+    %{__ln_s} $(build-classpath apache-commons-dbcp) commons-dbcp.jar
+    %{__ln_s} $(build-classpath apache-commons-pool) commons-pool.jar
+    %{__ln_s} $(build-classpath log4j) log4j.jar
+    %{__ln_s} $(build-classpath ecj) jasper-jdt.jar
+
+    # Temporary copy the juli jar here from /usr/share/java/tomcat (for maven depmap)
+    %{__cp} -a ${RPM_BUILD_ROOT}%{bindir}/tomcat-juli.jar ./
+popd
+
+# symlink to the FHS locations where we've installed things
+pushd ${RPM_BUILD_ROOT}%{homedir}
+    %{__ln_s} %{appdir} webapps
+    %{__ln_s} %{confdir} conf
+    %{__ln_s} %{libdir} lib
+    %{__ln_s} %{logdir} logs
+    %{__ln_s} %{tempdir} temp
+    %{__ln_s} %{workdir} work
+popd
+
+# install sample webapp
+%{__mkdir_p} ${RPM_BUILD_ROOT}%{appdir}/sample
+pushd ${RPM_BUILD_ROOT}%{appdir}/sample
+%{jar} xf ${RPM_BUILD_ROOT}%{appdir}/docs/appdev/sample/sample.war
+popd
+%{__rm} ${RPM_BUILD_ROOT}%{appdir}/docs/appdev/sample/sample.war
+
+# Allow linking for example webapp
+%{__mkdir_p} ${RPM_BUILD_ROOT}%{appdir}/examples/META-INF
+pushd ${RPM_BUILD_ROOT}%{appdir}/examples/META-INF
+echo '<?xml version="1.0" encoding="UTF-8"?>'>context.xml
+echo '<Context allowLinking="true"/>'>>context.xml
+popd
+
+pushd ${RPM_BUILD_ROOT}%{appdir}/examples/WEB-INF/lib
+%{__ln_s} -f $(build-classpath jakarta-taglibs-core) jstl.jar
+%{__ln_s} -f $(build-classpath jakarta-taglibs-standard) standard.jar
+popd
+
+
+# Install the maven metadata
+%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_mavenpomdir}
+pushd output/dist/src/res/maven
+for pom in *.pom; do
+    # fix-up version in all pom files
+    sed -i 's/@MAVEN.DEPLOY.VERSION@/%{version}/g' $pom
+done
+
+# we won't install dbcp, juli-adapters and juli-extras pom files
+for libname in annotations-api catalina jasper-el jasper catalina-ha; do
+    %{__cp} -a %{name}-$libname.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-$libname.pom
+    %add_maven_depmap JPP.%{name}-$libname.pom %{name}/$libname.jar
+done
+
+# servlet-api jsp-api and el-api are not in tomcat subdir, since they are widely re-used elsewhere
+%{__cp} -a tomcat-jsp-api.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP-tomcat-jsp-api.pom
+%add_maven_depmap JPP-tomcat-jsp-api.pom tomcat-jsp-api.jar -f "tomcat-jsp-api" -a "javax.servlet.jsp:javax.servlet.jsp-api,javax.servlet:jsp-api,org.eclipse.jetty.orbit:javax.servlet.jsp"
+
+%{__cp} -a tomcat-el-api.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP-tomcat-el-api.pom
+%add_maven_depmap JPP-tomcat-el-api.pom tomcat-el-api.jar -f "tomcat-el-api" -a "javax.el:javax.el-api,javax.el:el-api,org.eclipse.jetty.orbit:javax.el"
+
+%{__cp} -a tomcat-servlet-api.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP-tomcat-servlet-api.pom
+# Generate a depmap fragment javax.servlet:servlet-api pointing to
+# tomcat-servlet-3.0-api for backwards compatibility
+# also provide jetty depmap (originally in jetty package, but it's cleaner to have it here
+%add_maven_depmap JPP-tomcat-servlet-api.pom tomcat-servlet-api.jar -f "tomcat-servlet-api" -a "javax.servlet:servlet-api,javax.servlet:javax.servlet-api,org.mortbay.jetty:servlet-api,org.eclipse.jetty.orbit:javax.servlet"
+
+# two special pom where jar files have different names
+%{__cp} -a tomcat-tribes.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-catalina-tribes.pom
+%add_maven_depmap JPP.%{name}-catalina-tribes.pom %{name}/catalina-tribes.jar
+
+%{__cp} -a tomcat-coyote.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-coyote.pom
+%add_maven_depmap JPP.%{name}-tomcat-coyote.pom %{name}/tomcat-coyote.jar
+
+%{__cp} -a tomcat-juli.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-juli.pom
+%add_maven_depmap JPP.%{name}-tomcat-juli.pom %{name}/tomcat-juli.jar
+
+%{__cp} -a tomcat-api.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-api.pom
+%add_maven_depmap JPP.%{name}-tomcat-api.pom %{name}/tomcat-api.jar
+
+%{__cp} -a tomcat-util.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-util.pom
+%add_maven_depmap JPP.%{name}-tomcat-util.pom %{name}/tomcat-util.jar
+
+# replace temporary copy with link
+%{__ln_s} -f %{bindir}/tomcat-juli.jar ${RPM_BUILD_ROOT}%{libdir}/
+
+mkdir -p ${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d
+cat > ${RPM_BUILD_ROOT}%{_prefix}/lib/tmpfiles.d/%{name}.conf <<EOF
+f %{_localstatedir}/run/%{name}.pid 0644 tomcat tomcat -
+EOF
+
+
+%pre
+# add the tomcat user and group
+%{_sbindir}/groupadd -g %{tcuid} -r tomcat 2>/dev/null || :
+%{_sbindir}/useradd -c "Apache Tomcat" -u %{tcuid} -g tomcat \
+    -s /bin/nologin -r -d %{homedir} tomcat 2>/dev/null || :
+
+%post
+# install but don't activate
+%systemd_post %{name}.service
+
+%post systemv
+# install but don't activate
+/sbin/chkconfig --add %{name}
+
+%post jsp-%{jspspec}-api
+%{_sbindir}/update-alternatives --install %{_javadir}/jsp.jar jsp \
+    %{_javadir}/%{name}-jsp-%{jspspec}-api.jar 20200
+
+%post servlet-%{servletspec}-api
+%{_sbindir}/update-alternatives --install %{_javadir}/servlet.jar servlet \
+    %{_javadir}/%{name}-servlet-%{servletspec}-api.jar 30000
+
+%post el-%{elspec}-api
+%{_sbindir}/update-alternatives --install %{_javadir}/elspec.jar elspec \
+   %{_javadir}/%{name}-el-%{elspec}-api.jar 20300
+
+%preun systemv
+    %{_initrddir}/%{name} stop >/dev/null 2>&1
+    /sbin/chkconfig --del %{name}
+
+%preun
+# clean tempdir and workdir on removal or upgrade
+%{__rm} -rf %{workdir}/* %{tempdir}/*
+%systemd_preun %{name}.service
+
+%postun
+%systemd_postun_with_restart %{name}.service 
+
+%postun jsp-%{jspspec}-api
+if [ "$1" = "0" ]; then
+    %{_sbindir}/update-alternatives --remove jsp \
+        %{_javadir}/%{name}-jsp-%{jspspec}-api.jar
+fi
+
+%postun servlet-%{servletspec}-api
+if [ "$1" = "0" ]; then
+    %{_sbindir}/update-alternatives --remove servlet \
+        %{_javadir}/%{name}-servlet-%{servletspec}-api.jar
+fi
+
+%postun el-%{elspec}-api
+if [ "$1" = "0" ]; then
+    %{_sbindir}/update-alternatives --remove elspec \
+        %{_javadir}/%{name}-el-%{elspec}-api.jar
+fi
+
+%triggerun -- tomcat < 0:7.0.22-2
+/usr/bin/systemd-sysv-convert -- save tomcat > /dev/null 2>&1 || :
+# Run these becasue the SysV package being removed won't do them
+/sbin/chkconfig --del tomcat > /dev/null 2>&1 || :
+/bin/systemctl try-restart tomcat.service > /dev/null 2>&1 || :
+
+%files
+%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}/%{name}
+%attr(0644,root,root) %{_unitdir}/%{name}.service
+%attr(0755,root,root) %{_sbindir}/%{name}-sysd
+%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
+%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
+%attr(0755,root,tomcat) %dir %{basedir}
+%attr(0755,root,tomcat) %dir %{confdir}
+%defattr(0664,tomcat,root,0770)
+%attr(0770,tomcat,root) %dir %{logdir}
+%defattr(0664,root,tomcat,0770)
+%attr(0660,tomcat,tomcat) %{logdir}/catalina.out
+%attr(0644,tomcat,tomcat) %{_localstatedir}/run/%{name}.pid
+%attr(0770,root,tomcat) %dir %{cachedir}
+%attr(0770,root,tomcat) %dir %{tempdir}
+%attr(0770,root,tomcat) %dir %{workdir}
+%defattr(0664,root,tomcat,0775)
+%attr(0775,root,tomcat) %dir %{appdir}
+%attr(0775,root,tomcat) %dir %{confdir}/Catalina
+%attr(0775,root,tomcat) %dir %{confdir}/Catalina/localhost
+%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}
+%{_prefix}/lib/tmpfiles.d/%{name}.conf
+%{bindir}/bootstrap.jar
+%{bindir}/catalina-tasks.xml
+%{homedir}/lib
+%{homedir}/temp
+%{homedir}/webapps
+%{homedir}/work
+%{homedir}/logs
+%{homedir}/conf
+
+%files admin-webapps
+%defattr(0664,root,tomcat,0755)
+%{appdir}/host-manager
+%{appdir}/manager
+
+%files docs-webapp
+%defattr(-,root,root,-)
+%{appdir}/docs
+
+%files javadoc
+%defattr(-,root,root,-)
+%{_javadocdir}/%{name}
+
+%files jsp-%{jspspec}-api
+%defattr(-,root,root,-)
+%{_javadir}/%{name}-jsp-%{jspspec}*.jar
+%{_javadir}/%{name}-jsp-api.jar
+%{_mavenpomdir}/JPP-%{name}-jsp-api.pom
+%{_mavendepmapfragdir}/%{name}-tomcat-jsp-api
+
+%files lib
+%defattr(-,root,root,-)
+%{libdir}
+%{bindir}/tomcat-juli.jar
+%{_mavendepmapfragdir}/%{name}
+%{_mavenpomdir}/JPP.%{name}-annotations-api.pom
+%{_mavenpomdir}/JPP.%{name}-catalina-ha.pom
+%{_mavenpomdir}/JPP.%{name}-catalina-tribes.pom
+%{_mavenpomdir}/JPP.%{name}-catalina.pom
+%{_mavenpomdir}/JPP.%{name}-jasper-el.pom
+%{_mavenpomdir}/JPP.%{name}-jasper.pom
+%{_mavenpomdir}/JPP.%{name}-tomcat-api.pom
+%{_mavenpomdir}/JPP.%{name}-tomcat-juli.pom
+%{_mavenpomdir}/JPP.%{name}-tomcat-coyote.pom
+%{_mavenpomdir}/JPP.%{name}-tomcat-util.pom
+
+%exclude %{libdir}/%{name}-el-%{elspec}-api.jar
+
+%files servlet-%{servletspec}-api
+%defattr(-,root,root,-)
+%doc LICENSE
+%{_javadir}/%{name}-servlet-%{servletspec}*.jar
+%{_javadir}/%{name}-servlet-api.jar
+%{_mavendepmapfragdir}/%{name}-tomcat-servlet-api
+%{_mavenpomdir}/JPP-%{name}-servlet-api.pom
+
+%files el-%{elspec}-api
+%defattr(-,root,root,-)
+%doc LICENSE
+%{_javadir}/%{name}-el-%{elspec}-api.jar
+%{_javadir}/%{name}-el-api.jar
+%{libdir}/%{name}-el-%{elspec}-api.jar
+%{_mavenpomdir}/JPP-%{name}-el-api.pom
+%{_mavendepmapfragdir}/%{name}-tomcat-el-api
+
+
+%files webapps
+%defattr(0644,tomcat,tomcat,0755)
+%{appdir}/ROOT
+%{appdir}/examples
+%{appdir}/sample
+
+%files systemv
+%defattr(755,root,root,0755)
+%{_sbindir}/d%{name}
+%{_initrddir}/%{name}
+
+%files jsvc
+%defattr(755,root,root,0755)
+%{_sbindir}/%{name}-jsvc
+%{_sbindir}/%{name}-jsvc-sysd
+%attr(0644,root,root) %{_unitdir}/%{name}-jsvc.service
+
+%changelog
+* Sat May 11 2013 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.40-1
+- Updated to 7.0.40
+- Resolves: rhbz 956569 added missing commons-pool link
+
+* Mon Mar  4 2013 Mikolaj Izdebski <mizdebsk@redhat.com> - 0:7.0.37-2
+- Add depmaps for org.eclipse.jetty.orbit
+- Resolves: rhbz#917626
+
+* Wed Feb 20 2013 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.39-1
+- Updated to 7.0.39
+
+* Wed Feb 20 2013 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.37-1
+- Updated to 7.0.37
+
+* Mon Feb 4 2013 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.35-1
+- Updated to 7.0.35
+- systemd SuccessExitStatus=143 for proper stop exit code processing
+
+* Mon Dec 24 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.34-1
+- Updated to 7.0.34
+- ecj >= 4.2.1 now required
+- Resolves: rhbz 889395 concat classpath correctly; chdir to $CATALINA_HOME
+
+* Fri Dec 7 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.33-2
+- Resolves: rhbz 883806 refix logdir ownership 
+
+* Sun Dec 2 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.33-1
+- Updated to 7.0.33
+- Resolves: rhbz 873620 need chkconfig for update-alternatives
+
+* Wed Oct 17 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.32-1
+- Updated to 7.0.32
+- Resolves: rhbz 842620 symlinks to taglibs
+
+* Fri Aug 24 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.29-1
+- Updated to 7.0.29
+- Add pidfile as tmpfile
+- Use systemd for running as unprivileged user
+- Resolves: rhbz 847751 upgrade path was broken
+- Resolves: rhbz 850343 use new systemd-rpm macros
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0:7.0.28-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Mon Jul 2 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.28-1
+- Updated to 7.0.28
+- Resolves: rhbz 820119 Remove bundled apache-commons-dbcp
+- Resolves: rhbz 814900 Added tomcat-coyote POM
+- Resolves: rhbz 810775 Remove systemv stuff from %post scriptlet
+- Remove redhat-lsb R 
+
+* Mon Apr 9 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.27-2
+- Fixed native download hack
+
+* Sat Apr 7 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.27-1
+- Updated to 7.0.27
+- Fixed jakarta-taglibs-standard BR and R
+
+* Wed Mar 21 2012 Stanislav Ochotnicky <sochotnicky@redhat.com> - 0:7.0.26-2
+- Add more depmaps to J2EE apis to help jetty/glassfish updates
+
+* Wed Mar 14 2012 Juan Hernandez <juan.hernandez@redhat.com> 0:7.0.26-2
+- Added the POM files for tomcat-api and tomcat-util (#803495)
+
+* Wed Feb 22 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.26-1
+- Updated to 7.0.26
+- Bug 790334: Change ownership of logdir for logrotate
+
+* Thu Feb 16 2012 Krzysztof Daniel <kdaniel@redhat.com> 0:7.0.25-4
+- Bug 790694: Priorities of jsp, servlet and el packages updated.
+
+* Wed Feb 8 2012 Krzysztof Daniel <kdaniel@redhat.com> 0:7.0.25-3
+- Dropped indirect dependecy to tomcat 5
+
+* Sun Jan 22 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.25-2
+- Added hack for maven depmap of tomcat-juli absolute link [ -f ] pass correctly
+
+* Sat Jan 21 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.25-1
+- Updated to 7.0.25
+- Removed EntityResolver patch (changes already in upstream sources)
+- Place poms and depmaps in the same package as jars
+- Added javax.servlet.descriptor to export-package of servlet-api
+- Move several chkconfig actions and reqs to systemv subpackage
+- New maven depmaps generation method
+- Add patch to support java7. (patch sent upstream).
+- Require java >= 1:1.6.0
+
+* Fri Jan 13 2012 Krzysztof Daniel <kdaniel@redhat.com> 0:7.0.23-5
+- Exported javax.servlet.* packages in version 3.0 as 2.6 to make
+  servlet-api compatible with Eclipse.
+
+* Thu Jan 12 2012 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.23-4
+- Move jsvc support to subpackage
+
+* Wed Jan 11 2012 Alexander Kurtakov <akurtako@redhat.com> 0:7.0.23-2
+- Add EntityResolver setter patch to jasper for jetty's need. (patch sent upstream).
+
+* Mon Dec 12 2011 Joseph D. Wagner <joe@josephdwagner.info> 0:7.0.23-3
+- Added support to /usr/sbin/tomcat-sysd and /usr/sbin/tomcat for
+  starting 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. Must add USE_JSVC="true" to
+  /etc/tomcat/tomcat.conf or /etc/sysconfig/tomcat.
+
+* Mon Nov 28 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.23-1
+- Updated to 7.0.23
+
+* Fri Nov 11 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.22-2
+- Move tomcat-juli.jar to lib package
+- Drop %%update_maven_depmap as in tomcat6
+- Provide native systemd unit file ported from tomcat6
+
+* Thu Oct 6 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.22-1
+- Updated to 7.0.22
+
+* Mon Oct 03 2011 Rex Dieter <rdieter@fedoraproject.org> - 0:7.0.21-3.1
+- rebuild (java), rel-eng#4932
+
+* Mon Sep 26 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.21-3
+- Fix basedir mode
+
+* Tue Sep 20 2011 Roland Grunberg <rgrunber@redhat.com> 0:7.0.21-2
+- Add manifests for el-api, jasper-el, jasper, tomcat, and tomcat-juli.
+
+* Thu Sep 8 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.21-1
+- Updated to 7.0.21
+
+* Mon Aug 15 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.20-3
+- Require java = 1:1.6.0
+
+* Mon Aug 15 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.20-2
+- Require java < 1.7.0
+
+* Mon Aug 15 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.20-1
+- Updated to 7.0.20
+
+* Tue Jul 26 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.19-1
+- Updated to 7.0.19
+
+* Tue Jun 21 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.16-1
+- Updated to 7.0.16
+
+* Mon Jun 6 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.14-3
+- Added initial systemd service
+- Fix some paths
+
+* Sat May 21 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.14-2
+- Fixed http source link
+- Securify some permissions
+- Added licenses for el-api and servlet-api
+- Added dependency on jpackage-utils for the javadoc subpackage
+
+* Sat May 14 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.14-1
+- Updated to 7.0.14
+
+* Thu May 5 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.12-4
+- Provided local paths for libs
+- Fixed dependencies
+- Fixed update temp/work cleanup
+
+* Mon May 2 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.12-3
+- Fixed package groups
+- Fixed some permissions
+- Fixed some links
+- Removed old tomcat6 crap
+
+* Thu Apr 28 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.12-2
+- Package now named just tomcat instead of tomcat7
+- Removed Provides:  %{name}-log4j
+- Switched to apache-commons-* names instead of jakarta-commons-* .
+- Remove the old changelog
+- BR/R java >= 1:1.6.0 , same for java-devel
+- Removed old tomcat6 crap
+
+* Wed Apr 27 2011 Ivan Afonichev <ivan.afonichev@gmail.com> 0:7.0.12-1
+- Tomcat7