diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba911764..d7b80fcf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ okhttp = "5.0.0-alpha.11" # Major version is locked by Tachiyomi extensions javalin = "4.6.6" # Javalin 5.0.0+ requires Java 11 jackson = "2.13.3" # jackson version locked by javalin, ref: `io.javalin.core.util.OptionalDependency` exposed = "0.40.1" -dex2jar = "v61" +dex2jar = "v64" rhino = "1.7.14" settings = "1.0.0-RC" twelvemonkeys = "3.9.4" diff --git a/scripts/bundler.sh b/scripts/bundler.sh index 952f65c6..0aad09d6 100755 --- a/scripts/bundler.sh +++ b/scripts/bundler.sh @@ -38,6 +38,8 @@ main() { trap "rm -rf $RELEASE_NAME/" RETURN mkdir "$RELEASE_NAME/" + download_launcher + case "$OS" in debian-all) RELEASE="$RELEASE_NAME.deb" @@ -152,6 +154,12 @@ move_release_to_output_dir() { mv "$RELEASE" "$OUTPUT_DIR/" } +download_launcher() { + LAUNCHER_URL=$(curl -s "https://api.github.com/repos/Suwayomi/Tachidesk-Launcher/releases/latest" | grep "browser_download_url" | grep ".jar" | head -n 1 | cut -d '"' -f 4) + curl -L "$LAUNCHER_URL" -o "Tachidesk-Launcher.jar" + mv "Tachidesk-Launcher.jar" "$RELEASE_NAME/Tachidesk-Launcher.jar" +} + download_jre_and_electron() { if [ ! -f "$JRE" ]; then curl -L "$JRE_URL" -o "$JRE" @@ -175,29 +183,26 @@ copy_linux_package_assets_to() { local output_dir output_dir="$(readlink -e "$1" || exit 1)" - cp "scripts/resources/pkg/tachidesk-server-browser-launcher.sh" "$output_dir/" - cp "scripts/resources/pkg/tachidesk-server-debug-launcher.sh" "$output_dir/" - cp "scripts/resources/pkg/tachidesk-server-electron-launcher.sh" "$output_dir/" + cp "scripts/resources/pkg/tachidesk-server.sh" "$output_dir/" cp "scripts/resources/pkg/tachidesk-server.desktop" "$output_dir/" + cp "scripts/resources/pkg/tachidesk-launcher.sh" "$output_dir/" + cp "scripts/resources/pkg/tachidesk-launcher.desktop" "$output_dir/" cp "scripts/resources/pkg/systemd"/* "$output_dir/" cp "server/src/main/resources/icon/faviconlogo.png" \ "$output_dir/tachidesk-server.png" } make_linux_bundle() { - cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar" - cp "scripts/resources/tachidesk-server-browser-launcher.sh" "$RELEASE_NAME/" - cp "scripts/resources/tachidesk-server-debug-launcher.sh" "$RELEASE_NAME/" - cp "scripts/resources/tachidesk-server-electron-launcher.sh" "$RELEASE_NAME/" + cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar" + cp "scripts/resources/tachidesk-launcher.sh" "$RELEASE_NAME/" + cp "scripts/resources/tachidesk-server.sh" "$RELEASE_NAME/" tar -I "gzip -9" -cvf "$RELEASE" "$RELEASE_NAME/" } make_macos_bundle() { - cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar" - cp "scripts/resources/Tachidesk Browser Launcher.command" "$RELEASE_NAME/" - cp "scripts/resources/Tachidesk Debug Launcher.command" "$RELEASE_NAME/" - cp "scripts/resources/Tachidesk Electron Launcher.command" "$RELEASE_NAME/" + cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar" + cp "scripts/resources/Tachidesk Launcher.command" "$RELEASE_NAME/" zip -9 -r "$RELEASE" "$RELEASE_NAME/" } @@ -211,6 +216,7 @@ make_deb_package() { local upstream_source="tachidesk-server_$RELEASE_VERSION.orig.tar.gz" mkdir "$RELEASE_NAME/$source_dir/" + mv "$RELEASE_NAME/Tachidesk-Launcher.jar" "$RELEASE_NAME/$source_dir/Tachidesk-Launcher.jar" cp "$JAR" "$RELEASE_NAME/$source_dir/Tachidesk-Server.jar" copy_linux_package_assets_to "$RELEASE_NAME/$source_dir/" tar -I "gzip" -C "$RELEASE_NAME/" -cvf "$upstream_source" "$source_dir" @@ -257,10 +263,8 @@ make_windows_bundle() { #WINEARCH=win32 wine "$rcedit" "$RELEASE_NAME/electron/electron.exe" \ # --set-icon "$icon" - cp "$JAR" "$RELEASE_NAME/Tachidesk-Server.jar" - cp "scripts/resources/Tachidesk Browser Launcher.bat" "$RELEASE_NAME" - cp "scripts/resources/Tachidesk Debug Launcher.bat" "$RELEASE_NAME" - cp "scripts/resources/Tachidesk Electron Launcher.bat" "$RELEASE_NAME" + cp "$JAR" "$RELEASE_NAME/bin/Tachidesk-Server.jar" + cp "scripts/resources/Tachidesk Launcher.bat" "$RELEASE_NAME" zip -9 -r "$RELEASE" "$RELEASE_NAME" } @@ -277,12 +281,16 @@ make_windows_package() { | wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \ --directory-ref electron --component-group electron >"$RELEASE_NAME/electron.wxs" + find "$RELEASE_NAME/bin" \ + | wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \ + --directory-ref bin --component-group bin >"$RELEASE_NAME/bin.wxs" + local icon="server/src/main/resources/icon/faviconlogo.ico" local arch=${OS##*-} wixl -D ProductVersion="$RELEASE_VERSION" -D SourceDir="$RELEASE_NAME" \ -D Icon="$icon" --arch "$arch" "scripts/resources/msi/tachidesk-server-$arch.wxs" \ - "$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" -o "$RELEASE" + "$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" "$RELEASE_NAME/bin.wxs" -o "$RELEASE" } setup_playwright() { diff --git a/scripts/resources/Tachidesk Browser Launcher.bat b/scripts/resources/Tachidesk Browser Launcher.bat deleted file mode 100644 index cf1d75ed..00000000 --- a/scripts/resources/Tachidesk Browser Launcher.bat +++ /dev/null @@ -1 +0,0 @@ -start "" jre/bin/javaw -jar Tachidesk-Server.jar \ No newline at end of file diff --git a/scripts/resources/Tachidesk Browser Launcher.command b/scripts/resources/Tachidesk Browser Launcher.command deleted file mode 100755 index 2b7311fe..00000000 --- a/scripts/resources/Tachidesk Browser Launcher.command +++ /dev/null @@ -1,3 +0,0 @@ -cd "`dirname "$0"`" - -./jre/Contents/Home/bin/java -jar Tachidesk-Server.jar \ No newline at end of file diff --git a/scripts/resources/Tachidesk Debug Launcher.bat b/scripts/resources/Tachidesk Debug Launcher.bat deleted file mode 100644 index 4e14e1dd..00000000 --- a/scripts/resources/Tachidesk Debug Launcher.bat +++ /dev/null @@ -1,7 +0,0 @@ -:: cleaner output -@echo off - -jre\bin\java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar Tachidesk-Server.jar - -:: Prevent cmd from closing when Tachidesk crashes -pause \ No newline at end of file diff --git a/scripts/resources/Tachidesk Debug Launcher.command b/scripts/resources/Tachidesk Debug Launcher.command deleted file mode 100755 index f46456a3..00000000 --- a/scripts/resources/Tachidesk Debug Launcher.command +++ /dev/null @@ -1,3 +0,0 @@ -cd "`dirname "$0"`" - -./jre/Contents/Home/bin/java -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true -jar Tachidesk-Server.jar diff --git a/scripts/resources/Tachidesk Electron Launcher.bat b/scripts/resources/Tachidesk Electron Launcher.bat deleted file mode 100644 index 59e99041..00000000 --- a/scripts/resources/Tachidesk Electron Launcher.bat +++ /dev/null @@ -1 +0,0 @@ -jre\bin\javaw "-Dsuwayomi.tachidesk.config.server.webUIInterface=electron" "-Dsuwayomi.tachidesk.config.server.electronPath=electron/electron.exe" -jar Tachidesk-Server.jar \ No newline at end of file diff --git a/scripts/resources/Tachidesk Electron Launcher.command b/scripts/resources/Tachidesk Electron Launcher.command deleted file mode 100755 index 98231819..00000000 --- a/scripts/resources/Tachidesk Electron Launcher.command +++ /dev/null @@ -1,3 +0,0 @@ -cd "`dirname "$0"`" - -./jre/Contents/Home/bin/java "-Dsuwayomi.tachidesk.config.server.webUIInterface=electron" "-Dsuwayomi.tachidesk.config.server.electronPath=electron/Electron.app/Contents/MacOS/Electron" -jar Tachidesk-Server.jar \ No newline at end of file diff --git a/scripts/resources/Tachidesk Launcher.bat b/scripts/resources/Tachidesk Launcher.bat new file mode 100644 index 00000000..05e52cfb --- /dev/null +++ b/scripts/resources/Tachidesk Launcher.bat @@ -0,0 +1 @@ +start "" jre/bin/javaw -jar Tachidesk-Launcher.jar \ No newline at end of file diff --git a/scripts/resources/Tachidesk Launcher.command b/scripts/resources/Tachidesk Launcher.command new file mode 100644 index 00000000..dcd19680 --- /dev/null +++ b/scripts/resources/Tachidesk Launcher.command @@ -0,0 +1,3 @@ +cd "`dirname "$0"`" + +./jre/Contents/Home/bin/java -jar Tachidesk-Launcher.jar \ No newline at end of file diff --git a/scripts/resources/deb/control b/scripts/resources/deb/control index 3ec79b3d..4668c392 100644 --- a/scripts/resources/deb/control +++ b/scripts/resources/deb/control @@ -8,7 +8,7 @@ Homepage: https://github.com/Suwayomi/Tachidesk-Server Package: tachidesk-server Architecture: all -Depends: ${misc:Depends}, java8-runtime-headless, libc++-dev +Depends: ${misc:Depends}, java8-runtime, libc++-dev Description: Manga Reader A free and open source manga reader server that runs extensions built for Tachiyomi. Tachidesk is an independent Tachiyomi compatible software and is not a Fork of Tachiyomi. diff --git a/scripts/resources/deb/install b/scripts/resources/deb/install index b727cfff..b1640e3c 100755 --- a/scripts/resources/deb/install +++ b/scripts/resources/deb/install @@ -1,12 +1,13 @@ #!/usr/bin/dh-exec -Tachidesk-Server.jar usr/share/java/tachidesk-server/ +Tachidesk-Server.jar usr/share/java/tachidesk-server/bin/ +Tachidesk-Launcher.jar usr/share/java/tachidesk-server/ tachidesk-server.png usr/share/pixmaps/ tachidesk-server.desktop usr/share/applications/ +tachidesk-launcher.desktop usr/share/applications/ tachidesk-server.service usr/lib/systemd/system/ tachidesk-server.sysusers => usr/lib/sysusers.d/tachidesk-server.conf tachidesk-server.tmpfiles => usr/lib/tmpfiles.d/tachidesk-server.conf tachidesk-server.conf => etc/tachidesk/server.conf -tachidesk-server-browser-launcher.sh => usr/bin/tachidesk-server-browser -tachidesk-server-debug-launcher.sh => usr/bin/tachidesk-server-debug -tachidesk-server-electron-launcher.sh => usr/bin/tachidesk-server-electron +tachidesk-server.sh => usr/bin/tachidesk-server +tachidesk-launcher.sh => usr/bin/tachidesk-launcher diff --git a/scripts/resources/msi/tachidesk-server-x64.wxs b/scripts/resources/msi/tachidesk-server-x64.wxs index 50946925..3acad684 100755 --- a/scripts/resources/msi/tachidesk-server-x64.wxs +++ b/scripts/resources/msi/tachidesk-server-x64.wxs @@ -15,6 +15,7 @@ + @@ -31,53 +32,30 @@ - + - - - + + - - - - - - - - - - - - - - - - - + - - + - diff --git a/scripts/resources/msi/tachidesk-server-x86.wxs b/scripts/resources/msi/tachidesk-server-x86.wxs index d0493053..e4c73475 100755 --- a/scripts/resources/msi/tachidesk-server-x86.wxs +++ b/scripts/resources/msi/tachidesk-server-x86.wxs @@ -11,6 +11,7 @@ + @@ -27,53 +28,30 @@ - + - - - + + - - - - - - - - - - - - - - - - - + - - + - diff --git a/scripts/resources/pkg/systemd/tachidesk-server.service b/scripts/resources/pkg/systemd/tachidesk-server.service index ffacabd2..9a6d410f 100644 --- a/scripts/resources/pkg/systemd/tachidesk-server.service +++ b/scripts/resources/pkg/systemd/tachidesk-server.service @@ -10,7 +10,7 @@ Group=tachidesk SyslogIdentifier=tachidesk EnvironmentFile=/etc/tachidesk/server.conf -ExecStart=/usr/bin/java $JAVA_ARGS -Dsuwayomi.tachidesk.config.server.rootDir="${TACHIDESK_ROOT_DIR}" -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar +ExecStart=/usr/bin/java $JAVA_ARGS -Dsuwayomi.tachidesk.config.server.rootDir="${TACHIDESK_ROOT_DIR}" -jar /usr/share/java/tachidesk-server/bin/Tachidesk-Server.jar Restart=on-failure ProtectSystem=full diff --git a/scripts/resources/pkg/tachidesk-launcher.desktop b/scripts/resources/pkg/tachidesk-launcher.desktop new file mode 100644 index 00000000..8efced5f --- /dev/null +++ b/scripts/resources/pkg/tachidesk-launcher.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Type=Application +Name=Tachidesk-Launcher +Comment=Manga Reader +Exec=/usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Launcher.jar "\\$@" +Icon=tachidesk-server +Terminal=false +Categories=Network; diff --git a/scripts/resources/pkg/tachidesk-server-browser-launcher.sh b/scripts/resources/pkg/tachidesk-launcher.sh similarity index 82% rename from scripts/resources/pkg/tachidesk-server-browser-launcher.sh rename to scripts/resources/pkg/tachidesk-launcher.sh index 6dac7fe4..a6bf45a1 100644 --- a/scripts/resources/pkg/tachidesk-server-browser-launcher.sh +++ b/scripts/resources/pkg/tachidesk-launcher.sh @@ -1,3 +1,3 @@ #!/bin/sh -exec /usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar +exec /usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Launcher.jar diff --git a/scripts/resources/pkg/tachidesk-server-debug-launcher.sh b/scripts/resources/pkg/tachidesk-server-debug-launcher.sh deleted file mode 100644 index bb90590e..00000000 --- a/scripts/resources/pkg/tachidesk-server-debug-launcher.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -exec /usr/bin/java \ - -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true \ - -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar diff --git a/scripts/resources/pkg/tachidesk-server-electron-launcher.sh b/scripts/resources/pkg/tachidesk-server-electron-launcher.sh deleted file mode 100644 index 14bcf932..00000000 --- a/scripts/resources/pkg/tachidesk-server-electron-launcher.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -if [ ! -f /usr/bin/electron ]; then - echo "Electron executable was not found! -In order to run this launcher, you need Electron installed." - exit 1 -fi - -exec /usr/bin/java \ - -Dsuwayomi.tachidesk.config.server.webUIInterface=electron \ - -Dsuwayomi.tachidesk.config.server.electronPath=/usr/bin/electron \ - -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar diff --git a/scripts/resources/pkg/tachidesk-server.desktop b/scripts/resources/pkg/tachidesk-server.desktop index 312b5da1..6e2b5d1a 100644 --- a/scripts/resources/pkg/tachidesk-server.desktop +++ b/scripts/resources/pkg/tachidesk-server.desktop @@ -2,7 +2,7 @@ Type=Application Name=Tachidesk-Server Comment=Manga Reader -Exec=/usr/bin/java -jar /usr/share/java/tachidesk-server/Tachidesk-Server.jar "\\$@" +Exec=/usr/bin/java -jar /usr/share/java/tachidesk-server/bin/Tachidesk-Server.jar "\\$@" Icon=tachidesk-server Terminal=false Categories=Network; diff --git a/scripts/resources/pkg/tachidesk-server.sh b/scripts/resources/pkg/tachidesk-server.sh new file mode 100644 index 00000000..4c7790fa --- /dev/null +++ b/scripts/resources/pkg/tachidesk-server.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/java -jar /usr/share/java/tachidesk-server/bin/Tachidesk-Server.jar diff --git a/scripts/resources/tachidesk-launcher.sh b/scripts/resources/tachidesk-launcher.sh new file mode 100644 index 00000000..0e66d00d --- /dev/null +++ b/scripts/resources/tachidesk-launcher.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec ./jre/bin/java -jar ./Tachidesk-Launcher.jar diff --git a/scripts/resources/tachidesk-server-browser-launcher.sh b/scripts/resources/tachidesk-server-browser-launcher.sh deleted file mode 100644 index 0e3d5067..00000000 --- a/scripts/resources/tachidesk-server-browser-launcher.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -exec ./jre/bin/java -jar ./Tachidesk-Server.jar diff --git a/scripts/resources/tachidesk-server-debug-launcher.sh b/scripts/resources/tachidesk-server-debug-launcher.sh deleted file mode 100644 index 86ffc310..00000000 --- a/scripts/resources/tachidesk-server-debug-launcher.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh - -exec ./jre/bin/java \ - -Dsuwayomi.tachidesk.config.server.debugLogsEnabled=true \ - -jar ./Tachidesk-Server.jar diff --git a/scripts/resources/tachidesk-server-electron-launcher.sh b/scripts/resources/tachidesk-server-electron-launcher.sh deleted file mode 100644 index e95c6460..00000000 --- a/scripts/resources/tachidesk-server-electron-launcher.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -exec ./jre/bin/java \ - -Dsuwayomi.tachidesk.config.server.webUIInterface=electron \ - -Dsuwayomi.tachidesk.config.server.electronPath=./electron/electron \ - -jar ./Tachidesk-Server.jar diff --git a/scripts/resources/tachidesk-server.sh b/scripts/resources/tachidesk-server.sh new file mode 100644 index 00000000..8281d5d1 --- /dev/null +++ b/scripts/resources/tachidesk-server.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +exec ./jre/bin/java -jar ./bin/Tachidesk-Server.jar