From 80c0b58eedbab87d2750a36cb2f9075f357ce30b Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Sep 2026 18:01:01 -0400 Subject: [PATCH 1/7] sort dependency install alphabetically --- get-dependencies.sh | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/get-dependencies.sh b/get-dependencies.sh index 3a9cfee..ed3a106 100644 --- a/get-dependencies.sh +++ b/get-dependencies.sh @@ -7,13 +7,27 @@ ARCH=$(uname -m) echo "Installing package dependencies..." echo "---------------------------------------------------------------" pacman -Syu --noconfirm \ - tauon-music-box \ - pipewire-audio pipewire-jack \ - p7zip unrar \ - opusfile mpg123 flac libvorbis wavpack \ - libgme libnotify \ - python-jxlpy python-pypresence python-tekore python-plexapi python-pychromecast python-tidalapi python-opengl \ - libimagequant openjpeg2 + flac \ + libgme \ + libimagequant \ + libnotify \ + libvorbis \ + mpg123 \ + openjpeg2 \ + opusfile \ + p7zip \ + pipewire-audio \ + pipewire-jack \ + python-jxlpy \ + python-opengl \ + python-plexapi \ + python-pychromecast \ + python-pypresence \ + python-tekore \ + python-tidalapi \ + tauon-music-box \ + unrar \ + wavpac echo "Installing debloated packages..." echo "---------------------------------------------------------------" From 1ddac796442d484b12c2e18255f60b432b8c0539 Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Sep 2026 18:27:25 -0400 Subject: [PATCH 2/7] use host drivers, fix mix of tab/white spaces --- make-appimage.sh | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/make-appimage.sh b/make-appimage.sh index dba3c6d..0c5c088 100644 --- a/make-appimage.sh +++ b/make-appimage.sh @@ -10,9 +10,9 @@ export ADD_HOOKS="self-updater.hook" export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync" export ICON=/usr/share/icons/hicolor/scalable/apps/tauonmb.svg export DESKTOP=/usr/share/applications/tauonmb.desktop -export DEPLOY_SYS_PYTHON=1 +export DEPLOY_PYTHON=1 export DEPLOY_PIPEWIRE=1 -export DEPLOY_OPENGL=1 +export USE_HOST_DRIVERS_EXPERIMENTAL=1 export DEPLOY_SDL=1 # fix bug making the app assume that it can write to its site-package dir @@ -21,18 +21,18 @@ find /usr/lib/python*/site-packages \ # Deploy dependencies quick-sharun \ - /usr/bin/tauonmb \ - /usr/bin/ffmpeg \ - /usr/lib/libgtk-3.so* \ - /usr/lib/libgme.so* \ - /usr/lib/libwavpack.so* \ - /usr/lib/libnotify.so* \ - /usr/lib/libopenmpt.so* \ - /usr/lib/libvorbisfile.so* \ - /usr/lib/libopusfile.so* \ - /usr/lib/libsamplerate.so* \ - /usr/lib/libkissfft-float.so* \ - /usr/lib/libimagequant.so* \ + /usr/bin/tauonmb \ + /usr/bin/ffmpeg \ + /usr/lib/libgtk-3.so* \ + /usr/lib/libgme.so* \ + /usr/lib/libwavpack.so* \ + /usr/lib/libnotify.so* \ + /usr/lib/libopenmpt.so* \ + /usr/lib/libvorbisfile.so* \ + /usr/lib/libopusfile.so* \ + /usr/lib/libsamplerate.so* \ + /usr/lib/libkissfft-float.so* \ + /usr/lib/libimagequant.so* \ /usr/lib/libopenjp2.so* # Additional changes can be done in between here From bfaf63219f03b8b8c58286fa8914e7d0afdbe466 Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Wed, 2 Sep 2026 18:47:45 -0400 Subject: [PATCH 3/7] typo --- get-dependencies.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-dependencies.sh b/get-dependencies.sh index ed3a106..cfa0dad 100644 --- a/get-dependencies.sh +++ b/get-dependencies.sh @@ -27,7 +27,7 @@ pacman -Syu --noconfirm \ python-tidalapi \ tauon-music-box \ unrar \ - wavpac + wavpack echo "Installing debloated packages..." echo "---------------------------------------------------------------" From 5124e86e3ea5b701c5d8caad319dffcaa0f04387 Mon Sep 17 00:00:00 2001 From: Samueru-sama Date: Wed, 2 Sep 2026 19:35:24 -0400 Subject: [PATCH 4/7] build manually --- get-dependencies.sh | 122 +++++++++++++++++++++++++++++++++----------- make-appimage.sh | 5 +- 2 files changed, 95 insertions(+), 32 deletions(-) diff --git a/get-dependencies.sh b/get-dependencies.sh index cfa0dad..3c67b76 100644 --- a/get-dependencies.sh +++ b/get-dependencies.sh @@ -7,27 +7,57 @@ ARCH=$(uname -m) echo "Installing package dependencies..." echo "---------------------------------------------------------------" pacman -Syu --noconfirm \ - flac \ - libgme \ - libimagequant \ - libnotify \ - libvorbis \ - mpg123 \ - openjpeg2 \ - opusfile \ - p7zip \ - pipewire-audio \ - pipewire-jack \ - python-jxlpy \ - python-opengl \ - python-plexapi \ - python-pychromecast \ - python-pypresence \ - python-tekore \ - python-tidalapi \ - tauon-music-box \ - unrar \ - wavpack + cargo \ + flac \ + kissfft \ + libappindicator \ + libgme \ + libimagequant \ + libnotify \ + libopenmpt \ + libprojectm \ + libsamplerate \ + libvorbis \ + miniaudio \ + mpg123 \ + noto-fonts \ + noto-fonts-extra \ + opencc \ + openjpeg2 \ + opusfile \ + p7zip \ + pipewire-audio \ + pipewire-jack \ + pkgconf \ + python-beautifulsoup4 \ + python-build \ + python-cairo \ + python-dbus \ + python-gobject \ + python-installer \ + python-jxlpy \ + python-musicbrainzngs \ + python-mutagen \ + python-natsort \ + python-opengl \ + python-pillow \ + python-plexapi \ + python-pychromecast \ + python-pylast \ + python-pypresence \ + python-pysdl3 \ + python-rapidfuzz \ + python-requests \ + python-send2trash \ + python-setproctitle \ + python-tekore \ + python-tidalapi \ + python-unidecode \ + python-websocket-client \ + sdl3_image \ + unrar \ + wavpack \ + xdg-utils echo "Installing debloated packages..." echo "---------------------------------------------------------------" @@ -36,12 +66,46 @@ get-debloated-pkgs --add-common --prefer-nano ffmpeg-mini # Comment this out if you need an AUR package #make-aur-package tauon-music-box-git -# If the application needs to be manually built that has to be done down here +echo "Building tauon-music-box from source..." +echo "---------------------------------------------------------------" +git clone https://github.com/Taiko2k/Tauon.git ./Tauon && ( + cd ./Tauon + + git fetch --tags origin + TAG=$(git tag --sort=-v:refname | grep -vi 'pre\|rc\|alpha\|beta' | head -1) + git checkout "$TAG" + echo "${TAG#v}" > ~/version + + # use system kissfft instead of the expected cloned repository + sed -i 's|"src/phazor/kissfft/kiss_fftr.c", "src/phazor/kissfft/kiss_fft.c", ||g' pyproject.toml + sed -i 's|"samplerate"|"kissfft-float", "samplerate"|g' pyproject.toml + sed -i 's|com.github.taiko2k.tauonmb.desktop|tauonmb.desktop|' extra/com.github.taiko2k.tauonmb.appdata.xml + + python -m build --wheel + + # Tiny Rust binary that calculates LRCLIB challenges + ( + cd src/lrclib-solver + export RUSTUP_TOOLCHAIN=stable + export CARGO_TARGET_DIR=target + cargo fetch --locked --target host-tuple + CFLAGS="${CFLAGS-} -fno-lto" cargo build --frozen --release --all-features + ) + + python -m installer --destdir=/ dist/*.whl + + for dir in src/tauon/locale/*; do + install -Dm644 \ + "${dir}/LC_MESSAGES/"*.mo \ + -t "/usr/share/locale/$(basename "${dir}")/LC_MESSAGES" + done + + install -Dm644 extra/tauonmb.desktop -t /usr/share/applications + install -Dm644 extra/com.github.taiko2k.tauonmb.appdata.xml -t /usr/share/metainfo + install -Dm644 extra/tauonmb-symbolic.svg -t /usr/share/icons/hicolor/symbolic/apps + install -Dm644 extra/tauonmb.svg -t /usr/share/icons/hicolor/scalable/apps + install -Dm755 extra/tauonmb.sh /usr/bin/tauon -# if you also have to make nightly releases check for DEVEL_RELEASE = 1 -# -# if [ "${DEVEL_RELEASE-}" = 1 ]; then -# nightly build steps -# else -# regular build steps -# fi + site_packages=$(python -c "import site; print(site.getsitepackages()[0])") + install -Dm755 src/lrclib-solver/target/release/lrclib-solver "${site_packages}/tauon/lrclib-solver" +) diff --git a/make-appimage.sh b/make-appimage.sh index 0c5c088..3bebe8f 100644 --- a/make-appimage.sh +++ b/make-appimage.sh @@ -3,8 +3,7 @@ set -eu ARCH=$(uname -m) -VERSION=$(pacman -Q tauon-music-box | awk '{print $2; exit}') # example command to get version of application here -export ARCH VERSION +export ARCH export OUTPATH=./dist export ADD_HOOKS="self-updater.hook" export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync" @@ -27,7 +26,7 @@ quick-sharun \ /usr/lib/libgme.so* \ /usr/lib/libwavpack.so* \ /usr/lib/libnotify.so* \ - /usr/lib/libopenmpt.so* \ + /usr/lib/libopenmpt.so* \ /usr/lib/libvorbisfile.so* \ /usr/lib/libopusfile.so* \ /usr/lib/libsamplerate.so* \ From 6009ca2d88fa0fdc73f3e66c75c6cf012c70421a Mon Sep 17 00:00:00 2001 From: Samuel <36420837+Samueru-sama@users.noreply.github.com> Date: Thu, 3 Sep 2026 20:57:45 -0400 Subject: [PATCH 5/7] `aarch64` --- .github/workflows/appimage.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/appimage.yml b/.github/workflows/appimage.yml index 71ee0cf..d9d4a2c 100644 --- a/.github/workflows/appimage.yml +++ b/.github/workflows/appimage.yml @@ -18,9 +18,9 @@ jobs: name: Build AppImage arch: x86_64 # comment out these 3 lines if aarch64 is not wanted - #- runs-on: ubuntu-24.04-arm - # name: Build AppImage - # arch: aarch64 + - runs-on: ubuntu-24.04-arm + name: Build AppImage + arch: aarch64 container: ghcr.io/pkgforge-dev/archlinux:latest steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 From 6c7f604ebaac5d4caa793022677c175c1a65aefe Mon Sep 17 00:00:00 2001 From: Samueru-sama Date: Thu, 3 Sep 2026 21:34:53 -0400 Subject: [PATCH 6/7] build kissfft since it is not in ALARM, fix launcher script --- AppDir/bin/tauon | 46 ++++++++++++++++++++++++++++++++++++--------- get-dependencies.sh | 12 ++++++++++-- 2 files changed, 47 insertions(+), 11 deletions(-) diff --git a/AppDir/bin/tauon b/AppDir/bin/tauon index 90062d7..a5edef1 100755 --- a/AppDir/bin/tauon +++ b/AppDir/bin/tauon @@ -1,13 +1,41 @@ #!/bin/sh -export SDL_BINARY_PATH="$APPDIR"/shared/lib +export SDL_BINARY_PATH="$APPDIR"/lib + if [ "$1" = '--no-start' ]; then - case "$2" in - --play) exec curl http://localhost:7813/play/;; - --play-pause) exec curl http://localhost:7813/playpause/;; - --pause) exec curl http://localhost:7813/pause/;; - --stopcurl) exec curl http://localhost:7813/stop/;; - --next) exec curl http://localhost:7813/next/;; - --previous) exec curl http://localhost:7813/previous/;; - esac + shift fi + +case "$1" in + --play|play) + exec curl http://127.0.0.1:7813/play + ;; + --pause|pause) + exec curl http://127.0.0.1:7813/pause + ;; + --playpause|--play-pause|playpause|play-pause) + exec curl http://127.0.0.1:7813/playpause + ;; + --stop|--stopcurl|stop|stopcurl) + exec curl http://127.0.0.1:7813/stop + ;; + --next|--advance|next|advance) + exec curl http://127.0.0.1:7813/next + ;; + --previous|--prev|--back|previous|prev|back) + exec curl http://127.0.0.1:7813/previous + ;; + --raise|raise) + exec curl http://127.0.0.1:7813/raise + ;; + --reloadtheme|reloadtheme) + exec curl http://127.0.0.1:7813/reloadtheme + ;; + --shuffle|shuffle) + exec curl http://127.0.0.1:7813/shuffle + ;; + --repeat|repeat) + exec curl http://127.0.0.1:7813/repeat + ;; +esac + exec tauonmb "$@" diff --git a/get-dependencies.sh b/get-dependencies.sh index 3c67b76..afa98e5 100644 --- a/get-dependencies.sh +++ b/get-dependencies.sh @@ -9,7 +9,6 @@ echo "---------------------------------------------------------------" pacman -Syu --noconfirm \ cargo \ flac \ - kissfft \ libappindicator \ libgme \ libimagequant \ @@ -66,7 +65,16 @@ get-debloated-pkgs --add-common --prefer-nano ffmpeg-mini # Comment this out if you need an AUR package #make-aur-package tauon-music-box-git -echo "Building tauon-music-box from source..." +echo "Building kissfft..." +echo "---------------------------------------------------------------" +git clone --depth 1 https://github.com/mborgerding/kissfft.git && ( + cd kissfft + make KISSFFT_TOOLS=0 + make install PREFIX=/usr KISSFFT_TOOLS=0 + ldconfig +) + +echo "Building tauon-music-box..." echo "---------------------------------------------------------------" git clone https://github.com/Taiko2k/Tauon.git ./Tauon && ( cd ./Tauon From c3a6dabf0d48c434110cdc2dd44d0c0ee22e7cab Mon Sep 17 00:00:00 2001 From: Samueru-sama Date: Thu, 3 Sep 2026 21:54:37 -0400 Subject: [PATCH 7/7] simplify build --- get-dependencies.sh | 27 ++++++--------------------- make-appimage.sh | 3 --- 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/get-dependencies.sh b/get-dependencies.sh index afa98e5..7e018a3 100644 --- a/get-dependencies.sh +++ b/get-dependencies.sh @@ -17,10 +17,7 @@ pacman -Syu --noconfirm \ libprojectm \ libsamplerate \ libvorbis \ - miniaudio \ mpg123 \ - noto-fonts \ - noto-fonts-extra \ opencc \ openjpeg2 \ opusfile \ @@ -65,28 +62,17 @@ get-debloated-pkgs --add-common --prefer-nano ffmpeg-mini # Comment this out if you need an AUR package #make-aur-package tauon-music-box-git -echo "Building kissfft..." -echo "---------------------------------------------------------------" -git clone --depth 1 https://github.com/mborgerding/kissfft.git && ( - cd kissfft - make KISSFFT_TOOLS=0 - make install PREFIX=/usr KISSFFT_TOOLS=0 - ldconfig -) - echo "Building tauon-music-box..." echo "---------------------------------------------------------------" -git clone https://github.com/Taiko2k/Tauon.git ./Tauon && ( +git clone --recursive https://github.com/Taiko2k/Tauon.git ./Tauon && ( cd ./Tauon git fetch --tags origin TAG=$(git tag --sort=-v:refname | grep -vi 'pre\|rc\|alpha\|beta' | head -1) git checkout "$TAG" + git submodule update --init --recursive echo "${TAG#v}" > ~/version - # use system kissfft instead of the expected cloned repository - sed -i 's|"src/phazor/kissfft/kiss_fftr.c", "src/phazor/kissfft/kiss_fft.c", ||g' pyproject.toml - sed -i 's|"samplerate"|"kissfft-float", "samplerate"|g' pyproject.toml sed -i 's|com.github.taiko2k.tauonmb.desktop|tauonmb.desktop|' extra/com.github.taiko2k.tauonmb.appdata.xml python -m build --wheel @@ -108,12 +94,11 @@ git clone https://github.com/Taiko2k/Tauon.git ./Tauon && ( -t "/usr/share/locale/$(basename "${dir}")/LC_MESSAGES" done - install -Dm644 extra/tauonmb.desktop -t /usr/share/applications - install -Dm644 extra/com.github.taiko2k.tauonmb.appdata.xml -t /usr/share/metainfo install -Dm644 extra/tauonmb-symbolic.svg -t /usr/share/icons/hicolor/symbolic/apps - install -Dm644 extra/tauonmb.svg -t /usr/share/icons/hicolor/scalable/apps - install -Dm755 extra/tauonmb.sh /usr/bin/tauon - site_packages=$(python -c "import site; print(site.getsitepackages()[0])") install -Dm755 src/lrclib-solver/target/release/lrclib-solver "${site_packages}/tauon/lrclib-solver" ) + +mkdir -p ./AppDir +cp -v ./Tauon/extra/tauonmb.desktop ./AppDir +cp -v ./Tauon/extra/tauonmb.svg ./AppDir diff --git a/make-appimage.sh b/make-appimage.sh index 3bebe8f..f810bf5 100644 --- a/make-appimage.sh +++ b/make-appimage.sh @@ -7,8 +7,6 @@ export ARCH export OUTPATH=./dist export ADD_HOOKS="self-updater.hook" export UPINFO="gh-releases-zsync|${GITHUB_REPOSITORY%/*}|${GITHUB_REPOSITORY#*/}|latest|*$ARCH.AppImage.zsync" -export ICON=/usr/share/icons/hicolor/scalable/apps/tauonmb.svg -export DESKTOP=/usr/share/applications/tauonmb.desktop export DEPLOY_PYTHON=1 export DEPLOY_PIPEWIRE=1 export USE_HOST_DRIVERS_EXPERIMENTAL=1 @@ -30,7 +28,6 @@ quick-sharun \ /usr/lib/libvorbisfile.so* \ /usr/lib/libopusfile.so* \ /usr/lib/libsamplerate.so* \ - /usr/lib/libkissfft-float.so* \ /usr/lib/libimagequant.so* \ /usr/lib/libopenjp2.so*