#!/bin/sh # README # Builds swingmusic binary for aarch64 aka ARM64 architecture # Run # ./buildswingmusic.sh # chmod a+x swingmusicbuilder/swingmusic/dist/swingmusic # .swingmusicbuilder/swingmusic/dist/swingmusic --port --host # Notes # Poetry installer and pipx install poetry are both broken on ARM64 Raspberry Pi OS # Moving or renaming venv directory (comment inline below) will break that venv. # Additional poetry bug ongoing https://github.com/python-poetry/poetry/issues/5250 (comment inline below) # Changed to bash shebang above from repo build script setting of zsh pacman-key --init > /dev/null pacman-key --populate archlinuxarm > /dev/null pacman -Syq --noconfirm > /dev/null pacman -S libev --noconfirm > /dev/null pacman -Sq yarn git wget glibc gcc bzip2 expat gdbm libffi libnsl libxcrypt openssl zlib libnghttp2 icu --noconfirm --disable-download-timeout --needed > /dev/null wget -q https://github.com/jensgrunzer1/pyhon311-for-aarch64/raw/refs/heads/main/python311-3.11.9-2-aarch64.pkg.tar.xz pacman -U python311-3.11.9-2-aarch64.pkg.tar.xz --noconfirm mkdir swingmusicbuilder cd swingmusicbuilder git clone --quiet https://github.com/swing-opensource/swingmusic-client.git git clone --quiet https://github.com/swing-opensource/swingmusic.git python3.11 -m venv venv source venv/bin/activate cd swingmusic # pip install -U pip setuptools pip install -r requirements.txt pip install bjoern cd ../swingmusic-client yarn install yarn build --outDir ../swingmusic/client cd ../swingmusic # Fixes poetry issue 5250. # export PYTHON_KEYRING_BACKEND=keyring.backends.fail.Keyring # poetry env use /usr/bin/python3.11 # poetry install # Swing gives error if this is not set. Set to version of repo you cloned. export SWINGMUSIC_APP_VERSION="TAG" python run.py --build # rename binary mv dist/swingmusic dist/swingmusic_linux_arm64