From 11e86110e76227cf2d4c030f1a05b17bdb085178 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 5 Nov 2016 18:50:22 +0000
Subject: [PATCH] Build: Add support for using libtomcat8-java package,
 untested

---
 apps/jetty/build.xml    |  1 +
 build.properties        |  2 ++
 build.xml               | 15 ++++++++++++---
 debian/i2p-router.links | 17 +++++++++++++++++
 debian/rules            | 11 +++++++++++
 5 files changed, 43 insertions(+), 3 deletions(-)

diff --git a/apps/jetty/build.xml b/apps/jetty/build.xml
index 17900f1c4a..7e19fa1dbe 100644
--- a/apps/jetty/build.xml
+++ b/apps/jetty/build.xml
@@ -225,6 +225,7 @@
             <or>
                 <istrue value="${with-libtomcat6-java}" />
                 <istrue value="${with-libtomcat7-java}" />
+                <istrue value="${with-libtomcat8-java}" />
             </or>
         </condition>
     </target>
diff --git a/build.properties b/build.properties
index 8bde13e190..0705cd9d15 100644
--- a/build.properties
+++ b/build.properties
@@ -133,6 +133,8 @@ javac.version=1.7
 #with-libtomcat6-java=true
 # Don't include tomcat files, we will use libtomcat7-java package
 #with-libtomcat7-java=true
+# Don't include tomcat files, we will use libtomcat8-java package
+#with-libtomcat8-java=true
 # Don't include jstl.jar and standard.jar, we will use glassfish-javaee package
 #with-glassfish-javaee=true
 # Don't include standard.jar, we will use libjakarta-taglibs-standard-java package
diff --git a/build.xml b/build.xml
index 9d5f085cf2..473345ae04 100644
--- a/build.xml
+++ b/build.xml
@@ -1250,8 +1250,17 @@
         </copy>
     </target>
 
-    <!-- todo handle alt package too -->
-    <target name="copytomcat-unlesspkg" unless="${with-libtomcat7-java}" >
+    <target name="settomcatprop" >
+        <condition property="with-libtomcat-java" >
+            <or>
+                <istrue value="${with-libtomcat6-java}" />
+                <istrue value="${with-libtomcat7-java}" />
+                <istrue value="${with-libtomcat8-java}" />
+            </or>
+        </condition>
+    </target>
+
+    <target name="copytomcat-unlesspkg" depends="settomcatprop" unless="${with-libtomcat-java}" >
         <copy todir="pkg-temp/lib" >
             <fileset dir="build" includes="commons*.jar jasper*.jar javax*.jar" />
         </copy>
@@ -1281,7 +1290,7 @@
         <copy file="apps/desktopgui/LICENSE" tofile="pkg-temp/licenses/LICENSE-DesktopGUI.txt" />
     </target>
 
-    <target name="preplicenses-unlesspkg" unless="${with-libtomcat7-java}" >
+    <target name="preplicenses-unlesspkg" depends="settomcatprop" unless="${with-libtomcat-java}" >
         <copy file="apps/jetty/apache-tomcat-deployer/NOTICE" tofile="pkg-temp/licenses/NOTICE-Tomcat.txt" />
     </target>
 
diff --git a/debian/i2p-router.links b/debian/i2p-router.links
index 50119ec3ba..e32b48b497 100644
--- a/debian/i2p-router.links
+++ b/debian/i2p-router.links
@@ -66,6 +66,23 @@ usr/share/java/jsp-api-2.2.jar usr/share/i2p/lib/jsp-api.jar
 #usr/share/java/el-api-2.2.jar usr/share/i2p/lib/commons-el.jar
 
 
+# comment out if not building with libtomcat8-java
+# ubuntu: only in xenial+
+# debian: wheezy-backports, jessie+
+# legacy name, contains only tomcat-juli, not commons-logging
+#usr/share/java/tomcat8-juli.jar usr/share/i2p/lib/commons-logging.jar
+#usr/share/java/tomcat8-jasper.jar usr/share/i2p/lib/jasper-runtime.jar
+# combined into jasper-runtime.jar in non-package builds
+#usr/share/java/tomcat8-coyote.jar usr/share/i2p/lib/tomcat-coyote.jar
+# tomcat 7 only
+#usr/share/java/tomcat8-api.jar usr/share/i2p/lib/tomcat-api.jar
+#usr/share/java/tomcat8-util.jar usr/share/i2p/lib/tomcat-util.jar
+# combined into commons-el.jar in non-package builds
+#usr/share/java/tomcat8-jasper-el.jar usr/share/i2p/lib/jasper-el.jar
+# legacy name in lib/
+#usr/share/java/tomcat8-el-api.jar usr/share/i2p/lib/commons-el.jar
+
+
 # comment out if not building with glassfish-javaee
 # glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
 #usr/share/java/glassfish-javaee.jar usr/share/i2p/lib/jstl.jar
diff --git a/debian/rules b/debian/rules
index b83df03a45..a1277c451c 100755
--- a/debian/rules
+++ b/debian/rules
@@ -128,6 +128,17 @@ endif
 	@# following is from libservlet3.0-java which is a dependency of libtomcat7-java
 	@#ln -sf /usr/share/java/el-api-2.2.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
 
+	@# debian and ubuntu: wheezy-backports, jessie+, xenial+
+	@#/bin/echo -e "with-libtomcat8-java=true" >> $(CURDIR)/override.properties
+	@#mkdir -p $(CURDIR)/apps/jetty/jettylib
+	@#ln -sf /usr/share/java/tomcat8-jasper.jar $(CURDIR)/apps/jetty/jettylib/jasper-runtime.jar
+	@#ln -sf /usr/share/java/tomcat8-api.jar $(CURDIR)/apps/jetty/jettylib/tomcat-api.jar
+	@#ln -sf /usr/share/java/tomcat8-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar
+	@#ln -sf /usr/share/java/tomcat8-coyote.jar $(CURDIR)/apps/jetty/jettylib/tomcat-coyote.jar
+	@#ln -sf /usr/share/java/tomcat8-juli.jar $(CURDIR)/apps/jetty/jettylib/commons-logging.jar
+	@#ln -sf /usr/share/java/tomcat8-jasper-el.jar $(CURDIR)/apps/jetty/jettylib/jasper-el.jar
+	@#ln -sf /usr/share/java/tomcat8-el-api.jar $(CURDIR)/apps/jetty/jettylib/commons-el.jar
+
 	@# debian and ubuntu: everywhere
 	@/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
 	@# glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
-- 
GitLab