upgrade to i2p 0.9.47, switch to json.org library to prevent library clash with i2p changes, i2p-zero version 1.18 release

pull/35/head
knaccc 4 years ago
parent 8ce2d51512
commit 802939088b

@ -27,14 +27,14 @@ Download the latest binary releases for Mac/Windows/Linux here: https://github.c
The zero-dependency distribution sizes are as follows:
OS | Uncompressed size (MB) | Compressed size (MB) | v1.17 Reproducible build SHA-256
OS | Uncompressed size (MB) | Compressed size (MB) | v1.18 Reproducible build SHA-256
------------ | ----------------------- | --------------------- | ------------------------------------------------------------------
Mac | 37.8 | 26.3 | `e25c304c6f45291d03d3c303fd8d4a126ba910f9b67e205341150384b81de9cd`
Windows | 47.3 | 32.2 | `a3fa0c8b3ae2311ec8c4914d657adbf23a506256b91493d4609fc0e6f557a30b`
Linux | 61.4 | 36.2 | `298abd5bfe918581ed85f35ad9bc75261a9cdf16f576356525085dfa898a2fb6`
Mac GUI | 61.0 | 45.7 | `968af1268f2d21812a8dc8e9ba6abbb36eb472652da099228c82d81c8cbb0a86`
Windows GUI | 69.2 | 50.4 | `2296825e662dba491e428970aae87f4d9596971eb2ff9e51a52df471b354fc60`
Linux GUI | 86.5 | 56.4 | `2acbb171fa06197ecaeb1e2904e2b56b9a20adfc71d09521f6fa3545631e2b29`
Mac | 38.7 | 26.4 | `2f522910b283658604c1200820e8d55d9644e6ced315b83b0c70470717e2e413`
Windows | 48.0 | 32.4 | `7a10debc0674d2fdfc211cf478961cbaad35d03897d7d765a1ea4951d1eaac3d`
Linux | 61.6 | 36.3 | `96950ddca5898a756459a62889e54637f74ead9c5732297ae3adbf68405fa543`
Mac GUI | 61.4 | 45.8 | `8c1f2b27151351604e6a47275c5e69c1db8c898b57039f41fe4b747421dacc19`
Windows GUI | 70.5 | 50.6 | `5374e4dc015142774ba2fc7ae15f0647e0120b36c716dee218975b76f3a198f6`
Linux GUI | 86.9 | 56.5 | `7d273233962e54ab1c965e81505f861645c0f0247905cb0eab2e96cdcdd29ed7`
Note: Reproducible builds are currently experimental. Due to JDK differences, Builds on Mac will consistently have different hashes than builds on Linux. Official releases will always be built using Docker.

@ -9,7 +9,7 @@ fi
source "$basedir/bin/java-config.sh"
echo "*** Compiling CLI"
"$JAVA_HOME"/bin/javac --module-path "$basedir/target/modules/combined.jar" -d "$basedir/target/classes/org.getmonero.i2p.zero" $(find "$basedir/org.getmonero.i2p.zero/src" -name '*.java')
"$JAVA_HOME"/bin/javac --enable-preview -source 14 --module-path "$basedir/target/modules/combined.jar" -d "$basedir/target/classes/org.getmonero.i2p.zero" $(find "$basedir/org.getmonero.i2p.zero/src" -name '*.java')
cp "$basedir/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/VERSION" "$basedir/target/classes/org.getmonero.i2p.zero/org/getmonero/i2p/zero/"
echo "*** Packaging CLI as a modular jar"
@ -17,7 +17,7 @@ echo "*** Packaging CLI as a modular jar"
normalizeZip "$basedir/target/org.getmonero.i2p.zero.jar"
echo "*** Compiling GUI"
"$JAVA_HOME"/bin/javac --module-path "$basedir/target/org.getmonero.i2p.zero.jar:$basedir/target/modules/combined.jar:$basedir/import/javafx-sdks/linux/javafx-sdk-$JAVAFX_VERSION/lib" -d "$basedir/target/classes/org.getmonero.i2p.zero.gui" $(find "$basedir/org.getmonero.i2p.zero.gui/src" -name '*.java')
"$JAVA_HOME"/bin/javac --enable-preview -source 14 --module-path "$basedir/target/org.getmonero.i2p.zero.jar:$basedir/target/modules/combined.jar:$basedir/import/javafx-sdks/linux/javafx-sdk-$JAVAFX_VERSION/lib" -d "$basedir/target/classes/org.getmonero.i2p.zero.gui" $(find "$basedir/org.getmonero.i2p.zero.gui/src" -name '*.java')
cp -r "$basedir/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/"*.{css,png,fxml,ttf} "$basedir/target/classes/org.getmonero.i2p.zero.gui/org/getmonero/i2p/zero/gui/"

@ -9,6 +9,7 @@ fi
source "$basedir/bin/java-config.sh"
cp "$basedir"/import/jetty-lib/*.jar "$basedir/import/lib/"
cp "$basedir"/import/org-json/*.jar "$basedir/import/lib/"
rm -fr "$basedir/target/lib-combined"
rm -fr "$basedir/target/lib-combined-tmp"
@ -45,7 +46,7 @@ echo 'uses org.eclipse.jetty.http.HttpFieldPreEncoder; }' >> "$basedir/target/mo
echo "*** Creating new combined modular jar"
"$JAVA_HOME"/bin/javac --module-path "$combinedJarPath/combined" --patch-module combined="$combinedJarPath" "$basedir/target/module-info/combined/module-info.java"
"$JAVA_HOME"/bin/javac --enable-preview -source 14 --module-path "$combinedJarPath/combined" --patch-module combined="$combinedJarPath" "$basedir/target/module-info/combined/module-info.java"
cp $combinedJarPath "$basedir/target/modules/"
"$JAVA_HOME"/bin/jar uf "$basedir/target/modules/combined.jar" -C "$basedir/target/module-info/combined" module-info.class

@ -17,7 +17,7 @@ fi
cd "$basedir/import/i2p.i2p"
git fetch
git checkout tags/i2p-0.9.45
git checkout tags/i2p-0.9.47
cd ..
if [ ! -d "$basedir/import/jdks" ]; then
@ -27,14 +27,14 @@ if [ ! -d "$basedir/import/jdks" ]; then
wget --directory-prefix=jdks/mac $JDK_DOWNLOAD_URL_MAC
wget --directory-prefix=jdks/win $JDK_DOWNLOAD_URL_WIN
tar zxvf jdks/linux/$JDK_DOWNLOAD_FILENAME_LINUX -C jdks/linux/
tar zxvf jdks/mac/$JDK_DOWNLOAD_FILENAME_MAC -C jdks/mac/
unzip jdks/win/$JDK_DOWNLOAD_FILENAME_WIN -d jdks/win/
tar zxf jdks/linux/$JDK_DOWNLOAD_FILENAME_LINUX -C jdks/linux/
tar zxf jdks/mac/$JDK_DOWNLOAD_FILENAME_MAC -C jdks/mac/
unzip -q jdks/win/$JDK_DOWNLOAD_FILENAME_WIN -d jdks/win/
fi
if [ ! -d "$basedir/import/apache-ant-1.10.7" ]; then
wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.7-bin.tar.gz
tar zxvf apache-ant-1.10.7-bin.tar.gz
tar zxf apache-ant-1.10.7-bin.tar.gz
fi
if [ ! -d "$basedir/import/commons-compress-1.20" ]; then
@ -42,6 +42,11 @@ if [ ! -d "$basedir/import/commons-compress-1.20" ]; then
wget --directory-prefix=commons-compress-1.20 https://repo1.maven.org/maven2/org/apache/commons/commons-compress/1.20/commons-compress-1.20.jar
fi
if [ ! -d "$basedir/import/org-json" ]; then
mkdir -p org-json
wget --directory-prefix=org-json https://repo1.maven.org/maven2/org/json/json/20200518/json-20200518.jar
fi
if [ ! -d "$basedir/import/jetty-lib" ]; then
mkdir -p jetty-lib
wget --directory-prefix=jetty-lib https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-server/9.4.26.v20200117/jetty-server-9.4.26.v20200117.jar
@ -62,9 +67,9 @@ if [ ! -d "$basedir/import/javafx-sdks" ]; then
wget --directory-prefix=javafx-sdks/mac $JAVAFX_SDK_DOWNLOAD_URL_MAC
wget --directory-prefix=javafx-sdks/win $JAVAFX_SDK_DOWNLOAD_URL_WIN
unzip javafx-sdks/linux/`basename $JAVAFX_SDK_DOWNLOAD_URL_LINUX` -d javafx-sdks/linux/
unzip javafx-sdks/mac/`basename $JAVAFX_SDK_DOWNLOAD_URL_MAC` -d javafx-sdks/mac/
unzip javafx-sdks/win/`basename $JAVAFX_SDK_DOWNLOAD_URL_WIN` -d javafx-sdks/win/
unzip -q javafx-sdks/linux/`basename $JAVAFX_SDK_DOWNLOAD_URL_LINUX` -d javafx-sdks/linux/
unzip -q javafx-sdks/mac/`basename $JAVAFX_SDK_DOWNLOAD_URL_MAC` -d javafx-sdks/mac/
unzip -q javafx-sdks/win/`basename $JAVAFX_SDK_DOWNLOAD_URL_WIN` -d javafx-sdks/win/
fi
if [ ! -d "$basedir/import/javafx-jmods" ]; then
@ -74,14 +79,14 @@ if [ ! -d "$basedir/import/javafx-jmods" ]; then
wget --directory-prefix=javafx-jmods/mac $JAVAFX_JMODS_DOWNLOAD_URL_MAC
wget --directory-prefix=javafx-jmods/win $JAVAFX_JMODS_DOWNLOAD_URL_WIN
unzip javafx-jmods/linux/$JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX -d javafx-jmods/linux/
unzip javafx-jmods/mac/$JAVAFX_JMODS_DOWNLOAD_FILENAME_MAC -d javafx-jmods/mac/
unzip javafx-jmods/win/$JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN -d javafx-jmods/win/
unzip -q javafx-jmods/linux/$JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX -d javafx-jmods/linux/
unzip -q javafx-jmods/mac/$JAVAFX_JMODS_DOWNLOAD_FILENAME_MAC -d javafx-jmods/mac/
unzip -q javafx-jmods/win/$JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN -d javafx-jmods/win/
fi
if [ ! -d "$basedir/import/jpackage" ]; then
mkdir -p jpackage/linux jpackage/win
unzip $JAVA_HOME_LINUX/jmods/jdk.incubator.jpackage.jmod -d jpackage/linux/
unzip $JAVA_HOME_WIN/jmods/jdk.incubator.jpackage.jmod -d jpackage/win/
unzip -q $JAVA_HOME_LINUX/jmods/jdk.incubator.jpackage.jmod -d jpackage/linux/
unzip -q $JAVA_HOME_WIN/jmods/jdk.incubator.jpackage.jmod -d jpackage/win/
fi

@ -8,9 +8,7 @@ import net.i2p.router.RouterContext;
import net.i2p.router.networkdb.kademlia.FloodfillNetworkDatabaseFacade;
import net.i2p.router.transport.FIFOBandwidthRefiller;
import net.i2p.router.transport.TransportUtil;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.*;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
@ -180,7 +178,7 @@ public class RouterWrapper {
try {
File configFile = new File(i2PConfigDir, "config.json");
if (configFile.exists()) {
JSONObject root = (JSONObject) new JSONParser().parse(Files.readString(configFile.toPath()));
JSONObject root = new JSONObject(Files.readString(configFile.toPath()));
return ((Long) root.get("bandwidthLimitKBps")).intValue();
} else return defaultBandwidthKBps;
}
@ -229,12 +227,12 @@ public class RouterWrapper {
try {
File configFile = new File(i2PConfigDir, "config.json");
JSONObject root = new JSONObject();;
JSONObject root = new JSONObject();
if (configFile.exists()) {
root = (JSONObject) new JSONParser().parse(Files.readString(configFile.toPath()));
root = new JSONObject(Files.readString(configFile.toPath()));
}
root.put("bandwidthLimitKBps", n);
Files.writeString(configFile.toPath(), root.toJSONString());
Files.writeString(configFile.toPath(), root.toString(2));
}
catch (Exception e) {
throw new RuntimeException(e);

@ -13,9 +13,7 @@ import org.eclipse.jetty.server.*;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.util.thread.QueuedThreadPool;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.*;
import java.io.*;
import java.math.BigInteger;
@ -77,10 +75,10 @@ public class TunnelControl implements Runnable {
File tunnelControlConfigFile = new File(tunnelControlConfigDir, "tunnels.json");
if (tunnelControlConfigFile.exists()) {
tunnels.clear();
JSONObject root = (JSONObject) new JSONParser().parse(Files.readString(tunnelControlConfigFile.toPath()));
JSONArray list = (JSONArray) root.get("tunnels");
list.stream().forEach((o)->{
JSONObject obj = (JSONObject) o;
JSONObject root = new JSONObject(Files.readString(tunnelControlConfigFile.toPath()));
JSONArray list = root.getJSONArray("tunnels");
for(int i=0; i<list.length(); i++) {
JSONObject obj = list.getJSONObject(i);
String type = (String) obj.get("type");
switch (type) {
case "server":
@ -99,7 +97,7 @@ public class TunnelControl implements Runnable {
tunnels.add(new HttpClientTunnel(Integer.parseInt((String) obj.get("port")), routerWrapper));
break;
}
});
}
fireChangeEvent();
}
@ -116,7 +114,7 @@ public class TunnelControl implements Runnable {
JSONObject entry = new JSONObject();
entry.put("type", t.getType());
if(includeState) entry.put("state", t.getState());
tunnelsArray.add(entry);
tunnelsArray.put(entry);
switch (t.getType()) {
case "server":
case "eepsite":
@ -145,7 +143,7 @@ public class TunnelControl implements Runnable {
break;
}
}
return root.toJSONString();
return root.toString(2);
}
catch (Exception e) {
throw new RuntimeException(e);

Loading…
Cancel
Save