Include jogamp native files in all bundles (#1752)

This commit is contained in:
Constantin Piber
2025-11-01 19:29:54 +01:00
committed by GitHub
parent 2a27491f9f
commit d63965cc02
5 changed files with 28 additions and 1 deletions

View File

@@ -49,6 +49,7 @@ main() {
case "$OS" in
debian-all)
RELEASE="$RELEASE_NAME.deb"
download_jogamp "linux-*" # it's easier to bundle them ourselves than to handle Debian's path conventions
make_deb_package
move_release_to_output_dir
;;
@@ -56,6 +57,7 @@ main() {
JRE="$ZULU_RELEASE-ca-$JRE_RELEASE-linux_x64.zip"
JRE_DIR="${JRE%.*}"
JRE_URL="https://cdn.azul.com/zulu/bin/$JRE"
download_jogamp "linux-amd64"
setup_jre
RELEASE="$RELEASE_NAME.AppImage"
@@ -75,6 +77,7 @@ main() {
ELECTRON="electron-$electron_version-linux-x64.zip"
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
download_electron
download_jogamp "linux-amd64"
setup_jre
tree "$RELEASE_NAME"
@@ -89,6 +92,7 @@ main() {
ELECTRON="electron-$electron_version-darwin-x64.zip"
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
download_electron
download_jogamp "macosx-universal"
setup_jre
tree "$RELEASE_NAME"
@@ -103,6 +107,7 @@ main() {
ELECTRON="electron-$electron_version-darwin-arm64.zip"
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
download_electron
download_jogamp "macosx-universal"
setup_jre
tree "$RELEASE_NAME"
@@ -117,6 +122,7 @@ main() {
ELECTRON="electron-$electron_version-win32-x64.zip"
ELECTRON_URL="https://github.com/electron/electron/releases/download/$electron_version/$ELECTRON"
download_electron
download_jogamp "windows-amd64"
setup_jre
tree "$RELEASE_NAME"
@@ -148,6 +154,18 @@ download_launcher() {
mv "Suwayomi-Launcher.jar" "$RELEASE_NAME/Suwayomi-Launcher.jar"
}
download_jogamp() {
local platform="$1"
if [ ! -f jogamp-all-platforms.7z ]; then
curl "https://jogamp.org/deployment/jogamp-current/archive/jogamp-all-platforms.7z" -o jogamp-all-platforms.7z
fi
7z x jogamp-all-platforms.7z "jogamp-all-platforms/lib/$platform/"
mkdir -p "$RELEASE_NAME/natives/"
mv jogamp-all-platforms/lib/* "$RELEASE_NAME/natives/"
rm -rf jogamp-all-platforms
}
download_electron() {
if [ ! -f "$ELECTRON" ]; then
curl -L "$ELECTRON_URL" -o "$ELECTRON"
@@ -216,6 +234,7 @@ make_deb_package() {
local upstream_source="suwayomi-server_$RELEASE_VERSION.orig.tar.gz"
mkdir "$RELEASE_NAME/$source_dir/"
mv "$RELEASE_NAME/natives" "$RELEASE_NAME/$source_dir/natives"
mv "$RELEASE_NAME/Suwayomi-Launcher.jar" "$RELEASE_NAME/$source_dir/Suwayomi-Launcher.jar"
cp "$JAR" "$RELEASE_NAME/$source_dir/Suwayomi-Server.jar"
copy_linux_package_assets_to "$RELEASE_NAME/$source_dir/"
@@ -307,6 +326,9 @@ make_windows_package() {
find "$RELEASE_NAME/electron" \
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
--directory-ref electron --component-group electron >"$RELEASE_NAME/electron.wxs"
find "$RELEASE_NAME/natives" \
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
--directory-ref natives --component-group natives >"$RELEASE_NAME/natives.wxs"
find "$RELEASE_NAME/bin" \
| wixl-heat --var var.SourceDir -p "$RELEASE_NAME/" \
@@ -317,7 +339,7 @@ make_windows_package() {
wixl -D ProductVersion="$RELEASE_VERSION" -D SourceDir="$RELEASE_NAME" \
-D Icon="$icon" --arch "$arch" "scripts/resources/msi/suwayomi-server-$arch.wxs" \
"$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" "$RELEASE_NAME/bin.wxs" -o "$RELEASE"
"$RELEASE_NAME/jre.wxs" "$RELEASE_NAME/electron.wxs" "$RELEASE_NAME/natives.wxs" "$RELEASE_NAME/bin.wxs" -o "$RELEASE"
}
# Error handler

View File

@@ -1,3 +1,4 @@
#!/bin/sh
cd "$APPDIR"
exec $APPDIR/jre/bin/java -jar $APPDIR/bin/Suwayomi-Server.jar

View File

@@ -2,6 +2,7 @@
Suwayomi-Server.jar usr/share/java/suwayomi-server/bin/
Suwayomi-Launcher.jar usr/share/java/suwayomi-server/
natives/* usr/share/java/suwayomi-server/natives/
suwayomi-server.png usr/share/pixmaps/
suwayomi-server.desktop usr/share/applications/
suwayomi-launcher.desktop usr/share/applications/

View File

@@ -17,6 +17,7 @@
<Directory Id="INSTALLDIR" Name="Suwayomi-Server" >
<Directory Id="jre"/>
<Directory Id="electron"/>
<Directory Id="natives"/>
<Directory Id="bin"/>
</Directory>
</Directory>
@@ -62,6 +63,7 @@
<ComponentRef Id="SuwayomiLauncherBAT" />
<ComponentRef Id="ProgramMenuDir" />
<ComponentGroupRef Id="electron" />
<ComponentGroupRef Id="natives" />
</Feature>
<Icon Id="Suwayomi.ico" SourceFile="$(var.Icon)" />

View File

@@ -1,6 +1,7 @@
#!/bin/sh
export LD_PRELOAD="/usr/share/java/suwayomi-server/bin/catch_abort.so"
cd /usr/share/java/suwayomi-server/
if [ -z "$DISPLAY" ] && command -v Xvfb >/dev/null; then
echo "-- START: Spawning X server using xvfb-run --"