Installer: Require Java 8 (ticket #2511)

Jetty 9.3.28 (ticket #2098)
This breaks Debian builds, fixes to follow
This commit is contained in:
zzz
2020-05-27 16:08:54 +00:00
parent 27e422f81d
commit 03b1a4dfc0
70 changed files with 52 additions and 83 deletions

View File

@ -40,7 +40,7 @@ To uninstall I2P:
rm -rf $I2PInstallDir ~/.i2p
Supported JVMs:
All platforms: Java 1.7 or higher required
All platforms: Java 1.8 or higher required
Windows: OpenJDK or Oracle from http://java.com/download
Linux: OpenJDK or Oracle from http://java.com/download
FreeBSD: OpenJDK or Oracle from http://java.com/download

View File

@ -1,7 +1,7 @@
I2P source installation instructions
Prerequisites to build from source:
Java SDK (preferably Oracle/Sun or OpenJDK) 1.7.0 or higher
Java SDK (preferably Oracle/Sun or OpenJDK) 1.8.0 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

View File

@ -257,7 +257,7 @@ Applications:
Zxing 3.3.0:
See licenses/LICENSE-Apache2.0.txt
Jetty 9.2.29.v20191105 (jetty-*.jar, org.mortbay.*.jar):
Jetty 9.3.28.v20191105 (jetty-*.jar, org.mortbay.*.jar):
(not included in most distribution packages, except for jetty-i2p.jar)
See licenses/ABOUT-Jetty.html
See licenses/NOTICE-Jetty.html

View File

@ -27,7 +27,7 @@ To get development branch from source control: https://geti2p.net/newdevelopers
### Prerequisites
- Java SDK (preferably Oracle/Sun or OpenJDK) 1.7.0 or higher
- Java SDK (preferably Oracle/Sun or OpenJDK) 1.8.0 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

View File

@ -1,5 +1,5 @@
Prerequisites to build from source:
Java SDK (preferably Oracle/Sun or OpenJDK) 1.7.0 or higher
Java SDK (preferably Oracle/Sun or OpenJDK) 1.8.0 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

View File

@ -7,7 +7,7 @@
<property name="jar" value="addressbook.jar"/>
<property name="war" value="addressbook.war"/>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="all" depends="jar, emptyWar"/>

View File

@ -7,7 +7,7 @@
<property name="jar" value="desktopgui.jar"/>
<property name="javadoc" value="javadoc"/>
<property name="javac.compilerargs" value=""/>
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="require.gettext" value="true" />
<condition property="no.bundle">

View File

@ -50,7 +50,7 @@
</target>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="builddep" >
<mkdir dir="./build" />

View File

@ -27,7 +27,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="require.gettext" value="true" />
<property name="manifest.classpath.name" value="Class-Path" />

View File

@ -28,7 +28,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="require.gettext" value="true" />
<property name="manifest.classpath.name" value="Class-Path" />

View File

@ -18,7 +18,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="depend">
<mkdir dir="./build" />

View File

@ -28,7 +28,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="depend">
<mkdir dir="./build" />

View File

@ -17,7 +17,7 @@
</target>
<!-- only used if not set by a higher build.xml -->
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="javac.compilerargs7" value="" />
<target name="compile" depends="depend">

View File

@ -15,16 +15,14 @@
<!-- Note: Change version numbers in top-level build.xml if you update to a new Tomcat or Jetty! -->
<!-- jetty.branch unused until we go to 9.3 -->
<property name="jetty.branch" value="stable-9" />
<property name="jetty.base" value="jetty-distribution-${jetty.ver}" />
<property name="jetty.sha1" value="cc68beca7e11dd6c0067750499d9dea86ee6d2f0" />
<property name="jetty.sha1" value="0b4bf8501da2ca6f5d1f8c583b476b1a46e16845" />
<property name="jetty.filename" value="${jetty.base}.zip" />
<!-- change jetty.ver to jetty.branch for 9.3 -->
<property name="jetty.url" value="http://central.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${jetty.ver}/${jetty.filename}" />
<property name="jetty.url" value="https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${jetty.ver}/${jetty.filename}" />
<property name="verified.filename" value="verified.txt" />
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="manifest.classpath.name" value="Class-Path" />
<!-- everything we need is in the deployer package, except for tomcat-api.jar in the full package,

View File

@ -317,7 +317,7 @@ public class I2PRequestLog extends AbstractLifeCycle implements RequestLog
buf.append(request.getMethod());
buf.append(' ');
request.getUri().writeTo(u8buf);
u8buf.append(request.getHttpURI().toString());
buf.append(' ');
buf.append(request.getProtocol());

View File

@ -18,7 +18,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="manifest.classpath.name" value="Class-Path" />
<target name="compile" depends="depend">

View File

@ -22,7 +22,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="require.gettext" value="true" />
<property name="manifest.classpath.name" value="Class-Path" />

View File

@ -48,7 +48,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="manifest.classpath.name" value="Class-Path" />
<target name="compile" depends="prepare, depend, dependVersion">

View File

@ -15,7 +15,7 @@ import net.i2p.util.Log;
import net.i2p.util.PortMapper;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.servlets.gzip.GzipHandler;
import org.eclipse.jetty.server.handler.gzip.GzipHandler;
/**
* Block certain Host headers to prevent DNS rebinding attacks.

View File

@ -22,6 +22,7 @@ import java.util.Set;
import java.util.SortedSet;
import java.util.StringTokenizer;
import java.util.concurrent.LinkedBlockingQueue;
import javax.servlet.ServletRequest;
import net.i2p.I2PAppContext;
import net.i2p.app.ClientApp;
@ -360,17 +361,20 @@ public class RouterConsoleRunner implements RouterApp {
log.logAlways(net.i2p.util.Log.WARN, s);
System.out.println("Warning: " + s);
if (noJava8) {
s = "Java 8 or higher will be required in a future release, please upgrade Java";
s = "Java 8 or higher is required, please upgrade Java";
log.logAlways(net.i2p.util.Log.WARN, s);
System.out.println("Warning: " + s);
}
if (noPack200) {
s = "Pack200 is required for plugins and automatic updates, please upgrade Java";
if (SystemVersion.isJava(14))
s = "Pack200 is required for some plugins, please consider downgrading Java to 13 or lower";
else
s = "Pack200 is required for some plugins, please consider upgrading Java";
log.logAlways(net.i2p.util.Log.WARN, s);
System.out.println("Warning: " + s);
}
if (openARM) {
s = "OpenJDK 7/8 are not recommended for ARM. Use OpenJDK 9 (or higher) or Oracle Java 8 (or higher)";
s = "OpenJDK 8 is not recommended for ARM. Use OpenJDK 9 (or higher) or Oracle Java 8 (or higher)";
log.logAlways(net.i2p.util.Log.WARN, s);
System.out.println("Warning: " + s);
}
@ -1081,8 +1085,8 @@ public class RouterConsoleRunner implements RouterApp {
}
@Override
public UserIdentity login(String username, Object credentials) {
UserIdentity rv = super.login(username, credentials);
public UserIdentity login(String username, Object credentials, ServletRequest request) {
UserIdentity rv = super.login(username, credentials, request);
if (rv == null)
//_log.logAlways(net.i2p.util.Log.WARN, "Console authentication failed, webapp: " + _webapp + ", user: " + username);
_log.logAlways(net.i2p.util.Log.WARN, "Console authentication failed, user: " + username);

View File

@ -24,7 +24,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs7" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="manifest.classpath.name" value="Class-Path" />
<!-- compile everything including client classes -->
@ -45,7 +45,7 @@
<target name="compileTest" depends="compile">
<javac
srcdir="./test"
debug="true" deprecation="on" source="1.7" target="1.7"
debug="true" deprecation="on" source="${javac.version}" target="${javac.version}"
includeAntRuntime="false"
encoding="UTF-8"
destdir="./build/obj"

View File

@ -23,7 +23,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="depend">
<mkdir dir="./build" />

View File

@ -37,7 +37,7 @@
</path>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="require.gettext" value="true" />
<condition property="no.bundle">

View File

@ -7,7 +7,7 @@
</target>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="require.gettext" value="true" />
<condition property="no.bundle">

View File

@ -21,7 +21,7 @@
</target>
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="depend">
<mkdir dir="./build" />

View File

@ -43,7 +43,7 @@ sloccount.report.file=sloccount.sc
require.gettext=true
# Compile for this version of Java
javac.version=1.7
javac.version=1.8
# Additional classpath if required
#javac.classpath=/PATH/TO/pack200.jar

View File

@ -8,7 +8,7 @@
<property file="override.properties"/>
<property file="build.properties"/>
<!-- When changing, also change javadoc URL in build.properties, and checksum in apps/jetty/build.xml -->
<property name="jetty.ver" value="9.2.29.v20191105" />
<property name="jetty.ver" value="9.3.28.v20191105" />
<property name="tomcat.ver" value="8.5.50" />
<!-- You probably don't want to change anything from here down -->

View File

@ -22,7 +22,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.classpath" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="manifest.classpath.name" value="Class-Path" />
<!-- fixups if we're using libintl.jar for GettextResource.java -->

View File

@ -54,8 +54,7 @@ Current Runtime Dependencies
* libjetty9-java
For /usr/share/java/jetty9-*.jar.
In non-Debian builds we bundle the jars; it's removed in the Debian source package.
This is for Jetty 9.2.x, which is what's in Debian.
We are not compatible with Jetty 9.4.x, which is what's in RedHat.
This is for Jetty 9.3.x, which is the same as 9.4.x except it's Java 8 compatible.
* libtomcat8-java
For /usr/share/java/tomcat8-*.jar.

View File

@ -1,4 +1,9 @@
2020-05-27 zzz
* Installer:
- Require Java 8 (ticket #2511)
- Sign the dlls (ticket #2704)
* Jetty 9.3.28 (ticket #2098)
* UPnP: More fixes
* Util: Faster gzip
* 2020-05-25 0.9.46 released

View File

@ -9,7 +9,7 @@
<author name="I2P" email="https://geti2p.net/"/>
</authors>
<url>https://geti2p.net/</url>
<javaversion>1.7</javaversion>
<javaversion>1.8</javaversion>
<!-- use pack200 compression, saves about 33%
see http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/pack200.html

View File

@ -15,7 +15,7 @@
<author name="I2P" email="https://geti2p.net/"/>
</authors>
<url>https://geti2p.net/</url>
<javaversion>1.7</javaversion>
<javaversion>1.8</javaversion>
<!-- adding this element will make the installer attempt to launch itself with administrator permissions,
-->

View File

@ -19,7 +19,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.classpath" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="depend">
<mkdir dir="./build" />

View File

@ -19,7 +19,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.classpath" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="izpack5.version" value="5.1.3" />
<property name="izpack.lib" value="${izpack5.home}/lib" />

View File

@ -42,42 +42,5 @@ to serve static html files and images.
<Arg>net.i2p.servlet.I2PDefaultServlet</Arg>
<Arg>/</Arg>
</Call>
<Call name="addFilter">
<!-- Add a filter to gzip on-the fly, since if we don't do it, I2P will.
- This lowers the resource usage in the Java process on the client side,
- by pushing the decompression out of Java and into the browser.
- For all the reasons noted in the GzipFilter javadocs, this is normally
- a bad idea for static content, but this is I2P.
- See I2PTunnelHTTPServer for the I2P compressor.
-->
<Arg>
<New class="org.eclipse.jetty.servlet.FilterHolder" >
<Arg>
<New class="org.eclipse.jetty.servlets.GzipFilter" />
</Arg>
<Call name="setInitParameter">
<!-- minimum in Java is 1300 -->
<Arg>minGzipSize</Arg>
<Arg>512</Arg>
</Call>
<Call name="setInitParameter">
<!-- In Java we have a blacklist. This covers the most common cases. -->
<Arg>mimeTypes</Arg>
<Arg>application/pdf,application/x-javascript,application/xhtml+xml,application/xml,image/svg+xml,text/css,text/html,text/plain</Arg>
</Call>
</New>
</Arg>
<Arg>/*</Arg>
<Arg>
<!-- just guessing here -->
<Call class="java.util.EnumSet" name="of" >
<Arg>
<Call class="javax.servlet.DispatcherType" name="valueOf" >
<Arg>REQUEST</Arg>
</Call>
</Arg>
</Call>
</Arg>
</Call>
</Configure>

View File

@ -19,7 +19,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.classpath" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<target name="compile" depends="depend">
<mkdir dir="./build" />

View File

@ -36,7 +36,7 @@
<!-- only used if not set by a higher build.xml -->
<property name="javac.compilerargs" value="" />
<property name="javac.version" value="1.7" />
<property name="javac.version" value="1.8" />
<property name="manifest.classpath.name" value="Class-Path" />
<target name="compile" depends="depend, dependVersion">

View File

@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 1;
public final static long BUILD = 2;
/** for example "-test" */
public final static String EXTRA = "";