2021-04-03 16:39:26 -04:00
|
|
|
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
|
2022-02-17 16:31:14 -05:00
|
|
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
|
|
|
cd "$SCRIPT_DIR" || exit 1
|
|
|
|
|
2021-05-22 22:23:03 -04:00
|
|
|
. i2pversion
|
|
|
|
|
2021-07-15 15:48:34 -04:00
|
|
|
if [ -f i2pversion_override ]; then
|
|
|
|
. i2pversion_override
|
|
|
|
fi
|
|
|
|
|
2022-04-20 14:09:40 -04:00
|
|
|
. config.sh
|
|
|
|
|
|
|
|
if [ -f config_overide.sh ]; then
|
|
|
|
. config_override.sh
|
|
|
|
fi
|
|
|
|
|
2022-02-09 21:43:30 -05:00
|
|
|
COUNT="Ten Nine Eight Seven Six Five Four Three Two One"
|
|
|
|
|
2021-05-25 13:46:37 -04:00
|
|
|
JAVA=$(java --version | tr -d 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\n' | cut -d ' ' -f 2 | cut -d '.' -f 1 | tr -d '\n\t\- ')
|
2021-04-03 16:39:26 -04:00
|
|
|
|
|
|
|
if [ "$JAVA" -lt "14" ]; then
|
2021-07-15 16:06:31 -04:00
|
|
|
echo "Java 14+ must be used to compile with jpackage, java is $JAVA"
|
|
|
|
exit 1
|
2021-04-03 16:39:26 -04:00
|
|
|
fi
|
2021-10-30 20:38:55 -04:00
|
|
|
if [ "$JAVA" -lt "17" ]; then
|
|
|
|
echo "It is highly recommended that you use Java 17+ to build release packages"
|
|
|
|
fi
|
2021-04-03 16:39:26 -04:00
|
|
|
|
|
|
|
if [ -z "${JAVA_HOME}" ]; then
|
2021-07-15 16:06:31 -04:00
|
|
|
JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
2021-04-03 16:39:26 -04:00
|
|
|
fi
|
2022-05-17 16:12:43 -04:00
|
|
|
if [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then
|
|
|
|
JAVA_HOME=`type -p java|xargs readlink -f|xargs dirname|xargs dirname`
|
|
|
|
fi
|
2022-05-10 19:14:05 -04:00
|
|
|
echo "Building with: $JAVA, $JAVA_HOME"
|
|
|
|
sleep 5s
|
2021-04-03 16:39:26 -04:00
|
|
|
|
|
|
|
HERE="$PWD"
|
2022-02-09 21:43:30 -05:00
|
|
|
if [ ! -d "$HERE/../i2p.i2p.jpackage-build/" ]; then
|
2022-05-17 16:12:43 -04:00
|
|
|
git clone --depth 1 -b "$VERSION" https://i2pgit.org/i2p-hackers/i2p.i2p "$HERE/../i2p.i2p.jpackage-build/"
|
2022-02-09 21:43:30 -05:00
|
|
|
fi
|
|
|
|
cd "$HERE/../i2p.i2p.jpackage-build/"
|
|
|
|
for i in $COUNT; do
|
|
|
|
echo -n "$i...."; sleep 1s
|
|
|
|
done
|
2022-02-10 19:24:15 -05:00
|
|
|
ant distclean pkg || true
|
2021-05-22 22:23:03 -04:00
|
|
|
|
|
|
|
cd "$HERE"
|
2022-02-09 21:43:30 -05:00
|
|
|
I2P_PKG="$HERE/../i2p.i2p.jpackage-build/pkg-temp"
|
|
|
|
RES_DIR="$HERE/../i2p.i2p.jpackage-build/installer/resources"
|
|
|
|
I2P_JARS="$I2P_PKG/lib"
|
|
|
|
I2P_JBIGI="$HERE/../i2p.i2p.jpackage-build/installer/lib/jbigi"
|
|
|
|
|
2021-04-03 16:39:26 -04:00
|
|
|
|
|
|
|
echo "compiling custom launcher"
|
2022-05-17 16:12:43 -04:00
|
|
|
mkdir -p build
|
2021-04-03 16:39:26 -04:00
|
|
|
cp "$I2P_JARS"/*.jar build
|
2022-03-19 13:44:29 -04:00
|
|
|
if [ ! -f "$HERE/build/jna.jar" ]; then
|
2022-03-19 17:52:01 -04:00
|
|
|
wget -O "$HERE/build/jna.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna/$JNA_VERSION/jna-$JNA_VERSION.jar"
|
2022-03-19 13:44:29 -04:00
|
|
|
fi
|
|
|
|
|
2022-03-19 18:10:36 -04:00
|
|
|
if [ ! -f "$HERE/build/jna-platform.jar" ]; then
|
|
|
|
wget -O "$HERE/build/jna-platform.jar" "https://repo1.maven.org/maven2/net/java/dev/jna/jna-platform/$JNA_VERSION/jna-platform-$JNA_VERSION.jar"
|
|
|
|
fi
|
2021-08-02 21:05:49 -04:00
|
|
|
|
2021-04-03 16:39:26 -04:00
|
|
|
cd java
|
2022-03-19 17:52:01 -04:00
|
|
|
"$JAVA_HOME"/bin/javac -d ../build -classpath "$HERE/build/jna.jar":"$HERE/build/jna-platform.jar":"$HERE/build/i2p.jar":"$HERE/build/router.jar":"$HERE/build/routerconsole.jar" \
|
2022-03-21 11:32:10 -04:00
|
|
|
net/i2p/router/Elevator.java \
|
2022-03-19 13:44:29 -04:00
|
|
|
net/i2p/router/Shell32X.java \
|
|
|
|
net/i2p/router/WinLauncher.java \
|
|
|
|
net/i2p/router/WindowsUpdatePostProcessor.java \
|
|
|
|
net/i2p/router/WinUpdateProcess.java
|
|
|
|
|
2021-04-03 16:39:26 -04:00
|
|
|
cd ..
|
|
|
|
|
2021-04-03 17:30:31 -04:00
|
|
|
#echo "building launcher.jar"
|
2021-04-03 18:08:44 -04:00
|
|
|
cd build
|
|
|
|
"$JAVA_HOME"/bin/jar -cf launcher.jar net
|
|
|
|
cd ..
|
2021-04-03 16:39:26 -04:00
|
|
|
|
|
|
|
if [ -z $I2P_VERSION ]; then
|
2021-04-03 18:24:59 -04:00
|
|
|
I2P_VERSION=$("$JAVA_HOME"/bin/java -cp build/router.jar net.i2p.router.RouterVersion | sed "s/.*: //" | head -n 1 | sed 's|-|.|g')
|
2021-04-03 16:39:26 -04:00
|
|
|
fi
|
|
|
|
echo "preparing to invoke jpackage for I2P version $I2P_VERSION"
|
|
|
|
|
|
|
|
|
|
|
|
"$JAVA_HOME"/bin/jpackage --type app-image --name I2P --app-version "$I2P_VERSION" \
|
|
|
|
--verbose \
|
2021-10-30 20:38:55 -04:00
|
|
|
--java-options "-Xmx512m" \
|
|
|
|
--java-options "--add-opens java.base/java.lang=ALL-UNNAMED" \
|
|
|
|
--java-options "--add-opens java.base/sun.nio.fs=ALL-UNNAMED" \
|
|
|
|
--java-options "--add-opens java.base/java.nio=ALL-UNNAMED" \
|
2022-05-10 18:25:10 -04:00
|
|
|
--java-options "--add-opens java.base/java.util.Properties=ALL-UNNAMED" \
|
|
|
|
--java-options "--add-opens java.base/java.util.Properties.defaults=ALL-UNNAMED" \
|
2021-04-03 16:39:26 -04:00
|
|
|
$JPACKAGE_OPTS \
|
|
|
|
--resource-dir build \
|
|
|
|
--input build --main-jar launcher.jar --main-class net.i2p.router.WinLauncher
|