summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authordetiam2024-02-11 16:36:17 +0800
committerdetiam2024-02-11 16:36:17 +0800
commitabd6629849f5984cd1cbf21d95c9df013ea98f4a (patch)
treeb25f656aa9ebf78c5d201da78d538ac130cf7571
parent8bbb5f02410d91bd612758a3dd5981ed959c11b0 (diff)
downloadaur-abd6629849f5984cd1cbf21d95c9df013ea98f4a.tar.gz
fix broken launch script
-rw-r--r--PKGBUILD16
-rwxr-xr-xhmcl-launch-script44
-rw-r--r--hmcl.desktop4
3 files changed, 43 insertions, 21 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 3392a586c9e5..94f2d93fb0b1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,25 +8,27 @@ _pkgname=HMCL
_ver=3.5.5
_build=235
_pkgver=ffeabbf1f144ba14462e27c2ac9d46e231c1482e
+_java_version=17
+_jar_path="/usr/share/java/$pkgname.jar"
pkgver=$_ver.$_build
pkgrel=1
pkgdesc='An unofficial build of HMCL that trying to compile and run HMCL with the latest LTS version of java. (with HMCL-Clean changes)'
arch=('any')
url='https://github.com/huanghongxun/HMCL'
license=('GPL3')
-depends=('java-runtime>=17' 'java-openjfx>=17' 'hicolor-icon-theme')
-makedepends=('java-environment>=17' 'gradle')
+depends=("java-runtime>=$_java_version" "java-openjfx>=$_java_version" 'hicolor-icon-theme' 'archlinux-java-run')
+makedepends=("java-environment>=$_java_version" 'gradle')
provides=('hmcl')
conflicts=('hmcl')
source=('hmcl.desktop'
'hmcl-launch-script'
'craft_table.png'
"${_pkgname}-${_pkgver}.tar.gz::${url}/archive/${_pkgver}.tar.gz"
- "0001-Target-Java-17.patch"
+ "0001-Target-Java-$_java_version.patch"
"0002-Cleanup.patch"
)
-sha256sums=('b4e8aa0f349bb3f5dd15a31c5a13ac3e10e5a5bcd2f97cf390041924275e43ef'
- '4fcd4bf8f8d2ca39cf25a8d59daeb53ffa54fbca0356bd55aa17a5ee31d59a95'
+sha256sums=('04ee0621a295728d4ad5d23d6bf8853d5715053153b336203ce7e73ce8b66440'
+ '505c335bce8685fff97f6fbd0c4b916fa697dfc73ff22735d7c188b3811bc422'
'2989a1b5301b8c7b9afdae5696c6a4e5246afa2d4f1f3d3dad5c192f036a9b4c'
'1e152212e1507d49c867fe8715c4ec337972795cd9f4947e285677a56257cb3d'
'c650fa0d34f22f9700dd047fbe243a63528c629312b94f499d4aa341b9b5193f'
@@ -62,7 +64,9 @@ check() {
package() {
install -Dm755 'hmcl-launch-script' "$pkgdir/usr/bin/$pkgname"
install -Dm644 'hmcl.desktop' "$pkgdir/usr/share/applications/$pkgname.desktop"
- install -Dm644 "$_pkgname-$_pkgver/HMCL/build/libs/$_pkgname-$pkgver.jar" "$pkgdir/usr/share/java/$pkgname/$pkgname.jar"
+ install -Dm644 "$_pkgname-$_pkgver/HMCL/build/libs/$_pkgname-$pkgver.jar" "$pkgdir/$_jar_path"
install -Dm644 'craft_table.png' "$pkgdir/usr/share/icons/hicolor/48x48/apps/$pkgname.png"
install -Dm644 "$_pkgname-$_pkgver/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
+ sed -i -e "s|%JAVA_VERSION%|$_java_version|" -e "s|%JAR_PATH%|$_jar_path|" "$pkgdir/usr/bin/$pkgname"
}
diff --git a/hmcl-launch-script b/hmcl-launch-script
index 66eba1ea54d6..743e7ab4ec0f 100755
--- a/hmcl-launch-script
+++ b/hmcl-launch-script
@@ -1,17 +1,35 @@
-#!/bin/sh
+#!/usr/bin/env sh
set -eu
-if [ "${1:-}" != -p ]; then
- WORKDIR=${XDG_CONFIG_HOME:-$HOME/.config}/hmcl
- mkdir -p "$WORKDIR"
- cd "$WORKDIR"
-fi
+print_usage() {
+ cat <<EOF
+usage: $(basename "$0") [-h/-p] [args passed to java]
-JAVA_HOME=$(pacman -Ql java-runtime | grep -e '/usr/lib/jvm/.*/bin/java$' | head -n 1 | cut -s -d ' ' -f '2-' | cut -s -d / -f '-5')
-JAVAFX_HOME=$(dirname "$(pacman -Ql java-openjfx | grep -e '/javafx\..*\.jar$' | head -n 1 | cut -s -d ' ' -f '2-')")
+Options:
+ -h --help:
+ Print this message
+ --hmcl-global:
+ Use "\${XDG_DATA_HOME:-\$HOME/.local/share}/hmcl" as working directory
+EOF
+ exit 0
+}
-exec "${JAVA_HOME}"/bin/java \
- --module-path "${JAVAFX_HOME}/javafx.base.jar:${JAVAFX_HOME}/javafx.fxml.jar:${JAVAFX_HOME}/javafx.graphics.jar:${JAVAFX_HOME}/javafx.media.jar:${JAVAFX_HOME}/javafx.swing.jar:${JAVAFX_HOME}/javafx.web.jar:${JAVAFX_HOME}/javafx.controls.jar" \
- --add-modules=javafx.base --add-modules=javafx.fxml --add-modules=javafx.graphics --add-modules=javafx.media --add-modules=javafx.swing --add-modules=javafx.web --add-modules=javafx.controls \
- -jar /usr/share/java/hmcl-new/hmcl-new.jar \
- "$@"
+args=''
+for arg in "$@" ; do
+ case "$arg" in
+ -h|--help)
+ print_usage
+ ;;
+ --hmcl-global)
+ printf 'Global mode\n\n'
+ WORKDIR=${XDG_DATA_HOME:-$HOME/.local/share}/hmcl
+ mkdir -p "$WORKDIR"
+ cd "$WORKDIR" || exit 2
+ ;;
+ *)
+ args="$args $arg"
+ ;;
+ esac
+done
+
+env GDK_CORE_DEVICE_EVENTS=1 archlinux-java-run -f 'javafx' -a '%JAVA_VERSION%' -- -jar '%JAR_PATH%' "$args"
diff --git a/hmcl.desktop b/hmcl.desktop
index aa2079c867bc..85a9b848cecd 100644
--- a/hmcl.desktop
+++ b/hmcl.desktop
@@ -3,9 +3,9 @@ Version=1.0
Type=Application
Name=HMCL
Comment=Hello Minecraft! Launcher, a powerful Minecraft launcher.
-Exec=hmcl-new
+Exec=hmcl-new --hmcl-global %U
Icon=hmcl-new
Terminal=false
-StartupNotify=false
+StartupNotify=true
Categories=Game;
StartupWMClass=org.jackhuang.hmcl.Launcher