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 @@