From a3a17a4f329dd60a2875b953d4e2ccc031c765c0 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sat, 25 Nov 2017 18:59:04 +0000
Subject: [PATCH] Debian: Replace glassfish-javaee with libtaglibs-standard-*
 (ticket #2093) Only for stretch and later, zesty and later Copy more files
 for previous stretch setup to xenial

---
 apps/routerconsole/java/build.xml    |  2 +-
 apps/susidns/src/build.xml           |  1 +
 build.properties                     |  7 ++-
 build.xml                            | 36 ++++++------
 debian-alt/README.txt                |  5 +-
 debian-alt/buster/control            |  4 +-
 debian-alt/buster/rules              | 12 +++-
 debian-alt/doc/debian-build.txt      |  1 -
 debian-alt/doc/dependencies.txt      |  7 ++-
 debian-alt/xenial/i2p-router.install | 74 ++++++++++++++++++++++++
 debian-alt/xenial/i2p-router.links   | 86 ++++++++++++++++++++++++++++
 debian/control                       |  4 +-
 debian/i2p-router.install            |  6 +-
 debian/i2p-router.links              |  8 ++-
 debian/rules                         | 12 +++-
 15 files changed, 228 insertions(+), 37 deletions(-)
 create mode 100644 debian-alt/xenial/i2p-router.install
 create mode 100644 debian-alt/xenial/i2p-router.links

diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index d5385d8711..cb7f48468e 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -128,7 +128,7 @@
                 <!-- DTG added in 0.8.4, not in the classpath for very old installs, before we changed wrapper.config to specify * -->
                 <!-- very old installs don't have i2psnark,jstl,standard in the classpath... not added in WebAppConfiguration any more -->
                 <!-- All new jetty 7 jars should have been in 0.9.6, added in 0.9.7 -->
-                <attribute name="Class-Path" value="i2p.jar router.jar jrobin.jar desktopgui.jar i2psnark.jar jstl.jar standard.jar jetty-continuation.jar jetty-http.jar jetty-io.jar jetty-security.jar jetty-servlet.jar jetty-servlets.jar jetty-util.jar jetty-webapp.jar" />
+                <attribute name="Class-Path" value="i2p.jar router.jar jrobin.jar desktopgui.jar i2psnark.jar jstl.jar standard.jar jstlel.jar jetty-continuation.jar jetty-http.jar jetty-io.jar jetty-security.jar jetty-servlet.jar jetty-servlets.jar jetty-util.jar jetty-webapp.jar" />
                 <attribute name="Implementation-Version" value="${full.version}" />
                 <attribute name="Built-By" value="${build.built-by}" />
                 <attribute name="Build-Date" value="${build.timestamp}" />
diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml
index 60d66140fe..d0c4d67778 100644
--- a/apps/susidns/src/build.xml
+++ b/apps/susidns/src/build.xml
@@ -23,6 +23,7 @@
                 <pathelement location="${lib}/tomcat-util.jar" />
                 <pathelement location="${lib}/tomcat-util-scan.jar" />
 		<pathelement location="${lib}/jasper-el.jar" />
+		<pathelement location="lib/jstlel.jar" />
 
 		<pathelement location="lib/jstl.jar" />
 		<pathelement location="lib/standard.jar" />
diff --git a/build.properties b/build.properties
index fb72571b1a..d83b97727d 100644
--- a/build.properties
+++ b/build.properties
@@ -11,9 +11,8 @@
 # Note: Include the trailing slash! Don't surround the URL in quotes!
 javasedocs.url=http://docs.oracle.com/javase/7/docs/api/
 javaeedocs.url=http://docs.oracle.com/javaee/7/api/
-# The following link is dead, perhaps temporarily,
-# perhaps not, as they move 7 and 8 to unsupported status.
-#jettydocs.url=http://download.eclipse.org/jetty/stable-8/apidocs/
+# The following link is for 9.4.x
+#jettydocs.url=http://download.eclipse.org/jetty/stable-9/apidocs/
 jettydocs.url=http://download.eclipse.org/jetty/9.2.21.v20170120/apidocs/
 wrapperdocs.url=http://wrapper.tanukisoftware.com/jdoc/
 # these are only for unit test javadocs
@@ -147,6 +146,8 @@ javac.version=1.7
 #with-libjetty9-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 libtaglibs-standard-* packages
+#with-libtaglibs-standard=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 7d3c57d852..4f8dd936af 100644
--- a/build.xml
+++ b/build.xml
@@ -1274,17 +1274,29 @@
         </copy>
     </target>
 
-    <!-- todo handle alt package too -->
     <!--
-       glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
-    <target name="copyjstl-unlesspkg" unless="${with-glassfish-javaee}" >
+       jstl.jar
+       glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail,
+       and libjstl1.1-java isn't sufficient,
+       so we only skip it with libtaglibs-standard
     -->
-    <target name="copyjstl-unlesspkg" >
+    <target name="copyjstl-unlesspkg" unless="${with-libtaglibs-standard}" >
         <copy file="apps/susidns/src/lib/jstl.jar" todir="pkg-temp/lib/" />
     </target>
 
-    <!-- todo handle alt package too -->
-    <target name="copystandard-unlesspkg" unless="${with-glassfish-javaee}" >
+    <!-- standard.jar -->
+    <target name="copystandard-unlesspkg" depends="copystandard-unlesspkg1, copystandard-unlesspkg2" />
+    <target name="copystandard-unlesspkg1" >
+        <condition property="with-any-standard-pkg" >
+            <or>
+                <istrue value="${with-libtaglibs-standard}" />
+                <istrue value="${with-glassfish-javaee}" />
+                <istrue value="${libjakarta-taglibs-standard-java}" />
+            </or>
+
+        </condition>
+    </target>
+    <target name="copystandard-unlesspkg2" unless="${with-any-standard-pkg}" >
         <copy file="apps/susidns/src/lib/standard.jar" todir="pkg-temp/lib/" />
     </target>
 
@@ -2269,11 +2281,9 @@
             <fileset dir="../i2p-${Extended.Version}/apps/jetty/jetty-distribution-9.2.22.v20170606" />
             <!-- libtomcat8-java -->
             <fileset dir="../i2p-${Extended.Version}/apps/jetty/apache-tomcat-8.5.23" />
-            <!-- libjstl1.1-java or glassfish-javaee -->
-          <!--
+            <!-- libjstl1.1-java or glassfish-javaee or libtaglibs-standard -->
             <file name="../i2p-${Extended.Version}/apps/susidns/src/lib/jstl.jar" />
-           -->
-            <!-- libjakarta-taglibs-standard-java or glassfish-javaee -->
+            <!-- libjakarta-taglibs-standard-java or glassfish-javaee or libtaglibs-standard -->
             <file name="../i2p-${Extended.Version}/apps/susidns/src/lib/standard.jar" />
             <!-- anything added above, add in debian-release-tarball also -->
         </delete>
@@ -2287,9 +2297,7 @@
                 <exclude name="installer/resources/geoipv6.dat.gz"/>
                 <exclude name="apps/jetty/jetty-distribution-*/**"/>
                 <exclude name="apps/jetty/apache-tomcat-*/**"/>
-          <!--
                 <exclude name="apps/susidns/src/lib/jstl.jar" />
-           -->
                 <exclude name="apps/susidns/src/lib/standard.jar" />
                 <!-- anything added above, add in debian-release-tarball also -->
             </tarfileset>
@@ -2415,9 +2423,7 @@
             <file name="../i2p-${Extended.Version}/installer/resources/geoipv6.dat.gz" />
             <fileset dir="../i2p-${Extended.Version}/apps/jetty/jetty-distribution-9.2.22.v20170606" />
             <fileset dir="../i2p-${Extended.Version}/apps/jetty/apache-tomcat-8.5.23" />
-          <!--
             <file name="../i2p-${Extended.Version}/apps/susidns/src/lib/jstl.jar" />
-           -->
             <file name="../i2p-${Extended.Version}/apps/susidns/src/lib/standard.jar" />
             <!-- anything added above, add in debian-tarball also -->
         </delete>
@@ -2431,9 +2437,7 @@
                 <exclude name="installer/resources/geoipv6.dat.gz"/>
                 <exclude name="apps/jetty/jetty-distribution-*/**"/>
                 <exclude name="apps/jetty/apache-tomcat-*/**"/>
-          <!--
                 <exclude name="apps/susidns/src/lib/jstl.jar" />
-           -->
                 <exclude name="apps/susidns/src/lib/standard.jar" />
                 <!-- anything added above, add in debian-tarball also -->
             </tarfileset>
diff --git a/debian-alt/README.txt b/debian-alt/README.txt
index 4a2c538827..30d43fd3c0 100644
--- a/debian-alt/README.txt
+++ b/debian-alt/README.txt
@@ -9,8 +9,9 @@ trusty may be copied to vivid.
 trusty may be used for jessie without libjetty9-java from backports.
 xenial may be copied to yakkety, zesty.
 
-tails-jessie and tails-wheezy are currently the same as
-jessie and wheezy, respectively. If they diverge, put the changes here.
+Not maintained:
+wheezy files are not maintained. Use the precise files instead.
+jessie files may not be maintained. Use the trusty files instead.
 
 Note on systemd:
 
diff --git a/debian-alt/buster/control b/debian-alt/buster/control
index c40c378283..b1c433a2cc 100644
--- a/debian-alt/buster/control
+++ b/debian-alt/buster/control
@@ -9,7 +9,7 @@ Build-Depends: debhelper (>= 7.0.50~)
  ,debconf
  ,openjdk-8-jdk
  ,libjetty9-java (>= 9.2.22)
- ,glassfish-javaee
+ ,libtaglibs-standard-jstlel-java
  ,libtomcat8-java
  ,dh-apparmor
  ,dh-systemd
@@ -75,7 +75,7 @@ Priority: optional
 Depends: ${misc:Depends}, ${java:Depends}, ${shlibs:Depends},
  openjdk-8-jre-headless | java8-runtime-headless,
  libjetty9-java,
- glassfish-javaee,
+ libtaglibs-standard-jstlel-java,
  libtomcat8-java,
  geoip-database,
  gettext-base,
diff --git a/debian-alt/buster/rules b/debian-alt/buster/rules
index 603baf594e..85a8a8a611 100755
--- a/debian-alt/buster/rules
+++ b/debian-alt/buster/rules
@@ -52,6 +52,8 @@ override_dh_auto_clean:
 	rm -rf $(CURDIR)/debian/python-i2p
 	rm -f $(CURDIR)/override.properties
 	rm -f $(CURDIR)/apps/susidns/src/lib/standard.jar
+	rm -f $(CURDIR)/apps/susidns/src/lib/jstl.jar
+	rm -f $(CURDIR)/apps/susidns/src/lib/jstlel.jar
 	debconf-updatepo
 
 override_dh_auto_build:
@@ -119,11 +121,17 @@ endif
 	ln -sf /usr/share/java/tomcat8-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar
 	ln -sf /usr/share/java/tomcat8-util-scan.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util-scan.jar
 
+	@# debian and ubuntu: stretch+, zesty+
+	@/bin/echo -e "with-libtaglibs-standard=true" >> $(CURDIR)/override.properties
+	ln -sf /usr/share/java/taglibs-standard-spec.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
+	ln -sf /usr/share/java/taglibs-standard-impl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
+	ln -sf /usr/share/java/taglibs-standard-jstlel.jar $(CURDIR)/apps/susidns/src/lib/jstlel.jar
+
 	@# debian and ubuntu: everywhere
-	@/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
+	@#/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
 	@# glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
 	@#ln -sf /usr/share/java/glassfish-javaee.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
-	ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
+	@#ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
 
 	@# debian and ubuntu: everywhere
 	@#/bin/echo -e "with-libjakarta-taglibs-standard-java=true" >> $(CURDIR)/override.properties
diff --git a/debian-alt/doc/debian-build.txt b/debian-alt/doc/debian-build.txt
index cf3666f98c..b17f42e1cb 100644
--- a/debian-alt/doc/debian-build.txt
+++ b/debian-alt/doc/debian-build.txt
@@ -73,7 +73,6 @@ reprepro includedsc stable i2p_0.9.XX-1.dsc
 # copy built packages from launchpad
 reprepro -v update precise
 reprepro -v update trusty
-reprepro -v update vivid
 reprepro -v update xenial
 reprepro -v update zesty
 reprepro -v update artful
diff --git a/debian-alt/doc/dependencies.txt b/debian-alt/doc/dependencies.txt
index be8a2a8b9b..5a307a2a2b 100644
--- a/debian-alt/doc/dependencies.txt
+++ b/debian-alt/doc/dependencies.txt
@@ -8,7 +8,7 @@ improve our official packages and support other packagers.
 Our packages are available at https://deb.i2p2.de/ and
 instructions are at https://geti2p.net/debian
 
-This document is current as of release 0.9.30, 2017-05-03.
+This document is current as of release 0.9.33, scheduled 2018-01
 
 
 Build-only Dependencies
@@ -51,7 +51,10 @@ Current Runtime Dependencies
   which are different than the way they are packaged for Debian.
   They are removed in the Debian source package.
 
-* glassfish-javaee
+* libtaglibs-standard-*-java (stretch and later, zesty and later only)
+  Provides JSTL 1.2, solves the glassfish-javaee problem described below.
+
+* glassfish-javaee (wheezy, jessie, xenial and earlier only)
   We need jstl.jar and standard.jar version 1.2.
   This is an ancient and terrible package, but it's the only place we've found version 1.2 jars.
   standard.jar classes are inside /usr/share/java/glassfish-appserv-jstl.jar
diff --git a/debian-alt/xenial/i2p-router.install b/debian-alt/xenial/i2p-router.install
new file mode 100644
index 0000000000..a3be0e3144
--- /dev/null
+++ b/debian-alt/xenial/i2p-router.install
@@ -0,0 +1,74 @@
+# history.txt is installed to /usr/share/i2p because
+# it's shown in the router console at http://127.0.0.1:7657
+# (this is also why I don't use dh_installchangelogs -k for it)
+history.txt usr/share/i2p
+
+pkg-temp/blocklist.txt usr/share/i2p
+pkg-temp/certificates usr/share/i2p
+pkg-temp/clients.config usr/share/i2p
+pkg-temp/docs usr/share/i2p/
+pkg-temp/eepget usr/bin
+pkg-temp/eepsite usr/share/i2p
+pkg-temp/geoip usr/share/i2p
+pkg-temp/hosts.txt usr/share/i2p
+pkg-temp/i2prouter-nowrapper usr/bin
+pkg-temp/i2psnark.config usr/share/i2p
+pkg-temp/i2ptunnel.config usr/share/i2p
+pkg-temp/router.config usr/share/i2p
+pkg-temp/systray.config usr/share/i2p
+pkg-temp/webapps usr/share/i2p
+
+
+pkg-temp/lib/addressbook.jar usr/share/i2p/lib
+pkg-temp/lib/BOB.jar usr/share/i2p/lib
+pkg-temp/lib/desktopgui.jar usr/share/i2p/lib
+pkg-temp/lib/i2p.jar usr/share/i2p/lib
+pkg-temp/lib/i2psnark.jar usr/share/i2p/lib
+pkg-temp/lib/i2ptunnel.jar usr/share/i2p/lib
+pkg-temp/lib/jetty-i2p.jar usr/share/i2p/lib
+pkg-temp/lib/jrobin.jar usr/share/i2p/lib
+pkg-temp/lib/mstreaming.jar usr/share/i2p/lib
+pkg-temp/lib/routerconsole.jar usr/share/i2p/lib
+pkg-temp/lib/router.jar usr/share/i2p/lib
+pkg-temp/lib/sam.jar usr/share/i2p/lib
+pkg-temp/lib/streaming.jar usr/share/i2p/lib
+pkg-temp/lib/systray.jar usr/share/i2p/lib
+
+
+# uncomment if not building with libjetty9-java
+# ubuntu: in trusty vivid wily xenial
+# debian: in wheezy jessie stretch sid
+#pkg-temp/lib/jetty-continuation.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-deploy.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-http.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-io.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-rewrite-handler.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-security.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-servlet.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-servlets.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-start.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-util.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-webapp.jar usr/share/i2p/lib
+#pkg-temp/lib/jetty-xml.jar usr/share/i2p/lib
+#pkg-temp/lib/org.mortbay.jetty.jar usr/share/i2p/lib
+#pkg-temp/lib/org.mortbay.jmx.jar usr/share/i2p/lib
+# following two are from libservlet3.0-java which is a dependency of libjetty9-java
+#pkg-temp/lib/javax.servlet.jar usr/share/i2p/lib
+
+
+# uncomment if not building with libtomcat8-java
+#pkg-temp/lib/commons-el.jar usr/share/i2p/lib
+# legacy name, contains only tomcat-juli, not commons-logging
+#pkg-temp/lib/commons-logging.jar usr/share/i2p/lib
+#pkg-temp/lib/jasper-runtime.jar usr/share/i2p/lib
+
+
+# uncomment if not building with either glassfish-javaee or libjakarta-taglibs-standard-java
+# ubuntu and debian: everywhere
+# glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
+pkg-temp/lib/jstl.jar usr/share/i2p/lib
+
+
+# uncomment if not building with either glassfish-javaee or libjstl1.1-java
+# ubuntu and debian: everywhere
+#pkg-temp/lib/standard.jar usr/share/i2p/lib
diff --git a/debian-alt/xenial/i2p-router.links b/debian-alt/xenial/i2p-router.links
new file mode 100644
index 0000000000..5fd470ffa3
--- /dev/null
+++ b/debian-alt/xenial/i2p-router.links
@@ -0,0 +1,86 @@
+usr/share/common-licenses/GPL-2 usr/share/doc/i2p-router/licenses/LICENSE-GPLv2.txt
+usr/share/common-licenses/LGPL-2.1 usr/share/doc/i2p-router/licenses/LICENSE-LGPLv2.1.txt
+usr/share/common-licenses/Apache-2.0 usr/share/doc/i2p-router/licenses/LICENSE-Apache2.0.txt
+usr/share/common-licenses/BSD usr/share/doc/i2p-router/licenses/LICENSE-BSD.txt
+
+usr/share/java/eclipse-ecj.jar usr/share/i2p/lib/eclipse-ecj.jar
+
+
+# comment out if not building with libjetty9-java
+# ubuntu: in trusty vivid wily xenial
+# debian: in wheezy jessie stretch sid
+usr/share/java/jetty9-apache-jsp.jar usr/share/i2p/lib/jetty-apache-jsp.jar
+usr/share/java/jetty9-continuation.jar usr/share/i2p/lib/jetty-continuation.jar
+usr/share/java/jetty9-deploy.jar usr/share/i2p/lib/jetty-deploy.jar
+usr/share/java/jetty9-http.jar usr/share/i2p/lib/jetty-http.jar
+usr/share/java/jetty9-io.jar usr/share/i2p/lib/jetty-io.jar
+# legacy name in lib/
+usr/share/java/jetty9-rewrite.jar usr/share/i2p/lib/jetty-rewrite-handler.jar
+usr/share/java/jetty9-security.jar usr/share/i2p/lib/jetty-security.jar
+usr/share/java/jetty9-servlet.jar usr/share/i2p/lib/jetty-servlet.jar
+usr/share/java/jetty9-servlets.jar usr/share/i2p/lib/jetty-servlets.jar
+usr/share/java/jetty9-start.jar usr/share/i2p/lib/jetty-start.jar
+usr/share/java/jetty9-util.jar usr/share/i2p/lib/jetty-util.jar
+usr/share/java/jetty9-webapp.jar usr/share/i2p/lib/jetty-webapp.jar
+usr/share/java/jetty9-xml.jar usr/share/i2p/lib/jetty-xml.jar
+# legacy name in lib/
+usr/share/java/jetty9-server.jar usr/share/i2p/lib/org.mortbay.jetty.jar
+# legacy name in lib/
+usr/share/java/jetty9-jmx.jar usr/share/i2p/lib/org.mortbay.jmx.jar
+# following two are from libservlet3.1-java which is a dependency of libjetty9-java
+# legacy name in lib/
+usr/share/java/servlet-api-3.1.jar usr/share/i2p/lib/javax.servlet.jar
+# combined into javax.servlet.jar in non-package builds
+usr/share/java/jsp-api-2.3.jar usr/share/i2p/lib/jsp-api.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
+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
+usr/share/java/tomcat8-util-scan.jar usr/share/i2p/lib/tomcat-util-scan.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
+usr/share/java/glassfish-appserv-jstl.jar usr/share/i2p/lib/standard.jar
+
+
+# comment out if not building with libjakarta-taglibs-standard-java
+# ubuntu and debian: everywhere
+#usr/share/java/standard.jar usr/share/i2p/lib/standard.jar
+
+
+# comment out if not building with libjstl1.1-java
+# ubuntu and debian: everywhere
+#usr/share/java/jstl1.1.jar usr/share/i2p/lib/jstl.jar
+
+
+# comment out if not building with gettext-base
+# ubuntu and debian: everywhere
+usr/share/java/libintl.jar usr/share/i2p/lib/libintl.jar
+
+
+# comment out if not building with libgetopt-java
+# ubuntu and debian: everywhere
+usr/share/java/gnu-getopt.jar usr/share/i2p/lib/gnu-getopt.jar
+
+
+# comment out if not building with libhttpclient-java and libhttpcore-java
+# 2 MB of dependencies vs. 20 KB of copied source
+# Requires 4.4 or higher.
+# Debian: Not in wheezy/jessie
+# Ubuntu: Only in wily and later
+#usr/share/java/httpclient.jar usr/share/i2p/lib/httpclient.jar
+#usr/share/java/httpcore.jar usr/share/i2p/lib/httpcore.jar
diff --git a/debian/control b/debian/control
index 3ac1e1b334..0e51a2c737 100644
--- a/debian/control
+++ b/debian/control
@@ -10,7 +10,7 @@ Build-Depends: debhelper (>= 7.0.50~)
  ,debconf
  ,openjdk-7-jdk
  ,libjetty9-java
- ,glassfish-javaee
+ ,libtaglibs-standard-jstlel-java
  ,libtomcat8-java
  ,dh-apparmor
  ,bash-completion
@@ -81,7 +81,7 @@ Depends: ${misc:Depends}, ${java:Depends}, ${shlibs:Depends},
  gettext-base,
  libgetopt-java,
  libjetty9-java,
- glassfish-javaee,
+ libtaglibs-standard-jstlel-java,
  libtomcat8-java
 Replaces: i2p ( << 0.8.6-5)
 Breaks: i2p (<< 0.8.6-5)
diff --git a/debian/i2p-router.install b/debian/i2p-router.install
index a3be0e3144..bb4ac46c38 100644
--- a/debian/i2p-router.install
+++ b/debian/i2p-router.install
@@ -63,12 +63,12 @@ pkg-temp/lib/systray.jar usr/share/i2p/lib
 #pkg-temp/lib/jasper-runtime.jar usr/share/i2p/lib
 
 
-# uncomment if not building with either glassfish-javaee or libjakarta-taglibs-standard-java
+# uncomment if not building with either glassfish-javaee, libjakarta-taglibs-standard-java or libtaglibs-standard
 # ubuntu and debian: everywhere
 # glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
-pkg-temp/lib/jstl.jar usr/share/i2p/lib
+#pkg-temp/lib/jstl.jar usr/share/i2p/lib
 
 
-# uncomment if not building with either glassfish-javaee or libjstl1.1-java
+# uncomment if not building with either glassfish-javaee, libjstl1.1-java or libtaglibs-standard
 # ubuntu and debian: everywhere
 #pkg-temp/lib/standard.jar usr/share/i2p/lib
diff --git a/debian/i2p-router.links b/debian/i2p-router.links
index 5fd470ffa3..fe0970d41e 100644
--- a/debian/i2p-router.links
+++ b/debian/i2p-router.links
@@ -51,10 +51,16 @@ usr/share/java/tomcat8-jasper-el.jar usr/share/i2p/lib/jasper-el.jar
 usr/share/java/tomcat8-el-api.jar usr/share/i2p/lib/commons-el.jar
 
 
+# comment out if not building with libtaglibs-standard
+usr/share/java/taglibs-standard-spec.jar usr/share/i2p/lib/jstl.jar
+usr/share/java/taglibs-standard-impl.jar usr/share/i2p/lib/standard.jar
+usr/share/java/taglibs-standard-jstlel.jar usr/share/i2p/lib/jstlel.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
-usr/share/java/glassfish-appserv-jstl.jar usr/share/i2p/lib/standard.jar
+#usr/share/java/glassfish-appserv-jstl.jar usr/share/i2p/lib/standard.jar
 
 
 # comment out if not building with libjakarta-taglibs-standard-java
diff --git a/debian/rules b/debian/rules
index c242948998..c6c512be0a 100755
--- a/debian/rules
+++ b/debian/rules
@@ -52,6 +52,8 @@ override_dh_auto_clean:
 	rm -rf $(CURDIR)/debian/python-i2p
 	rm -f $(CURDIR)/override.properties
 	rm -f $(CURDIR)/apps/susidns/src/lib/standard.jar
+	rm -f $(CURDIR)/apps/susidns/src/lib/jstl.jar
+	rm -f $(CURDIR)/apps/susidns/src/lib/jstlel.jar
 	debconf-updatepo
 
 override_dh_auto_build:
@@ -119,11 +121,17 @@ endif
 	ln -sf /usr/share/java/tomcat8-util.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util.jar
 	ln -sf /usr/share/java/tomcat8-util-scan.jar $(CURDIR)/apps/jetty/jettylib/tomcat-util-scan.jar
 
+	@# debian and ubuntu: stretch+, zesty+
+	@/bin/echo -e "with-libtaglibs-standard=true" >> $(CURDIR)/override.properties
+	ln -sf /usr/share/java/taglibs-standard-spec.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
+	ln -sf /usr/share/java/taglibs-standard-impl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
+	ln -sf /usr/share/java/taglibs-standard-jstlel.jar $(CURDIR)/apps/susidns/src/lib/jstlel.jar
+
 	@# debian and ubuntu: everywhere
-	@/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
+	@#/bin/echo -e "with-glassfish-javaee=true" >> $(CURDIR)/override.properties
 	@# glassfish-javaee.jar has ancient and conflicting classes, e.g. javax.mail
 	@#ln -sf /usr/share/java/glassfish-javaee.jar $(CURDIR)/apps/susidns/src/lib/jstl.jar
-	ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
+	@#ln -sf /usr/share/java/glassfish-appserv-jstl.jar $(CURDIR)/apps/susidns/src/lib/standard.jar
 
 	@# debian and ubuntu: everywhere
 	@#/bin/echo -e "with-libjakarta-taglibs-standard-java=true" >> $(CURDIR)/override.properties
-- 
GitLab