Compare commits

...

4 Commits

Author SHA1 Message Date
knaccc 5d1fb68a73
Merge pull request #38 from Malinero/single
3 years ago
knaccc d514b82e36
Merge pull request #39 from Malinero/config_dir
3 years ago
malinero 77b8870c8b Fix router.config dir
3 years ago
malinero 4abd54cbef Option to not build all platforms
3 years ago

@ -27,34 +27,35 @@ echo "*** Packaging GUI as a modular 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
for target in ${TARGETS}; do
for i in ${target} ${target}-gui; do
rm -fr "$basedir/dist/$i"
mkdir -p "$basedir/dist/$i"
done
done
# create OS specific launchers which will bundle together the code and a minimal JVM
for i in linux mac win; do
for i in ${TARGETS}; do
echo "*** Performing jlink ($i)"
case $i in
linux )
JAVA_HOME_VARIANT=${JAVA_HOME_LINUX} ;;
mac )
JAVA_HOME_VARIANT=${JAVA_HOME_MAC} ;;
win )
JAVA_HOME_VARIANT=${JAVA_HOME_WIN} ;;
esac
JAVA_HOME_VARIANT=$basedir/import/jdks/${i}/${variables["JAVA_HOME_$i"]}
echo "Using JAVA_HOME_VARIANT: $JAVA_HOME_VARIANT"
"$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
cp "$basedir/resources/launch-gui.sh" "$basedir/dist/$i/router/bin/"
done
if [[ "$TARGETS" =~ "mac" ]]; then
cp "$basedir/resources/launch-gui.sh" "$basedir/dist/mac-gui/router/bin/"
fi
for i in linux mac win linux-gui mac-gui win-gui; do cp -r "$basedir/import/i2p.base" "$basedir/dist/$i/router/"; done
for target in ${TARGETS}; do
for i in ${target} ${target}-gui; do
cp -r "$basedir/import/i2p.base" "$basedir/dist/$i/router/";
done
done
# remove unnecessary native libs from jbigi.jar
for i in linux mac win; do
for i in ${TARGETS}; do
for j in freebsd linux mac win; do
if [ "$i" != "$j" ]; then
if [ "$j" = "mac" ]; then j="osx"; fi
@ -67,45 +68,55 @@ for i in linux mac win; do
done
# build mac gui app structure
mv "$basedir/dist/mac-gui/router" "$basedir/dist/mac-gui/router-tmp"
mkdir -p "$basedir/dist/mac-gui/router/i2p-zero.app/Contents/MacOS/"
cp -R "$basedir/resources/i2p-zero.app" "$basedir/dist/mac-gui/router/"
mv "$basedir/dist/mac-gui/router-tmp"/* "$basedir/dist/mac-gui/router/i2p-zero.app/Contents/MacOS/"
rm -fr "$basedir/dist/mac-gui/router-tmp"
if [[ "$TARGETS" =~ "mac" ]]; then
mv "$basedir/dist/mac-gui/router" "$basedir/dist/mac-gui/router-tmp"
mkdir -p "$basedir/dist/mac-gui/router/i2p-zero.app/Contents/MacOS/"
cp -R "$basedir/resources/i2p-zero.app" "$basedir/dist/mac-gui/router/"
mv "$basedir/dist/mac-gui/router-tmp"/* "$basedir/dist/mac-gui/router/i2p-zero.app/Contents/MacOS/"
rm -fr "$basedir/dist/mac-gui/router-tmp"
fi
# build linux and linux-gui app structure
for i in linux linux-gui; do
mv "$basedir/dist/$i/router" "$basedir/dist/$i/router-tmp"
mkdir -p "$basedir/dist/$i/router/bin"
mkdir -p "$basedir/dist/$i/router/lib"
cp "$basedir/import/jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/jpackageapplauncher" "$basedir/dist/$i/router/bin/i2p-zero"
chmod +x "$basedir/dist/$i/router/bin/i2p-zero"
mkdir -p "$basedir/dist/$i/router/lib/app"
cp "$basedir/resources/i2p-zero.$i.cfg" "$basedir/dist/$i/router/lib/app/i2p-zero.cfg"
mv "$basedir/dist/$i/router-tmp" "$basedir/dist/$i/router/lib/runtime"
cp "$basedir/import/jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/libapplauncher.so" "$basedir/dist/$i/router/lib/"
done
if [[ "$TARGETS" =~ "linux" ]]; then
for i in linux linux-gui; do
mv "$basedir/dist/$i/router" "$basedir/dist/$i/router-tmp"
mkdir -p "$basedir/dist/$i/router/bin"
mkdir -p "$basedir/dist/$i/router/lib"
cp "$basedir/import/jpackage/linux/classes/jdk/incubator/jpackage/internal/resources/jpackageapplauncher" "$basedir/dist/$i/router/bin/i2p-zero"
chmod +x "$basedir/dist/$i/router/bin/i2p-zero"
mkdir -p "$basedir/dist/$i/router/lib/app"
cp "$basedir/resources/i2p-zero.$i.cfg" "$basedir/dist/$i/router/lib/app/i2p-zero.cfg"
mv "$basedir/dist/$i/router-tmp" "$basedir/dist/$i/router/lib/runtime"
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/"
fi
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"
mkdir -p "$basedir/dist/$i/router/app"
cp "$basedir/resources/i2p-zero.$i.cfg" "$basedir/dist/$i/router/app/i2p-zero.cfg"
mv "$basedir/dist/$i/router-tmp" "$basedir/dist/$i/router/runtime"
cp "$basedir/resources/launcher.exe" "$basedir/dist/$i/router/i2p-zero.exe"
cp "$basedir/import/jpackage/win/classes/jdk/incubator/jpackage/internal/resources/applauncher.dll" "$basedir/dist/$i/router/"
done
if [[ "$TARGETS" =~ "win" ]]; then
for i in win win-gui; do
mv "$basedir/dist/$i/router" "$basedir/dist/$i/router-tmp"
mkdir -p "$basedir/dist/$i/router/app"
cp "$basedir/resources/i2p-zero.$i.cfg" "$basedir/dist/$i/router/app/i2p-zero.cfg"
mv "$basedir/dist/$i/router-tmp" "$basedir/dist/$i/router/runtime"
cp "$basedir/resources/launcher.exe" "$basedir/dist/$i/router/i2p-zero.exe"
cp "$basedir/import/jpackage/win/classes/jdk/incubator/jpackage/internal/resources/applauncher.dll" "$basedir/dist/$i/router/"
done
fi
for i in linux mac; do
cp "$basedir/resources/tunnel-control.sh" "$basedir/dist/$i/router/bin/"
for i in ${TARGETS}; do
if [ ${i} != "win" ]; then
cp "$basedir/resources/tunnel-control.sh" "$basedir/dist/$i/router/bin/"
fi
done
cp "$basedir/resources/launch.sh" "$basedir/dist/mac/router/bin/"
if [[ "$TARGETS" =~ "mac" ]]; then
cp "$basedir/resources/launch.sh" "$basedir/dist/mac/router/bin/"
fi
# show distribution sizes
du -sk "$basedir/dist/"* | awk '{printf "%.1f MB %s\n",$1/1024,$2}'

@ -29,17 +29,15 @@ else
fi
if [ ! -d "$basedir/import/jdks" ]; then
mkdir -p jdks
mkdir -p jdks/linux jdks/mac jdks/win
wget --directory-prefix=jdks/linux $JDK_DOWNLOAD_URL_LINUX
wget --directory-prefix=jdks/mac $JDK_DOWNLOAD_URL_MAC
wget --directory-prefix=jdks/win $JDK_DOWNLOAD_URL_WIN
for target in ${TARGETS};do
if [ ! -d "$basedir/import/jdks/${target}" ]; then
mkdir -p jdks/${target}
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
JDK_FILENAME=${variables["JDK_DOWNLOAD_FILENAME_$target"]}
wget --directory-prefix=jdks/${target} "https://github.com/AdoptOpenJDK/openjdk${JDK_MAJOR_VERSION}-binaries/releases/download/jdk-${JDK_VERSION_URL_ENC}/${JDK_FILENAME}"
${variables["DECOMPRESS_$target"]} jdks/${target}/${JDK_FILENAME}
fi
done;
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
@ -68,38 +66,30 @@ if [ ! -d "$basedir/import/jetty-lib" ]; then
wget --directory-prefix=jetty-lib https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-jmx/9.4.26.v20200117/jetty-jmx-9.4.26.v20200117.jar
fi
if [ ! -d "$basedir/import/javafx-sdks" ]; then
mkdir -p javafx-sdks
mkdir -p javafx-sdks/linux javafx-sdks/mac javafx-sdks/win
wget --directory-prefix=javafx-sdks/linux $JAVAFX_SDK_DOWNLOAD_URL_LINUX
wget --directory-prefix=javafx-sdks/mac $JAVAFX_SDK_DOWNLOAD_URL_MAC
wget --directory-prefix=javafx-sdks/win $JAVAFX_SDK_DOWNLOAD_URL_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
mkdir -p javafx-jmods
mkdir -p javafx-jmods/linux javafx-jmods/mac javafx-jmods/win
wget --directory-prefix=javafx-jmods/linux $JAVAFX_JMODS_DOWNLOAD_URL_LINUX
wget --directory-prefix=javafx-jmods/mac $JAVAFX_JMODS_DOWNLOAD_URL_MAC
wget --directory-prefix=javafx-jmods/win $JAVAFX_JMODS_DOWNLOAD_URL_WIN
set +e
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/
set -e
fi
if [ ! -d "$basedir/import/jpackage" ]; then
mkdir -p jpackage/linux jpackage/win
set +e
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/
set -e
fi
for target in ${TARGETS};do
if [ ! -d "$basedir/import/javafx-sdks/${target}" ]; then
mkdir -p javafx-sdks/${target}
SDK_FILENAME=${variables["JAVAFX_SDK_FILENAME_$target"]}
wget --directory-prefix=javafx-sdks/${target} https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/${SDK_FILENAME}
unzip -q javafx-sdks/${target}/${SDK_FILENAME} -d javafx-sdks/${target}/
fi
done;
for target in ${TARGETS};do
if [ ! -d "$basedir/import/javafx-jmods/${target}" ]; then
mkdir -p javafx-jmods/${target}
wget --directory-prefix=javafx-jmods/${target} https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/${variables["JAVAFX_JMODS_FILENAME_$target"]}
set +e
unzip -q javafx-jmods/${target}/${variables["JAVAFX_JMODS_FILENAME_$target"]} -d javafx-jmods/${target}/
set -e
fi
done;
for target in ${TARGETS};do
if [ ${target} != "mac" ] && [ ! -d "$basedir/import/jpackage/${target}" ]; then
mkdir -p jpackage/${target}
set +e
unzip -q jdks/${target}/${variables["JAVA_HOME_$target"]}/jmods/jdk.incubator.jpackage.jmod -d jpackage/${target}/
set -e
fi
done;

@ -10,43 +10,42 @@ fi
export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
: "${TARGETS:="linux mac win"}"
declare -A variables=()
# Get latest JDK version from https://adoptopenjdk.net/releases.html?variant=openjdk15&jvmVariant=hotspot
JDK_VERSION=14.0.2+12
JDK_MAJOR_VERSION=`echo $JDK_VERSION | cut -f1 -d"." | 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/openjdk${JDK_MAJOR_VERSION}-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/openjdk${JDK_MAJOR_VERSION}-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/openjdk${JDK_MAJOR_VERSION}-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##*/}"
JDK_DOWNLOAD_FILENAME_WIN="${JDK_DOWNLOAD_URL_WIN##*/}"
variables["JDK_DOWNLOAD_FILENAME_linux"]="OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_linux_hotspot_${JDK_VERSION_URL_ENC2}.tar.gz"
variables["JDK_DOWNLOAD_FILENAME_mac"]="OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_mac_hotspot_${JDK_VERSION_URL_ENC2}.tar.gz"
variables["JDK_DOWNLOAD_FILENAME_win"]="OpenJDK${JDK_MAJOR_VERSION}U-jdk_x64_windows_hotspot_${JDK_VERSION_URL_ENC2}.zip"
JAVA_HOME_LINUX=$basedir/import/jdks/linux/jdk-$JDK_VERSION
JAVA_HOME_MAC=$basedir/import/jdks/mac/jdk-$JDK_VERSION/Contents/Home
JAVA_HOME_WIN=$basedir/import/jdks/win/jdk-$JDK_VERSION
variables["JAVA_HOME_linux"]="jdk-$JDK_VERSION"
variables["JAVA_HOME_mac"]="jdk-$JDK_VERSION/Contents/Home"
variables["JAVA_HOME_win"]="jdk-$JDK_VERSION"
# JavaFX from https://gluonhq.com/products/javafx/
JAVAFX_VERSION=15.0.1
JAVAFX_SDK_DOWNLOAD_URL_LINUX=https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/openjfx-${JAVAFX_VERSION}_linux-x64_bin-sdk.zip
JAVAFX_SDK_DOWNLOAD_URL_MAC=https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/openjfx-${JAVAFX_VERSION}_osx-x64_bin-sdk.zip
JAVAFX_SDK_DOWNLOAD_URL_WIN=https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/openjfx-${JAVAFX_VERSION}_windows-x64_bin-sdk.zip
JAVAFX_VERSION="15.0.1"
JAVAFX_JMODS_DOWNLOAD_URL_LINUX=https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/openjfx-${JAVAFX_VERSION}_linux-x64_bin-jmods.zip
JAVAFX_JMODS_DOWNLOAD_URL_MAC=https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/openjfx-${JAVAFX_VERSION}_osx-x64_bin-jmods.zip
JAVAFX_JMODS_DOWNLOAD_URL_WIN=https://download2.gluonhq.com/openjfx/$JAVAFX_VERSION/openjfx-${JAVAFX_VERSION}_windows-x64_bin-jmods.zip
variables["JAVAFX_SDK_FILENAME_linux"]="openjfx-${JAVAFX_VERSION}_linux-x64_bin-sdk.zip"
variables["JAVAFX_SDK_FILENAME_mac"]="openjfx-${JAVAFX_VERSION}_osx-x64_bin-sdk.zip"
variables["JAVAFX_SDK_FILENAME_win"]="openjfx-${JAVAFX_VERSION}_windows-x64_bin-sdk.zip"
JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX=openjfx-${JAVAFX_VERSION}_linux-x64_bin-jmods.zip
JAVAFX_JMODS_DOWNLOAD_FILENAME_MAC=openjfx-${JAVAFX_VERSION}_osx-x64_bin-jmods.zip
JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN=openjfx-${JAVAFX_VERSION}_windows-x64_bin-jmods.zip
variables["JAVAFX_JMODS_FILENAME_linux"]="openjfx-${JAVAFX_VERSION}_linux-x64_bin-jmods.zip"
variables["JAVAFX_JMODS_FILENAME_mac"]="openjfx-${JAVAFX_VERSION}_osx-x64_bin-jmods.zip"
variables["JAVAFX_JMODS_FILENAME_win"]="openjfx-${JAVAFX_VERSION}_windows-x64_bin-jmods.zip"
variables["DECOMPRESS_linux"]="tar -C jdks/linux -zxf"
variables["DECOMPRESS_mac"]="tar -C jdks/mac -zxf"
variables["DECOMPRESS_win"]="unzip -q -d jdks/win"
OS=`uname -s`
if [ $OS = "Darwin" ]; then
export JAVA_HOME=$JAVA_HOME_MAC
export JAVA_HOME=$basedir/import/jdks/mac/${variables["JAVA_HOME_mac"]}
else
export JAVA_HOME=$JAVA_HOME_LINUX
export JAVA_HOME=$basedir/import/jdks/linux/${variables["JAVA_HOME_linux"]}
fi
# get the SHA-256 hash of the specified file

@ -20,7 +20,10 @@ mkdir -p "$basedir/dist-zip"
cd "$basedir/dist"
for i in linux linux-gui mac mac-gui win win-gui; do cp -r ${i} "$basedir"/dist-zip-staging/i2p-zero-${i}.v${VERSION}; done
for i in ${TARGETS}; do
cp -r ${i} "$basedir"/dist-zip-staging/i2p-zero-${i}.v${VERSION}
cp -r ${i}-gui "$basedir"/dist-zip-staging/i2p-zero-${i}-gui.v${VERSION}
done
versionDate=`date -r "$basedir"/org.getmonero.i2p.zero/src/org/getmonero/i2p/zero/VERSION +"%Y%m%d%H%M.%S"`
@ -28,9 +31,11 @@ find "$basedir"/dist-zip-staging -exec touch -t $versionDate {} \;
cd "$basedir/dist-zip-staging"
for i in linux linux-gui mac mac-gui win win-gui; do
zip -r9 "$basedir"/dist-zip/i2p-zero-${i}.v${VERSION}.zip i2p-zero-${i}.v${VERSION}
normalizeZip "$basedir"/dist-zip/i2p-zero-${i}.v${VERSION}.zip
for i in ${TARGETS}; do
for j in "" "-gui"; do
zip -r9 "$basedir"/dist-zip/i2p-zero-${i}${j}.v${VERSION}.zip i2p-zero-${i}${j}.v${VERSION}
normalizeZip "$basedir"/dist-zip/i2p-zero-${i}${j}.v${VERSION}.zip
done
done
cd ..
@ -49,12 +54,10 @@ getFileSizeMB () {
print4ColsJustified "OS" "Uncompressed size (MB)" "Compressed size (MB)" "v$VERSION Reproducible build SHA-256"
print4ColsJustified "------------------------" "------------------------" "------------------------" "------------------------------------------------------------------"
print4ColsJustified "Mac" "`getFileSizeMB $basedir/dist/mac`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-mac.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-mac.v${VERSION}.zip`\`"
print4ColsJustified "Windows" "`getFileSizeMB $basedir/dist/win`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-win.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-win.v${VERSION}.zip`\`"
print4ColsJustified "Linux" "`getFileSizeMB $basedir/dist/linux`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-linux.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-linux.v${VERSION}.zip`\`"
print4ColsJustified "Mac GUI" "`getFileSizeMB $basedir/dist/mac-gui`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-mac-gui.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-mac-gui.v${VERSION}.zip`\`"
print4ColsJustified "Windows GUI" "`getFileSizeMB $basedir/dist/win-gui`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-win-gui.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-win-gui.v${VERSION}.zip`\`"
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`\`"
for i in ${TARGETS}; do
print4ColsJustified "${i}" "`getFileSizeMB $basedir/dist/${i}`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-${i}.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-${i}.v${VERSION}.zip`\`"
print4ColsJustified "${i} GUI" "`getFileSizeMB $basedir/dist/${i}-gui`" "`getFileSizeMB $basedir/dist-zip/i2p-zero-${i}-gui.v${VERSION}.zip`" "\``getHash $basedir/dist-zip/i2p-zero-${i}-gui.v${VERSION}.zip`\`"
done
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 using Docker."

@ -45,13 +45,20 @@ public class RouterWrapper {
routerProperties.put("i2p.dir.config", System.getProperty("user.home") + File.separator + ".i2p-zero" + File.separator + "config");
i2PConfigDir = new File(routerProperties.getProperty("i2p.dir.config"));
if(!i2PConfigDir.exists()) i2PConfigDir.mkdirs();
boolean createdConfigDir = false;
if(!i2PConfigDir.exists()) {
i2PConfigDir.mkdirs();
createdConfigDir = true;
}
i2PBaseDir = new File(routerProperties.getProperty("i2p.dir.base"));
if(!i2PBaseDir.exists()) {
i2PBaseDir.mkdirs();
copyFolderRecursively(Path.of(routerProperties.getProperty("i2p.dir.base.template")), i2PBaseDir.toPath());
}
if(createdConfigDir)
copyFolderRecursively(i2PBaseDir.toPath().resolve("hosts.txt") , i2PConfigDir.toPath().resolve("hosts.txt"));
}
public Router getRouter() {
@ -100,7 +107,7 @@ public class RouterWrapper {
while(true) {
if(router.isAlive()) {
try {
File routerConfigFile = new File(i2PBaseDir, "router.config");
File routerConfigFile = new File(i2PConfigDir, "router.config");
if(!(routerConfigFile.exists() && routerConfigFile.canRead())) {
Thread.sleep(100);
continue;

Loading…
Cancel
Save