diff --git a/bin/build-launcher.sh b/bin/build-launcher.sh index f696378..ef561a5 100755 --- a/bin/build-launcher.sh +++ b/bin/build-launcher.sh @@ -14,7 +14,7 @@ rm -fr target/org.getmonero.i2p.zero.gui/classes # compile the Main class that starts the I2P router and SAM listener echo "*** Compiling Main class" $JAVA_HOME/bin/javac --module-path import/lib -d target/org.getmonero.i2p.zero/classes $(find org.getmonero.i2p.zero/src -name '*.java') -$JAVA_HOME/bin/javac --module-path import/lib:import/javafx-sdk-11.0.2/lib:target/org.getmonero.i2p.zero/classes -d target/org.getmonero.i2p.zero.gui/classes $(find org.getmonero.i2p.zero.gui/src -name '*.java') +$JAVA_HOME/bin/javac --module-path import/lib:import/javafx-sdks/linux/javafx-sdk-$JAVAFX_VERSION/lib:target/org.getmonero.i2p.zero/classes -d target/org.getmonero.i2p.zero.gui/classes $(find org.getmonero.i2p.zero.gui/src -name '*.java') cp -r org.getmonero.i2p.zero.gui/src/* target/org.getmonero.i2p.zero.gui/classes find target -type f -name '*.java' -delete @@ -40,24 +40,35 @@ for i in linux mac win; do 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 org.getmonero.i2p.zero --output dist/$i/router --strip-debug --compress 2 --no-header-files --no-man-pages - $JAVA_HOME/bin/jlink --module-path ${JAVA_HOME_VARIANT}/jmods:import/javafx-jmods/$i/javafx-jmods-11.0.2:target/modules:target/org.getmonero.i2p.zero.jar:target/org.getmonero.i2p.zero.gui.jar --add-modules org.getmonero.i2p.zero,org.getmonero.i2p.zero.gui,javafx.controls,javafx.fxml,java.desktop --output dist/$i-gui/router --strip-debug --compress 2 --no-header-files --no-man-pages + $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 org.getmonero.i2p.zero,org.getmonero.i2p.zero.gui,javafx.controls,javafx.fxml,java.desktop --output dist/$i-gui/router --strip-debug --compress 2 --no-header-files --no-man-pages done +cp -R $basedir/resources/i2p-zero.app $basedir/dist/mac-gui/router/bin/ + for i in linux mac linux-gui mac-gui; do - cp $basedir/resources/launch.sh $basedir/dist/$i/router/bin/ - cp $basedir/resources/tunnel-control.sh $basedir/dist/$i/router/bin/ + if [ $i = mac-gui ]; then + mac_root=$basedir/dist/$i/router/bin/i2p-zero.app/Contents/MacOS + cp $basedir/resources/tunnel-control.sh $mac_root/ + mv $basedir/dist/$i/router/bin/java $mac_root/ + mv $basedir/dist/$i/router/bin/jrunscript $mac_root/ + mv $basedir/dist/$i/router/bin/keytool $mac_root/ + else + cp $basedir/resources/launch.sh $basedir/dist/$i/router/bin/ + cp $basedir/resources/tunnel-control.sh $basedir/dist/$i/router/bin/ + fi done for i in win win-gui; do cp $basedir/resources/launch.bat $basedir/dist/$i/router/bin/ done -for i in linux-gui mac-gui; do +for i in linux-gui; do cp $basedir/resources/launch-gui.sh $basedir/dist/$i/router/bin/ done for i in win-gui; do cp $basedir/resources/launch-gui.bat $basedir/dist/$i/router/bin/ done + 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 i in linux mac win linux-gui mac-gui win-gui; do mkdir -p $basedir/dist/$i/router/i2p.config; done diff --git a/bin/import-packages.sh b/bin/import-packages.sh index 2cb330b..38a1bbd 100755 --- a/bin/import-packages.sh +++ b/bin/import-packages.sh @@ -37,14 +37,17 @@ if [ ! -d "$basedir/import/apache-ant-1.10.5" ]; then tar zxvf apache-ant-1.10.5-bin.tar.gz fi -if [ ! -d "$basedir/import/javafx-sdk-11.0.2" ]; then - if [ $(uname -s) = Darwin ]; then - wget $JAVAFX_SDK_DOWNLOAD_URL_MAC - unzip openjfx-11.0.2_osx-x64_bin-sdk.zip - else - wget $JAVAFX_SDK_DOWNLOAD_URL_LINUX - unzip openjfx-11.0.2_linux-x64_bin-sdk.zip - 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 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/ fi if [ ! -d "$basedir/import/javafx-jmods" ]; then @@ -54,9 +57,9 @@ 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 jdks/linux/$JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX -d javafx-jmods/linux/ - unzip jdks/mac/$JAVAFX_JMODS_DOWNLOAD_FILENAME_MAC -d javafx-jmods/mac/ - unzip jdks/win/$JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN -d javafx-jmods/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/ fi diff --git a/bin/java-config.sh b/bin/java-config.sh index 9b83fd8..45682c8 100644 --- a/bin/java-config.sh +++ b/bin/java-config.sh @@ -18,8 +18,10 @@ JAVA_HOME_LINUX=$basedir/import/jdks/linux/jdk-11.0.1+13 JAVA_HOME_MAC=$basedir/import/jdks/mac/jdk-11.0.1+13/Contents/Home JAVA_HOME_WIN=$basedir/import/jdks/win/jdk-11.0.1+13 -JAVAFX_SDK_DOWNLOAD_URL_LINUX=https://download2.gluonhq.com/openjfx/11.0.2/openjfx-11.0.2_linux-x64_bin-sdk.zip -JAVAFX_SDK_DOWNLOAD_URL_MAC=https://download2.gluonhq.com/openjfx/11.0.2/openjfx-11.0.2_osx-x64_bin-sdk.zip +JAVAFX_VERSION=11.0.2 +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_JMODS_DOWNLOAD_URL_LINUX=https://download2.gluonhq.com/openjfx/11.0.2/openjfx-11.0.2_linux-x64_bin-jmods.zip JAVAFX_JMODS_DOWNLOAD_URL_MAC=https://download2.gluonhq.com/openjfx/11.0.2/openjfx-11.0.2_osx-x64_bin-jmods.zip diff --git a/resources/i2p-zero.app/Contents/Info.plist b/resources/i2p-zero.app/Contents/Info.plist new file mode 100644 index 0000000..41d660d --- /dev/null +++ b/resources/i2p-zero.app/Contents/Info.plist @@ -0,0 +1,26 @@ + + + + + CFBundleGetInfoString + i2p-zero + CFBundleExecutable + launch-gui.sh + CFBundleIdentifier + org.getmonero.i2p.zero.gui + CFBundleName + i2p-zero + CFBundleIconFile + app-icon + CFBundleShortVersionString + 0.01 + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + APPL + IFMajorVersion + 0 + IFMinorVersion + 1 + + diff --git a/resources/i2p-zero.app/Contents/MacOS/launch-gui.sh b/resources/i2p-zero.app/Contents/MacOS/launch-gui.sh new file mode 100755 index 0000000..933aa9f --- /dev/null +++ b/resources/i2p-zero.app/Contents/MacOS/launch-gui.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +wd=${0%/*} +cd "$wd" +basedir="$wd/../../../.." +./java -cp $basedir/i2p.base/jbigi.jar -m org.getmonero.i2p.zero.gui --i2p.dir.base=$basedir/i2p.base --i2p.dir.config=$basedir/i2p.config diff --git a/resources/i2p-zero.app/Contents/MacOS/tunnel-control.sh b/resources/i2p-zero.app/Contents/MacOS/tunnel-control.sh new file mode 100755 index 0000000..24ad902 --- /dev/null +++ b/resources/i2p-zero.app/Contents/MacOS/tunnel-control.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +exec 3<>/dev/tcp/localhost/30000; echo "$1 $2 $3" >&3; cat <&3 \ No newline at end of file diff --git a/resources/i2p-zero.app/Contents/Resources/app-icon.icns b/resources/i2p-zero.app/Contents/Resources/app-icon.icns new file mode 100644 index 0000000..5a18ced Binary files /dev/null and b/resources/i2p-zero.app/Contents/Resources/app-icon.icns differ