diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index 095e3b5..471c3e4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ apache-tomcat-*-src.tar.gz -apache-tomcat-*-src -results_tomcat/ -tomcat*src.rpm +results_tomcat +tomcat*.src.rpm +apache-tomcat-*-src/ diff --git a/.packit.yaml b/.packit.yaml new file mode 100644 index 0000000..2986867 --- /dev/null +++ b/.packit.yaml @@ -0,0 +1,38 @@ +# See the documentation for more information: +# https://packit.dev/docs/configuration/ + +create_sync_note: false + +upstream_project_url: https://github.com/apache/tomcat.git + +issue_repository: https://src.fedoraproject.org/rpms/tomcat + +jobs: +# https://packit.dev/docs/configuration/downstream/pull_from_upstream +# Make sure there is Fedora mapping for the 'tomcat' project in https://release-monitoring.org/projects/search/?pattern=tomcat +# Make sure Monitoring status on the left side at https://src.fedoraproject.org/rpms/tomcat is set to Monitoring +- job: pull_from_upstream + trigger: release + dist_git_branches: + - fedora-branched + +# https://packit.dev/docs/configuration/downstream/koji_build +- job: koji_build + trigger: commit + dist_git_branches: + - fedora-all + +- job: koji_build + trigger: commit + scratch: true + allowed_pr_authors: ['all_admins', 'all_committers'] + allowed_committers: ['all_admins', 'all_committers'] + dist_git_branches: + - fedora-all + +# https://packit.dev/docs/configuration/downstream/bodhi_update +- job: bodhi_update + trigger: commit + allowed_builders: ['packit', 'all_admins'] + dist_git_branches: + - fedora-branched # rawhide updates are created automatically diff --git a/change-defaults-for-CVE-2020-1938.patch b/change-defaults-for-CVE-2020-1938.patch deleted file mode 100644 index 3d40389..0000000 --- a/change-defaults-for-CVE-2020-1938.patch +++ /dev/null @@ -1,222 +0,0 @@ -diff -up ./java/org/apache/coyote/ajp/AbstractAjpProtocol.java.orig ./java/org/apache/coyote/ajp/AbstractAjpProtocol.java ---- ./java/org/apache/coyote/ajp/AbstractAjpProtocol.java.orig 2020-03-16 04:41:13.000000000 -0400 -+++ ./java/org/apache/coyote/ajp/AbstractAjpProtocol.java 2020-04-22 15:42:50.544106513 -0400 -@@ -134,7 +134,7 @@ public abstract class AbstractAjpProtoco - } - - -- private boolean secretRequired = true; -+ private boolean secretRequired = false; - public void setSecretRequired(boolean secretRequired) { - this.secretRequired = secretRequired; - } -diff -up ./java/org/apache/coyote/ajp/AjpAprProtocol.java.orig ./java/org/apache/coyote/ajp/AjpAprProtocol.java ---- ./java/org/apache/coyote/ajp/AjpAprProtocol.java.orig 2020-03-16 04:41:13.000000000 -0400 -+++ ./java/org/apache/coyote/ajp/AjpAprProtocol.java 2020-04-22 15:42:50.544106513 -0400 -@@ -20,7 +20,6 @@ import org.apache.coyote.AbstractProtoco - import org.apache.coyote.Processor; - import org.apache.juli.logging.Log; - import org.apache.juli.logging.LogFactory; --import org.apache.tomcat.util.compat.JreCompat; - import org.apache.tomcat.util.net.AbstractEndpoint; - import org.apache.tomcat.util.net.AprEndpoint; - import org.apache.tomcat.util.net.AprEndpoint.Handler; -@@ -62,7 +61,6 @@ public class AjpAprProtocol extends Abst - - public AjpAprProtocol() { - endpoint = new AprEndpoint(); -- endpoint.setAddress(JreCompat.getInstance().getLoopbackAddress()); - cHandler = new AjpConnectionHandler(this); - ((AprEndpoint) endpoint).setHandler(cHandler); - setSoLinger(Constants.DEFAULT_CONNECTION_LINGER); -diff -up ./java/org/apache/coyote/ajp/AjpNioProtocol.java.orig ./java/org/apache/coyote/ajp/AjpNioProtocol.java ---- ./java/org/apache/coyote/ajp/AjpNioProtocol.java.orig 2020-03-16 04:41:13.000000000 -0400 -+++ ./java/org/apache/coyote/ajp/AjpNioProtocol.java 2020-04-22 15:42:50.545106511 -0400 -@@ -23,7 +23,6 @@ import org.apache.coyote.AbstractProtoco - import org.apache.coyote.Processor; - import org.apache.juli.logging.Log; - import org.apache.juli.logging.LogFactory; --import org.apache.tomcat.util.compat.JreCompat; - import org.apache.tomcat.util.net.AbstractEndpoint; - import org.apache.tomcat.util.net.NioChannel; - import org.apache.tomcat.util.net.NioEndpoint; -@@ -57,7 +56,6 @@ public class AjpNioProtocol extends Abst - - public AjpNioProtocol() { - endpoint = new NioEndpoint(); -- endpoint.setAddress(JreCompat.getInstance().getLoopbackAddress()); - cHandler = new AjpConnectionHandler(this); - ((NioEndpoint) endpoint).setHandler(cHandler); - setSoLinger(Constants.DEFAULT_CONNECTION_LINGER); -diff -up ./java/org/apache/coyote/ajp/AjpProtocol.java.orig ./java/org/apache/coyote/ajp/AjpProtocol.java ---- ./java/org/apache/coyote/ajp/AjpProtocol.java.orig 2020-03-16 04:41:13.000000000 -0400 -+++ ./java/org/apache/coyote/ajp/AjpProtocol.java 2020-04-22 15:42:50.545106511 -0400 -@@ -22,7 +22,6 @@ import org.apache.coyote.AbstractProtoco - import org.apache.coyote.Processor; - import org.apache.juli.logging.Log; - import org.apache.juli.logging.LogFactory; --import org.apache.tomcat.util.compat.JreCompat; - import org.apache.tomcat.util.net.AbstractEndpoint; - import org.apache.tomcat.util.net.JIoEndpoint; - import org.apache.tomcat.util.net.JIoEndpoint.Handler; -@@ -58,7 +57,6 @@ public class AjpProtocol extends Abstrac - - public AjpProtocol() { - endpoint = new JIoEndpoint(); -- endpoint.setAddress(JreCompat.getInstance().getLoopbackAddress()); - cHandler = new AjpConnectionHandler(this); - ((JIoEndpoint) endpoint).setHandler(cHandler); - setSoLinger(Constants.DEFAULT_CONNECTION_LINGER); -diff -up ./java/org/apache/tomcat/util/compat/Jre7Compat.java.orig ./java/org/apache/tomcat/util/compat/Jre7Compat.java ---- ./java/org/apache/tomcat/util/compat/Jre7Compat.java.orig 2020-03-16 04:41:15.000000000 -0400 -+++ ./java/org/apache/tomcat/util/compat/Jre7Compat.java 2020-04-22 15:42:50.546106509 -0400 -@@ -20,7 +20,6 @@ import java.io.OutputStream; - import java.lang.reflect.Constructor; - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; --import java.net.InetAddress; - import java.sql.CallableStatement; - import java.sql.Connection; - import java.sql.DatabaseMetaData; -@@ -57,7 +56,6 @@ class Jre7Compat extends JreCompat { - private static final Method resultSetGetObjectName; - private static final Method statementCloseOnCompletion; - private static final Method statementIsCloseOnCompletion; -- private static final Method getLoopbackAddress; - - static { - Method m1 = null; -@@ -74,7 +72,6 @@ class Jre7Compat extends JreCompat { - Method m12 = null; - Method m13 = null; - Method m14 = null; -- Method m15 = null; - Constructor c = null; - try { - // Order is important for the error handling below. -@@ -94,7 +91,6 @@ class Jre7Compat extends JreCompat { - m12 = ResultSet.class.getMethod("getObject", String.class, Class.class); - m13 = Statement.class.getMethod("closeOnCompletion"); - m14 = Statement.class.getMethod("isCloseOnCompletion"); -- m15 = InetAddress.class.getMethod("getLoopbackAddress"); - } catch (SecurityException e) { - // Should never happen - log.error(sm.getString("jre7Compat.unexpected"), e); -@@ -122,7 +118,6 @@ class Jre7Compat extends JreCompat { - resultSetGetObjectName = m12; - statementCloseOnCompletion = m13; - statementIsCloseOnCompletion = m14; -- getLoopbackAddress = m15; - } - - -@@ -357,20 +352,6 @@ class Jre7Compat extends JreCompat { - } - } - -- -- @Override -- public InetAddress getLoopbackAddress() { -- try { -- return (InetAddress) getLoopbackAddress.invoke(null); -- } catch (IllegalArgumentException e) { -- throw new UnsupportedOperationException(e); -- } catch (IllegalAccessException e) { -- throw new UnsupportedOperationException(e); -- } catch (InvocationTargetException e) { -- throw new UnsupportedOperationException(e); -- } -- } -- - - // Java 9 methods - -diff -up ./java/org/apache/tomcat/util/compat/JreCompat.java.orig ./java/org/apache/tomcat/util/compat/JreCompat.java ---- ./java/org/apache/tomcat/util/compat/JreCompat.java.orig 2020-03-16 04:41:15.000000000 -0400 -+++ ./java/org/apache/tomcat/util/compat/JreCompat.java 2020-04-22 15:42:50.547106507 -0400 -@@ -21,10 +21,8 @@ import java.io.IOException; - import java.io.OutputStream; - import java.lang.reflect.AccessibleObject; - import java.lang.reflect.Method; --import java.net.InetAddress; - import java.net.URL; - import java.net.URLConnection; --import java.net.UnknownHostException; - import java.sql.CallableStatement; - import java.sql.Connection; - import java.sql.DatabaseMetaData; -@@ -234,32 +232,6 @@ public class JreCompat { - } - - -- public InetAddress getLoopbackAddress() { -- // Javadoc for getByName() states that calling with null will return one -- // of the loopback addresses -- InetAddress result = null; -- try { -- result = InetAddress.getByName(null); -- } catch (UnknownHostException e) { -- // This would be unusual but ignore it in this case. -- } -- if (result == null) { -- // Fallback to default IPv4 loopback address. -- // Not perfect but good enough and if the address is not valid the -- // bind will fail later with an appropriate error message -- try { -- result = InetAddress.getByName("127.0.0.1"); -- } catch (UnknownHostException e) { -- // Unreachable. -- // For text representations of IP addresses only the format is -- // checked. -- } -- } -- -- return result; -- } -- -- - // Java 6 implementation of Java 8 methods - - public static boolean isJre8Available() { -diff -up ./webapps/docs/changelog.xml.orig ./webapps/docs/changelog.xml ---- ./webapps/docs/changelog.xml.orig 2020-03-16 04:41:18.000000000 -0400 -+++ ./webapps/docs/changelog.xml 2020-04-22 15:42:50.554106492 -0400 -@@ -260,14 +260,10 @@ - Disable (comment out in server.xml) the AJP/1.3 connector by default. - (markt) - -- -- Change the default bind address for the AJP/1.3 connector to be the -- loopback address. (markt) -- - - Rename the requiredSecret attribute of the AJP/1.3 - Connector to secret and add a new attribute -- secretRequired that defaults to true. When -+ secretRequired that defaults to false. When - secretRequired is true the AJP/1.3 Connector - will not start unless the secret attribute is configured to - a non-null, non-zero length String. (markt) -diff -up ./webapps/docs/config/ajp.xml.orig ./webapps/docs/config/ajp.xml ---- ./webapps/docs/config/ajp.xml.orig 2020-04-22 15:42:50.557106486 -0400 -+++ ./webapps/docs/config/ajp.xml 2020-04-22 15:44:54.425843527 -0400 -@@ -306,7 +306,9 @@ - -

For servers with more than one IP address, this attribute specifies - which address will be used for listening on the specified port. By -- default, the connector will listen on the loopback address. Unless the JVM -+ default, this port will be used on all IP addresses associated with the -+ server. A value of 127.0.0.1 indicates that the Connector -+ will only listen on the loopback interface. Unless the JVM - is configured otherwise using system properties, the Java based connectors - (BIO, NIO) will listen on both IPv4 and IPv6 addresses when configured - with either 0.0.0.0 or ::. The APR/native -@@ -483,7 +485,7 @@ - the secret attribute is required to be specified for the - AJP Connector to start. It does not control whether - workers are required to provide the secret. The default value is -- true. This attribute should only be set to false -+ false. This attribute should only be set to false - when the Connector is used on a trusted network.

-
- diff --git a/ci.fmf b/ci.fmf new file mode 100644 index 0000000..c5aa0e0 --- /dev/null +++ b/ci.fmf @@ -0,0 +1 @@ +resultsdb-testcase: separate diff --git a/el-api-OSGi-MANIFEST.MF b/el-api-OSGi-MANIFEST.MF deleted file mode 100644 index 69b797f..0000000 --- a/el-api-OSGi-MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -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/gating.yaml b/gating.yaml new file mode 100644 index 0000000..0553cb6 --- /dev/null +++ b/gating.yaml @@ -0,0 +1,20 @@ +--- !Policy +product_versions: + - fedora-rawhide +decision_contexts: + - bodhi_update_push_stable + - bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpmdeplint.functional} +product_versions: + - fedora-* +decision_contexts: + - bodhi_update_push_stable + - bodhi_update_push_testing +subject_type: koji_build +rules: + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.rpminspect.static-analysis} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.installability.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/javapackages.functional} + - !PassingTestCaseRule {test_case_name: fedora-ci.koji-build./plans/smoke.functional} diff --git a/jasper-OSGi-MANIFEST.MF b/jasper-OSGi-MANIFEST.MF deleted file mode 100644 index 9a3d98a..0000000 --- a/jasper-OSGi-MANIFEST.MF +++ /dev/null @@ -1,40 +0,0 @@ -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/jasper-el-OSGi-MANIFEST.MF b/jasper-el-OSGi-MANIFEST.MF deleted file mode 100644 index fd2879f..0000000 --- a/jasper-el-OSGi-MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -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/jsp-api-OSGi-MANIFEST.MF b/jsp-api-OSGi-MANIFEST.MF deleted file mode 100644 index 62bc00d..0000000 --- a/jsp-api-OSGi-MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -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/module-start-up-parameters.conf b/module-start-up-parameters.conf new file mode 100644 index 0000000..7f8652a --- /dev/null +++ b/module-start-up-parameters.conf @@ -0,0 +1,8 @@ +# Add the module start-up parameters required by Tomcat +JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.lang=ALL-UNNAMED" +JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.io=ALL-UNNAMED" +JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.util=ALL-UNNAMED" +JAVA_OPTS="$JAVA_OPTS --add-opens=java.base/java.util.concurrent=ALL-UNNAMED" +JAVA_OPTS="$JAVA_OPTS --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" +export JAVA_OPTS + diff --git a/plans/javapackages.fmf b/plans/javapackages.fmf new file mode 100644 index 0000000..86bfcea --- /dev/null +++ b/plans/javapackages.fmf @@ -0,0 +1,7 @@ +summary: Run javapackages-specific tests +discover: + how: fmf + url: https://src.fedoraproject.org/tests/javapackages + ref: f42 +execute: + how: tmt diff --git a/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..039f41a --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,5 @@ +discover: + how: fmf + url: https://src.fedoraproject.org/tests/tomcat +execute: + how: tmt diff --git a/rhbz-1857043.patch b/rhbz-1857043.patch new file mode 100644 index 0000000..4028ee1 --- /dev/null +++ b/rhbz-1857043.patch @@ -0,0 +1,215 @@ +--- build.xml.orig 2024-08-02 18:14:43.000000000 +0300 ++++ build.xml 2024-08-19 13:56:38.991730088 +0300 +@@ -1121,7 +1121,7 @@ + filesDir="${tomcat.classes}" + filesId="files.annotations-api" + manifest="${tomcat.manifests}/annotations-api.jar.manifest" +- addOSGi="true" /> ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + ++ addOSGi="false" /> + + + + + ++ + + + diff --git a/tomcat-7.0-bootstrap-MANIFEST.MF.patch b/tomcat-10.1-bootstrap-MANIFEST.MF.patch similarity index 100% rename from tomcat-7.0-bootstrap-MANIFEST.MF.patch rename to tomcat-10.1-bootstrap-MANIFEST.MF.patch diff --git a/tomcat-10.1-catalina-policy.patch b/tomcat-10.1-catalina-policy.patch new file mode 100644 index 0000000..3254968 --- /dev/null +++ b/tomcat-10.1-catalina-policy.patch @@ -0,0 +1,16 @@ +--- conf/catalina.policy.orig 2024-05-22 16:12:23.809886452 +0300 ++++ conf/catalina.policy 2024-05-22 16:14:38.913939654 +0300 +@@ -55,6 +55,14 @@ + permission java.security.AllPermission; + }; + ++// ========== RHEL SPECIFIC CODE PERMISSIONS ======================================= ++ ++// Allowing everything in /usr/share/java allows too many unknowns to be permitted ++// Specifying the individual jars that tomcat needs to function with the security manager ++// is the safest way forward. ++grant codeBase "file:/usr/share/java/ecj/ecj.jar" { ++ permission java.security.AllPermission; ++}; + + // ========== CATALINA CODE PERMISSIONS ======================================= diff --git a/tomcat-7.0-digest.script b/tomcat-10.1-digest.script similarity index 94% rename from tomcat-7.0-digest.script rename to tomcat-10.1-digest.script index 86f05ec..ce4aa0f 100644 --- a/tomcat-7.0-digest.script +++ b/tomcat-10.1-digest.script @@ -34,7 +34,7 @@ export CLASSPATH MAIN_CLASS="org.apache.catalina.startup.Tool" BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" BASE_OPTIONS="" -BASE_JARS="commons-daemon tomcat/catalina servlet tomcat/tomcat-util tomcat/tomcat-coyote" +BASE_JARS="commons-daemon tomcat/catalina servlet tomcat/tomcat-util tomcat/tomcat-coyote tomcat/tomcat-api tomcat/tomcat-util-scan" # Set parameters set_classpath $BASE_JARS diff --git a/tomcat-7.0-tomcat-users-webapp.patch b/tomcat-10.1-tomcat-users-webapp.patch similarity index 97% rename from tomcat-7.0-tomcat-users-webapp.patch rename to tomcat-10.1-tomcat-users-webapp.patch index 860c4cf..85b8b9b 100644 --- a/tomcat-7.0-tomcat-users-webapp.patch +++ b/tomcat-10.1-tomcat-users-webapp.patch @@ -1,6 +1,6 @@ --- 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 @@ +@@ -53,4 +53,14 @@ --> diff --git a/tomcat-7.0-tool-wrapper.script b/tomcat-10.1-tool-wrapper.script similarity index 93% rename from tomcat-7.0-tool-wrapper.script rename to tomcat-10.1-tool-wrapper.script index a43568b..949d46d 100644 --- a/tomcat-7.0-tool-wrapper.script +++ b/tomcat-10.1-tool-wrapper.script @@ -34,7 +34,7 @@ export CLASSPATH MAIN_CLASS="org.apache.catalina.startup.Tool" BASE_OPTIONS="" BASE_FLAGS="-Dcatalina.home=\"$CATALINA_HOME\"" -BASE_JARS="commons-daemon tomcat/catalina servlet tomcat/tomcat-util tomcat/tomcat-coyote" +BASE_JARS="commons-daemon tomcat/catalina servlet tomcat/tomcat-util tomcat/tomcat-coyote tomcat/tomcat-api tomcat/tomcat-util-scan" # Set parameters set_classpath $BASE_JARS diff --git a/tomcat-10.1.conf b/tomcat-10.1.conf new file mode 100644 index 0000000..c83305a --- /dev/null +++ b/tomcat-10.1.conf @@ -0,0 +1,42 @@ +# System-wide configuration file for tomcat services +# 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="/usr/lib/jvm/jre" + +# Where your tomcat installation lives +CATALINA_HOME="@@@TCHOME@@@" + +# System-wide tmp +CATALINA_TMPDIR="/var/cache/tomcat/temp" + +# You can change your tomcat locale here +#LANG="en_US" + +# Run tomcat under the Java Security Manager +SECURITY_MANAGER="false" + +# If you wish to further customize your tomcat environment, +# put your own definitions here +# (i.e. LD_LIBRARY_PATH for some jdbc drivers) + +# You can also pass parameters to Java here by defining JAVA_OPTS variable +# (e.g. JAVA_OPTS="-Xminf0.1 -Xmaxf0.3") diff --git a/tomcat-10.1.logrotate b/tomcat-10.1.logrotate new file mode 100644 index 0000000..082092a --- /dev/null +++ b/tomcat-10.1.logrotate @@ -0,0 +1,11 @@ +# This is an example config only and is disabled by default +# If you wish to use it, you'll need to update /etc/tomcat/logging.properties +# to prevent catalina*.log from being rotated by Tomcat +@@@TCLOG@@@/catalina*.log { + copytruncate + weekly + rotate 52 + compress + missingok + create 0644 tomcat tomcat +} diff --git a/tomcat-10.1.service b/tomcat-10.1.service new file mode 100644 index 0000000..832e7c6 --- /dev/null +++ b/tomcat-10.1.service @@ -0,0 +1,20 @@ +# 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/libexec/tomcat/server start +SuccessExitStatus=143 +User=tomcat + +[Install] +WantedBy=multi-user.target diff --git a/tomcat-10.1.sysconfig b/tomcat-10.1.sysconfig new file mode 100644 index 0000000..3117bf7 --- /dev/null +++ b/tomcat-10.1.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-10.1.wrapper b/tomcat-10.1.wrapper new file mode 100644 index 0000000..c97cb85 --- /dev/null +++ b/tomcat-10.1.wrapper @@ -0,0 +1,24 @@ +#!/bin/bash + +if [ "$1" = "version" ]; then + . /usr/libexec/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 + systemctl start ${SRV}.service +elif [ "$1" = "stop" ]; then + 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|stop|version} [server-id]" + exit 1 +fi diff --git a/tomcat-7.0-catalina-policy.patch b/tomcat-7.0-catalina-policy.patch deleted file mode 100644 index 494e696..0000000 --- a/tomcat-7.0-catalina-policy.patch +++ /dev/null @@ -1,37 +0,0 @@ ---- conf/catalina.policy.orig 2016-08-05 11:13:17.192398668 -0400 -+++ conf/catalina.policy 2016-08-05 11:13:40.855396127 -0400 -@@ -51,6 +51,34 @@ - }; - - -+// ========== RHEL SPECIFIC CODE PERMISSIONS ======================================= -+ -+// Allowing everything in /usr/share/java allows too many unknowns to be permitted -+// Specifying the individual jars that tomcat needs to function with the security manager -+// is the safest way forward. -+grant codeBase "file:/usr/share/java/tomcat-el-2.2-api.jar" { -+ permission java.security.AllPermission; -+}; -+grant codeBase "file:/usr/share/java/tomcat-jsp-2.2-api.jar" { -+ permission java.security.AllPermission; -+}; -+grant codeBase "file:/usr/share/java/tomcat-servlet-3.0-api.jar" { -+ permission java.security.AllPermission; -+}; -+grant codeBase "file:/usr/share/java/jakarta-commons-collections.jar" { -+ permission java.security.AllPermission; -+}; -+grant codeBase "file:/usr/share/java/jakarta-commons-dbcp.jar" { -+ permission java.security.AllPermission; -+}; -+grant codeBase "file:/usr/share/java/ecj.jar" { -+ permission java.security.AllPermission; -+}; -+grant codeBase "file:/usr/share/java/log4j.jar" { -+ permission java.security.AllPermission; -+}; -+ -+ - // ========== CATALINA CODE PERMISSIONS ======================================= - - diff --git a/tomcat-7.0-jsvc.wrapper b/tomcat-7.0-jsvc.wrapper deleted file mode 100644 index 3bcff1e..0000000 --- a/tomcat-7.0-jsvc.wrapper +++ /dev/null @@ -1,89 +0,0 @@ -#!/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 $TOMCAT_CFG wasn't already loaded -if [ -z "${TOMCAT_CFG_LOADED}" ]; then - if [ -z "${TOMCAT_CFG}" ]; then - TOMCAT_CFG="/etc/tomcat/tomcat.conf" - fi - - if [ -r "$TOMCAT_CFG" ]; then - . $TOMCAT_CFG - fi -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 - # Command to use for version so it doesn't use jsvc - VER_JAVACMD=$JAVACMD - - 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 - ${VER_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/tomcat-7.0-log4j.properties b/tomcat-7.0-log4j.properties deleted file mode 100644 index 1252a64..0000000 --- a/tomcat-7.0-log4j.properties +++ /dev/null @@ -1,11 +0,0 @@ -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/tomcat-7.0.104-RemoveCompilerOptions.patch b/tomcat-7.0.104-RemoveCompilerOptions.patch deleted file mode 100644 index 1a6190c..0000000 --- a/tomcat-7.0.104-RemoveCompilerOptions.patch +++ /dev/null @@ -1,184 +0,0 @@ ---- java/org/apache/jasper/compiler/JDTCompiler.java.orig 2020-06-08 14:28:56.745393437 +0800 -+++ java/org/apache/jasper/compiler/JDTCompiler.java 2020-06-08 14:33:16.421538658 +0800 -@@ -95,7 +95,6 @@ - /** - * Compile the servlet from .java file to .class file - */ -- @Override - protected void generateClass(String[] smap) throws FileNotFoundException, JasperException, Exception { - - long t1 = 0; -@@ -122,12 +121,10 @@ - this.sourceFile = sourceFile; - } - -- @Override - public char[] getFileName() { - return sourceFile.toCharArray(); - } - -- @Override - public char[] getContents() { - char[] result = null; - FileInputStream is = null; -@@ -167,7 +164,6 @@ - return result; - } - -- @Override - public char[] getMainTypeName() { - int dot = className.lastIndexOf('.'); - if (dot > 0) { -@@ -176,7 +172,6 @@ - return className.toCharArray(); - } - -- @Override - public char[][] getPackageName() { - StringTokenizer izer = new StringTokenizer(className, "."); - char[][] result = new char[izer.countTokens()-1][]; -@@ -187,7 +182,6 @@ - return result; - } - -- @Override - public boolean ignoreOptionalProblems() { - return false; - } -@@ -195,7 +189,6 @@ - - final INameEnvironment env = new INameEnvironment() { - -- @Override - public NameEnvironmentAnswer - findType(char[][] compoundTypeName) { - StringBuilder result = new StringBuilder(); -@@ -208,7 +201,6 @@ - return findType(result.toString()); - } - -- @Override - public NameEnvironmentAnswer findType(char[] typeName, char[][] packageName) { - StringBuilder result = new StringBuilder(); - String sep = ""; -@@ -281,7 +273,6 @@ - } - } - -- @Override - public boolean isPackage(char[][] parentPackageName, char[] packageName) { - StringBuilder result = new StringBuilder(); - String sep = ""; -@@ -302,7 +293,6 @@ - return isPackage(result.toString()); - } - -- @Override - public void cleanup() { - } - -@@ -350,43 +340,6 @@ - } else if(opt.equals("1.7")) { - settings.put(CompilerOptions.OPTION_Source, - CompilerOptions.VERSION_1_7); -- } else if(opt.equals("1.8")) { -- settings.put(CompilerOptions.OPTION_Source, -- CompilerOptions.VERSION_1_8); -- // Support old format that was used in EA implementation as well -- } else if(opt.equals("9") || opt.equals("1.9")) { -- settings.put(CompilerOptions.OPTION_Source, -- JDT_JAVA_9_VERSION); -- } else if(opt.equals("10")) { -- // Constant not available in latest ECJ version that runs on -- // Java 6. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_Source, "10"); -- } else if(opt.equals("11")) { -- // Constant not available in latest ECJ version that runs on -- // Java 6. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_Source, "11"); -- } else if(opt.equals("12")) { -- // Constant not available in latest ECJ version that runs on -- // Java 6. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_Source, "12"); -- } else if(opt.equals("13")) { -- // Constant not available in latest available ECJ version. -- // May be supported in a snapshot build. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_Source, "13"); -- } else if(opt.equals("14")) { -- // Constant not available in latest available ECJ version. -- // May be supported in a snapshot build. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_Source, "14"); -- } else if(opt.equals("15")) { -- // Constant not available in latest available ECJ version. -- // May be supported in a snapshot build. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_Source, "15"); - } else { - log.warn(Localizer.getMessage("jsp.warning.unknown.sourceVM", opt)); - settings.put(CompilerOptions.OPTION_Source, -@@ -428,52 +381,6 @@ - CompilerOptions.VERSION_1_7); - settings.put(CompilerOptions.OPTION_Compliance, - CompilerOptions.VERSION_1_7); -- } else if(opt.equals("1.8")) { -- settings.put(CompilerOptions.OPTION_TargetPlatform, -- CompilerOptions.VERSION_1_8); -- settings.put(CompilerOptions.OPTION_Compliance, -- CompilerOptions.VERSION_1_8); -- } else if(opt.equals("9") || opt.equals("1.9")) { -- settings.put(CompilerOptions.OPTION_TargetPlatform, -- JDT_JAVA_9_VERSION); -- settings.put(CompilerOptions.OPTION_Compliance, -- JDT_JAVA_9_VERSION); -- } else if(opt.equals("10")) { -- // Constant not available in latest ECJ version that runs on -- // Java 6. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_TargetPlatform, "10"); -- settings.put(CompilerOptions.OPTION_Compliance, "10"); -- } else if(opt.equals("11")) { -- // Constant not available in latest ECJ version that runs on -- // Java 6. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_TargetPlatform, "11"); -- settings.put(CompilerOptions.OPTION_Compliance, "11"); -- } else if(opt.equals("12")) { -- // Constant not available in latest ECJ version that runs on -- // Java 6. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_TargetPlatform, "12"); -- settings.put(CompilerOptions.OPTION_Compliance, "12"); -- } else if(opt.equals("13")) { -- // Constant not available in latest available ECJ version. -- // May be supported in a snapshot build. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_TargetPlatform, "13"); -- settings.put(CompilerOptions.OPTION_Compliance, "13"); -- } else if(opt.equals("14")) { -- // Constant not available in latest ECJ version shipped with -- // Tomcat. May be supported in a snapshot build. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_TargetPlatform, "14"); -- settings.put(CompilerOptions.OPTION_Compliance, "14"); -- } else if(opt.equals("15")) { -- // Constant not available in latest ECJ version shipped with -- // Tomcat. May be supported in a snapshot build. -- // This is checked against the actual version below. -- settings.put(CompilerOptions.OPTION_TargetPlatform, "15"); -- settings.put(CompilerOptions.OPTION_Compliance, "15"); - } else { - log.warn(Localizer.getMessage("jsp.warning.unknown.targetVM", opt)); - settings.put(CompilerOptions.OPTION_TargetPlatform, -@@ -491,7 +398,6 @@ - new DefaultProblemFactory(Locale.getDefault()); - - final ICompilerRequestor requestor = new ICompilerRequestor() { -- @Override - public void acceptResult(CompilationResult result) { - try { - if (result.hasProblems()) { diff --git a/tomcat-7.0.99-build.patch b/tomcat-7.0.99-build.patch deleted file mode 100644 index 80d2358..0000000 --- a/tomcat-7.0.99-build.patch +++ /dev/null @@ -1,130 +0,0 @@ ---- build.xml.orig 2019-12-11 08:21:52.000000000 -0500 -+++ build.xml 2020-02-06 14:32:03.578329367 -0500 -@@ -222,7 +222,6 @@ - - - -- - - - -@@ -244,7 +243,7 @@ - - - -- -+ - - - -@@ -636,7 +635,6 @@ - deprecation="${compile.deprecation}" - source="${compile.source}" - target="${compile.target}" -- release="${compile.release}" - encoding="ISO-8859-1" - includeAntRuntime="true" > - -@@ -1141,12 +1139,11 @@ - - - -- -- -+ - - - -- -+ - - - -@@ -1177,7 +1174,6 @@ - debug="${compile.debug}" deprecation="${compile.deprecation}" - source="${compile.source}" - target="${compile.target}" -- release="${compile.release}" - classpath="${tomcat.classes}" - encoding="ISO-8859-1" - includeantruntime="false"> -@@ -1189,7 +1185,6 @@ - debug="${compile.debug}" deprecation="${compile.deprecation}" - source="${compile.source}" - target="${compile.target}" -- release="${compile.release}" - classpath="${tomcat.classes}" - encoding="ISO-8859-1" - includeantruntime="false"> -@@ -1416,7 +1411,6 @@ - deprecation="${compile.deprecation}" - source="${compile.source}" - target="${compile.target}" -- release="${compile.release}" - encoding="ISO-8859-1" - includeantruntime="true"> - -@@ -1859,8 +1853,8 @@ - - - -- -+ - - -@@ -2912,16 +2906,6 @@ skip.installer property in build.propert - - - -- -- -- -- -- -- -- -- -- -- - - - - - -- -+ - - - -- -+ - - - -- -+ - - -- -+ - - - diff --git a/tomcat-7.0.conf b/tomcat-7.0.conf deleted file mode 100644 index 327cdd9..0000000 --- a/tomcat-7.0.conf +++ /dev/null @@ -1,53 +0,0 @@ -# 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) -# - -# This variable is used to figure out if config is loaded or not. -TOMCAT_CFG_LOADED="1" - -# 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/tomcat-7.0.init b/tomcat-7.0.init deleted file mode 100644 index dd737e8..0000000 --- a/tomcat-7.0.init +++ /dev/null @@ -1,331 +0,0 @@ -#!/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="${TOMCAT_SCRIPT:-/usr/sbin/tomcat}" - -# Tomcat program name -TOMCAT_PROG="${NAME}" - -# Define the tomcat username -TOMCAT_USER="${TOMCAT_USER:-tomcat}" - -# Define the tomcat group -TOMCAT_GROUP="${TOMCAT_GROUP:-`id -gn $TOMCAT_USER`}" - -# Define the tomcat log file -TOMCAT_LOG="${TOMCAT_LOG:-${CATALINA_HOME}/logs/${NAME}-initd.log}" - -# Define the tomcat pid file -CATALINA_PID="${CATALINA_PID:-/var/run/${NAME}.pid}" - -# Variable to keep parseOptions status -OPTIONS_PARSED="0" - -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 - install -o ${TOMCAT_USER} -g ${TOMCAT_GROUP} -d -m 0770 /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 - if [ "$OPTIONS_PARSED" -eq 0 ]; then - TOMCAT_SCRIPT="$options ${TOMCAT_SCRIPT}" - OPTIONS_PARSED=1 - fi -} - -# 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 "$CATALINA_PID" ]; then - read kpid < $CATALINA_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 - touch $CATALINA_PID 2>&1 || RETVAL="4" - if [ "$RETVAL" -eq "0" -a "$?" -eq "0" ]; then - install -o ${TOMCAT_USER} -g ${TOMCAT_GROUP} -m 644 /dev/null "${CATALINA_PID}" - fi - [ "$RETVAL" -eq "0" ] && touch $TOMCAT_LOG 2>&1 || RETVAL="4" - if [ "$RETVAL" -eq "0" -a "$?" -eq "0" ]; then - if [ ! -f "${TOMCAT_LOG}" ]; then - install -o ${TOMCAT_USER} -g ${TOMCAT_GROUP} -m 644 /dev/null "${TOMCAT_LOG}" - fi - 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 "$CATALINA_PID" ]; then - read kpid < $CATALINA_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} $CATALINA_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 "$CATALINA_PID" ]; then - stop - start - fi - ;; - reload) - RETVAL="3" - ;; - force-reload) - if [ -s "$CATALINA_PID" ]; then - stop - start - fi - ;; - status) - if [ -s "$CATALINA_PID" ]; then - read kpid < $CATALINA_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} -f "catalina\.base=${CATALINA_BASE}[ $]")" - 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} -f "catalina\.base=${CATALINA_BASE}[ $]")" -# 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/tomcat-7.0.logrotate b/tomcat-7.0.logrotate deleted file mode 100644 index a87b4c0..0000000 --- a/tomcat-7.0.logrotate +++ /dev/null @@ -1,8 +0,0 @@ -@@@TCLOG@@@/catalina.out { - copytruncate - weekly - rotate 52 - compress - missingok - create 0644 tomcat tomcat -} diff --git a/tomcat-7.0.sysconfig b/tomcat-7.0.sysconfig deleted file mode 100644 index c1337e8..0000000 --- a/tomcat-7.0.sysconfig +++ /dev/null @@ -1,56 +0,0 @@ -# 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/ to -# /etc/init.d/tomcat (do not copy the init script) and make a copy of the -# /etc/sysconfig/tomcat file to /etc/sysconfig/ 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/tomcat-7.0.wrapper b/tomcat-7.0.wrapper deleted file mode 100644 index 61b25c3..0000000 --- a/tomcat-7.0.wrapper +++ /dev/null @@ -1,76 +0,0 @@ -#!/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 $TOMCAT_CFG wasn't already loaded -if [ -z "${TOMCAT_CFG_LOADED}" ]; then - if [ -z "${TOMCAT_CFG}" ]; then - TOMCAT_CFG="/etc/tomcat/tomcat.conf" - fi - - if [ -r "$TOMCAT_CFG" ]; then - . $TOMCAT_CFG - fi -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 [ "$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/tomcat-api-OSGi-MANIFEST.MF b/tomcat-api-OSGi-MANIFEST.MF deleted file mode 100644 index 3522c72..0000000 --- a/tomcat-api-OSGi-MANIFEST.MF +++ /dev/null @@ -1,12 +0,0 @@ -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/tomcat-build.patch b/tomcat-build.patch new file mode 100644 index 0000000..cdf73ef --- /dev/null +++ b/tomcat-build.patch @@ -0,0 +1,19 @@ +diff -up ./res/bnd/build-defaults.bnd.orig ./res/bnd/build-defaults.bnd +--- res/bnd/build-defaults.bnd.orig 2023-10-16 11:23:04.752754202 +0800 ++++ res/bnd/build-defaults.bnd 2023-10-16 11:23:29.931876910 +0800 +@@ -13,7 +13,7 @@ + # See the License for the specific language governing permissions and + # limitations under the License. + +-Bundle-Version: ${version_cleanup;${version}} ++Bundle-Version: ${version} + Bundle-License: https://www.apache.org/licenses/LICENSE-2.0.txt + + Specification-Title: Apache Tomcat +@@ -36,4 +36,4 @@ X-Compile-Target-JDK: ${compile.release} + + -removeheaders: DSTAMP,TODAY,TSTAMP + +-module.name: org.apache.${replace;${Bundle-Name};-;.} +\ No newline at end of file ++module.name: org.apache.${replace;${Bundle-Name};-;.} diff --git a/tomcat-functions b/tomcat-functions new file mode 100644 index 0000000..1187653 --- /dev/null +++ b/tomcat-functions @@ -0,0 +1,21 @@ +#!/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" +} + +_save_function run run_java + +run() { + run_java $@ +} + diff --git a/tomcat-juli-OSGi-MANIFEST.MF b/tomcat-juli-OSGi-MANIFEST.MF deleted file mode 100644 index cbb5674..0000000 --- a/tomcat-juli-OSGi-MANIFEST.MF +++ /dev/null @@ -1,13 +0,0 @@ -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/tomcat-named.service b/tomcat-named.service new file mode 100644 index 0000000..b6cd8bd --- /dev/null +++ b/tomcat-named.service @@ -0,0 +1,24 @@ +# 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/libexec/tomcat/server start +ExecStop=/usr/libexec/tomcat/server stop +SuccessExitStatus=143 +User=tomcat + +[Install] +WantedBy=multi-user.target diff --git a/tomcat-preamble b/tomcat-preamble new file mode 100644 index 0000000..1271dca --- /dev/null +++ b/tomcat-preamble @@ -0,0 +1,52 @@ +#!/bin/bash + +. /usr/libexec/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..17ae385 --- /dev/null +++ b/tomcat-server @@ -0,0 +1,25 @@ +#!/bin/bash + +. /usr/libexec/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.spec b/tomcat.spec index a8dd919..77901bc 100644 --- a/tomcat.spec +++ b/tomcat.spec @@ -28,16 +28,19 @@ # 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 106 +%global jspspec 3.1 +%global major_version 10 +%global minor_version 1 +%global micro_version 46 %global packdname apache-tomcat-%{version}-src -%global servletspec 3.0 -%global elspec 2.2 -%global tcuid 91 +%global servletspec 6.0 +%global elspec 5.0 +%global tcuid 53 +# Recommended version is specified in java/org/apache/catalina/core/AprLifecycleListener.java +%global native_version 2.0.8 -# FHS 2.3 compliant tree structure - http://www.pathname.com/fhs/2.3/ + +# FHS 3.0 compliant tree structure - http://refspecs.linuxfoundation.org/FHS_3.0/fhs/index.html %global basedir %{_var}/lib/%{name} %global appdir %{basedir}/webapps %global homedir %{_datadir}/%{name} @@ -48,71 +51,63 @@ %global cachedir %{_var}/cache/%{name} %global tempdir %{cachedir}/temp %global workdir %{cachedir}/work -%global _initrddir %{_sysconfdir}/init.d Name: tomcat -Epoch: 0 +Epoch: 1 Version: %{major_version}.%{minor_version}.%{micro_version} -Release: 1%{?dist} +Release: %autorelease Summary: Apache Servlet/JSP Engine, RI for Servlet %{servletspec}/JSP %{jspspec} API -Group: System Environment/Daemons -License: ASL 2.0 +# Automatically converted from old format: ASL 2.0 - review is highly recommended. +License: Apache-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: el-api-OSGi-MANIFEST.MF -Source12: jasper-el-OSGi-MANIFEST.MF -Source13: jasper-OSGi-MANIFEST.MF -Source14: tomcat-api-OSGi-MANIFEST.MF -Source15: tomcat-juli-OSGi-MANIFEST.MF -Source16: %{name}-%{major_version}.%{minor_version}-jsvc.wrapper +Source2: %{name}-%{major_version}.%{minor_version}.sysconfig +Source3: %{name}-%{major_version}.%{minor_version}.wrapper +Source4: %{name}-%{major_version}.%{minor_version}.logrotate +Source5: %{name}-%{major_version}.%{minor_version}-digest.script +Source6: %{name}-%{major_version}.%{minor_version}-tool-wrapper.script +Source7: %{name}-%{major_version}.%{minor_version}.service +Source8: %{name}-functions +Source9: %{name}-preamble +Source10: %{name}-server +Source11: %{name}-named.service +Source12: module-start-up-parameters.conf Patch0: %{name}-%{major_version}.%{minor_version}-bootstrap-MANIFEST.MF.patch Patch1: %{name}-%{major_version}.%{minor_version}-tomcat-users-webapp.patch -# Adding patch to remove java 1.8 compiler options due to outdated ecj version in el6 -Patch2: %{name}-7.0.104-RemoveCompilerOptions.patch -# Adding patch to remove unsupport ant tasks/attributes -Patch3: %{name}-7.0.99-build.patch -Patch4: %{name}-7.0-catalina-policy.patch -Patch5: change-defaults-for-CVE-2020-1938.patch +Patch2: %{name}-build.patch +Patch3: %{name}-%{major_version}.%{minor_version}-catalina-policy.patch +Patch4: %{name}-%{major_version}.%{minor_version}-bnd-annotation.patch +Patch5: %{name}-%{major_version}.%{minor_version}-JDTCompiler.patch +Patch6: rhbz-1857043.patch BuildArch: noarch +ExclusiveArch: %{java_arches} noarch -ExcludeArch: ppc64 - -BuildRequires: ant -BuildRequires: ant-nodeps -BuildRequires: ant-trax -BuildRequires: ecj +BuildRequires: ant-openjdk25 >= 1.10.2 +BuildRequires: ecj >= 4.20 BuildRequires: findutils -BuildRequires: jakarta-commons-daemon -BuildRequires: jakarta-taglibs-standard -BuildRequires: java7-devel >= 1:1.7.0 -BuildRequires: jpackage-utils >= 0:1.7.0 -BuildRequires: junit -BuildRequires: log4j -BuildRequires: wsdl4j +BuildRequires: java-25-devel +BuildRequires: javapackages-local-openjdk25 +BuildRequires: aqute-bnd +BuildRequires: aqute-bndlib +BuildRequires: systemd +BuildRequires: tomcat-jakartaee-migration -Requires: jakarta-commons-daemon -Requires: java >= 1:1.6.0 -Requires: procps +Requires: (java-25-headless or java-25) +Requires: javapackages-tools Requires: %{name}-lib = %{epoch}:%{version}-%{release} -Requires(pre): shadow-utils -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(post): /lib/lsb/init-functions -Requires(preun): /lib/lsb/init-functions +%if 0%{?fedora} || 0%{?rhel} > 7 +Recommends: tomcat-native >= %{native_version} +%endif +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd + +# added after log4j sub-package was removed +Provides: %{name}-log4j = %{epoch}:%{version}-%{release} %description Tomcat is the servlet container that is used in the official Reference @@ -125,7 +120,6 @@ 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} @@ -133,89 +127,60 @@ Requires: %{name} = %{epoch}:%{version}-%{release} 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 jsvc -Group: System Environment/Daemons -Summary: Apache jsvc wrapper for Apache Tomcat as separate service -Requires: %{name} = %{epoch}:%{version}-%{release} -Requires: jakarta-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 +Summary: Apache Tomcat JavaServer Pages v%{jspspec} API Implementation Classes Provides: jsp = %{jspspec} -Provides: jsp22 Requires: %{name}-servlet-%{servletspec}-api = %{epoch}:%{version}-%{release} Requires: %{name}-el-%{elspec}-api = %{epoch}:%{version}-%{release} -Requires(post): chkconfig -Requires(postun): chkconfig +Obsoletes: %{name}-jsp-2.3-api < 1:9.1 +Provides: %{name}-jsp-2.3-api = %{?epoch:%{epoch}:}%{version}-%{release} + %description jsp-%{jspspec}-api -Apache Tomcat JSP API implementation classes. - +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 +Requires: ecj >= 4.20 +Recommends: tomcat-jakartaee-migration 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 +Summary: Apache Tomcat Java Servlet v%{servletspec} API Implementation Classes Provides: servlet = %{servletspec} -Provides: servlet6 -Provides: servlet3 -Requires(post): chkconfig -Requires(postun): chkconfig +Obsoletes: %{name}-servlet-4.0-api < 1:9.1 +Provides: %{name}-servlet-4.0-api = %{?epoch:%{epoch}:}%{version}-%{release} %description servlet-%{servletspec}-api -Apache Tomcat Servlet API implementation classes. +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} +Summary: Apache Tomcat Expression Language v%{elspec} API Implementation Classes Provides: el_api = %{elspec} -Requires(post): chkconfig -Requires(postun): chkconfig +Obsoletes: %{name}-el-3.0-api < 1:9.1 +Provides: %{name}-el-3.0-api = %{?epoch:%{epoch}:}%{version}-%{release} %description el-%{elspec}-api -Expression Language 1.0. +Apache Tomcat EL API Implementation Classes. %package webapps -Group: Applications/Internet -Summary: The ROOT and examples web applications for Apache Tomcat +Summary: The ROOT web application 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. +The ROOT web application for Apache Tomcat. %prep %setup -q -n %{packdname} @@ -223,107 +188,90 @@ The ROOT and examples web applications for Apache Tomcat. 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 -%patch2 -p0 -%patch3 -p0 -%patch4 -p0 -%patch5 -p0 +%patch 0 -p0 +%patch 1 -p0 +%patch 2 -p0 +%patch 3 -p0 +%patch 4 -p0 +%patch 5 -p0 +%patch 6 -p0 + +# Remove webservices naming resources as it's generally unused +%{__rm} -rf java/org/apache/naming/factory/webservices + +# Configure maven files +%mvn_package ":tomcat-el-api" tomcat-el-api +%mvn_alias "org.apache.tomcat:tomcat-el-api" "jakarta.servlet:jakarta.servlet-api" +%mvn_package ":tomcat-jsp-api" tomcat-jsp-api +%mvn_alias "org.apache.tomcat:tomcat-jsp-api" "jakarta.servlet:jakarta.servlet.jsp" +%mvn_package ":tomcat-servlet-api" tomcat-servlet-api + +# Create a sysusers.d config file +cat >tomcat.sysusers.conf < ${RPM_BUILD_ROOT}%{confdir}/conf.d/README %{__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}%{_localstatedir}/lib/tomcats %{__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} +%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_libexecdir}/%{name} # 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 conf/*.{policy,properties,xml,xsd} ${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" \ @@ -331,25 +279,41 @@ popd > ${RPM_BUILD_ROOT}%{confdir}/%{name}.conf %{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ - -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE3} \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE2} \ > ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/%{name} -%{__install} -m 0644 %{SOURCE2} \ - ${RPM_BUILD_ROOT}%{_initrddir}/%{name} -%{__install} -m 0644 %{SOURCE4} \ +%{__install} -m 0755 %{SOURCE3} \ ${RPM_BUILD_ROOT}%{_sbindir}/%{name} -%{__install} -m 0644 %{SOURCE16} \ - ${RPM_BUILD_ROOT}%{_sbindir}/%{name}-jsvc -%{__ln_s} %{name} ${RPM_BUILD_ROOT}%{_sbindir}/d%{name} -%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE5} \ - > ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name} +%{__install} -m 0644 %{SOURCE7} \ + ${RPM_BUILD_ROOT}%{_unitdir}/%{name}.service +%{__sed} -e "s|\@\@\@TCLOG\@\@\@|%{logdir}|g" %{SOURCE4} \ + > ${RPM_BUILD_ROOT}%{_sysconfdir}/logrotate.d/%{name}.disabled %{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ - -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE5} \ > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-digest %{__sed} -e "s|\@\@\@TCHOME\@\@\@|%{homedir}|g" \ -e "s|\@\@\@TCTEMP\@\@\@|%{tempdir}|g" \ - -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE7} \ + -e "s|\@\@\@LIBDIR\@\@\@|%{_libdir}|g" %{SOURCE6} \ > ${RPM_BUILD_ROOT}%{_bindir}/%{name}-tool-wrapper + +%{__install} -m 0644 %{SOURCE8} \ + ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/functions +%{__install} -m 0755 %{SOURCE9} \ + ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/preamble +%{__install} -m 0755 %{SOURCE10} \ + ${RPM_BUILD_ROOT}%{_libexecdir}/%{name}/server +%{__install} -m 0644 %{SOURCE11} \ + ${RPM_BUILD_ROOT}%{_unitdir}/%{name}@.service + +%{__install} -m 0644 %{SOURCE12} ${RPM_BUILD_ROOT}%{confdir}/conf.d/ + +# Substitute libnames in catalina-tasks.xml +sed -i \ + "s,el-api.jar,%{name}-el-%{elspec}-api.jar,; + s,servlet-api.jar,%{name}-servlet-%{servletspec}-api.jar,; + s,jsp-api.jar,%{name}-jsp-%{jspspec}-api.jar,;" \ + ${RPM_BUILD_ROOT}%{bindir}/catalina-tasks.xml + # create jsp and servlet API symlinks pushd ${RPM_BUILD_ROOT}%{_javadir} %{__mv} %{name}/jsp-api.jar %{name}-jsp-%{jspspec}-api.jar @@ -362,22 +326,18 @@ popd pushd output/build %{_bindir}/build-jar-repository lib 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 + %{_bindir}/build-jar-repository lib tomcat-jakartaee-migration 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 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 ./ + %{__ln_s} ../../java/%{name}-jsp-%{jspspec}-api.jar . + %{__ln_s} ../../java/%{name}-servlet-%{servletspec}-api.jar . + %{__ln_s} ../../java/%{name}-el-%{elspec}-api.jar . + %{__ln_s} $(build-classpath ecj/ecj) jasper-jdt.jar + %{__ln_s} $(build-classpath tomcat-jakartaee-migration/jakartaee-migration) jakartaee-migration.jar + + cp ../../%{name}/bin/tomcat-juli.jar . popd # symlink to the FHS locations where we've installed things @@ -390,132 +350,94 @@ pushd ${RPM_BUILD_ROOT}%{homedir} %{__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 ''>context.xml -echo ''>>context.xml +# Install the maven metadata for the spec impl artifacts as other projects use them +#%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_mavenpomdir} +pushd res/maven + for pom in *.pom; do + # fix-up version in all pom files + sed -i 's/@MAVEN.DEPLOY.VERSION@/%{version}/g' $pom + done 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 +# Configure and install maven artifacts +%mvn_artifact res/maven/tomcat-el-api.pom output/build/lib/el-api.jar +%mvn_artifact res/maven/tomcat-jsp-api.pom output/build/lib/jsp-api.jar +%mvn_artifact res/maven/tomcat-servlet-api.pom output/build/lib/servlet-api.jar -%add_to_maven_depmap javax.servlet servlet-api %{servletspec} JPP %{name}-servlet-%{servletspec}-api -%add_to_maven_depmap org.mortbay.jetty servlet-api %{servletspec} JPP %{name}-servlet-%{servletspec}-api -mv %{buildroot}%{_mavendepmapfragdir}/%{name} %{buildroot}%{_mavendepmapfragdir}/%{name}-servlet-api +%mvn_file org.apache.tomcat:tomcat-annotations-api tomcat/annotations-api +%mvn_artifact res/maven/tomcat-annotations-api.pom ${RPM_BUILD_ROOT}%{libdir}/annotations-api.jar +%mvn_artifact res/maven/tomcat-api.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-api.jar +%mvn_file org.apache.tomcat:tomcat-catalina-ant tomcat/catalina-ant +%mvn_artifact res/maven/tomcat-catalina-ant.pom ${RPM_BUILD_ROOT}%{libdir}/catalina-ant.jar +%mvn_file org.apache.tomcat:tomcat-catalina-ha tomcat/catalina-ha +%mvn_artifact res/maven/tomcat-catalina-ha.pom ${RPM_BUILD_ROOT}%{libdir}/catalina-ha.jar +%mvn_file org.apache.tomcat:tomcat-catalina tomcat/catalina +%mvn_artifact res/maven/tomcat-catalina.pom ${RPM_BUILD_ROOT}%{libdir}/catalina.jar +%mvn_artifact res/maven/tomcat-coyote.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-coyote.jar +%mvn_artifact res/maven/tomcat-dbcp.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-dbcp.jar +%mvn_artifact res/maven/tomcat-i18n-cs.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-cs.jar +%mvn_artifact res/maven/tomcat-i18n-de.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-de.jar +%mvn_artifact res/maven/tomcat-i18n-es.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-es.jar +%mvn_artifact res/maven/tomcat-i18n-fr.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-fr.jar +%mvn_artifact res/maven/tomcat-i18n-ja.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-ja.jar +%mvn_artifact res/maven/tomcat-i18n-ko.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-ko.jar +%mvn_artifact res/maven/tomcat-i18n-pt-BR.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-pt-BR.jar +%mvn_artifact res/maven/tomcat-i18n-ru.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-ru.jar +%mvn_artifact res/maven/tomcat-i18n-zh-CN.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-i18n-zh-CN.jar +%mvn_file org.apache.tomcat:tomcat-jasper-el tomcat/jasper-el +%mvn_artifact res/maven/tomcat-jasper-el.pom ${RPM_BUILD_ROOT}%{libdir}/jasper-el.jar +%mvn_file org.apache.tomcat:tomcat-jasper tomcat/jasper +%mvn_artifact res/maven/tomcat-jasper.pom ${RPM_BUILD_ROOT}%{libdir}/jasper.jar +%mvn_file org.apache.tomcat:tomcat-jaspic-api tomcat/jaspic-api +%mvn_artifact res/maven/tomcat-jaspic-api.pom ${RPM_BUILD_ROOT}%{libdir}/jaspic-api.jar +%mvn_artifact res/maven/tomcat-jdbc.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-jdbc.jar +%mvn_artifact res/maven/tomcat-jni.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-jni.jar +%mvn_artifact res/maven/tomcat-juli.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-juli.jar +%mvn_file org.apache.tomcat:tomcat-ssi tomcat/catalina-ssi +%mvn_artifact res/maven/tomcat-ssi.pom ${RPM_BUILD_ROOT}%{libdir}/catalina-ssi.jar +%mvn_file org.apache.tomcat:tomcat-storeconfig tomcat/catalina-storeconfig +%mvn_artifact res/maven/tomcat-storeconfig.pom ${RPM_BUILD_ROOT}%{libdir}/catalina-storeconfig.jar +%mvn_file org.apache.tomcat:tomcat-tribes tomcat/catalina-tribes +%mvn_artifact res/maven/tomcat-tribes.pom ${RPM_BUILD_ROOT}%{libdir}/catalina-tribes.jar +%mvn_artifact res/maven/tomcat-util-scan.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-util-scan.jar +%mvn_artifact res/maven/tomcat-util.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-util.jar +%mvn_file org.apache.tomcat:tomcat-websocket-api tomcat/websocket-api +%mvn_artifact res/maven/tomcat-websocket-api.pom ${RPM_BUILD_ROOT}%{libdir}/websocket-api.jar +%mvn_artifact res/maven/tomcat-websocket.pom ${RPM_BUILD_ROOT}%{libdir}/tomcat-websocket.jar +%mvn_artifact res/maven/tomcat-websocket-client-api.pom ${RPM_BUILD_ROOT}%{libdir}/websocket-client-api.jar +%mvn_artifact res/maven/tomcat.pom +%mvn_install -# Install the maven metadata -%{__install} -d -m 0755 ${RPM_BUILD_ROOT}%{_mavenpomdir} -pushd output/dist/src/res/maven - -#we won't install dhcp, juli-adapters and juli-extras pom files -for pom in tomcat-annotations-api.pom tomcat-catalina.pom tomcat-jasper-el.pom tomcat-jasper.pom \ - tomcat-catalina-ha.pom tomcat-api.pom; do - %{__cp} -a $pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.$pom - base=`basename $pom .pom` - %add_to_maven_depmap org.apache.tomcat $base %{version} JPP $base -done - -# servlet-api jsp-api and el-api are not in tomcat subdir, since they are widely re-used elsewhere -for pom in tomcat-jsp-api.pom tomcat-servlet-api.pom tomcat-el-api.pom; do - %{__cp} -a $pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP-$pom - base=`basename $pom .pom` - %add_to_maven_depmap org.apache.tomcat $base JPP %{name}-$base - %{__cp} -a $pom ${RPM_BUILD_ROOT}%{_mavendepmapfragdir}/$base -done - - -# two special pom where jar files have different names -%{__cp} -a tomcat-tribes.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-catalina-tribes.pom -%add_to_maven_depmap org.apache.tomcat tribes %{version} JPP/%{name} catalina-tribes - -%{__cp} -a tomcat-coyote.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-coyote.pom -%add_to_maven_depmap org.apache.tomcat coyote %{version} JPP/%{name} tomcat-coyote - -%{__cp} -a tomcat-juli.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-juli.pom -%add_to_maven_depmap org.apache.tomcat juli %{version} JPP/%{name} tomcat-juli - -%{__cp} -a tomcat-util.pom ${RPM_BUILD_ROOT}%{_mavenpomdir}/JPP.%{name}-tomcat-util.pom -%add_to_maven_depmap org.apache.tomcat util %{version} JPP/%{name} tomcat-util - -# 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 </dev/null || : -%{_sbindir}/useradd -c "Apache Tomcat" -u %{tcuid} -g tomcat \ - -s /bin/nologin -r -d %{homedir} tomcat 2>/dev/null || : - -%post -/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 +install -m0644 -D tomcat.sysusers.conf %{buildroot}%{_sysusersdir}/tomcat.conf +%post +# install but don't activate +%systemd_post %{name}.service %preun # clean tempdir and workdir on removal or upgrade %{__rm} -rf %{workdir}/* %{tempdir}/* -if [ "$1" = "0" ]; then - %{_initrddir}/%{name} stop >/dev/null 2>&1 - /sbin/chkconfig --del %{name} -fi +%systemd_preun %{name}.service -%postun jsp-%{jspspec}-api -if [ "$1" = "0" ]; then - %{_sbindir}/update-alternatives --remove jsp \ - %{_javadir}/%{name}-jsp-%{jspspec}-api.jar -fi +%postun +%systemd_postun_with_restart %{name}.service -%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 - - -%files +%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}/d%{name} %attr(0755,root,root) %{_sbindir}/%{name} -%attr(0755,root,root) %{_initrddir}/%{name} -%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} +%attr(0644,root,root) %{_unitdir}/%{name}.service +%attr(0644,root,root) %{_unitdir}/%{name}@.service +%attr(0755,root,root) %dir %{_libexecdir}/%{name} +%attr(0755,root,root) %dir %{_localstatedir}/lib/tomcats +%attr(0644,root,root) %{_libexecdir}/%{name}/functions +%attr(0755,root,root) %{_libexecdir}/%{name}/preamble +%attr(0755,root,root) %{_libexecdir}/%{name}/server %attr(0644,root,root) %config(noreplace) %{_sysconfdir}/sysconfig/%{name} +%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/logrotate.d/%{name}.disabled %attr(0755,root,tomcat) %dir %{basedir} %attr(0755,root,tomcat) %dir %{confdir} @@ -523,8 +445,6 @@ fi %attr(0770,tomcat,root) %dir %{logdir} %defattr(0664,root,tomcat,0770) -%attr(0660,tomcat,tomcat) %verify(not size md5 mtime) %{logdir}/catalina.out -%attr(0644,tomcat,tomcat) %verify(not size md5 mtime) %{_localstatedir}/run/%{name}.pid %attr(0770,root,tomcat) %dir %{cachedir} %attr(0770,root,tomcat) %dir %{tempdir} %attr(0770,root,tomcat) %dir %{workdir} @@ -533,15 +453,20 @@ fi %attr(0775,root,tomcat) %dir %{appdir} %attr(0775,root,tomcat) %dir %{confdir}/Catalina %attr(0775,root,tomcat) %dir %{confdir}/Catalina/localhost +%attr(0755,root,tomcat) %dir %{confdir}/conf.d +%{confdir}/conf.d/README +%{confdir}/conf.d/module-start-up-parameters.conf %config(noreplace) %{confdir}/%{name}.conf %config(noreplace) %{confdir}/*.policy %config(noreplace) %{confdir}/*.properties %config(noreplace) %{confdir}/context.xml %config(noreplace) %{confdir}/server.xml %attr(0640,root,tomcat) %config(noreplace) %{confdir}/tomcat-users.xml +%attr(0664,root,tomcat) %{confdir}/tomcat-users.xsd +%attr(0664,root,tomcat) %config(noreplace) %{confdir}/jaspic-providers.xml +%attr(0664,root,tomcat) %{confdir}/jaspic-providers.xsd %config(noreplace) %{confdir}/web.xml %dir %{homedir} -%{_prefix}/lib/tmpfiles.d/%{name}.conf %{bindir}/bootstrap.jar %{bindir}/catalina-tasks.xml %{homedir}/lib @@ -550,6 +475,7 @@ fi %{homedir}/work %{homedir}/logs %{homedir}/conf +%{_sysusersdir}/tomcat.conf %files admin-webapps %defattr(0664,root,tomcat,0755) @@ -557,204 +483,532 @@ fi %{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}-jsp-api - -%files lib -%defattr(-,root,root,-) -%{libdir} +%files lib -f .mfiles +%dir %{libdir} +%{libdir}/*.jar +%{_javadir}/*.jar %{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}-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 +%exclude %{libdir}/%{name}-servlet-%{servletspec}*.jar +%exclude %{libdir}/%{name}-jsp-%{jspspec}*.jar +%exclude %{_javadir}/%{name}-servlet-%{servletspec}*.jar +%exclude %{_javadir}/%{name}-el-%{elspec}-api.jar +%exclude %{_javadir}/%{name}-jsp-%{jspspec}*.jar +%exclude %{_javadir}/%{name}-servlet-api.jar +%exclude %{_javadir}/%{name}-el-api.jar +%exclude %{_javadir}/%{name}-jsp-api.jar +%exclude %{_jnidir}/* -%files servlet-%{servletspec}-api -%defattr(-,root,root,-) +%files jsp-%{jspspec}-api -f .mfiles-tomcat-jsp-api +%{_javadir}/%{name}-jsp-%{jspspec}*.jar +%{libdir}/%{name}-jsp-%{jspspec}*.jar +%{_javadir}/%{name}-jsp-api.jar + +%files servlet-%{servletspec}-api -f .mfiles-tomcat-servlet-api %doc LICENSE %{_javadir}/%{name}-servlet-%{servletspec}*.jar +%{libdir}/%{name}-servlet-%{servletspec}*.jar %{_javadir}/%{name}-servlet-api.jar -%{_mavendepmapfragdir}/%{name}-servlet-api -%{_mavenpomdir}/JPP-%{name}-servlet-api.pom -%files el-%{elspec}-api -%defattr(-,root,root,-) +%files el-%{elspec}-api -f .mfiles-tomcat-el-api %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}-el-api - +%{_javadir}/%{name}-el-api.jar %files webapps %defattr(0644,tomcat,tomcat,0755) %{appdir}/ROOT -%{appdir}/examples -%{appdir}/sample - -%files jsvc -%defattr(755,root,root,0755) -%{_sbindir}/%{name}-jsvc %changelog -* Wed Oct 28 2020 Hui Wang - 1:7.0.106-1 -- Update to 7.0.106 +* Thu Sep 25 2025 Adam Williamson - 1:10.1.46-2 +- Drop now-unnecessary version bounds in java requirements +- Specify java-25-headless, not java-headless (#2398212) -* Wed Jul 15 2020 Hui Wang - 1:7.0.105-1 -- Update to 7.0.105 +* Fri Sep 12 2025 Dimitris Soumis - 1:10.1.46-1 +- Update to version 10.1.46 -* Thu Jun 04 2020 Hui Wang - 1:7.0.104-1 -- Update to 7.0.104 +* Tue Aug 19 2025 Dimitris Soumis - 1:10.1.43-7 +- Add virtual provides to resolve installability issues -* Wed Apr 22 2020 Coty Sutherland - 1:7.0.103-1 -- Update to 7.0.103 +* Thu Aug 14 2025 Dimitris Soumis - 1:10.1.43-6 +- Rebuilt for the side tag f43-build-side-116701 -* Thu Mar 12 2020 Coty Sutherland - 1:7.0.100-2 -- Related: rhbz#1806398 Undo changes in defaults for AJP connector (CVE-2020-1938) to prevent breakage, please update your configuration +* Tue Jul 29 2025 Dimitris Soumis - 1:10.1.43-5 +- Rebuilt for the side tag f43-build-side-114811 -* Thu Mar 05 2020 Coty Sutherland - 1:7.0.100-1 -- Update to 7.0.100 -- Resolves: rhbz#1806805 - CVE-2020-1938 tomcat: Apache Tomcat AJP File Read/Inclusion Vulnerability +* Fri Jan 10 2025 Dimitris Soumis - 1:10.1.34-1 +- Update to version 10.1.34 -* Thu Feb 06 2020 Coty Sutherland - 1:7.0.99-1 -- Update to 7.0.99 +* Mon Dec 09 2024 Packit - 1:9.0.98-1 +- Update to version 9.0.98 +- Resolves: rhbz#2331168 -* Thu Sep 26 2019 Coty Sutherland - 1:7.0.96-1 -- Update to 7.0.96 -- Resolves: rhbz#1466026 JVM options are duplicated after service restart +* Mon Dec 02 2024 Dimitris Soumis - 1:9.0.97-1 +- Update to version 9.0.97 +- Resolves: rhbz#2327090 -* Tue Jun 18 2019 Coty Sutherland - 1:7.0.94-1 -- Update to 7.0.94 -- Resolves: rhbz#1713280 - CVE-2019-0221 tomcat: XSS in SSI printenv +* Tue Oct 08 2024 Packit - 1:9.0.96-1 +- Update to version 9.0.96 +- Resolves: rhbz#2317237 -* Thu Dec 13 2018 Coty Sutherland - 1:7.0.92-1 -- Update to 7.0.92 +* Tue Sep 17 2024 Packit - 1:9.0.95-1 +- Update to version 9.0.95 +- Resolves: rhbz#2312858 + +* Tue Sep 10 2024 Packit - 1:9.0.94-1 +- Update to version 9.0.94 +- Resolves: rhbz#2311320 + +* Tue Aug 06 2024 Packit - 1:9.0.93-1 +- Update to version 9.0.93 +- Resolves: rhbz#2303026 + +* Wed Jul 24 2024 Miroslav Suchý - 1:9.0.91-1 +- convert license to SPDX + +* Thu Jul 11 2024 Dimitris Soumis - 1:9.0.91-1 +- Update to 9.0.91 + +* Thu Jun 20 2024 Dimitris Soumis - 1:9.0.90-1 +- Update to 9.0.90 + +* Fri Jun 7 2024 Dimitris Soumis - 1:9.0.89-1 +- Update to 9.0.89 + +* Thu Feb 29 2024 Adam Williamson - 1:9.0.83-4 +- Accept java-21-headless as one of the alternatives for java + +* Tue Feb 27 2024 Jiri Vanek - 1:9.0.83-3 +- Rebuilt for java-21-openjdk as system jdk + +* Sat Jan 27 2024 Fedora Release Engineering - 1:9.0.83-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Dec 01 2023 Hui Wang - 1:9.0.83-1 +- Update to 9.0.83 + +* Mon Oct 16 2023 Hui Wang - 1:9.0.82-1 +- Update to 9.0.82 +- Resolves: rhbz#2244333 Wrong dbcp class in tomcat 9 + +* Wed Sep 13 2023 Hui Wang - 1:9.0.80-1 +- Update to 9.0.80 +- Fix java version + +* Fri Aug 04 2023 Hui Wang - 1:9.0.78-4 +- Fix files permission + +* Wed Jul 26 2023 Hui Wang - 1:9.0.78-3 +- Exclude jnidir in the lib subpackage + +* Tue Jul 25 2023 Hui Wang - 1:9.0.78-2 +- Resolves: rhbz#2224318 There are duplicated jars in the tomcat lib subpackage + +* Tue Jul 25 2023 Hui Wang - 1:9.0.78-1 +- Resolves: rhbz#2224318 There are duplicated jars in the tomcat lib-subpackage +- Update to 9.0.78 + +* Sat Jul 22 2023 Fedora Release Engineering - 1:9.0.76-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Tue Jun 20 2023 Hui Wang - 1:9.0.76-2 +- Resolves: rhbz#2189672 Missing Tomcat POM files in Fedora Rawhide +- Remove JDTCompiler patch because ecj has been update +- Update to 9.0.76 +- Resolves: rhbz#2188218 Link bin/tomcat-juli.jar to /usr/share/java +- Move tomcat-jsp-2.3-api.jar,tomcat-servlet-4.0-api.jar and tomcat-el-api.jar to the subpackages + +* Thu Jun 08 2023 Hui Wang - 1:9.0.75-1 +- Update to 9.0.75 + +* Fri Mar 17 2023 Hui Wang - 1:9.0.73-1 +- Update to 9.0.73 + +* Sun Jan 29 2023 Hui Wang - 1:9.0.71-1 +- Update to 9.0.71 +- Remove osgi-annotations patch +- Add bnd-annotation dependency which is in bndlib package + +* Sat Jan 21 2023 Fedora Release Engineering - 1:9.0.70-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Fri Jan 13 2023 Hui Wang - 1:9.0.70-1 +- Update to 9.0.70 + +* Thu Nov 03 2022 Hui Wang - 1:9.0.68-1 +- Update to 9.0.68 + +* Thu Jul 21 2022 Hui Wang - 1:9.0.65-1 +- Update to 9.0.65 + +* Fri Jul 08 2022 Jiri Vanek - 1:9.0.64-2 +- Rebuilt for Drop i686 JDKs + +* Tue Jun 21 2022 Hui Wang - 1:9.0.64-1 +- Update to 9.0.64 +- Add osgi-annotations dependency back + +* Thu Mar 10 2022 Coty Sutherland - 1:9.0.59-3 +- Related: rhbz#2061424 Adjust fix so that it uses the proper env var + +* Tue Mar 08 2022 Coty Sutherland - 1:9.0.59-2 +- Resolves: rhbz#2061424 Add Java 9 start-up parameters to allow reflection + +* Wed Mar 02 2022 Sonia Xu - 1:9.0.59-1 +- Update to 9.0.59 +- Resolves: rhbz#2047419 - CVE-2022-23181 tomcat: local privilege escalation vulnerability + +* Sat Feb 05 2022 Jiri Vanek - 1:9.0.56-3 +- Rebuilt for java-17-openjdk as system jdk + +* Sat Jan 22 2022 Fedora Release Engineering - 1:9.0.56-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Thu Dec 09 2021 Hui Wang - 1:9.0.56-1 +- Update to 9.0.56 + +* Tue Oct 12 2021 Hui Wang - 1:9.0.55-1 +- Update to 9.0.55 + +* Tue Oct 12 2021 Hui Wang - 1:9.0.54-1 +- Update to 9.0.54 + +* Thu Sep 16 2021 Hui Wang - 1:9.0.53-1 +- Update to 9.0.53 + +* Wed Aug 18 2021 Hui Wang - 1:9.0.52-1 +- Update to 9.0.52 + +* Fri Jul 23 2021 Fedora Release Engineering - 1:9.0.50-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jul 06 2021 Hui Wang - 1:9.0.50-1 +- Update to 9.0.50 + +* Sat Jun 05 2021 Coty Sutherland - 1:9.0.45-4 +- Add back logrotate config file per devel list request +- Add mvn virtual provides back for the servlet, el, and jsp spec impls + +* Fri Jun 04 2021 Coty Sutherland - 1:9.0.45-3 +- Drop geronimo-jaxrpc, which provided the webservices naming factory resources that are generally unused + +* Thu Jun 03 2021 Coty Sutherland - 1:9.0.45-2 +- Remove examples webapps from subpackage +- Updates to javapackages-local removed %%add_maven_depmap which broke the build, + so I removed the maven artifacts as they aren't very useful anyway +- Drop JSVC support as it's not very useful these days +- Drop geronimo-saaj as it's no longer required + +* Thu Apr 22 2021 Hui Wang - 1:9.0.45-1 +- Update to 9.0.45 + +* Thu Mar 18 2021 Hui Wang - 1:9.0.44-1 +- Update to 9.0.44 + +* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek - 1:9.0.43-2 +- Rebuilt for updated systemd-rpm-macros + See https://pagure.io/fesco/issue/2583. + +* Wed Feb 03 2021 Hui Wang - 1:9.0.43-1 +- Update to 9.0.43 + +* Wed Jan 27 2021 Fedora Release Engineering - 1:9.0.41-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Dec 09 2020 Hui Wang - 1:9.0.41-1 +- Update to 9.0.41 + +* Wed Nov 18 2020 Hui Wang - 1:9.0.40-1 +- Update to 9.0.40 + +* Mon Oct 12 2020 Hui Wang - 1:9.0.39-1 +- Update to 9.0.39 + +* Wed Sep 16 2020 Hui Wang - 1:9.0.38-1 +- Update to 9.0.38 + +* Wed Jul 29 2020 Fedora Release Engineering - 1:9.0.37-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jul 24 2020 Coty Sutherland - 1:9.0.37-3 +- Related: rhbz#1857043 Temporarily remove OSGi metadata from tomcat jars + +* Mon Jul 20 2020 Coty Sutherland - 1:9.0.37-2 +- Resolves: rhbz#1857043 Add patch to reinclude o.a.t.util.net.jsse and o.a.t.util.moduler.modules in tomcat-coyote.jar + +* Mon Jul 13 2020 Coty Sutherland - 1:9.0.37-1 +- Update to 9.0.37 + +* Sat Jul 11 2020 Jiri Vanek - 1:9.0.36-2 +- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11 + +* Wed Jun 10 2020 Hui Wang - 1:9.0.36-1 +- Upgrade to 9.0.36 + +* Sun May 31 2020 Hui Wang - 1:9.0.35-2 +- Upgrade to 9.0.35 + +* Wed Apr 22 2020 Coty Sutherland - 1:9.0.34-2 +- Add updated catalina.policy patch to allow ECJ usage under the Security Manager + +* Tue Apr 21 2020 Coty Sutherland - 1:9.0.34-1 +- Update to 9.0.34 + +* Thu Mar 05 2020 Coty Sutherland - 1:9.0.31-1 +- Update to 9.0.31 +- Resolves: rhbz#1806398 - CVE-2020-1938 tomcat: Apache Tomcat AJP File Read/Inclusion Vulnerability + +* Fri Jan 31 2020 Fedora Release Engineering - 1:9.0.30-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Fri Dec 20 2019 Coty Sutherland - 1:9.0.30-1 +- Update to 9.0.30 + +* Thu Sep 26 2019 Coty Sutherland - 1:9.0.26-2 +- Resolves: rhbz#1510522 man page uid and gid mismatch for service accounts + +* Thu Sep 26 2019 Coty Sutherland - 1:9.0.26-1 +- Update to 9.0.26 +- Resolves: rhbz#1523112 tomcat systemd does not cope with - in service names +- Resolves: rhbz#1510896 Problem to start tomcat with a user whose group has a name different to the user + +* Sat Jul 27 2019 Fedora Release Engineering - 1:9.0.21-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Wed Jul 17 2019 Coty Sutherland - 1:9.0.21-2 +- Update build-classpath calls to ECJ to specify the JAR we want to use + +* Tue Jun 18 2019 Coty Sutherland - 1:9.0.21-1 +- Update to 9.0.21 + +* Tue Apr 02 2019 Coty Sutherland - 1:9.0.13-4 +- Remove javadoc subpackage to drop the jpackage-utils dependency + +* Wed Feb 20 2019 Coty Sutherland - 1:9.0.13-3 +- Remove OSGi MANIFEST files, these are now included in the upstream Tomcat distribution (as of 9.0.10) +- Remove unused dependencies, apache-commons-collections, apache-commons-daemon, apache-commons-pool, junit + +* Sun Feb 03 2019 Fedora Release Engineering - 1:9.0.13-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Thu Dec 13 2018 Coty Sutherland - 1:9.0.13-1 +- Update to 9.0.13 - Resolves: rhbz#1636513 - CVE-2018-11784 tomcat: Open redirect in default servlet -* Tue Jul 31 2018 Coty Sutherland - 1:7.0.90-1 -- Update to 7.0.90 -- Resolves: rhbz#1607586 - CVE-2018-8034 tomcat: host name verification missing in WebSocket client -- Resolves: rhbz#1579612 - CVE-2018-8014 tomcat: Insecure defaults in CORS filter enable 'supportsCredentials' for all origins +* Sun Oct 14 2018 Peter Robinson 1:9.0.10-2 +- Drop legcy sys-v bits + +* Tue Jul 31 2018 Coty Sutherland - 1:9.0.10-1 +- Update to 9.0.10 - Resolves: rhbz#1624929 - CVE-2018-1336 tomcat: A bug in the UTF-8 decoder can lead to DoS +- Resolves: rhbz#1579612 - CVE-2018-8014 tomcat: Insecure defaults in CORS filter enable 'supportsCredentials' for all origins +- Resolves: rhbz#1607586 - CVE-2018-8034 tomcat: host name verification missing in WebSocket client +- Resolves: rhbz#1607584 - CVE-2018-8037 tomcat: Due to a mishandling of close in NIO/NIO2 connectors user sessions can get mixed up -* Tue May 01 2018 Coty Sutherland - 1:7.0.86-1 -- Update to 7.0.86 +* Sat Jul 14 2018 Fedora Release Engineering - 1:9.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild -* Fri Mar 16 2018 Coty Sutherland - 1:7.0.85-1 -- Update to 7.0.85 -- Resolves: rhbz#1548291 CVE-2018-1304 tomcat: Incorrect handling of empty string URL in security constraints can lead to unitended exposure of resources -- Resolves: rhbz#1548283 CVE-2018-1305 tomcat: Late application of security constraints can lead to resource exposure for unauthorised users +* Tue May 01 2018 Coty Sutherland - 1:9.0.7-1 +- Update to 9.0.7 -* Thu Feb 01 2018 Coty Sutherland - 0:7.0.84-1 -- Update to 7.0.84 +* Thu Mar 15 2018 Coty Sutherland - 1:8.5.29-1 +- Update to 8.5.29 +- Resolves: rhbz#1548290 CVE-2018-1304 tomcat: Incorrect handling of empty string URL in security constraints can lead to unitended exposure of resources +- Resolves: rhbz#1548284 CVE-2018-1305 tomcat: Late application of security constraints can lead to resource exposure for unauthorised users -* Wed Oct 04 2017 Coty Sutherland - 0:7.0.82-1 -- Update to 7.0.82 -- Resolves: rhbz#1497681 CVE-2017-12617 tomcat: Remote Code Execution bypass for CVE-2017-12615 +* Fri Feb 09 2018 Igor Gnatenko - 1:8.0.49-2 +- Escape macros in %%changelog -* Mon Aug 21 2017 Coty Sutherland - 0:7.0.81-1 -- Update to 7.0.81 -- Resolves: rhbz#1480621 CVE-2017-7674 tomcat: Cache Poisoning +* Thu Feb 01 2018 Coty Sutherland - 1:8.0.49-1 +- Update to 8.0.49 -* Fri Jun 09 2017 Coty Sutherland - 0:7.0.78-1 -- Update to 7.0.78 -- Resolves: rhbz#1459161 CVE-2017-5664 tomcat: Security constrained bypass in error page mechanism +* Tue Dec 12 2017 Merlin Mathesius - 1:8.0.47-3 +- Cleanup spec file conditionals -* Tue Apr 11 2017 Coty Sutherland - 0:7.0.77-1 -- Update to 7.0.77 +* Tue Oct 24 2017 Troy Dawson - 1:8.0.47-2 +- Change "zip -u" to "zip" +- Resolves: rhbz#1495241 [tomcat] zip -u in spec file causes race condition -* Fri Mar 31 2017 Coty Sutherland - 0:7.0.76-1 -- Update to 7.0.76 +* Wed Oct 04 2017 Coty Sutherland - 1:8.0.47-1 +- Update to 8.0.47 +- Resolves: rhbz#1497682 CVE-2017-12617 tomcat: Remote Code Execution bypass for CVE-2017-12615 -* Thu Feb 16 2017 Coty Sutherland - 0:7.0.75-1 -- Update to 7.0.75 -- Resolves: rhbz#1420223 CVE-2016-6325 tomcat: tomcat writable config files allow privilege escalation -- Resolves: rhbz#1372789 init script status command gives incorrect result +* Mon Aug 21 2017 Coty Sutherland - 1:8.0.46-1 +- Update to 8.0.46 +- Resolves: rhbz#1480620 CVE-2017-7674 tomcat: Cache Poisoning -* Tue Nov 29 2016 Coty Sutherland - 0:7.0.73-1 -- Update to 7.0.73 -- Resolves: rhbz#1397495 CVE-2016-6816 CVE-2016-8735 tomcat: various flaws +* Thu Jul 27 2017 Fedora Release Engineering - 1:8.0.44-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild -* Fri Sep 23 2016 Coty Sutherland 0:7.0.72-1 -- Resolves: rhbz#1375582 CVE-2016-5388 Tomcat: CGI sets environmental variable based on user supplied Proxy request header -- Resolves: rhbz#1376718 CVE-2016-1240 tomcat: Local privilege escalation via unsafe file handling in the Tomcat init script -- Resolves: rhbz#1379170 jsvc script is broken +* Fri Jun 09 2017 Coty Sutherland - 1:8.0.44-1 +- Resolves: rhbz#1459160 CVE-2017-5664 tomcat: Security constrained bypass in error page mechanism -* Wed Aug 17 2016 Coty Sutherland 0:7.0.70-3 -- Resolves: rhbz#1170797 remove tomcat6 dependency on redhat-lsb (and any other unnecessary ones) +* Tue Apr 11 2017 Coty Sutherland - 1:8.0.43-1 +- Update to 8.0.43 -* Fri Aug 05 2016 Coty Sutherland 0:7.0.70-2 -- Related: rhbz#1314177 Had to fix a minor syntax issue that caused it to improperly eval +* Fri Mar 31 2017 Coty Sutherland - 1:8.0.42-1 +- Update to 8.0.42 -* Fri Aug 05 2016 Coty Sutherland 0:7.0.70-1 -- Resolves: rhbz#1352120 The javadoc package is useless; it contains one index.html -- Resolves: rhbz#1347838 The security manager doesn't work correctly (JSPs cannot be compiled) -- Resolves: rhbz#1327327 rpm -V tomcat fails on /var/log/tomcat/catalina.out -- Resolves: rhbz#1314177 Tomcat init script reports wrong status when one instance of several is stopped -- Resolves: rhbz#1312280 Unable to overwrite the TOMCAT_SCRIPT variable -- Resolves: rhbz#1104708 Tomcat init script does not respect setting of CATALINA_PID in /etc/sysconfig/tomcat -- Resolves: rhbz#1104704 /usr/sbin/tomcat overrides settings specified in /etc/sysconfig/${NAME} -- Resolves: rhbz#1364067 The tomcat-tool-wrapper script is broken -- Resolves: rhbz#1364068 The command tomcat-digest doesn't work -- Resolves: rhbz#1311499 Updating package causes tomcat to not start on boot -- Resolves: rhbz#1352009 tomcat: multiple security vulnerabilities (updates to 7.0.70) +* Thu Feb 16 2017 Coty Sutherland - 1:8.0.41-1 +- Update to 8.0.41 +- Resolves: rhbz#1403825 CVE-2016-8745 tomcat: information disclosure due to incorrect Processor sharing -* Fri Nov 13 2015 Coty Sutherland 0:7.0.65-1 -- Updated to 7.0.65 +* Sat Feb 11 2017 Fedora Release Engineering - 1:8.0.39-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild -* Tue Apr 29 2014 Vlad Slepukhin 0:7.0.33-4 -- Fixed bug not allowing Tomcat to start properly connected with access privleges to the logging directory -- Removed residual systemd configuration from the wrapper +* Tue Nov 29 2016 Coty Sutherland - 1:8.0.39-1 +- Update to 8.0.39 +- Resolves: rhbz#1397493 CVE-2016-6816 CVE-2016-6817 CVE-2016-8735 tomcat: various flaws -* Wed Feb 26 2014 Vlad Slepukhin 0:7.0.33-3 -- Changed ExclusiveArch to ExcludeArch due to bug appearing during build with this parameter +* Tue Oct 25 2016 Coty Sutherland - 1:8.0.38-1 +- Update to 8.0.38 -* Mon Feb 24 2014 Vlad Slepukhin 0:7.0.33-2 -- Restrctied to x86_64 and i686 platforms as now requires java 1.6 or later for building and running +* Sun Oct 23 2016 Coty Sutherland - 1:8.0.37-3 +- Resolves: rhbz#1383216 CVE-2016-6325 tomcat: tomcat writable config files allow privilege escalation +- Resolves: rhbz#1382310 CVE-2016-5425 tomcat: Local privilege escalation via systemd-tmpfiles service -* Thu Feb 20 2014 Vlad Slepukhin 0:7.0.33-1 -- Rebuilded for EL6 compatibility -- Removed systemd for compatibility -- As no systemd used, systemv moved back to tomcat package -- Build now requires ant-trax for compatibility (XSLT and JavaDoc) -- Build now requires redhat-lsb for LSB libraries on CentOS -- Removed geronimo-jaxrpc as no package found in EL6 -- Renamed apache-* packages to jakarta-* ones for EL6 -- %add_maven_depmap replaced with %add_to_maven_depmap as no such Maven script exists in EL6 maven packages -- Refactored and cleaned, removing unused code -- Removed unused files needed for systemd -- Corrected access attributes and rights management for safety purposes +* Tue Sep 13 2016 Coty Sutherland - 1:8.0.37-1 +- Rebase to 8.0.37 +- Resolves: rhbz#1375581 CVE-2016-5388 CGI sets environmental variable based on user supplied Proxy request header +- Resolves: rhbz#1370262 catalina.out is no longer in use in the main package, but still gets rotated + +* Thu Aug 11 2016 Coty Sutherland - 1:8.0.36-2 +- Related: rhbz#1349469 Correct typo in changelog entry + +* Mon Aug 08 2016 Coty Sutherland - 1:8.0.36-1 +- Resolves: rhbz#1349469 CVE-2016-3092 tomcat: Usage of vulnerable FileUpload package can result in denial of service (updates to 8.0.36) +- Resolves: rhbz#1364056 The command tomcat-digest doesn't work +- Resolves: rhbz#1363884 The tomcat-tool-wrapper script is broken +- Resolves: rhbz#1347864 The systemd service unit does not allow tomcat to shut down gracefully +- Resolves: rhbz#1347835 The security manager doesn't work correctly (JSPs cannot be compiled) +- Resolves: rhbz#1341853 rpm -V tomcat fails on /var/log/tomcat/catalina.out +- Resolves: rhbz#1341850 tomcat-jsvc.service has TOMCAT_USER value hard-coded +- Resolves: rhbz#1359737 Missing maven depmap for the following artifacts: org.apache.tomcat:tomcat-websocket, org.apache.tomcat:tomcat-websocket-api +- Resolves: asfbz#59960 Building javadocs with java8 fails + +* Wed Mar 2 2016 Ivan Afonichev - 1:8.0.32-4 +- Revert sysconfig migration changes, resolves: rhbz#1311771, rhbz#1311905 +- Add /etc/tomcat/conf.d/ with shell expansion support, resolves rhbz#1293636 + +* Sat Feb 27 2016 Ivan Afonichev - 1:8.0.32-3 +- Load sysconfig from tomcat.conf, resolves: rhbz#1311771, rhbz#1311905 +- Set default javax.sql.DataSource factory to apache commons one, resolves rhbz#1214381 + +* Sun Feb 21 2016 Ivan Afonichev - 1:8.0.32-2 +- Fix symlinks from $CATALINA_HOME/lib perspective, resolves: rhbz#1308685 + +* Thu Feb 11 2016 Ivan Afonichev - 1:8.0.32-1 +- Updated to 8.0.32 +- Remove log4j support. It has never been working actually. See rhbz#1236297 +- Move shipped config to /etc/sysconfig/tomcat. /etc/tomcat/tomcat.conf can now be used to override it with shell expansion, resolves rhbz#1293636 +- Recommend tomcat-native, resolves: rhbz#1243132 + +* Wed Feb 10 2016 Coty Sutherland 1:8.0.26-4 +- Resolves: rhbz#1286800 Failed to start component due to wrong allowLinking="true" in context.xml +- Program /bin/nologin does not exist (#1302718) + +* Fri Feb 05 2016 Fedora Release Engineering - 1:8.0.26-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Nov 11 2015 Robert Scheck 1:8.0.26-2 +- CATALINA_OPTS are only read when SECURITY_MANAGER is true (#1147105) + +* Thu Aug 27 2015 Alexander Kurtakov 1:8.0.26-1 +- Update to 8.0.26. + +* Fri Jul 10 2015 Alexander Kurtakov 1:8.0.24-2 +- Update to 8.0.24. + +* Fri Jun 19 2015 Alexander Kurtakov 1:8.0.23-2 +- Drop javax.el:el-api alias. + +* Thu Jun 18 2015 Alexander Kurtakov 1:8.0.23-1 +- Update to 8.0.23. + +* Thu Jun 18 2015 Alexander Kurtakov 1:8.0.20-3 +- Drop jetty alias for servlet. + +* Tue Jun 09 2015 Michal Srb - 1:8.0.20-2 +- Fix metadata for org.apache.tomcat:{tomcat-jni,tomcat-util-scan} + +* Thu Mar 5 2015 Alexander Kurtakov 1:8.0.18-5 +- Rebuild against tomcat-taglibs-standard. + +* Wed Mar 4 2015 Alexander Kurtakov 1:8.0.18-4 +- Fix epoch bumped el_1_0_api that would override all other glassfish/jboss/etc. due to wrong epoch. +- Drop old provides. + +* Tue Mar 03 2015 Stephen Gallagher 1:8.0.18-3 +- Bump epoch to maintain upgrade path from Fedora 22 + +* Mon Feb 16 2015 Michal Srb - 0:8.0.18-2 +- Install POM files for org.apache.tomcat:{tomcat-jni,tomcat-util-scan} + +* Sun Feb 15 2015 Ivan Afonichev 0:8.0.18-1 +- Updated to 8.0.18 + +* Sat Sep 20 2014 Ivan Afonichev 0:8.0.12-1 +- Updated to 8.0.12 +- Substitute libnames in catalina-tasks.xml, resolves: rhbz#1126439 +- Use CATALINA_OPTS only on start, resolves: rhbz#1051194 + +* Mon Jun 16 2014 Michal Srb - 0:7.0.54-3 +- jsp-api requires el-api + +* Sun Jun 08 2014 Fedora Release Engineering - 0:7.0.54-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Thu Jun 5 2014 Alexander Kurtakov 0:7.0.54-1 +- Update to upstream 7.0.54 - fixes compile with Java 8. + +* Wed May 21 2014 Alexander Kurtakov 0:7.0.52-3 +- Drop servlet/el api provides to reduce user machines ending with both. + +* Sun Mar 30 2014 Ivan Afonichev 0:7.0.52-2 +- Don't provide maven javax.jsp:jsp-api and javax.servlet.jsp:javax.servlet.jsp-api resolves: rhbz#1076949 +- Move log4j support into subpackage, resolves: rhbz#1027716 + +* Wed Mar 26 2014 Ivan Afonichev 0:7.0.52-1 +- Updated to 7.0.52 +- Rewrite jsvc implementation, resolves: rhbz#1051743 +- Switch to java-headless R, resolves: rhbz#1068566 +- Create and own %%{_localstatedir}/lib/tomcats, resolves: rhbz#1026741 +- Add pom for tomcat-jdbc, resolves: rhbz#1011003 + +* Tue Jan 21 2014 Mikolaj Izdebski - 0:7.0.47-3 +- Fix installation of Maven metadata for tomcat-juli.jar +- Resolves: rhbz#1033664 + +* Wed Jan 15 2014 Stanislav Ochotnicky - 0:7.0.47-2 +- Rebuild for bug #1033664 * Sun Nov 03 2013 Ivan Afonichev 0:7.0.47-1 - Updated to 7.0.47 +- Fix java.security.policy + +* Sun Aug 04 2013 Fedora Release Engineering - 0:7.0.42-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Fri Jul 12 2013 Ivan Afonichev 0:7.0.42-2 +- Remove jpackage-utils R * Thu Jul 11 2013 Dmitry Tikhonov 0:7.0.42-1 - Updated to 7.0.42 +* Tue Jun 11 2013 Paul Komkoff 0:7.0.40-3 +- Dropped systemv inits. Bye-bye. +- Updated the systemd wrappers to allow running multiple instances. + Added wrapper scripts to do that, ported the original non-named + service file to work with the same wrappers, updated + /usr/sbin/tomcat to call systemctl. + * Sat May 11 2013 Ivan Afonichev 0:7.0.40-1 - Updated to 7.0.40 - Resolves: rhbz 956569 added missing commons-pool link +- Remove ant-nodeps BR * Mon Mar 4 2013 Mikolaj Izdebski - 0:7.0.37-2 - Add depmaps for org.eclipse.jetty.orbit @@ -800,7 +1054,7 @@ fi - 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 +- Resolves: rhbz 810775 Remove systemv stuff from %%post scriptlet - Remove redhat-lsb R * Mon Apr 9 2012 Ivan Afonichev 0:7.0.27-2 @@ -920,7 +1174,7 @@ fi * Thu Apr 28 2011 Ivan Afonichev 0:7.0.12-2 - Package now named just tomcat instead of tomcat7 -- Removed Provides: %{name}-log4j +- 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