mirror of
https://github.com/wownero/i2p-zero.git
synced 2026-10-17 15:21:40 +02:00
v1.17 release candidate
jdk download url fix added docker build instructions fixed mac launch fixed relative paths
This commit is contained in:
@@ -27,23 +27,60 @@ 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.16 Reproducible build SHA-256
|
||||
OS | Uncompressed size (MB) | Compressed size (MB) | v1.17 Reproducible build SHA-256
|
||||
------------ | ----------------------- | --------------------- | ------------------------------------------------------------------
|
||||
Mac | 40.1 | 26.7 | `5a5afce35e31f4227882296bda327c24dff6196a1b6ee74fd716e123fa653e9d`
|
||||
Windows | 47.7 | 32.3 | `ebddbac99ad8e232c8cfd5339cbfccf4963ac705016fe5a67b1bdd2b6d4233a9`
|
||||
Linux | 51.8 | 33.4 | `64997e53ef27c84c3f3e871ef6b0b1f1feccf7aa7d60ccac5060f7694e9d2dfa`
|
||||
Mac GUI | 63.0 | 45.8 | `c8e1a5c572ef7bff231df76b7c7be2a2ea300ced4b8dbefbd329afac75ccbcaf`
|
||||
Windows GUI | 70.4 | 50.8 | `bc91c60075d0b10d0b443702176ad1997e6a571182b9ad6c2f68bdcdbbf432de`
|
||||
Linux GUI | 77.9 | 53.8 | `e60e1bc257085988caa448b34d90eba803b7323f6f1e44cf4fba93b39c0eda96`
|
||||
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`
|
||||
|
||||
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 on Linux (Ubuntu).
|
||||
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.
|
||||
|
||||
|
||||
## Building the launchers
|
||||
|
||||
All binary releases for Windows, Mac and Linux can be built from either Linux or Mac.
|
||||
|
||||
From a freshly installed Ubuntu system, first ensure git is installed:
|
||||
Use the Docker build method for reproducible builds.
|
||||
|
||||
### To build using Docker on Mac:
|
||||
|
||||
First install docker from https://hub.docker.com/editions/community/docker-ce-desktop-mac
|
||||
|
||||
````
|
||||
containerId=$(docker run -td --rm ubuntu)
|
||||
docker exec -ti $containerId bash -c '\
|
||||
apt-get update \
|
||||
&& apt-get -y install git wget zip unzip \
|
||||
&& git clone https://github.com/i2p-zero/i2p-zero.git \
|
||||
&& cd i2p-zero && bash bin/build-all-and-zip.sh'
|
||||
docker cp $containerId:/i2p-zero/dist-zip ./
|
||||
docker container stop $containerId
|
||||
````
|
||||
|
||||
### To build using Docker on Ubuntu:
|
||||
|
||||
````
|
||||
sudo apt -y install docker docker.io
|
||||
systemctl start docker
|
||||
|
||||
containerId=$(sudo docker run -td --rm ubuntu)
|
||||
sudo docker exec -ti $containerId bash -c '\
|
||||
apt-get update \
|
||||
&& apt-get -y install git wget zip unzip \
|
||||
&& git clone https://github.com/i2p-zero/i2p-zero.git \
|
||||
&& cd i2p-zero && bash bin/build-all-and-zip.sh'
|
||||
sudo docker cp $containerId:/i2p-zero/dist-zip ./
|
||||
sudo docker container stop $containerId
|
||||
````
|
||||
|
||||
This will result in a dist-zip directory being copied into the current directory. The dist-zip directory will contain the builds for all platforms.
|
||||
|
||||
### To build without Docker on Ubuntu:
|
||||
|
||||
To build without Docker on a freshly installed Ubuntu system, first ensure git is installed:
|
||||
|
||||
`sudo apt install git`
|
||||
|
||||
|
||||
+14
-11
@@ -9,21 +9,21 @@ fi
|
||||
source "$basedir/bin/java-config.sh"
|
||||
|
||||
echo "*** Compiling CLI"
|
||||
"$JAVA_HOME"/bin/javac --module-path target/modules/combined.jar -d target/classes/org.getmonero.i2p.zero $(find org.getmonero.i2p.zero/src -name '*.java')
|
||||
cp org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/VERSION target/classes/org.getmonero.i2p.zero/org/getmonero/i2p/zero/
|
||||
"$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')
|
||||
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"
|
||||
"$JAVA_HOME"/bin/jar --create --file target/org.getmonero.i2p.zero.jar --main-class org.getmonero.i2p.zero.Main -C target/classes/org.getmonero.i2p.zero .
|
||||
normalizeZip target/org.getmonero.i2p.zero.jar
|
||||
"$JAVA_HOME"/bin/jar --create --file "$basedir/target/org.getmonero.i2p.zero.jar" --main-class org.getmonero.i2p.zero.Main -C "$basedir/target/classes/org.getmonero.i2p.zero" .
|
||||
normalizeZip "$basedir/target/org.getmonero.i2p.zero.jar"
|
||||
|
||||
echo "*** Compiling GUI"
|
||||
"$JAVA_HOME"/bin/javac --module-path target/org.getmonero.i2p.zero.jar:target/modules/combined.jar:import/javafx-sdks/linux/javafx-sdk-$JAVAFX_VERSION/lib -d target/classes/org.getmonero.i2p.zero.gui $(find org.getmonero.i2p.zero.gui/src -name '*.java')
|
||||
"$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')
|
||||
|
||||
cp -r org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/*.{css,png,fxml,ttf} target/classes/org.getmonero.i2p.zero.gui/org/getmonero/i2p/zero/gui/
|
||||
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/"
|
||||
|
||||
echo "*** Packaging GUI as a modular jar"
|
||||
"$JAVA_HOME"/bin/jar --create --file target/org.getmonero.i2p.zero.gui.jar --main-class org.getmonero.i2p.zero.gui.Gui -C target/classes/org.getmonero.i2p.zero.gui .
|
||||
normalizeZip target/org.getmonero.i2p.zero.gui.jar
|
||||
"$JAVA_HOME"/bin/jar --create --file "$basedir/target/org.getmonero.i2p.zero.gui.jar" --main-class org.getmonero.i2p.zero.gui.Gui -C "$basedir/target/classes/org.getmonero.i2p.zero.gui" .
|
||||
normalizeZip "$basedir/target/org.getmonero.i2p.zero.gui.jar"
|
||||
|
||||
rm -fr "$basedir/dist"
|
||||
for i in linux mac win linux-gui mac-gui win-gui; do mkdir -p "$basedir/dist/$i"; done
|
||||
@@ -41,8 +41,8 @@ for i in linux mac win; do
|
||||
JAVA_HOME_VARIANT=${JAVA_HOME_WIN} ;;
|
||||
esac
|
||||
echo "Using JAVA_HOME_VARIANT: $JAVA_HOME_VARIANT"
|
||||
"$JAVA_HOME"/bin/jlink --module-path "${JAVA_HOME_VARIANT}/jmods":target/modules:target/org.getmonero.i2p.zero.jar --add-modules combined,org.getmonero.i2p.zero --output dist/$i/router --compress 2 --no-header-files --no-man-pages --order-resources=**/module-info.class,/java.base/java/lang/**,**javafx**
|
||||
"$JAVA_HOME"/bin/jlink --module-path "${JAVA_HOME_VARIANT}/jmods":import/javafx-jmods/$i/javafx-jmods-${JAVAFX_VERSION}:target/modules:target/org.getmonero.i2p.zero.jar:target/org.getmonero.i2p.zero.gui.jar --add-modules combined,org.getmonero.i2p.zero,org.getmonero.i2p.zero.gui,javafx.controls,javafx.fxml,java.desktop --output dist/$i-gui/router --compress 2 --no-header-files --no-man-pages --order-resources=**/module-info.class,/java.base/java/lang/**,**javafx**
|
||||
"$JAVA_HOME"/bin/jlink --module-path "${JAVA_HOME_VARIANT}/jmods":"$basedir/target/modules":"$basedir/target/org.getmonero.i2p.zero.jar" --add-modules combined,org.getmonero.i2p.zero --output "$basedir/dist/$i/router" --compress 2 --no-header-files --no-man-pages --order-resources=**/module-info.class,/java.base/java/lang/**,**javafx**
|
||||
"$JAVA_HOME"/bin/jlink --module-path "${JAVA_HOME_VARIANT}/jmods":"$basedir/import/javafx-jmods/$i/javafx-jmods-${JAVAFX_VERSION}":"$basedir/target/modules":"$basedir/target/org.getmonero.i2p.zero.jar":"$basedir/target/org.getmonero.i2p.zero.gui.jar" --add-modules combined,org.getmonero.i2p.zero,org.getmonero.i2p.zero.gui,javafx.controls,javafx.fxml,java.desktop --output "$basedir/dist/$i-gui/router" --compress 2 --no-header-files --no-man-pages --order-resources=**/module-info.class,/java.base/java/lang/**,**javafx**
|
||||
done
|
||||
|
||||
for i in mac-gui; do
|
||||
@@ -87,6 +87,8 @@ for i in linux linux-gui; do
|
||||
cp "$basedir/import/jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/libapplauncher.so" "$basedir/dist/$i/router/lib/"
|
||||
done
|
||||
|
||||
cp "$basedir/i2p-zero.png" "$basedir/dist/linux-gui/router/lib/"
|
||||
|
||||
# build win and win-gui app structure
|
||||
for i in win win-gui; do
|
||||
mv "$basedir/dist/$i/router" "$basedir/dist/$i/router-tmp"
|
||||
@@ -101,9 +103,10 @@ for i in linux mac; do
|
||||
cp "$basedir/resources/tunnel-control.sh" "$basedir/dist/$i/router/bin/"
|
||||
done
|
||||
|
||||
cp "$basedir/resources/launch.sh" "$basedir/dist/mac/router/bin/"
|
||||
|
||||
# show distribution sizes
|
||||
du -sk dist/* | awk '{printf "%.1f MB %s\n",$1/1024,$2}'
|
||||
du -sk "$basedir/dist/"* | awk '{printf "%.1f MB %s\n",$1/1024,$2}'
|
||||
|
||||
|
||||
echo "*** Done ***"
|
||||
|
||||
@@ -9,9 +9,9 @@ fi
|
||||
source "$basedir/bin/java-config.sh"
|
||||
|
||||
echo "*** Compiling Zip normalizer utility"
|
||||
"$JAVA_HOME"/bin/javac --module-path import/commons-compress-1.20/commons-compress-1.20.jar -d target/classes/org.getmonero.util.normalizeZip $(find org.getmonero.util.normalizeZip/src -name '*.java')
|
||||
"$JAVA_HOME"/bin/javac --module-path "$basedir/import/commons-compress-1.20/commons-compress-1.20.jar" -d "$basedir/target/classes/org.getmonero.util.normalizeZip" $(find "$basedir/org.getmonero.util.normalizeZip/src" -name '*.java')
|
||||
|
||||
echo "*** Packaging Zip normalizer as a modular jar"
|
||||
"$JAVA_HOME"/bin/jar --create --file target/org.getmonero.util.normalizeZip.jar --main-class org.getmonero.util.normalizeZip.NormalizeZip -C target/classes/org.getmonero.util.normalizeZip .
|
||||
"$JAVA_HOME"/bin/jar --create --file "$basedir/target/org.getmonero.util.normalizeZip.jar" --main-class org.getmonero.util.normalizeZip.NormalizeZip -C "$basedir/target/classes/org.getmonero.util.normalizeZip" .
|
||||
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ 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 --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
|
||||
|
||||
normalizeZip target/modules/combined.jar
|
||||
normalizeZip "$basedir/target/modules/combined.jar"
|
||||
|
||||
|
||||
|
||||
+4
-4
@@ -8,13 +8,13 @@ fi
|
||||
|
||||
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
|
||||
|
||||
JDK_MAJOR_VERSION=14
|
||||
JDK_VERSION=14.0.1+7
|
||||
JDK_MAJOR_VERSION=`echo $JDK_VERSION | cut -f1 -d"."`
|
||||
JDK_VERSION_URL_ENC=`echo "$JDK_VERSION" | sed 's/+/%2B/g'`
|
||||
JDK_VERSION_URL_ENC2=`echo "$JDK_VERSION" | sed 's/+/_/g'`
|
||||
JDK_DOWNLOAD_URL_LINUX=https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/${JDK_VERSION_URL_ENC}/OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${JDK_VERSION_URL_ENC2}.tar.gz
|
||||
JDK_DOWNLOAD_URL_MAC=https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/${JDK_VERSION_URL_ENC}/OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_mac_hotspot_${JDK_VERSION_URL_ENC2}.tar.gz
|
||||
JDK_DOWNLOAD_URL_WIN=https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/${JDK_VERSION_URL_ENC}/OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_windows_hotspot_${JDK_VERSION_URL_ENC2}.zip
|
||||
JDK_DOWNLOAD_URL_LINUX=https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-${JDK_VERSION_URL_ENC}/OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${JDK_VERSION_URL_ENC2}.tar.gz
|
||||
JDK_DOWNLOAD_URL_MAC=https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-${JDK_VERSION_URL_ENC}/OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_mac_hotspot_${JDK_VERSION_URL_ENC2}.tar.gz
|
||||
JDK_DOWNLOAD_URL_WIN=https://github.com/AdoptOpenJDK/openjdk14-binaries/releases/download/jdk-${JDK_VERSION_URL_ENC}/OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_windows_hotspot_${JDK_VERSION_URL_ENC2}.zip
|
||||
|
||||
JDK_DOWNLOAD_FILENAME_LINUX="${JDK_DOWNLOAD_URL_LINUX##*/}"
|
||||
JDK_DOWNLOAD_FILENAME_MAC="${JDK_DOWNLOAD_URL_MAC##*/}"
|
||||
|
||||
+1
-1
@@ -55,4 +55,4 @@ print4ColsJustified "Windows GUI" "`getFileSizeMB $basedir/dist/win-gui`" "`ge
|
||||
print4ColsJustified "Linux GUI" "`getFileSizeMB $basedir/dist/linux-gui`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-linux-gui.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-linux-gui.v${VERSION}.zip`\`"
|
||||
|
||||
echo ""
|
||||
echo "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 on Linux (Ubuntu)."
|
||||
echo "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."
|
||||
Executable
+9
@@ -0,0 +1,9 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ $(uname -s) = Darwin ]; then
|
||||
basedir=$(dirname $(cd "$(dirname "$0")"; pwd -P))
|
||||
else
|
||||
basedir=$(dirname $(dirname $(readlink -fm $0)))
|
||||
fi
|
||||
|
||||
"$basedir"/bin/java -cp "$basedir/i2p.base/jbigi.jar" -m org.getmonero.i2p.zero
|
||||
Reference in New Issue
Block a user