executable wrappers for linux and mac GUIs from jpackager utililty

switched windows JDK to oracle version until adoptopenjdk fix dll inclusion issue
pull/13/head
knaccc 5 years ago
parent 2d66393707
commit d739134fe0

@ -162,4 +162,19 @@ specified host and port. Note that the base 32 I2P destination address determini
## Watch the I2P log for messages
`tail -f dist/linux/router/i2p.config/wrapper.log`
`tail -f dist/linux/router/i2p.config/wrapper.log`
## Note on bundled windows wrapper.exe executable
There is a bundled resources/wrapper.exe file in the source tree. This allows the windows distributable to be built
even on a non-windows platform.
This file can be deterministically recreated by
downloading javapackager from http://download2.gluonhq.com/jpackager/11/jdk.packager-windows.zip, unzipping it,
unzipping the jar file within that, and obtaining the jdk/packager/internal/resources/windows/papplauncher.exe file.
Then, on Windows, download Resource Hacker version 5.1.7 from http://www.angusj.com/resourcehacker/ and use it to add the
resources/icons.ico file to the papplauncher.exe file. Finally, verify that the resulting file is identical to the bundled resources/wrapper.exe file.
The sha256 checksum of the file should be `50c9286b9da7a91b8715de3cbcd141ec44eb199642562f43ce82351609115e06`

@ -48,16 +48,13 @@ 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/"
done
for i in win win-gui; do
for i in win; do
cp "$basedir/resources/launch.bat" "$basedir/dist/$i/router/bin/"
done
for i in linux-gui mac-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
@ -74,18 +71,49 @@ for i in linux mac win; do
done
done
# build map app structure
# 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"
# specify .desktop file so linux-gui can be launched via double-click
cp "$basedir/resources/i2p-zero.desktop" "$basedir/dist/linux-gui/router/"
# build linux gui app structure
mv "$basedir/dist/linux-gui/router" "$basedir/dist/linux-gui/router-tmp"
mkdir -p "$basedir/dist/linux-gui/router/app"
mkdir -p "$basedir/dist/linux-gui/router/resources"
mv "$basedir/dist/linux-gui/router-tmp" "$basedir/dist/linux-gui/runtime"
cp "$basedir/import/javapackager/linux/jdk/packager/internal/resources/linux/papplauncher" "$basedir/dist/linux-gui/router/i2p-zero"
cp "$basedir/import/javapackager/linux/jdk/packager/internal/resources/linux/libpackager.so" "$basedir/dist/linux-gui/router/"
chmod +x "$basedir/dist/linux-gui/router/i2p-zero"
cp "$basedir/resources/i2p-zero.linux.cfg" "$basedir/dist/linux-gui/router/app/i2p-zero.cfg"
cp "$basedir/org.getmonero.i2p.zero.gui/src/org/getmonero/i2p/zero/gui/icon.png" "$basedir/dist/linux-gui/router/resources/i2p-zero.png"
# build win gui app structure
mv "$basedir/dist/win-gui/router" "$basedir/dist/win-gui/router-tmp"
mkdir -p "$basedir/dist/win-gui/router/app"
mv "$basedir/dist/win-gui/router-tmp" "$basedir/dist/win-gui/runtime"
cp "$basedir/resources/wrapper.exe" "$basedir/dist/win-gui/router/i2p-zero.exe"
cp "$basedir/import/javapackager/win/jdk/packager/internal/resources/windows/packager.dll" "$basedir/dist/win-gui/router/"
for i in msvcp140.dll vcruntime140.dll; do
cp "$basedir/dist/win-gui/runtime/bin/$i" "$basedir/dist/win-gui/router/"
done
cp "$basedir/resources/i2p-zero.win.cfg" "$basedir/dist/win-gui/router/app/i2p-zero.cfg"
# show distribution sizes
du -sk dist/* | awk '{printf "%.1f MB %s\n",$1/1024,$2}'
echo "*** Done ***"
os_name=`uname -s`
if [ $os_name = Darwin ]; then

@ -74,3 +74,16 @@ if [ ! -d "$basedir/import/javafx-jmods" ]; then
unzip javafx-jmods/win/$JAVAFX_JMODS_DOWNLOAD_FILENAME_WIN -d javafx-jmods/win/
fi
if [ ! -d "$basedir/import/javapackager" ]; then
mkdir -p javapackager
mkdir -p javapackager/linux javapackager/win
wget --directory-prefix=javafx-jmods/linux $JPACKAGER_DOWNLOAD_URL_LINUX
wget --directory-prefix=javafx-jmods/win $JPACKAGER_DOWNLOAD_URL_WIN
unzip javapackager/linux/$JPACKAGER_DOWNLOAD_FILENAME_LINUX -d javapackager/linux/
unzip javapackager/win/$JPACKAGER_DOWNLOAD_FILENAME_WIN -d javapackager/win/
unzip javapackager/linux/jdk.packager.jar
unzip javapackager/win/jdk.packager.jar
fi

@ -10,15 +10,15 @@ export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8
JDK_DOWNLOAD_FILENAME_LINUX=OpenJDK11U-jdk_x64_linux_hotspot_11.0.1_13.tar.gz
JDK_DOWNLOAD_FILENAME_MAC=OpenJDK11U-jdk_x64_mac_hotspot_11.0.1_13.tar.gz
JDK_DOWNLOAD_FILENAME_WIN=OpenJDK11U-jdk_x64_windows_hotspot_11.0.1_13.zip
JDK_DOWNLOAD_FILENAME_WIN=openjdk-11.0.2_windows-x64_bin.zip
JDK_DOWNLOAD_URL_LINUX=https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.1%2B13/OpenJDK11U-jdk_x64_linux_hotspot_11.0.1_13.tar.gz
JDK_DOWNLOAD_URL_MAC=https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.1%2B13/OpenJDK11U-jdk_x64_mac_hotspot_11.0.1_13.tar.gz
JDK_DOWNLOAD_URL_WIN=https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.1%2B13/OpenJDK11U-jdk_x64_windows_hotspot_11.0.1_13.zip
JDK_DOWNLOAD_URL_WIN=https://download.java.net/java/GA/jdk11/9/GPL/openjdk-11.0.2_windows-x64_bin.zip
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
JAVA_HOME_WIN=$basedir/import/jdks/win/jdk-11.0.2
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
@ -33,6 +33,13 @@ JAVAFX_JMODS_DOWNLOAD_FILENAME_LINUX=openjfx-${JAVAFX_VERSION}_linux-x64_bin-jmo
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
JPACKAGER_DOWNLOAD_URL_LINUX=http://download2.gluonhq.com/jpackager/11/jdk.packager-linux.zip
JPACKAGER_DOWNLOAD_URL_WIN=http://download2.gluonhq.com/jpackager/11/jdk.packager-windows.zip
JPACKAGER_DOWNLOAD_FILENAME_LINUX=http://download2.gluonhq.com/jpackager/11/jdk.packager-linux.zip
JPACKAGER_DOWNLOAD_FILENAME_WIN=http://download2.gluonhq.com/jpackager/11/jdk.packager-windows.zip
OS=`uname -s`
if [ $OS = "Darwin" ]; then
export JAVA_HOME=$JAVA_HOME_MAC

@ -1,7 +0,0 @@
[Desktop Entry]
Version=1.0
Name=i2p-zero
Exec=/bin/bash -c 'cd "$(dirname "$0")"; ./bin/launch-gui.sh' %k
Terminal=false
Type=Application
Categories=Utility;

@ -0,0 +1,16 @@
[Application]
app.name=i2p-zero
app.version=1.0
app.preferences.id=
app.runtime=$APPDIR/runtime
app.identifier=
app.classpath=
app.application.instance=single
app.mainmodule=org.getmonero.i2p.zero.gui
packager.java.version=11.0.1
[JVMOptions]
[JVMUserOptions]
[ArgOptions]

@ -0,0 +1,16 @@
[Application]
app.name=i2p-zero
app.version=1.0
app.preferences.id=
app.runtime=$APPDIR\runtime
app.identifier=
app.classpath=
app.application.instance=single
app.mainmodule=org.getmonero.i2p.zero.gui
packager.java.version=11.0.2
[JVMOptions]
[JVMUserOptions]
[ArgOptions]

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

@ -1,3 +0,0 @@
@echo off
set DIR=%~dp0
"%DIR%\java" -cp %DIR%\..\i2p.base\jbigi.jar -m org.getmonero.i2p.zero.gui --i2p.dir.base.template=%DIR%\..\i2p.base %*

Binary file not shown.
Loading…
Cancel
Save