v1.17 release candidate

jdk download url fix
added docker build instructions
fixed mac launch
fixed relative paths
pull/35/head v1.17
knaccc 4 years ago
parent d6de605095
commit ea125d8425

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

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

@ -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##*/}"

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

@ -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
Loading…
Cancel
Save