diff --git a/INSTALL.txt b/INSTALL.txt
index 841237d2b9..3899a1fe45 100644
--- a/INSTALL.txt
+++ b/INSTALL.txt
@@ -1,10 +1,10 @@
I2P source installation instructions
Prerequisites to build from source:
- Java SDK (preferably Oracle/Sun or OpenJDK) 1.8.0 or higher
+ Java SDK (preferably Oracle or OpenJDK) 8 or higher
Non-linux operating systems and JVMs: See https://trac.i2p2.de/wiki/java
Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 1.6
- Apache Ant 1.7.0 or higher
+ Apache Ant 1.9.8 or higher
The xgettext, msgfmt, and msgmerge tools installed
from the GNU gettext package http://www.gnu.org/software/gettext/
Build environment must use a UTF-8 locale.
diff --git a/README.md b/README.md
index f50c732e67..85741e0420 100644
--- a/README.md
+++ b/README.md
@@ -27,11 +27,11 @@ To get development branch from source control: [https://geti2p.net/newdevelopers
### Prerequisites
-- Java SDK (preferably Oracle/Sun or OpenJDK) 1.8.0 or higher
+- Java SDK (preferably Oracle or OpenJDK) 8 or higher
- Non-linux operating systems and JVMs: See [https://trac.i2p2.de/wiki/java](https://trac.i2p2.de/wiki/java)
- Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel)
- require only Java 1.6
-- Apache Ant 1.7.0 or higher
+ require only Java 6
+- Apache Ant 1.9.8 or higher
- The xgettext, msgfmt, and msgmerge tools installed from the GNU gettext package
[http://www.gnu.org/software/gettext/](http://www.gnu.org/software/gettext/)
- Build environment must use a UTF-8 locale.
diff --git a/README.txt b/README.txt
index 65b8048877..a28cf1621a 100644
--- a/README.txt
+++ b/README.txt
@@ -1,8 +1,8 @@
Prerequisites to build from source:
- Java SDK (preferably Oracle/Sun or OpenJDK) 1.8.0 or higher
+ Java SDK (preferably Oracle or OpenJDK) 8 or higher
Non-linux operating systems and JVMs: See https://trac.i2p2.de/wiki/java
- Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 1.6
- Apache Ant 1.7.0 or higher
+ Certain subsystems for embedded (core, router, mstreaming, streaming, i2ptunnel) require only Java 6
+ Apache Ant 1.9.8 or higher
The xgettext, msgfmt, and msgmerge tools installed
from the GNU gettext package http://www.gnu.org/software/gettext/
Build environment must use a UTF-8 locale.
diff --git a/apps/BOB/nbproject/build-impl.xml b/apps/BOB/nbproject/build-impl.xml
index d8ed4de114..d88907b65e 100644
--- a/apps/BOB/nbproject/build-impl.xml
+++ b/apps/BOB/nbproject/build-impl.xml
@@ -39,8 +39,9 @@ is divided into following sections:
-
-
+
+
+
@@ -155,7 +156,7 @@ is divided into following sections:
-
+
diff --git a/apps/BOB/nbproject/project.properties b/apps/BOB/nbproject/project.properties
index 2badec8482..3bc1788940 100644
--- a/apps/BOB/nbproject/project.properties
+++ b/apps/BOB/nbproject/project.properties
@@ -29,28 +29,19 @@ endorsed.classpath=
excludes=**/*.html,**/*.txt
file.reference.build-javadoc=../../i2p.i2p/build/javadoc
file.reference.i2p.jar=../../core/java/build/i2p.jar
-file.reference.i2ptunnel.jar=../i2ptunnel/java/build/i2ptunnel.jar
-file.reference.jbigi.jar=../../build/jbigi.jar
file.reference.mstreaming.jar=../ministreaming/java/build/mstreaming.jar
-file.reference.router.jar=../../router/java/build/router.jar
-file.reference.streaming.jar=../streaming/java/build/streaming.jar
-file.reference.wrapper.jar=../../installer/lib/wrapper/all/wrapper.jar
includes=**
jar.compress=true
javac.classpath=\
- ${file.reference.router.jar}:\
- ${file.reference.i2ptunnel.jar}:\
${file.reference.mstreaming.jar}:\
- ${file.reference.streaming.jar}:\
- ${file.reference.wrapper.jar}:\
- ${file.reference.i2p.jar}:\
- ${file.reference.router.jar}
+ ${file.reference.i2p.jar}
# Space-separated list of extra javac options
javac.compilerargs=
javac.deprecation=false
-javac.version=1.7
+javac.version=1.8
javac.source=${javac.version}
javac.target=${javac.version}
+javac.release=8
javac.test.classpath=\
${javac.classpath}:\
${build.classes.dir}:\
diff --git a/apps/BOB/nbproject/project.xml b/apps/BOB/nbproject/project.xml
index 44eb60a6df..ca3c8fa82f 100644
--- a/apps/BOB/nbproject/project.xml
+++ b/apps/BOB/nbproject/project.xml
@@ -4,7 +4,7 @@
BOB
- 1.6.5
+ 1.9.8
diff --git a/apps/addressbook/build.xml b/apps/addressbook/build.xml
index 7bd9e0a106..67feb3ca06 100644
--- a/apps/addressbook/build.xml
+++ b/apps/addressbook/build.xml
@@ -8,6 +8,7 @@
+
@@ -40,6 +41,7 @@
diff --git a/apps/desktopgui/build.xml b/apps/desktopgui/build.xml
index 121866d37a..7b119fc670 100644
--- a/apps/desktopgui/build.xml
+++ b/apps/desktopgui/build.xml
@@ -8,6 +8,7 @@
+
@@ -27,6 +28,7 @@
@@ -52,6 +54,7 @@
diff --git a/apps/i2pcontrol/build.xml b/apps/i2pcontrol/build.xml
index 29385920dc..9735e66782 100644
--- a/apps/i2pcontrol/build.xml
+++ b/apps/i2pcontrol/build.xml
@@ -51,6 +51,7 @@
+
@@ -58,6 +59,7 @@
+
@@ -41,6 +42,7 @@
@@ -164,6 +166,7 @@
@@ -290,8 +293,6 @@
todir="build/standalone-resources/.resources/themes/snark/dark/images" />
-
diff --git a/apps/i2ptunnel/java/build.xml b/apps/i2ptunnel/java/build.xml
index 716820c076..09bb837f9e 100644
--- a/apps/i2ptunnel/java/build.xml
+++ b/apps/i2ptunnel/java/build.xml
@@ -29,6 +29,7 @@
+
@@ -40,6 +41,7 @@
srcdir="./src"
excludes="net/i2p/i2ptunnel/web/**/*"
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
+ release="${javac.release}"
destdir="./build/obj"
includeAntRuntime="false"
encoding="UTF-8"
@@ -56,6 +58,7 @@
srcdir="./src"
includes="net/i2p/i2ptunnel/web/**/*"
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
+ release="${javac.release}"
destdir="./build/obj"
includeAntRuntime="false"
encoding="UTF-8"
@@ -167,6 +170,7 @@
@@ -212,6 +216,7 @@
@@ -350,6 +355,7 @@
@@ -415,6 +421,7 @@
diff --git a/apps/imagegen/identicon/build.xml b/apps/imagegen/identicon/build.xml
index d6d449b7d7..fe735b4b54 100644
--- a/apps/imagegen/identicon/build.xml
+++ b/apps/imagegen/identicon/build.xml
@@ -19,11 +19,13 @@
+
@@ -37,6 +39,7 @@
+
+
@@ -43,6 +46,7 @@
+
+
@@ -30,6 +31,7 @@
deprecation="on"
source="${javac.version}"
target="${javac.version}"
+ release="${javac.release}"
destdir="./build/obj"
includeAntRuntime="false"
encoding="UTF-8"
diff --git a/apps/ministreaming/java/build.xml b/apps/ministreaming/java/build.xml
index af22f3f7e0..63b8ff54d4 100644
--- a/apps/ministreaming/java/build.xml
+++ b/apps/ministreaming/java/build.xml
@@ -23,6 +23,7 @@
+
@@ -35,6 +36,7 @@
@@ -48,6 +50,7 @@
@@ -238,6 +242,7 @@
diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml
index f96dab7ca6..fa79c23787 100644
--- a/apps/routerconsole/java/build.xml
+++ b/apps/routerconsole/java/build.xml
@@ -49,6 +49,7 @@
+
@@ -57,6 +58,7 @@
@@ -95,6 +97,7 @@
srcdir="./src"
includes="net/i2p/router/news/*.java"
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
+ release="${javac.release}"
includeAntRuntime="false"
encoding="UTF-8"
destdir="./build/obj">
@@ -178,6 +181,7 @@
@@ -236,6 +240,7 @@
@@ -256,6 +261,7 @@
@@ -471,6 +477,7 @@
+
@@ -34,6 +35,7 @@
+
@@ -31,6 +32,7 @@
diff --git a/apps/susidns/src/build.xml b/apps/susidns/src/build.xml
index 43b94b0513..4888b21ada 100644
--- a/apps/susidns/src/build.xml
+++ b/apps/susidns/src/build.xml
@@ -38,6 +38,7 @@
+
@@ -47,6 +48,7 @@
@@ -92,6 +94,7 @@
@@ -188,6 +191,7 @@
diff --git a/apps/susimail/build.xml b/apps/susimail/build.xml
index cfc6db289d..a0a63814d0 100644
--- a/apps/susimail/build.xml
+++ b/apps/susimail/build.xml
@@ -8,6 +8,7 @@
+
@@ -39,6 +40,7 @@
@@ -136,6 +138,7 @@
diff --git a/apps/systray/java/build.xml b/apps/systray/java/build.xml
index 6543dceb38..2bc20519ee 100644
--- a/apps/systray/java/build.xml
+++ b/apps/systray/java/build.xml
@@ -22,6 +22,7 @@
+
@@ -32,6 +33,7 @@
deprecation="on"
source="${javac.version}"
target="${javac.version}"
+ release="${javac.release}"
destdir="./build/obj"
includeAntRuntime="false"
encoding="UTF-8"
diff --git a/build.properties b/build.properties
index 9fc97cdb78..a93c19cb1d 100644
--- a/build.properties
+++ b/build.properties
@@ -44,6 +44,7 @@ require.gettext=true
# Compile for this version of Java
#javac.version=1.8
+#javac.release=8
# Additional classpath if required
#javac.classpath=/PATH/TO/pack200.jar
@@ -67,6 +68,8 @@ require.gettext=true
# http://zzz.i2p/topics/1668
# https://gist.github.com/AlainODea/1375759b8720a3f9f094
#
+# Do NOT set bootclasspath when compiling with Java 9 or higher.
+#
# For embedded use only, and for a limited time,
# the following subsystems ONLY may be built with Java 6 by setting javac.version=1.6 in override.properties,
# and setting javac.compilerargs to use java 6 jars:
diff --git a/build.xml b/build.xml
index 548ff7317e..34f743a304 100644
--- a/build.xml
+++ b/build.xml
@@ -2,6 +2,9 @@
+
+
+
@@ -325,12 +328,12 @@
-
+
-
+
@@ -361,7 +364,7 @@
-
+
@@ -387,7 +390,7 @@
-
+
@@ -446,6 +449,14 @@
+
+
+
+
+
+
+
+
@@ -2378,6 +2389,7 @@
+
@@ -2401,6 +2413,7 @@
+
@@ -2769,6 +2782,7 @@
+
@@ -77,6 +78,7 @@
@@ -291,6 +294,7 @@
= 9.20160709)
- ,ant (>= 1.8)
+ ,ant (>= 1.9.8)
,debconf
,openjdk-8-jdk
,libjetty9-java (>= 9.4)
diff --git a/debian-alt/bionic/rules b/debian-alt/bionic/rules
index 74cf74db0b..107d5fd6cc 100755
--- a/debian-alt/bionic/rules
+++ b/debian-alt/bionic/rules
@@ -80,10 +80,11 @@ else
@echo "Already found deb in version, not doing anything"
endif
@# build options
+ @/bin/echo -e "javac.release=8" > $(CURDIR)/override.properties
@/bin/echo -e "javac.version=1.8" > $(CURDIR)/override.properties
@/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
@/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
- @/bin/echo -e "build.built-by=debian" >> $(CURDIR)/override.properties
+ @/bin/echo -e "build.built-by=launchpad" >> $(CURDIR)/override.properties
@/bin/echo -e "build.reproducible=true" >> $(CURDIR)/override.properties
@# debian and ubuntu: everywhere
diff --git a/debian-alt/focal/rules b/debian-alt/focal/rules
index db79e55d5d..0783ecb9ea 100755
--- a/debian-alt/focal/rules
+++ b/debian-alt/focal/rules
@@ -81,10 +81,8 @@ else
@echo "Already found deb in version, not doing anything"
endif
@# build options
-# @/bin/echo -e "javac.version=1.8" > $(CURDIR)/override.properties
-# @/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
-# @/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
- @/bin/echo -e "build.built-by=debian" >> $(CURDIR)/override.properties
+ @/bin/echo -e "javac.release=11" > $(CURDIR)/override.properties
+ @/bin/echo -e "build.built-by=launchpad" >> $(CURDIR)/override.properties
@/bin/echo -e "build.reproducible=true" >> $(CURDIR)/override.properties
@# debian and ubuntu: everywhere
diff --git a/debian/control b/debian/control
index 1cca4bbc5a..c229d41b63 100644
--- a/debian/control
+++ b/debian/control
@@ -8,7 +8,7 @@ Homepage: https://geti2p.net/
Vcs-Browser: https://salsa.debian.org/debian/i2p
Vcs-Git: https://salsa.debian.org/debian/i2p.git
Build-Depends: debhelper (>= 9.20160709)
- ,ant (>= 1.8)
+ ,ant (>= 1.9.8)
,debconf
,default-jdk
,libjetty9-java (>= 9.4)
diff --git a/debian/rules b/debian/rules
index 0f422768e3..b74f515705 100755
--- a/debian/rules
+++ b/debian/rules
@@ -93,9 +93,7 @@ else
@echo "Already found deb in version, not doing anything"
endif
@# build options
-# @/bin/echo -e "javac.version=1.8" > $(CURDIR)/override.properties
-# @/bin/echo -e "javac.compilerargs=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
-# @/bin/echo -e "javac.compilerargs7=-bootclasspath $(JAVA_HOME)/jre/lib/rt.jar:$(JAVA_HOME)/jre/lib/jce.jar" >> $(CURDIR)/override.properties
+ @/bin/echo -e "javac.release=11" > $(CURDIR)/override.properties
@/bin/echo -e "build.built-by=debian" >> $(CURDIR)/override.properties
@/bin/echo -e "build.reproducible=true" >> $(CURDIR)/override.properties
diff --git a/history.txt b/history.txt
index 219fce1101..8a4443def8 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,11 @@
+2020-10-07 zzz
+ * Build:
+ - Set javac release property (ticket #2775)
+ - Ant version 1.9.8 or higher now required
+ - Drop support for Xenial package build
+ - Fix up BOB build configuration
+ - Fix i2psnark standalone build
+
2020-10-03 zzz
* Router: Support building tunnels through ECIES routers (proposal 152)
diff --git a/installer/java/build.xml b/installer/java/build.xml
index 8a3dc1120d..8a34405f30 100644
--- a/installer/java/build.xml
+++ b/installer/java/build.xml
@@ -20,11 +20,13 @@
+
diff --git a/installer/tools/java/build.xml b/installer/tools/java/build.xml
index 7f6eb412c5..51c45cebfa 100644
--- a/installer/tools/java/build.xml
+++ b/installer/tools/java/build.xml
@@ -20,11 +20,13 @@
+
diff --git a/router/java/build.xml b/router/java/build.xml
index 4c381a5a7d..0e1c3db210 100644
--- a/router/java/build.xml
+++ b/router/java/build.xml
@@ -37,12 +37,14 @@
+
@@ -256,6 +259,7 @@